From c9061c5ea74218890ed4841d220b12166fbaec64 Mon Sep 17 00:00:00 2001 From: Branan Purvine-Riley Date: Mon, 11 Apr 2011 15:12:51 -0700 Subject: [PATCH] Move Plasma20 to be the new repository root --HG-- rename : MOULOpenSourceClientPlugin/Plasma20/CMakeLists.txt => CMakeLists.txt rename : MOULOpenSourceClientPlugin/Plasma20/Docs/Distributor.doc => Docs/Distributor.doc rename : MOULOpenSourceClientPlugin/Plasma20/Docs/ReleaseNotes/ReleaseNotes.txt => Docs/ReleaseNotes/ReleaseNotes.txt rename : MOULOpenSourceClientPlugin/Plasma20/Docs/Resource Manager.doc => Docs/Resource Manager.doc rename : MOULOpenSourceClientPlugin/Plasma20/Docs/sound cones.htm => Docs/sound cones.htm rename : MOULOpenSourceClientPlugin/Plasma20/MsDevProjects/AllDlls/AllDlls.sln => MsDevProjects/AllDlls/AllDlls.sln rename : MOULOpenSourceClientPlugin/Plasma20/MsDevProjects/AllDlls/AllDlls.vcproj => MsDevProjects/AllDlls/AllDlls.vcproj rename : MOULOpenSourceClientPlugin/Plasma20/MsDevProjects/Plasma/Apps/AllClient/AllClient.sln => MsDevProjects/Plasma/Apps/AllClient/AllClient.sln rename : MOULOpenSourceClientPlugin/Plasma20/MsDevProjects/Plasma/Apps/AllClient/AllClient.vcproj => MsDevProjects/Plasma/Apps/AllClient/AllClient.vcproj rename : MOULOpenSourceClientPlugin/Plasma20/MsDevProjects/Plasma/Apps/plClient/plClient.vcproj => MsDevProjects/Plasma/Apps/plClient/plClient.vcproj rename : MOULOpenSourceClientPlugin/Plasma20/MsDevProjects/Plasma/Apps/plClientKey/plClientKey.vcproj => MsDevProjects/Plasma/Apps/plClientKey/plClientKey.vcproj rename : MOULOpenSourceClientPlugin/Plasma20/MsDevProjects/Plasma/Apps/plClientPatcher/plClientPatcher.vcproj => MsDevProjects/Plasma/Apps/plClientPatcher/plClientPatcher.vcproj rename : MOULOpenSourceClientPlugin/Plasma20/MsDevProjects/Plasma/Apps/plFileEncrypt/plFileEncrypt.vcproj => MsDevProjects/Plasma/Apps/plFileEncrypt/plFileEncrypt.vcproj rename : MOULOpenSourceClientPlugin/Plasma20/MsDevProjects/Plasma/Apps/plFileSecure/plFileSecure.vcproj => MsDevProjects/Plasma/Apps/plFileSecure/plFileSecure.vcproj rename : MOULOpenSourceClientPlugin/Plasma20/MsDevProjects/Plasma/Apps/plLogDecrypt/plLogDecrypt.vcproj => MsDevProjects/Plasma/Apps/plLogDecrypt/plLogDecrypt.vcproj rename : MOULOpenSourceClientPlugin/Plasma20/MsDevProjects/Plasma/Apps/plMD5/plMD5.vcproj => MsDevProjects/Plasma/Apps/plMD5/plMD5.vcproj rename : MOULOpenSourceClientPlugin/Plasma20/MsDevProjects/Plasma/Apps/plPageInfo/plPageInfo.vcproj => MsDevProjects/Plasma/Apps/plPageInfo/plPageInfo.vcproj rename : MOULOpenSourceClientPlugin/Plasma20/MsDevProjects/Plasma/Apps/plPageOptimizer/plPageOptimizer.vcproj => MsDevProjects/Plasma/Apps/plPageOptimizer/plPageOptimizer.vcproj rename : MOULOpenSourceClientPlugin/Plasma20/MsDevProjects/Plasma/Apps/plPlasmaInstaller/plPlasmaInstaller.vcproj => MsDevProjects/Plasma/Apps/plPlasmaInstaller/plPlasmaInstaller.vcproj rename : MOULOpenSourceClientPlugin/Plasma20/MsDevProjects/Plasma/Apps/plPlasmaUpdate/plPlasmaUpdate.vcproj => MsDevProjects/Plasma/Apps/plPlasmaUpdate/plPlasmaUpdate.vcproj rename : MOULOpenSourceClientPlugin/Plasma20/MsDevProjects/Plasma/Apps/plPythonPack/plPythonPack.vcproj => MsDevProjects/Plasma/Apps/plPythonPack/plPythonPack.vcproj rename : MOULOpenSourceClientPlugin/Plasma20/MsDevProjects/Plasma/Apps/plUruLauncher/plUruLauncher.vcproj => MsDevProjects/Plasma/Apps/plUruLauncher/plUruLauncher.vcproj rename : MOULOpenSourceClientPlugin/Plasma20/MsDevProjects/Plasma/CoreLib/CoreLib.vcproj => MsDevProjects/Plasma/CoreLib/CoreLib.vcproj rename : MOULOpenSourceClientPlugin/Plasma20/MsDevProjects/Plasma/CoreLibExe/CoreLibExe.vcproj => MsDevProjects/Plasma/CoreLibExe/CoreLibExe.vcproj rename : MOULOpenSourceClientPlugin/Plasma20/MsDevProjects/Plasma/FeatureLib/FeatureLibInc/FeatureLibInc.vcproj => MsDevProjects/Plasma/FeatureLib/FeatureLibInc/FeatureLibInc.vcproj rename : MOULOpenSourceClientPlugin/Plasma20/MsDevProjects/Plasma/FeatureLib/pfAnimation/pfAnimation.vcproj => MsDevProjects/Plasma/FeatureLib/pfAnimation/pfAnimation.vcproj rename : MOULOpenSourceClientPlugin/Plasma20/MsDevProjects/Plasma/FeatureLib/pfAudio/pfAudio.vcproj => MsDevProjects/Plasma/FeatureLib/pfAudio/pfAudio.vcproj rename : MOULOpenSourceClientPlugin/Plasma20/MsDevProjects/Plasma/FeatureLib/pfCCR/pfCCR.vcproj => MsDevProjects/Plasma/FeatureLib/pfCCR/pfCCR.vcproj rename : MOULOpenSourceClientPlugin/Plasma20/MsDevProjects/Plasma/FeatureLib/pfCamera/pfCamera.vcproj => MsDevProjects/Plasma/FeatureLib/pfCamera/pfCamera.vcproj rename : MOULOpenSourceClientPlugin/Plasma20/MsDevProjects/Plasma/FeatureLib/pfCharacter/pfCharacter.vcproj => MsDevProjects/Plasma/FeatureLib/pfCharacter/pfCharacter.vcproj rename : MOULOpenSourceClientPlugin/Plasma20/MsDevProjects/Plasma/FeatureLib/pfConditional/pfConditional.vcproj => MsDevProjects/Plasma/FeatureLib/pfConditional/pfConditional.vcproj rename : MOULOpenSourceClientPlugin/Plasma20/MsDevProjects/Plasma/FeatureLib/pfConsole/pfConsole.vcproj => MsDevProjects/Plasma/FeatureLib/pfConsole/pfConsole.vcproj rename : MOULOpenSourceClientPlugin/Plasma20/MsDevProjects/Plasma/FeatureLib/pfCsrSrv/pfCsrSrv.vcproj => MsDevProjects/Plasma/FeatureLib/pfCsrSrv/pfCsrSrv.vcproj rename : MOULOpenSourceClientPlugin/Plasma20/MsDevProjects/Plasma/FeatureLib/pfGameGUIMgr/pfGameGUIMgr.vcproj => MsDevProjects/Plasma/FeatureLib/pfGameGUIMgr/pfGameGUIMgr.vcproj rename : MOULOpenSourceClientPlugin/Plasma20/MsDevProjects/Plasma/FeatureLib/pfGameMgr/pfGameMgr.vcproj => MsDevProjects/Plasma/FeatureLib/pfGameMgr/pfGameMgr.vcproj rename : MOULOpenSourceClientPlugin/Plasma20/MsDevProjects/Plasma/FeatureLib/pfGameScoreMgr/pfGameScoreMgr.vcproj => MsDevProjects/Plasma/FeatureLib/pfGameScoreMgr/pfGameScoreMgr.vcproj rename : MOULOpenSourceClientPlugin/Plasma20/MsDevProjects/Plasma/FeatureLib/pfJournalBook/pfJournalBook.vcproj => MsDevProjects/Plasma/FeatureLib/pfJournalBook/pfJournalBook.vcproj rename : MOULOpenSourceClientPlugin/Plasma20/MsDevProjects/Plasma/FeatureLib/pfKI/placeholder.txt => MsDevProjects/Plasma/FeatureLib/pfKI/placeholder.txt rename : MOULOpenSourceClientPlugin/Plasma20/MsDevProjects/Plasma/FeatureLib/pfLocalizationMgr/pfLocalizationMgr.vcproj => MsDevProjects/Plasma/FeatureLib/pfLocalizationMgr/pfLocalizationMgr.vcproj rename : MOULOpenSourceClientPlugin/Plasma20/MsDevProjects/Plasma/FeatureLib/pfLoginDialog/pfLoginDialog.vcproj => MsDevProjects/Plasma/FeatureLib/pfLoginDialog/pfLoginDialog.vcproj rename : MOULOpenSourceClientPlugin/Plasma20/MsDevProjects/Plasma/FeatureLib/pfMessage/pfMessage.vcproj => MsDevProjects/Plasma/FeatureLib/pfMessage/pfMessage.vcproj rename : MOULOpenSourceClientPlugin/Plasma20/MsDevProjects/Plasma/FeatureLib/pfPython/pfPython.vcproj => MsDevProjects/Plasma/FeatureLib/pfPython/pfPython.vcproj rename : MOULOpenSourceClientPlugin/Plasma20/MsDevProjects/Plasma/FeatureLib/pfSecurePreloader/pfSecurePreloader.vcproj => MsDevProjects/Plasma/FeatureLib/pfSecurePreloader/pfSecurePreloader.vcproj rename : MOULOpenSourceClientPlugin/Plasma20/MsDevProjects/Plasma/FeatureLib/pfStackTrace/pfStackTrace.vcproj => MsDevProjects/Plasma/FeatureLib/pfStackTrace/pfStackTrace.vcproj rename : MOULOpenSourceClientPlugin/Plasma20/MsDevProjects/Plasma/FeatureLib/pfSurface/pfSurface.vcproj => MsDevProjects/Plasma/FeatureLib/pfSurface/pfSurface.vcproj rename : MOULOpenSourceClientPlugin/Plasma20/MsDevProjects/Plasma/GameLib/PlasmaGame/GameLib/placeholder.txt => MsDevProjects/Plasma/GameLib/PlasmaGame/GameLib/placeholder.txt rename : MOULOpenSourceClientPlugin/Plasma20/MsDevProjects/Plasma/GameLib/PlasmaGame/placeholder.txt => MsDevProjects/Plasma/GameLib/PlasmaGame/placeholder.txt rename : MOULOpenSourceClientPlugin/Plasma20/MsDevProjects/Plasma/GameLib/placeholder.txt => MsDevProjects/Plasma/GameLib/placeholder.txt rename : MOULOpenSourceClientPlugin/Plasma20/MsDevProjects/Plasma/NucleusLib/pnAddrInfo/pnAddrInfo.vcproj => MsDevProjects/Plasma/NucleusLib/pnAddrInfo/pnAddrInfo.vcproj rename : MOULOpenSourceClientPlugin/Plasma20/MsDevProjects/Plasma/NucleusLib/pnAsyncCore/pnAsyncCore.vcproj => MsDevProjects/Plasma/NucleusLib/pnAsyncCore/pnAsyncCore.vcproj rename : MOULOpenSourceClientPlugin/Plasma20/MsDevProjects/Plasma/NucleusLib/pnAsyncCoreExe/pnAsyncCoreExe.vcproj => MsDevProjects/Plasma/NucleusLib/pnAsyncCoreExe/pnAsyncCoreExe.vcproj rename : MOULOpenSourceClientPlugin/Plasma20/MsDevProjects/Plasma/NucleusLib/pnCrash/pnCrash.vcproj => MsDevProjects/Plasma/NucleusLib/pnCrash/pnCrash.vcproj rename : MOULOpenSourceClientPlugin/Plasma20/MsDevProjects/Plasma/NucleusLib/pnCrashExe/pnCrashExe.vcproj => MsDevProjects/Plasma/NucleusLib/pnCrashExe/pnCrashExe.vcproj rename : MOULOpenSourceClientPlugin/Plasma20/MsDevProjects/Plasma/NucleusLib/pnCsrCli/pnCsrCli.vcproj => MsDevProjects/Plasma/NucleusLib/pnCsrCli/pnCsrCli.vcproj rename : MOULOpenSourceClientPlugin/Plasma20/MsDevProjects/Plasma/NucleusLib/pnCsrNet/pnCsrNet.vcproj => MsDevProjects/Plasma/NucleusLib/pnCsrNet/pnCsrNet.vcproj rename : MOULOpenSourceClientPlugin/Plasma20/MsDevProjects/Plasma/NucleusLib/pnDispatch/pnDispatch.vcproj => MsDevProjects/Plasma/NucleusLib/pnDispatch/pnDispatch.vcproj rename : MOULOpenSourceClientPlugin/Plasma20/MsDevProjects/Plasma/NucleusLib/pnFactory/pnFactory.vcproj => MsDevProjects/Plasma/NucleusLib/pnFactory/pnFactory.vcproj rename : MOULOpenSourceClientPlugin/Plasma20/MsDevProjects/Plasma/NucleusLib/pnGameMgr/pnGameMgr.vcproj => MsDevProjects/Plasma/NucleusLib/pnGameMgr/pnGameMgr.vcproj rename : MOULOpenSourceClientPlugin/Plasma20/MsDevProjects/Plasma/NucleusLib/pnIni/pnIni.vcproj => MsDevProjects/Plasma/NucleusLib/pnIni/pnIni.vcproj rename : MOULOpenSourceClientPlugin/Plasma20/MsDevProjects/Plasma/NucleusLib/pnIniExe/pnIniExe.vcproj => MsDevProjects/Plasma/NucleusLib/pnIniExe/pnIniExe.vcproj rename : MOULOpenSourceClientPlugin/Plasma20/MsDevProjects/Plasma/NucleusLib/pnInputCore/pnInputCore.vcproj => MsDevProjects/Plasma/NucleusLib/pnInputCore/pnInputCore.vcproj rename : MOULOpenSourceClientPlugin/Plasma20/MsDevProjects/Plasma/NucleusLib/pnKeyedObject/pnKeyedObject.vcproj => MsDevProjects/Plasma/NucleusLib/pnKeyedObject/pnKeyedObject.vcproj rename : MOULOpenSourceClientPlugin/Plasma20/MsDevProjects/Plasma/NucleusLib/pnMail/pnMail.vcproj => MsDevProjects/Plasma/NucleusLib/pnMail/pnMail.vcproj rename : MOULOpenSourceClientPlugin/Plasma20/MsDevProjects/Plasma/NucleusLib/pnMessage/pnMessage.vcproj => MsDevProjects/Plasma/NucleusLib/pnMessage/pnMessage.vcproj rename : MOULOpenSourceClientPlugin/Plasma20/MsDevProjects/Plasma/NucleusLib/pnModifier/pnModifier.vcproj => MsDevProjects/Plasma/NucleusLib/pnModifier/pnModifier.vcproj rename : MOULOpenSourceClientPlugin/Plasma20/MsDevProjects/Plasma/NucleusLib/pnNetBase/pnNetBase.vcproj => MsDevProjects/Plasma/NucleusLib/pnNetBase/pnNetBase.vcproj rename : MOULOpenSourceClientPlugin/Plasma20/MsDevProjects/Plasma/NucleusLib/pnNetCli/pnNetCli.vcproj => MsDevProjects/Plasma/NucleusLib/pnNetCli/pnNetCli.vcproj rename : MOULOpenSourceClientPlugin/Plasma20/MsDevProjects/Plasma/NucleusLib/pnNetCommon/pnNetCommon.vcproj => MsDevProjects/Plasma/NucleusLib/pnNetCommon/pnNetCommon.vcproj rename : MOULOpenSourceClientPlugin/Plasma20/MsDevProjects/Plasma/NucleusLib/pnNetDiag/pnNetDiag.vcproj => MsDevProjects/Plasma/NucleusLib/pnNetDiag/pnNetDiag.vcproj rename : MOULOpenSourceClientPlugin/Plasma20/MsDevProjects/Plasma/NucleusLib/pnNetLog/pnNetLog.vcproj => MsDevProjects/Plasma/NucleusLib/pnNetLog/pnNetLog.vcproj rename : MOULOpenSourceClientPlugin/Plasma20/MsDevProjects/Plasma/NucleusLib/pnNetProtocol/pnNetProtocol.vcproj => MsDevProjects/Plasma/NucleusLib/pnNetProtocol/pnNetProtocol.vcproj rename : MOULOpenSourceClientPlugin/Plasma20/MsDevProjects/Plasma/NucleusLib/pnNucleusInc/pnNucleusInc.vcproj => MsDevProjects/Plasma/NucleusLib/pnNucleusInc/pnNucleusInc.vcproj rename : MOULOpenSourceClientPlugin/Plasma20/MsDevProjects/Plasma/NucleusLib/pnOraLib/pnOraLib.vcproj => MsDevProjects/Plasma/NucleusLib/pnOraLib/pnOraLib.vcproj rename : MOULOpenSourceClientPlugin/Plasma20/MsDevProjects/Plasma/NucleusLib/pnProduct/pnProduct.vcproj => MsDevProjects/Plasma/NucleusLib/pnProduct/pnProduct.vcproj rename : MOULOpenSourceClientPlugin/Plasma20/MsDevProjects/Plasma/NucleusLib/pnSceneObject/pnSceneObject.vcproj => MsDevProjects/Plasma/NucleusLib/pnSceneObject/pnSceneObject.vcproj rename : MOULOpenSourceClientPlugin/Plasma20/MsDevProjects/Plasma/NucleusLib/pnSimpleNet/pnSimpleNet.vcproj => MsDevProjects/Plasma/NucleusLib/pnSimpleNet/pnSimpleNet.vcproj rename : MOULOpenSourceClientPlugin/Plasma20/MsDevProjects/Plasma/NucleusLib/pnSqlLib/pnSqlLib.vcproj => MsDevProjects/Plasma/NucleusLib/pnSqlLib/pnSqlLib.vcproj rename : MOULOpenSourceClientPlugin/Plasma20/MsDevProjects/Plasma/NucleusLib/pnSrvUtils/pnSrvUtils.vcproj => MsDevProjects/Plasma/NucleusLib/pnSrvUtils/pnSrvUtils.vcproj rename : MOULOpenSourceClientPlugin/Plasma20/MsDevProjects/Plasma/NucleusLib/pnSrvUtilsExe/pnSrvUtilsExe.vcproj => MsDevProjects/Plasma/NucleusLib/pnSrvUtilsExe/pnSrvUtilsExe.vcproj rename : MOULOpenSourceClientPlugin/Plasma20/MsDevProjects/Plasma/NucleusLib/pnTimer/pnTimer.vcproj => MsDevProjects/Plasma/NucleusLib/pnTimer/pnTimer.vcproj rename : MOULOpenSourceClientPlugin/Plasma20/MsDevProjects/Plasma/NucleusLib/pnUtils/pnUtils.vcproj => MsDevProjects/Plasma/NucleusLib/pnUtils/pnUtils.vcproj rename : MOULOpenSourceClientPlugin/Plasma20/MsDevProjects/Plasma/NucleusLib/pnUtilsExe/pnUtilsExe.vcproj => MsDevProjects/Plasma/NucleusLib/pnUtilsExe/pnUtilsExe.vcproj rename : MOULOpenSourceClientPlugin/Plasma20/MsDevProjects/Plasma/PubUtilLib/PubUtilInc/PubUtilInc.vcproj => MsDevProjects/Plasma/PubUtilLib/PubUtilInc/PubUtilInc.vcproj rename : MOULOpenSourceClientPlugin/Plasma20/MsDevProjects/Plasma/PubUtilLib/plAgeDescription/plAgeDescription.vcproj => MsDevProjects/Plasma/PubUtilLib/plAgeDescription/plAgeDescription.vcproj rename : MOULOpenSourceClientPlugin/Plasma20/MsDevProjects/Plasma/PubUtilLib/plAgeLoader/plAgeLoader.vcproj => MsDevProjects/Plasma/PubUtilLib/plAgeLoader/plAgeLoader.vcproj rename : MOULOpenSourceClientPlugin/Plasma20/MsDevProjects/Plasma/PubUtilLib/plAudible/plAudible.vcproj => MsDevProjects/Plasma/PubUtilLib/plAudible/plAudible.vcproj rename : MOULOpenSourceClientPlugin/Plasma20/MsDevProjects/Plasma/PubUtilLib/plAudio/plAudio.vcproj => MsDevProjects/Plasma/PubUtilLib/plAudio/plAudio.vcproj rename : MOULOpenSourceClientPlugin/Plasma20/MsDevProjects/Plasma/PubUtilLib/plAudioCore/plAudioCore.vcproj => MsDevProjects/Plasma/PubUtilLib/plAudioCore/plAudioCore.vcproj rename : MOULOpenSourceClientPlugin/Plasma20/MsDevProjects/Plasma/PubUtilLib/plAvatar/plAvatar.vcproj => MsDevProjects/Plasma/PubUtilLib/plAvatar/plAvatar.vcproj rename : MOULOpenSourceClientPlugin/Plasma20/MsDevProjects/Plasma/PubUtilLib/plCompression/plCompression.vcproj => MsDevProjects/Plasma/PubUtilLib/plCompression/plCompression.vcproj rename : MOULOpenSourceClientPlugin/Plasma20/MsDevProjects/Plasma/PubUtilLib/plConditionalObject/placeholder.txt => MsDevProjects/Plasma/PubUtilLib/plConditionalObject/placeholder.txt rename : MOULOpenSourceClientPlugin/Plasma20/MsDevProjects/Plasma/PubUtilLib/plContainer/plContainer.vcproj => MsDevProjects/Plasma/PubUtilLib/plContainer/plContainer.vcproj rename : MOULOpenSourceClientPlugin/Plasma20/MsDevProjects/Plasma/PubUtilLib/plDeviceSelector/plDeviceSelector.vcproj => MsDevProjects/Plasma/PubUtilLib/plDeviceSelector/plDeviceSelector.vcproj rename : MOULOpenSourceClientPlugin/Plasma20/MsDevProjects/Plasma/PubUtilLib/plDrawable/plDrawable.vcproj => MsDevProjects/Plasma/PubUtilLib/plDrawable/plDrawable.vcproj rename : MOULOpenSourceClientPlugin/Plasma20/MsDevProjects/Plasma/PubUtilLib/plEncryption/plEncryption.vcproj => MsDevProjects/Plasma/PubUtilLib/plEncryption/plEncryption.vcproj rename : MOULOpenSourceClientPlugin/Plasma20/MsDevProjects/Plasma/PubUtilLib/plFile/plFile.vcproj => MsDevProjects/Plasma/PubUtilLib/plFile/plFile.vcproj rename : MOULOpenSourceClientPlugin/Plasma20/MsDevProjects/Plasma/PubUtilLib/plGClip/plGClip.vcproj => MsDevProjects/Plasma/PubUtilLib/plGClip/plGClip.vcproj rename : MOULOpenSourceClientPlugin/Plasma20/MsDevProjects/Plasma/PubUtilLib/plGImage/plGImage.vcproj => MsDevProjects/Plasma/PubUtilLib/plGImage/plGImage.vcproj rename : MOULOpenSourceClientPlugin/Plasma20/MsDevProjects/Plasma/PubUtilLib/plGLight/plGLight.vcproj => MsDevProjects/Plasma/PubUtilLib/plGLight/plGLight.vcproj rename : MOULOpenSourceClientPlugin/Plasma20/MsDevProjects/Plasma/PubUtilLib/plGeometry/plGeometry.vcproj => MsDevProjects/Plasma/PubUtilLib/plGeometry/plGeometry.vcproj rename : MOULOpenSourceClientPlugin/Plasma20/MsDevProjects/Plasma/PubUtilLib/plInputCore/plInputCore.vcproj => MsDevProjects/Plasma/PubUtilLib/plInputCore/plInputCore.vcproj rename : MOULOpenSourceClientPlugin/Plasma20/MsDevProjects/Plasma/PubUtilLib/plInterp/plInterp.vcproj => MsDevProjects/Plasma/PubUtilLib/plInterp/plInterp.vcproj rename : MOULOpenSourceClientPlugin/Plasma20/MsDevProjects/Plasma/PubUtilLib/plIntersect/plIntersect.vcproj => MsDevProjects/Plasma/PubUtilLib/plIntersect/plIntersect.vcproj rename : MOULOpenSourceClientPlugin/Plasma20/MsDevProjects/Plasma/PubUtilLib/plJPEG/plJPEG.vcproj => MsDevProjects/Plasma/PubUtilLib/plJPEG/plJPEG.vcproj rename : MOULOpenSourceClientPlugin/Plasma20/MsDevProjects/Plasma/PubUtilLib/plMath/plMath.vcproj => MsDevProjects/Plasma/PubUtilLib/plMath/plMath.vcproj rename : MOULOpenSourceClientPlugin/Plasma20/MsDevProjects/Plasma/PubUtilLib/plMessage/plMessage.vcproj => MsDevProjects/Plasma/PubUtilLib/plMessage/plMessage.vcproj rename : MOULOpenSourceClientPlugin/Plasma20/MsDevProjects/Plasma/PubUtilLib/plModifier/plModifier.vcproj => MsDevProjects/Plasma/PubUtilLib/plModifier/plModifier.vcproj rename : MOULOpenSourceClientPlugin/Plasma20/MsDevProjects/Plasma/PubUtilLib/plNetClient/PlNetClient.vcproj => MsDevProjects/Plasma/PubUtilLib/plNetClient/PlNetClient.vcproj rename : MOULOpenSourceClientPlugin/Plasma20/MsDevProjects/Plasma/PubUtilLib/plNetClientComm/plNetClientComm.vcproj => MsDevProjects/Plasma/PubUtilLib/plNetClientComm/plNetClientComm.vcproj rename : MOULOpenSourceClientPlugin/Plasma20/MsDevProjects/Plasma/PubUtilLib/plNetClientRecorder/plNetClientRecorder.vcproj => MsDevProjects/Plasma/PubUtilLib/plNetClientRecorder/plNetClientRecorder.vcproj rename : MOULOpenSourceClientPlugin/Plasma20/MsDevProjects/Plasma/PubUtilLib/plNetCommon/plNetCommon.vcproj => MsDevProjects/Plasma/PubUtilLib/plNetCommon/plNetCommon.vcproj rename : MOULOpenSourceClientPlugin/Plasma20/MsDevProjects/Plasma/PubUtilLib/plNetGameLib/plNetGameLib.vcproj => MsDevProjects/Plasma/PubUtilLib/plNetGameLib/plNetGameLib.vcproj rename : MOULOpenSourceClientPlugin/Plasma20/MsDevProjects/Plasma/PubUtilLib/plNetMessage/plNetMessage.vcproj => MsDevProjects/Plasma/PubUtilLib/plNetMessage/plNetMessage.vcproj rename : MOULOpenSourceClientPlugin/Plasma20/MsDevProjects/Plasma/PubUtilLib/plNetTransport/plNetTransport.vcproj => MsDevProjects/Plasma/PubUtilLib/plNetTransport/plNetTransport.vcproj rename : MOULOpenSourceClientPlugin/Plasma20/MsDevProjects/Plasma/PubUtilLib/plParticleSystem/plParticleSystem.vcproj => MsDevProjects/Plasma/PubUtilLib/plParticleSystem/plParticleSystem.vcproj rename : MOULOpenSourceClientPlugin/Plasma20/MsDevProjects/Plasma/PubUtilLib/plPhysX/plPhysX.vcproj => MsDevProjects/Plasma/PubUtilLib/plPhysX/plPhysX.vcproj rename : MOULOpenSourceClientPlugin/Plasma20/MsDevProjects/Plasma/PubUtilLib/plPhysical/plPhysical.vcproj => MsDevProjects/Plasma/PubUtilLib/plPhysical/plPhysical.vcproj rename : MOULOpenSourceClientPlugin/Plasma20/MsDevProjects/Plasma/PubUtilLib/plPipeline/plPipeline.vcproj => MsDevProjects/Plasma/PubUtilLib/plPipeline/plPipeline.vcproj rename : MOULOpenSourceClientPlugin/Plasma20/MsDevProjects/Plasma/PubUtilLib/plProgressMgr/plProgressMgr.vcproj => MsDevProjects/Plasma/PubUtilLib/plProgressMgr/plProgressMgr.vcproj rename : MOULOpenSourceClientPlugin/Plasma20/MsDevProjects/Plasma/PubUtilLib/plResMgr/plResMgr.vcproj => MsDevProjects/Plasma/PubUtilLib/plResMgr/plResMgr.vcproj rename : MOULOpenSourceClientPlugin/Plasma20/MsDevProjects/Plasma/PubUtilLib/plSDL/plSDL.vcproj => MsDevProjects/Plasma/PubUtilLib/plSDL/plSDL.vcproj rename : MOULOpenSourceClientPlugin/Plasma20/MsDevProjects/Plasma/PubUtilLib/plSDLBrowser/placeholder.txt => MsDevProjects/Plasma/PubUtilLib/plSDLBrowser/placeholder.txt rename : MOULOpenSourceClientPlugin/Plasma20/MsDevProjects/Plasma/PubUtilLib/plScene/plScene.vcproj => MsDevProjects/Plasma/PubUtilLib/plScene/plScene.vcproj rename : MOULOpenSourceClientPlugin/Plasma20/MsDevProjects/Plasma/PubUtilLib/plSockets/plSockets.vcproj => MsDevProjects/Plasma/PubUtilLib/plSockets/plSockets.vcproj rename : MOULOpenSourceClientPlugin/Plasma20/MsDevProjects/Plasma/PubUtilLib/plStatGather/plStatGather.vcproj => MsDevProjects/Plasma/PubUtilLib/plStatGather/plStatGather.vcproj rename : MOULOpenSourceClientPlugin/Plasma20/MsDevProjects/Plasma/PubUtilLib/plStatusLog/plStatusLog.vcproj => MsDevProjects/Plasma/PubUtilLib/plStatusLog/plStatusLog.vcproj rename : MOULOpenSourceClientPlugin/Plasma20/MsDevProjects/Plasma/PubUtilLib/plStreamLogger/plStreamLogger.vcproj => MsDevProjects/Plasma/PubUtilLib/plStreamLogger/plStreamLogger.vcproj rename : MOULOpenSourceClientPlugin/Plasma20/MsDevProjects/Plasma/PubUtilLib/plSurface/plSurface.vcproj => MsDevProjects/Plasma/PubUtilLib/plSurface/plSurface.vcproj rename : MOULOpenSourceClientPlugin/Plasma20/MsDevProjects/Plasma/PubUtilLib/plTransform/plTransform.vcproj => MsDevProjects/Plasma/PubUtilLib/plTransform/plTransform.vcproj rename : MOULOpenSourceClientPlugin/Plasma20/MsDevProjects/Plasma/PubUtilLib/plUUID/plUUID.vcproj => MsDevProjects/Plasma/PubUtilLib/plUUID/plUUID.vcproj rename : MOULOpenSourceClientPlugin/Plasma20/MsDevProjects/Plasma/PubUtilLib/plUnifiedTime/plUnifiedTime.vcproj => MsDevProjects/Plasma/PubUtilLib/plUnifiedTime/plUnifiedTime.vcproj rename : MOULOpenSourceClientPlugin/Plasma20/MsDevProjects/Plasma/PubUtilLib/plVault/plVault.vcproj => MsDevProjects/Plasma/PubUtilLib/plVault/plVault.vcproj rename : MOULOpenSourceClientPlugin/Plasma20/MsDevProjects/Plasma/PubUtilLib/plWinStrBlock/plWinStrBlock.vcproj => MsDevProjects/Plasma/PubUtilLib/plWinStrBlock/plWinStrBlock.vcproj rename : MOULOpenSourceClientPlugin/Plasma20/MsDevProjects/Plasma/PubUtilLib/plWndCtrls/plWndCtrls.vcproj => MsDevProjects/Plasma/PubUtilLib/plWndCtrls/plWndCtrls.vcproj rename : MOULOpenSourceClientPlugin/Plasma20/MsDevProjects/Plasma/PythonLib/Cypython/placeholder.txt => MsDevProjects/Plasma/PythonLib/Cypython/placeholder.txt rename : MOULOpenSourceClientPlugin/Plasma20/MsDevProjects/Plasma/PythonLib/pyNetClientComm/pyNetClientComm.vcproj => MsDevProjects/Plasma/PythonLib/pyNetClientComm/pyNetClientComm.vcproj rename : MOULOpenSourceClientPlugin/Plasma20/MsDevProjects/Plasma/PythonLib/pyNetClientGame/placeholder.txt => MsDevProjects/Plasma/PythonLib/pyNetClientGame/placeholder.txt rename : MOULOpenSourceClientPlugin/Plasma20/MsDevProjects/Plasma/PythonLib/pyPlasma/pyPlasma.vcproj => MsDevProjects/Plasma/PythonLib/pyPlasma/pyPlasma.vcproj rename : MOULOpenSourceClientPlugin/Plasma20/MsDevProjects/Plasma/PythonLib/pyPloticus/pyPloticus.vcproj => MsDevProjects/Plasma/PythonLib/pyPloticus/pyPloticus.vcproj rename : MOULOpenSourceClientPlugin/Plasma20/MsDevProjects/Plasma/PythonLib/pyVault/pyVault.vcproj => MsDevProjects/Plasma/PythonLib/pyVault/pyVault.vcproj rename : MOULOpenSourceClientPlugin/Plasma20/MsDevProjects/Tools/CheckFolderVar/placeholder.txt => MsDevProjects/Tools/CheckFolderVar/placeholder.txt rename : MOULOpenSourceClientPlugin/Plasma20/MsDevProjects/Tools/MaxComponent/MaxComponent.vcproj => MsDevProjects/Tools/MaxComponent/MaxComponent.vcproj rename : MOULOpenSourceClientPlugin/Plasma20/MsDevProjects/Tools/MaxConvert/MaxConvert.vcproj => MsDevProjects/Tools/MaxConvert/MaxConvert.vcproj rename : MOULOpenSourceClientPlugin/Plasma20/MsDevProjects/Tools/MaxExport/MaxExport.vcproj => MsDevProjects/Tools/MaxExport/MaxExport.vcproj rename : MOULOpenSourceClientPlugin/Plasma20/MsDevProjects/Tools/MaxMain/MaxMain.vcproj => MsDevProjects/Tools/MaxMain/MaxMain.vcproj rename : MOULOpenSourceClientPlugin/Plasma20/MsDevProjects/Tools/MaxMtlUpdate/placeholder.txt => MsDevProjects/Tools/MaxMtlUpdate/placeholder.txt rename : MOULOpenSourceClientPlugin/Plasma20/MsDevProjects/Tools/MaxPlasmaLights/MaxPlasmaLights.vcproj => MsDevProjects/Tools/MaxPlasmaLights/MaxPlasmaLights.vcproj rename : MOULOpenSourceClientPlugin/Plasma20/MsDevProjects/Tools/MaxPlasmaMtls/MaxPlasmaMtls.vcproj => MsDevProjects/Tools/MaxPlasmaMtls/MaxPlasmaMtls.vcproj rename : MOULOpenSourceClientPlugin/Plasma20/MsDevProjects/Tools/MaxSceneViewer/MaxSceneViewer.vcproj => MsDevProjects/Tools/MaxSceneViewer/MaxSceneViewer.vcproj rename : MOULOpenSourceClientPlugin/Plasma20/MsDevProjects/Tools/plDatMerger/placeholder.txt => MsDevProjects/Tools/plDatMerger/placeholder.txt rename : MOULOpenSourceClientPlugin/Plasma20/MsDevProjects/Tools/plFontConverter/plFontConverter.vcproj => MsDevProjects/Tools/plFontConverter/plFontConverter.vcproj rename : MOULOpenSourceClientPlugin/Plasma20/MsDevProjects/Tools/plResBrowser/placeholder.txt => MsDevProjects/Tools/plResBrowser/placeholder.txt rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/Win32/HawkVoice/lib/HawkVoiceDIstatic.lib => SDKs/Win32/HawkVoice/lib/HawkVoiceDIstatic.lib rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/Win32/HawkVoice/src/BLOWFISH/Blowfish.001 => SDKs/Win32/HawkVoice/src/BLOWFISH/Blowfish.001 rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/Win32/HawkVoice/src/BLOWFISH/Blowfish.dsp => SDKs/Win32/HawkVoice/src/BLOWFISH/Blowfish.dsp rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/Win32/HawkVoice/src/BLOWFISH/COPYRIGHT => SDKs/Win32/HawkVoice/src/BLOWFISH/COPYRIGHT rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/Win32/HawkVoice/src/BLOWFISH/INSTALL => SDKs/Win32/HawkVoice/src/BLOWFISH/INSTALL rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/Win32/HawkVoice/src/BLOWFISH/Makefile => SDKs/Win32/HawkVoice/src/BLOWFISH/Makefile rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/Win32/HawkVoice/src/BLOWFISH/Makefile.ssl => SDKs/Win32/HawkVoice/src/BLOWFISH/Makefile.ssl rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/Win32/HawkVoice/src/BLOWFISH/Makefile.uni => SDKs/Win32/HawkVoice/src/BLOWFISH/Makefile.uni rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/Win32/HawkVoice/src/BLOWFISH/README => SDKs/Win32/HawkVoice/src/BLOWFISH/README rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/Win32/HawkVoice/src/BLOWFISH/asm/bf586.pl => SDKs/Win32/HawkVoice/src/BLOWFISH/asm/bf586.pl rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/Win32/HawkVoice/src/BLOWFISH/asm/bx86-cpp.s => SDKs/Win32/HawkVoice/src/BLOWFISH/asm/bx86-cpp.s rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/Win32/HawkVoice/src/BLOWFISH/asm/bx86unix.cpp => SDKs/Win32/HawkVoice/src/BLOWFISH/asm/bx86unix.cpp rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/Win32/HawkVoice/src/BLOWFISH/asm/readme => SDKs/Win32/HawkVoice/src/BLOWFISH/asm/readme rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/Win32/HawkVoice/src/BLOWFISH/asm/win32.asm => SDKs/Win32/HawkVoice/src/BLOWFISH/asm/win32.asm rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/Win32/HawkVoice/src/BLOWFISH/asm/x86ms.pl => SDKs/Win32/HawkVoice/src/BLOWFISH/asm/x86ms.pl rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/Win32/HawkVoice/src/BLOWFISH/asm/x86unix.pl => SDKs/Win32/HawkVoice/src/BLOWFISH/asm/x86unix.pl rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/Win32/HawkVoice/src/BLOWFISH/bf_cbc.c => SDKs/Win32/HawkVoice/src/BLOWFISH/bf_cbc.c rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/Win32/HawkVoice/src/BLOWFISH/bf_cfb64.c => SDKs/Win32/HawkVoice/src/BLOWFISH/bf_cfb64.c rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/Win32/HawkVoice/src/BLOWFISH/bf_ecb.c => SDKs/Win32/HawkVoice/src/BLOWFISH/bf_ecb.c rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/Win32/HawkVoice/src/BLOWFISH/bf_enc.c => SDKs/Win32/HawkVoice/src/BLOWFISH/bf_enc.c rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/Win32/HawkVoice/src/BLOWFISH/bf_locl.h => SDKs/Win32/HawkVoice/src/BLOWFISH/bf_locl.h rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/Win32/HawkVoice/src/BLOWFISH/bf_locl.org => SDKs/Win32/HawkVoice/src/BLOWFISH/bf_locl.org rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/Win32/HawkVoice/src/BLOWFISH/bf_ofb64.c => SDKs/Win32/HawkVoice/src/BLOWFISH/bf_ofb64.c rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/Win32/HawkVoice/src/BLOWFISH/bf_pi.h => SDKs/Win32/HawkVoice/src/BLOWFISH/bf_pi.h rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/Win32/HawkVoice/src/BLOWFISH/bf_skey.c => SDKs/Win32/HawkVoice/src/BLOWFISH/bf_skey.c rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/Win32/HawkVoice/src/BLOWFISH/blowfish.doc => SDKs/Win32/HawkVoice/src/BLOWFISH/blowfish.doc rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/Win32/HawkVoice/src/BLOWFISH/blowfish.h => SDKs/Win32/HawkVoice/src/BLOWFISH/blowfish.h rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/Win32/HawkVoice/src/hvdi.h => SDKs/Win32/HawkVoice/src/hvdi.h rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/Grammar/.cvsignore => SDKs/XPlatform/Cypython-2.3.3/Grammar/.cvsignore rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/Grammar/Grammar => SDKs/XPlatform/Cypython-2.3.3/Grammar/Grammar rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/LICENSE => SDKs/XPlatform/Cypython-2.3.3/LICENSE rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/Modules/.cvsignore => SDKs/XPlatform/Cypython-2.3.3/Modules/.cvsignore rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/Modules/Setup.config.in => SDKs/XPlatform/Cypython-2.3.3/Modules/Setup.config.in rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/Modules/Setup.dist => SDKs/XPlatform/Cypython-2.3.3/Modules/Setup.dist rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/Modules/_bsddb.c => SDKs/XPlatform/Cypython-2.3.3/Modules/_bsddb.c rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/Modules/_codecsmodule.c => SDKs/XPlatform/Cypython-2.3.3/Modules/_codecsmodule.c rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/Modules/_csv.c => SDKs/XPlatform/Cypython-2.3.3/Modules/_csv.c rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/Modules/_curses_panel.c => SDKs/XPlatform/Cypython-2.3.3/Modules/_curses_panel.c rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/Modules/_cursesmodule.c => SDKs/XPlatform/Cypython-2.3.3/Modules/_cursesmodule.c rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/Modules/_hotshot.c => SDKs/XPlatform/Cypython-2.3.3/Modules/_hotshot.c rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/Modules/_localemodule.c => SDKs/XPlatform/Cypython-2.3.3/Modules/_localemodule.c rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/Modules/_randommodule.c => SDKs/XPlatform/Cypython-2.3.3/Modules/_randommodule.c rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/Modules/_sre.c => SDKs/XPlatform/Cypython-2.3.3/Modules/_sre.c rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/Modules/_ssl.c => SDKs/XPlatform/Cypython-2.3.3/Modules/_ssl.c rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/Modules/_testcapimodule.c => SDKs/XPlatform/Cypython-2.3.3/Modules/_testcapimodule.c rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/Modules/_tkinter.c => SDKs/XPlatform/Cypython-2.3.3/Modules/_tkinter.c rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/Modules/_weakref.c => SDKs/XPlatform/Cypython-2.3.3/Modules/_weakref.c rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/Modules/addrinfo.h => SDKs/XPlatform/Cypython-2.3.3/Modules/addrinfo.h rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/Modules/almodule.c => SDKs/XPlatform/Cypython-2.3.3/Modules/almodule.c rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/Modules/ar_beos => SDKs/XPlatform/Cypython-2.3.3/Modules/ar_beos rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/Modules/arraymodule.c => SDKs/XPlatform/Cypython-2.3.3/Modules/arraymodule.c rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/Modules/audioop.c => SDKs/XPlatform/Cypython-2.3.3/Modules/audioop.c rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/Modules/binascii.c => SDKs/XPlatform/Cypython-2.3.3/Modules/binascii.c rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/Modules/bsddbmodule.c => SDKs/XPlatform/Cypython-2.3.3/Modules/bsddbmodule.c rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/Modules/bz2module.c => SDKs/XPlatform/Cypython-2.3.3/Modules/bz2module.c rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/Modules/cPickle.c => SDKs/XPlatform/Cypython-2.3.3/Modules/cPickle.c rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/Modules/cStringIO.c => SDKs/XPlatform/Cypython-2.3.3/Modules/cStringIO.c rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/Modules/ccpython.cc => SDKs/XPlatform/Cypython-2.3.3/Modules/ccpython.cc rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/Modules/cdmodule.c => SDKs/XPlatform/Cypython-2.3.3/Modules/cdmodule.c rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/Modules/cgen.py => SDKs/XPlatform/Cypython-2.3.3/Modules/cgen.py rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/Modules/cgensupport.c => SDKs/XPlatform/Cypython-2.3.3/Modules/cgensupport.c rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/Modules/cgensupport.h => SDKs/XPlatform/Cypython-2.3.3/Modules/cgensupport.h rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/Modules/clmodule.c => SDKs/XPlatform/Cypython-2.3.3/Modules/clmodule.c rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/Modules/cmathmodule.c => SDKs/XPlatform/Cypython-2.3.3/Modules/cmathmodule.c rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/Modules/config.c.in => SDKs/XPlatform/Cypython-2.3.3/Modules/config.c.in rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/Modules/cryptmodule.c => SDKs/XPlatform/Cypython-2.3.3/Modules/cryptmodule.c rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/Modules/cstubs => SDKs/XPlatform/Cypython-2.3.3/Modules/cstubs rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/Modules/datetimemodule.c => SDKs/XPlatform/Cypython-2.3.3/Modules/datetimemodule.c rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/Modules/dbmmodule.c => SDKs/XPlatform/Cypython-2.3.3/Modules/dbmmodule.c rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/Modules/dlmodule.c => SDKs/XPlatform/Cypython-2.3.3/Modules/dlmodule.c rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/Modules/errnomodule.c => SDKs/XPlatform/Cypython-2.3.3/Modules/errnomodule.c rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/Modules/expat/Makefile.in => SDKs/XPlatform/Cypython-2.3.3/Modules/expat/Makefile.in rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/Modules/expat/ascii.h => SDKs/XPlatform/Cypython-2.3.3/Modules/expat/ascii.h rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/Modules/expat/asciitab.h => SDKs/XPlatform/Cypython-2.3.3/Modules/expat/asciitab.h rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/Modules/expat/expat.h => SDKs/XPlatform/Cypython-2.3.3/Modules/expat/expat.h rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/Modules/expat/iasciitab.h => SDKs/XPlatform/Cypython-2.3.3/Modules/expat/iasciitab.h rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/Modules/expat/internal.h => SDKs/XPlatform/Cypython-2.3.3/Modules/expat/internal.h rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/Modules/expat/latin1tab.h => SDKs/XPlatform/Cypython-2.3.3/Modules/expat/latin1tab.h rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/Modules/expat/macconfig.h => SDKs/XPlatform/Cypython-2.3.3/Modules/expat/macconfig.h rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/Modules/expat/nametab.h => SDKs/XPlatform/Cypython-2.3.3/Modules/expat/nametab.h rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/Modules/expat/utf8tab.h => SDKs/XPlatform/Cypython-2.3.3/Modules/expat/utf8tab.h rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/Modules/expat/winconfig.h => SDKs/XPlatform/Cypython-2.3.3/Modules/expat/winconfig.h rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/Modules/expat/xmlparse.c => SDKs/XPlatform/Cypython-2.3.3/Modules/expat/xmlparse.c rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/Modules/expat/xmlrole.c => SDKs/XPlatform/Cypython-2.3.3/Modules/expat/xmlrole.c rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/Modules/expat/xmlrole.h => SDKs/XPlatform/Cypython-2.3.3/Modules/expat/xmlrole.h rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/Modules/expat/xmltok.c => SDKs/XPlatform/Cypython-2.3.3/Modules/expat/xmltok.c rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/Modules/expat/xmltok.h => SDKs/XPlatform/Cypython-2.3.3/Modules/expat/xmltok.h rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/Modules/expat/xmltok_impl.c => SDKs/XPlatform/Cypython-2.3.3/Modules/expat/xmltok_impl.c rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/Modules/expat/xmltok_impl.h => SDKs/XPlatform/Cypython-2.3.3/Modules/expat/xmltok_impl.h rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/Modules/expat/xmltok_ns.c => SDKs/XPlatform/Cypython-2.3.3/Modules/expat/xmltok_ns.c rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/Modules/fcntlmodule.c => SDKs/XPlatform/Cypython-2.3.3/Modules/fcntlmodule.c rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/Modules/flmodule.c => SDKs/XPlatform/Cypython-2.3.3/Modules/flmodule.c rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/Modules/fmmodule.c => SDKs/XPlatform/Cypython-2.3.3/Modules/fmmodule.c rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/Modules/fpectlmodule.c => SDKs/XPlatform/Cypython-2.3.3/Modules/fpectlmodule.c rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/Modules/fpetestmodule.c => SDKs/XPlatform/Cypython-2.3.3/Modules/fpetestmodule.c rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/Modules/gc_weakref.txt => SDKs/XPlatform/Cypython-2.3.3/Modules/gc_weakref.txt rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/Modules/gcmodule.c => SDKs/XPlatform/Cypython-2.3.3/Modules/gcmodule.c rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/Modules/gdbmmodule.c => SDKs/XPlatform/Cypython-2.3.3/Modules/gdbmmodule.c rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/Modules/getaddrinfo.c => SDKs/XPlatform/Cypython-2.3.3/Modules/getaddrinfo.c rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/Modules/getbuildinfo.c => SDKs/XPlatform/Cypython-2.3.3/Modules/getbuildinfo.c rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/Modules/getnameinfo.c => SDKs/XPlatform/Cypython-2.3.3/Modules/getnameinfo.c rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/Modules/getpath.c => SDKs/XPlatform/Cypython-2.3.3/Modules/getpath.c rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/Modules/glmodule.c => SDKs/XPlatform/Cypython-2.3.3/Modules/glmodule.c rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/Modules/grpmodule.c => SDKs/XPlatform/Cypython-2.3.3/Modules/grpmodule.c rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/Modules/imageop.c => SDKs/XPlatform/Cypython-2.3.3/Modules/imageop.c rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/Modules/imgfile.c => SDKs/XPlatform/Cypython-2.3.3/Modules/imgfile.c rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/Modules/itertoolsmodule.c => SDKs/XPlatform/Cypython-2.3.3/Modules/itertoolsmodule.c rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/Modules/ld_so_aix => SDKs/XPlatform/Cypython-2.3.3/Modules/ld_so_aix rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/Modules/ld_so_beos => SDKs/XPlatform/Cypython-2.3.3/Modules/ld_so_beos rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/Modules/linuxaudiodev.c => SDKs/XPlatform/Cypython-2.3.3/Modules/linuxaudiodev.c rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/Modules/main.c => SDKs/XPlatform/Cypython-2.3.3/Modules/main.c rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/Modules/makesetup => SDKs/XPlatform/Cypython-2.3.3/Modules/makesetup rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/Modules/makexp_aix => SDKs/XPlatform/Cypython-2.3.3/Modules/makexp_aix rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/Modules/mathmodule.c => SDKs/XPlatform/Cypython-2.3.3/Modules/mathmodule.c rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/Modules/md5.h => SDKs/XPlatform/Cypython-2.3.3/Modules/md5.h rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/Modules/md5c.c => SDKs/XPlatform/Cypython-2.3.3/Modules/md5c.c rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/Modules/md5module.c => SDKs/XPlatform/Cypython-2.3.3/Modules/md5module.c rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/Modules/mmapmodule.c => SDKs/XPlatform/Cypython-2.3.3/Modules/mmapmodule.c rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/Modules/mpzmodule.c => SDKs/XPlatform/Cypython-2.3.3/Modules/mpzmodule.c rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/Modules/nismodule.c => SDKs/XPlatform/Cypython-2.3.3/Modules/nismodule.c rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/Modules/operator.c => SDKs/XPlatform/Cypython-2.3.3/Modules/operator.c rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/Modules/ossaudiodev.c => SDKs/XPlatform/Cypython-2.3.3/Modules/ossaudiodev.c rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/Modules/parsermodule.c => SDKs/XPlatform/Cypython-2.3.3/Modules/parsermodule.c rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/Modules/pcre-int.h => SDKs/XPlatform/Cypython-2.3.3/Modules/pcre-int.h rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/Modules/pcre.h => SDKs/XPlatform/Cypython-2.3.3/Modules/pcre.h rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/Modules/pcremodule.c => SDKs/XPlatform/Cypython-2.3.3/Modules/pcremodule.c rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/Modules/posixmodule.c => SDKs/XPlatform/Cypython-2.3.3/Modules/posixmodule.c rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/Modules/puremodule.c => SDKs/XPlatform/Cypython-2.3.3/Modules/puremodule.c rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/Modules/pwdmodule.c => SDKs/XPlatform/Cypython-2.3.3/Modules/pwdmodule.c rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/Modules/pyexpat.c => SDKs/XPlatform/Cypython-2.3.3/Modules/pyexpat.c rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/Modules/pypcre.c => SDKs/XPlatform/Cypython-2.3.3/Modules/pypcre.c rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/Modules/python.c => SDKs/XPlatform/Cypython-2.3.3/Modules/python.c rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/Modules/readline.c => SDKs/XPlatform/Cypython-2.3.3/Modules/readline.c rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/Modules/regexmodule.c => SDKs/XPlatform/Cypython-2.3.3/Modules/regexmodule.c rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/Modules/regexpr.c => SDKs/XPlatform/Cypython-2.3.3/Modules/regexpr.c rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/Modules/regexpr.h => SDKs/XPlatform/Cypython-2.3.3/Modules/regexpr.h rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/Modules/resource.c => SDKs/XPlatform/Cypython-2.3.3/Modules/resource.c rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/Modules/rgbimgmodule.c => SDKs/XPlatform/Cypython-2.3.3/Modules/rgbimgmodule.c rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/Modules/rotormodule.c => SDKs/XPlatform/Cypython-2.3.3/Modules/rotormodule.c rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/Modules/selectmodule.c => SDKs/XPlatform/Cypython-2.3.3/Modules/selectmodule.c rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/Modules/sgimodule.c => SDKs/XPlatform/Cypython-2.3.3/Modules/sgimodule.c rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/Modules/shamodule.c => SDKs/XPlatform/Cypython-2.3.3/Modules/shamodule.c rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/Modules/signalmodule.c => SDKs/XPlatform/Cypython-2.3.3/Modules/signalmodule.c rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/Modules/socketmodule.c => SDKs/XPlatform/Cypython-2.3.3/Modules/socketmodule.c rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/Modules/socketmodule.h => SDKs/XPlatform/Cypython-2.3.3/Modules/socketmodule.h rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/Modules/sre.h => SDKs/XPlatform/Cypython-2.3.3/Modules/sre.h rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/Modules/sre_constants.h => SDKs/XPlatform/Cypython-2.3.3/Modules/sre_constants.h rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/Modules/stropmodule.c => SDKs/XPlatform/Cypython-2.3.3/Modules/stropmodule.c rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/Modules/structmodule.c => SDKs/XPlatform/Cypython-2.3.3/Modules/structmodule.c rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/Modules/sunaudiodev.c => SDKs/XPlatform/Cypython-2.3.3/Modules/sunaudiodev.c rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/Modules/svmodule.c => SDKs/XPlatform/Cypython-2.3.3/Modules/svmodule.c rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/Modules/symtablemodule.c => SDKs/XPlatform/Cypython-2.3.3/Modules/symtablemodule.c rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/Modules/syslogmodule.c => SDKs/XPlatform/Cypython-2.3.3/Modules/syslogmodule.c rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/Modules/termios.c => SDKs/XPlatform/Cypython-2.3.3/Modules/termios.c rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/Modules/testcapi_long.h => SDKs/XPlatform/Cypython-2.3.3/Modules/testcapi_long.h rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/Modules/threadmodule.c => SDKs/XPlatform/Cypython-2.3.3/Modules/threadmodule.c rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/Modules/timemodule.c => SDKs/XPlatform/Cypython-2.3.3/Modules/timemodule.c rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/Modules/timing.h => SDKs/XPlatform/Cypython-2.3.3/Modules/timing.h rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/Modules/timingmodule.c => SDKs/XPlatform/Cypython-2.3.3/Modules/timingmodule.c rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/Modules/tkappinit.c => SDKs/XPlatform/Cypython-2.3.3/Modules/tkappinit.c rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/Modules/unicodedata.c => SDKs/XPlatform/Cypython-2.3.3/Modules/unicodedata.c rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/Modules/unicodedata_db.h => SDKs/XPlatform/Cypython-2.3.3/Modules/unicodedata_db.h rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/Modules/unicodename_db.h => SDKs/XPlatform/Cypython-2.3.3/Modules/unicodename_db.h rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/Modules/xreadlinesmodule.c => SDKs/XPlatform/Cypython-2.3.3/Modules/xreadlinesmodule.c rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/Modules/xxmodule.c => SDKs/XPlatform/Cypython-2.3.3/Modules/xxmodule.c rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/Modules/xxsubtype.c => SDKs/XPlatform/Cypython-2.3.3/Modules/xxsubtype.c rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/Modules/yuv.h => SDKs/XPlatform/Cypython-2.3.3/Modules/yuv.h rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/Modules/yuvconvert.c => SDKs/XPlatform/Cypython-2.3.3/Modules/yuvconvert.c rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/Modules/zipimport.c => SDKs/XPlatform/Cypython-2.3.3/Modules/zipimport.c rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/Modules/zlibmodule.c => SDKs/XPlatform/Cypython-2.3.3/Modules/zlibmodule.c rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/Objects/.cvsignore => SDKs/XPlatform/Cypython-2.3.3/Objects/.cvsignore rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/Objects/abstract.c => SDKs/XPlatform/Cypython-2.3.3/Objects/abstract.c rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/Objects/boolobject.c => SDKs/XPlatform/Cypython-2.3.3/Objects/boolobject.c rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/Objects/bufferobject.c => SDKs/XPlatform/Cypython-2.3.3/Objects/bufferobject.c rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/Objects/cellobject.c => SDKs/XPlatform/Cypython-2.3.3/Objects/cellobject.c rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/Objects/classobject.c => SDKs/XPlatform/Cypython-2.3.3/Objects/classobject.c rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/Objects/cobject.c => SDKs/XPlatform/Cypython-2.3.3/Objects/cobject.c rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/Objects/complexobject.c => SDKs/XPlatform/Cypython-2.3.3/Objects/complexobject.c rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/Objects/descrobject.c => SDKs/XPlatform/Cypython-2.3.3/Objects/descrobject.c rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/Objects/dictnotes.txt => SDKs/XPlatform/Cypython-2.3.3/Objects/dictnotes.txt rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/Objects/dictobject.c => SDKs/XPlatform/Cypython-2.3.3/Objects/dictobject.c rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/Objects/enumobject.c => SDKs/XPlatform/Cypython-2.3.3/Objects/enumobject.c rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/Objects/fileobject.c => SDKs/XPlatform/Cypython-2.3.3/Objects/fileobject.c rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/Objects/floatobject.c => SDKs/XPlatform/Cypython-2.3.3/Objects/floatobject.c rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/Objects/frameobject.c => SDKs/XPlatform/Cypython-2.3.3/Objects/frameobject.c rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/Objects/funcobject.c => SDKs/XPlatform/Cypython-2.3.3/Objects/funcobject.c rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/Objects/intobject.c => SDKs/XPlatform/Cypython-2.3.3/Objects/intobject.c rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/Objects/iterobject.c => SDKs/XPlatform/Cypython-2.3.3/Objects/iterobject.c rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/Objects/listobject.c => SDKs/XPlatform/Cypython-2.3.3/Objects/listobject.c rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/Objects/listsort.txt => SDKs/XPlatform/Cypython-2.3.3/Objects/listsort.txt rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/Objects/longobject.c => SDKs/XPlatform/Cypython-2.3.3/Objects/longobject.c rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/Objects/methodobject.c => SDKs/XPlatform/Cypython-2.3.3/Objects/methodobject.c rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/Objects/moduleobject.c => SDKs/XPlatform/Cypython-2.3.3/Objects/moduleobject.c rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/Objects/object.c => SDKs/XPlatform/Cypython-2.3.3/Objects/object.c rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/Objects/obmalloc.c => SDKs/XPlatform/Cypython-2.3.3/Objects/obmalloc.c rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/Objects/rangeobject.c => SDKs/XPlatform/Cypython-2.3.3/Objects/rangeobject.c rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/Objects/sliceobject.c => SDKs/XPlatform/Cypython-2.3.3/Objects/sliceobject.c rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/Objects/stringobject.c => SDKs/XPlatform/Cypython-2.3.3/Objects/stringobject.c rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/Objects/structseq.c => SDKs/XPlatform/Cypython-2.3.3/Objects/structseq.c rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/Objects/tupleobject.c => SDKs/XPlatform/Cypython-2.3.3/Objects/tupleobject.c rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/Objects/typeobject.c => SDKs/XPlatform/Cypython-2.3.3/Objects/typeobject.c rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/Objects/unicodectype.c => SDKs/XPlatform/Cypython-2.3.3/Objects/unicodectype.c rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/Objects/unicodeobject.c => SDKs/XPlatform/Cypython-2.3.3/Objects/unicodeobject.c rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/Objects/unicodetype_db.h => SDKs/XPlatform/Cypython-2.3.3/Objects/unicodetype_db.h rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/Objects/weakrefobject.c => SDKs/XPlatform/Cypython-2.3.3/Objects/weakrefobject.c rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/PC/.cvsignore => SDKs/XPlatform/Cypython-2.3.3/PC/.cvsignore rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/PC/PlasmaPack.cpp => SDKs/XPlatform/Cypython-2.3.3/PC/PlasmaPack.cpp rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/PC/PlasmaPack.h => SDKs/XPlatform/Cypython-2.3.3/PC/PlasmaPack.h rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/PC/WinMain.c => SDKs/XPlatform/Cypython-2.3.3/PC/WinMain.c rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/PC/_winreg.c => SDKs/XPlatform/Cypython-2.3.3/PC/_winreg.c rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/PC/bdist_wininst/.cvsignore => SDKs/XPlatform/Cypython-2.3.3/PC/bdist_wininst/.cvsignore rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/PC/bdist_wininst/PythonPowered.bmp => SDKs/XPlatform/Cypython-2.3.3/PC/bdist_wininst/PythonPowered.bmp rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/PC/bdist_wininst/README.txt => SDKs/XPlatform/Cypython-2.3.3/PC/bdist_wininst/README.txt rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/PC/bdist_wininst/archive.h => SDKs/XPlatform/Cypython-2.3.3/PC/bdist_wininst/archive.h rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/PC/bdist_wininst/extract.c => SDKs/XPlatform/Cypython-2.3.3/PC/bdist_wininst/extract.c rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/PC/bdist_wininst/install.c => SDKs/XPlatform/Cypython-2.3.3/PC/bdist_wininst/install.c rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/PC/bdist_wininst/install.rc => SDKs/XPlatform/Cypython-2.3.3/PC/bdist_wininst/install.rc rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/PC/bdist_wininst/resource.h => SDKs/XPlatform/Cypython-2.3.3/PC/bdist_wininst/resource.h rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/PC/bdist_wininst/wininst.dsp => SDKs/XPlatform/Cypython-2.3.3/PC/bdist_wininst/wininst.dsp rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/PC/bdist_wininst/wininst.dsw => SDKs/XPlatform/Cypython-2.3.3/PC/bdist_wininst/wininst.dsw rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/PC/config.c => SDKs/XPlatform/Cypython-2.3.3/PC/config.c rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/PC/dl_nt.c => SDKs/XPlatform/Cypython-2.3.3/PC/dl_nt.c rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/PC/dllbase_nt.txt => SDKs/XPlatform/Cypython-2.3.3/PC/dllbase_nt.txt rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/PC/example_nt/.cvsignore => SDKs/XPlatform/Cypython-2.3.3/PC/example_nt/.cvsignore rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/PC/example_nt/example.c => SDKs/XPlatform/Cypython-2.3.3/PC/example_nt/example.c rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/PC/example_nt/example.def => SDKs/XPlatform/Cypython-2.3.3/PC/example_nt/example.def rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/PC/example_nt/example.dsp => SDKs/XPlatform/Cypython-2.3.3/PC/example_nt/example.dsp rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/PC/example_nt/example.dsw => SDKs/XPlatform/Cypython-2.3.3/PC/example_nt/example.dsw rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/PC/example_nt/readme.txt => SDKs/XPlatform/Cypython-2.3.3/PC/example_nt/readme.txt rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/PC/frozen_dllmain.c => SDKs/XPlatform/Cypython-2.3.3/PC/frozen_dllmain.c rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/PC/getpathp.c => SDKs/XPlatform/Cypython-2.3.3/PC/getpathp.c rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/PC/import_nt.c => SDKs/XPlatform/Cypython-2.3.3/PC/import_nt.c rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/PC/make_versioninfo.c => SDKs/XPlatform/Cypython-2.3.3/PC/make_versioninfo.c rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/PC/msvcrtmodule.c => SDKs/XPlatform/Cypython-2.3.3/PC/msvcrtmodule.c rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/PC/os2emx/Makefile => SDKs/XPlatform/Cypython-2.3.3/PC/os2emx/Makefile rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/PC/os2emx/README.os2emx => SDKs/XPlatform/Cypython-2.3.3/PC/os2emx/README.os2emx rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/PC/os2emx/config.c => SDKs/XPlatform/Cypython-2.3.3/PC/os2emx/config.c rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/PC/os2emx/dlfcn.c => SDKs/XPlatform/Cypython-2.3.3/PC/os2emx/dlfcn.c rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/PC/os2emx/dlfcn.h => SDKs/XPlatform/Cypython-2.3.3/PC/os2emx/dlfcn.h rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/PC/os2emx/dllentry.c => SDKs/XPlatform/Cypython-2.3.3/PC/os2emx/dllentry.c rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/PC/os2emx/getpathp.c => SDKs/XPlatform/Cypython-2.3.3/PC/os2emx/getpathp.c rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/PC/os2emx/pyconfig.h => SDKs/XPlatform/Cypython-2.3.3/PC/os2emx/pyconfig.h rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/PC/os2emx/python23.def => SDKs/XPlatform/Cypython-2.3.3/PC/os2emx/python23.def rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/PC/os2emx/pythonpm.c => SDKs/XPlatform/Cypython-2.3.3/PC/os2emx/pythonpm.c rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/PC/os2vacpp/_tkinter.def => SDKs/XPlatform/Cypython-2.3.3/PC/os2vacpp/_tkinter.def rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/PC/os2vacpp/config.c => SDKs/XPlatform/Cypython-2.3.3/PC/os2vacpp/config.c rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/PC/os2vacpp/getpathp.c => SDKs/XPlatform/Cypython-2.3.3/PC/os2vacpp/getpathp.c rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/PC/os2vacpp/makefile => SDKs/XPlatform/Cypython-2.3.3/PC/os2vacpp/makefile rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/PC/os2vacpp/makefile.omk => SDKs/XPlatform/Cypython-2.3.3/PC/os2vacpp/makefile.omk rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/PC/os2vacpp/pyconfig.h => SDKs/XPlatform/Cypython-2.3.3/PC/os2vacpp/pyconfig.h rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/PC/os2vacpp/python.def => SDKs/XPlatform/Cypython-2.3.3/PC/os2vacpp/python.def rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/PC/os2vacpp/readme.txt => SDKs/XPlatform/Cypython-2.3.3/PC/os2vacpp/readme.txt rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/PC/py.ico => SDKs/XPlatform/Cypython-2.3.3/PC/py.ico rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/PC/pyc.ico => SDKs/XPlatform/Cypython-2.3.3/PC/pyc.ico rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/PC/pycon.ico => SDKs/XPlatform/Cypython-2.3.3/PC/pycon.ico rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/PC/python.mk => SDKs/XPlatform/Cypython-2.3.3/PC/python.mk rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/PC/python_exe.rc => SDKs/XPlatform/Cypython-2.3.3/PC/python_exe.rc rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/PC/python_nt.rc => SDKs/XPlatform/Cypython-2.3.3/PC/python_nt.rc rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/PC/pythonnt_rc.h => SDKs/XPlatform/Cypython-2.3.3/PC/pythonnt_rc.h rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/PC/pythonnt_rc_d.h => SDKs/XPlatform/Cypython-2.3.3/PC/pythonnt_rc_d.h rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/PC/readme.txt => SDKs/XPlatform/Cypython-2.3.3/PC/readme.txt rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/PC/testpy.py => SDKs/XPlatform/Cypython-2.3.3/PC/testpy.py rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/PC/w9xpopen.c => SDKs/XPlatform/Cypython-2.3.3/PC/w9xpopen.c rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/PC/winsound.c => SDKs/XPlatform/Cypython-2.3.3/PC/winsound.c rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/PCbuild/.cvsignore => SDKs/XPlatform/Cypython-2.3.3/PCbuild/.cvsignore rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/PCbuild/BUILDno.txt => SDKs/XPlatform/Cypython-2.3.3/PCbuild/BUILDno.txt rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/PCbuild/Uninstal.wse => SDKs/XPlatform/Cypython-2.3.3/PCbuild/Uninstal.wse rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/PCbuild/_bsddb.dsp => SDKs/XPlatform/Cypython-2.3.3/PCbuild/_bsddb.dsp rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/PCbuild/_csv.dsp => SDKs/XPlatform/Cypython-2.3.3/PCbuild/_csv.dsp rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/PCbuild/_socket.dsp => SDKs/XPlatform/Cypython-2.3.3/PCbuild/_socket.dsp rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/PCbuild/_sre.dsp => SDKs/XPlatform/Cypython-2.3.3/PCbuild/_sre.dsp rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/PCbuild/_sre_static.vcproj => SDKs/XPlatform/Cypython-2.3.3/PCbuild/_sre_static.vcproj rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/PCbuild/_ssl.dsp => SDKs/XPlatform/Cypython-2.3.3/PCbuild/_ssl.dsp rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/PCbuild/_ssl.mak => SDKs/XPlatform/Cypython-2.3.3/PCbuild/_ssl.mak rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/PCbuild/_symtable.dsp => SDKs/XPlatform/Cypython-2.3.3/PCbuild/_symtable.dsp rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/PCbuild/_testcapi.dsp => SDKs/XPlatform/Cypython-2.3.3/PCbuild/_testcapi.dsp rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/PCbuild/_tkinter.dsp => SDKs/XPlatform/Cypython-2.3.3/PCbuild/_tkinter.dsp rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/PCbuild/build_ssl.py => SDKs/XPlatform/Cypython-2.3.3/PCbuild/build_ssl.py rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/PCbuild/bz2.dsp => SDKs/XPlatform/Cypython-2.3.3/PCbuild/bz2.dsp rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/PCbuild/datetime.dsp => SDKs/XPlatform/Cypython-2.3.3/PCbuild/datetime.dsp rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/PCbuild/field3.py => SDKs/XPlatform/Cypython-2.3.3/PCbuild/field3.py rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/PCbuild/installer.bmp => SDKs/XPlatform/Cypython-2.3.3/PCbuild/installer.bmp rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/PCbuild/mmap.dsp => SDKs/XPlatform/Cypython-2.3.3/PCbuild/mmap.dsp rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/PCbuild/parser.dsp => SDKs/XPlatform/Cypython-2.3.3/PCbuild/parser.dsp rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/PCbuild/pcbuild.dsw => SDKs/XPlatform/Cypython-2.3.3/PCbuild/pcbuild.dsw rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/PCbuild/pyexpat.dsp => SDKs/XPlatform/Cypython-2.3.3/PCbuild/pyexpat.dsp rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/PCbuild/python.dsp => SDKs/XPlatform/Cypython-2.3.3/PCbuild/python.dsp rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/PCbuild/python.iss => SDKs/XPlatform/Cypython-2.3.3/PCbuild/python.iss rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/PCbuild/python20.wse => SDKs/XPlatform/Cypython-2.3.3/PCbuild/python20.wse rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/PCbuild/pythoncore.dsp => SDKs/XPlatform/Cypython-2.3.3/PCbuild/pythoncore.dsp rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/PCbuild/pythoncore.vcproj => SDKs/XPlatform/Cypython-2.3.3/PCbuild/pythoncore.vcproj rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/PCbuild/pythoncore_dyn_server.vcproj => SDKs/XPlatform/Cypython-2.3.3/PCbuild/pythoncore_dyn_server.vcproj rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/PCbuild/pythoncore_static.vcproj => SDKs/XPlatform/Cypython-2.3.3/PCbuild/pythoncore_static.vcproj rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/PCbuild/pythonw.dsp => SDKs/XPlatform/Cypython-2.3.3/PCbuild/pythonw.dsp rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/PCbuild/readme.txt => SDKs/XPlatform/Cypython-2.3.3/PCbuild/readme.txt rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/PCbuild/rmpyc.py => SDKs/XPlatform/Cypython-2.3.3/PCbuild/rmpyc.py rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/PCbuild/rt.bat => SDKs/XPlatform/Cypython-2.3.3/PCbuild/rt.bat rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/PCbuild/select.dsp => SDKs/XPlatform/Cypython-2.3.3/PCbuild/select.dsp rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/PCbuild/unicodedata.dsp => SDKs/XPlatform/Cypython-2.3.3/PCbuild/unicodedata.dsp rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/PCbuild/w9xpopen.dsp => SDKs/XPlatform/Cypython-2.3.3/PCbuild/w9xpopen.dsp rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/PCbuild/winreg.dsp => SDKs/XPlatform/Cypython-2.3.3/PCbuild/winreg.dsp rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/PCbuild/winsound.dsp => SDKs/XPlatform/Cypython-2.3.3/PCbuild/winsound.dsp rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/PCbuild/zlib.dsp => SDKs/XPlatform/Cypython-2.3.3/PCbuild/zlib.dsp rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/Parser/.cvsignore => SDKs/XPlatform/Cypython-2.3.3/Parser/.cvsignore rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/Parser/acceler.c => SDKs/XPlatform/Cypython-2.3.3/Parser/acceler.c rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/Parser/bitset.c => SDKs/XPlatform/Cypython-2.3.3/Parser/bitset.c rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/Parser/firstsets.c => SDKs/XPlatform/Cypython-2.3.3/Parser/firstsets.c rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/Parser/grammar.c => SDKs/XPlatform/Cypython-2.3.3/Parser/grammar.c rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/Parser/grammar.mak => SDKs/XPlatform/Cypython-2.3.3/Parser/grammar.mak rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/Parser/grammar1.c => SDKs/XPlatform/Cypython-2.3.3/Parser/grammar1.c rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/Parser/intrcheck.c => SDKs/XPlatform/Cypython-2.3.3/Parser/intrcheck.c rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/Parser/listnode.c => SDKs/XPlatform/Cypython-2.3.3/Parser/listnode.c rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/Parser/metagrammar.c => SDKs/XPlatform/Cypython-2.3.3/Parser/metagrammar.c rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/Parser/myreadline.c => SDKs/XPlatform/Cypython-2.3.3/Parser/myreadline.c rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/Parser/node.c => SDKs/XPlatform/Cypython-2.3.3/Parser/node.c rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/Parser/parser.c => SDKs/XPlatform/Cypython-2.3.3/Parser/parser.c rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/Parser/parser.h => SDKs/XPlatform/Cypython-2.3.3/Parser/parser.h rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/Parser/parsetok.c => SDKs/XPlatform/Cypython-2.3.3/Parser/parsetok.c rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/Parser/pgen.c => SDKs/XPlatform/Cypython-2.3.3/Parser/pgen.c rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/Parser/pgenmain.c => SDKs/XPlatform/Cypython-2.3.3/Parser/pgenmain.c rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/Parser/printgrammar.c => SDKs/XPlatform/Cypython-2.3.3/Parser/printgrammar.c rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/Parser/tokenizer.c => SDKs/XPlatform/Cypython-2.3.3/Parser/tokenizer.c rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/Parser/tokenizer.h => SDKs/XPlatform/Cypython-2.3.3/Parser/tokenizer.h rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/Parser/tokenizer_pgen.c => SDKs/XPlatform/Cypython-2.3.3/Parser/tokenizer_pgen.c rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/Python/.cvsignore => SDKs/XPlatform/Cypython-2.3.3/Python/.cvsignore rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/Python/atof.c => SDKs/XPlatform/Cypython-2.3.3/Python/atof.c rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/Python/bltinmodule.c => SDKs/XPlatform/Cypython-2.3.3/Python/bltinmodule.c rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/Python/ceval.c => SDKs/XPlatform/Cypython-2.3.3/Python/ceval.c rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/Python/codecs.c => SDKs/XPlatform/Cypython-2.3.3/Python/codecs.c rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/Python/compile.c => SDKs/XPlatform/Cypython-2.3.3/Python/compile.c rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/Python/dup2.c => SDKs/XPlatform/Cypython-2.3.3/Python/dup2.c rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/Python/dynload_aix.c => SDKs/XPlatform/Cypython-2.3.3/Python/dynload_aix.c rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/Python/dynload_atheos.c => SDKs/XPlatform/Cypython-2.3.3/Python/dynload_atheos.c rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/Python/dynload_beos.c => SDKs/XPlatform/Cypython-2.3.3/Python/dynload_beos.c rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/Python/dynload_dl.c => SDKs/XPlatform/Cypython-2.3.3/Python/dynload_dl.c rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/Python/dynload_hpux.c => SDKs/XPlatform/Cypython-2.3.3/Python/dynload_hpux.c rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/Python/dynload_mac.c => SDKs/XPlatform/Cypython-2.3.3/Python/dynload_mac.c rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/Python/dynload_next.c => SDKs/XPlatform/Cypython-2.3.3/Python/dynload_next.c rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/Python/dynload_os2.c => SDKs/XPlatform/Cypython-2.3.3/Python/dynload_os2.c rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/Python/dynload_shlib.c => SDKs/XPlatform/Cypython-2.3.3/Python/dynload_shlib.c rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/Python/dynload_stub.c => SDKs/XPlatform/Cypython-2.3.3/Python/dynload_stub.c rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/Python/dynload_win.c => SDKs/XPlatform/Cypython-2.3.3/Python/dynload_win.c rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/Python/errors.c => SDKs/XPlatform/Cypython-2.3.3/Python/errors.c rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/Python/exceptions.c => SDKs/XPlatform/Cypython-2.3.3/Python/exceptions.c rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/Python/fmod.c => SDKs/XPlatform/Cypython-2.3.3/Python/fmod.c rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/Python/frozen.c => SDKs/XPlatform/Cypython-2.3.3/Python/frozen.c rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/Python/frozenmain.c => SDKs/XPlatform/Cypython-2.3.3/Python/frozenmain.c rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/Python/future.c => SDKs/XPlatform/Cypython-2.3.3/Python/future.c rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/Python/getargs.c => SDKs/XPlatform/Cypython-2.3.3/Python/getargs.c rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/Python/getcompiler.c => SDKs/XPlatform/Cypython-2.3.3/Python/getcompiler.c rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/Python/getcopyright.c => SDKs/XPlatform/Cypython-2.3.3/Python/getcopyright.c rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/Python/getcwd.c => SDKs/XPlatform/Cypython-2.3.3/Python/getcwd.c rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/Python/getmtime.c => SDKs/XPlatform/Cypython-2.3.3/Python/getmtime.c rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/Python/getopt.c => SDKs/XPlatform/Cypython-2.3.3/Python/getopt.c rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/Python/getplatform.c => SDKs/XPlatform/Cypython-2.3.3/Python/getplatform.c rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/Python/getversion.c => SDKs/XPlatform/Cypython-2.3.3/Python/getversion.c rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/Python/graminit.c => SDKs/XPlatform/Cypython-2.3.3/Python/graminit.c rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/Python/hypot.c => SDKs/XPlatform/Cypython-2.3.3/Python/hypot.c rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/Python/import.c => SDKs/XPlatform/Cypython-2.3.3/Python/import.c rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/Python/import_pack.c => SDKs/XPlatform/Cypython-2.3.3/Python/import_pack.c rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/Python/importdl.c => SDKs/XPlatform/Cypython-2.3.3/Python/importdl.c rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/Python/importdl.h => SDKs/XPlatform/Cypython-2.3.3/Python/importdl.h rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/Python/mactoolboxglue.c => SDKs/XPlatform/Cypython-2.3.3/Python/mactoolboxglue.c rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/Python/marshal.c => SDKs/XPlatform/Cypython-2.3.3/Python/marshal.c rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/Python/memmove.c => SDKs/XPlatform/Cypython-2.3.3/Python/memmove.c rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/Python/modsupport.c => SDKs/XPlatform/Cypython-2.3.3/Python/modsupport.c rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/Python/mysnprintf.c => SDKs/XPlatform/Cypython-2.3.3/Python/mysnprintf.c rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/Python/mystrtoul.c => SDKs/XPlatform/Cypython-2.3.3/Python/mystrtoul.c rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/Python/pyfpe.c => SDKs/XPlatform/Cypython-2.3.3/Python/pyfpe.c rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/Python/pystate.c => SDKs/XPlatform/Cypython-2.3.3/Python/pystate.c rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/Python/pythonrun.c => SDKs/XPlatform/Cypython-2.3.3/Python/pythonrun.c rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/Python/sigcheck.c => SDKs/XPlatform/Cypython-2.3.3/Python/sigcheck.c rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/Python/strdup.c => SDKs/XPlatform/Cypython-2.3.3/Python/strdup.c rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/Python/strerror.c => SDKs/XPlatform/Cypython-2.3.3/Python/strerror.c rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/Python/strtod.c => SDKs/XPlatform/Cypython-2.3.3/Python/strtod.c rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/Python/structmember.c => SDKs/XPlatform/Cypython-2.3.3/Python/structmember.c rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/Python/symtable.c => SDKs/XPlatform/Cypython-2.3.3/Python/symtable.c rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/Python/sysmodule.c => SDKs/XPlatform/Cypython-2.3.3/Python/sysmodule.c rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/Python/thread.c => SDKs/XPlatform/Cypython-2.3.3/Python/thread.c rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/Python/thread_atheos.h => SDKs/XPlatform/Cypython-2.3.3/Python/thread_atheos.h rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/Python/thread_beos.h => SDKs/XPlatform/Cypython-2.3.3/Python/thread_beos.h rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/Python/thread_cthread.h => SDKs/XPlatform/Cypython-2.3.3/Python/thread_cthread.h rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/Python/thread_foobar.h => SDKs/XPlatform/Cypython-2.3.3/Python/thread_foobar.h rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/Python/thread_lwp.h => SDKs/XPlatform/Cypython-2.3.3/Python/thread_lwp.h rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/Python/thread_nt.h => SDKs/XPlatform/Cypython-2.3.3/Python/thread_nt.h rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/Python/thread_os2.h => SDKs/XPlatform/Cypython-2.3.3/Python/thread_os2.h rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/Python/thread_pth.h => SDKs/XPlatform/Cypython-2.3.3/Python/thread_pth.h rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/Python/thread_pthread.h => SDKs/XPlatform/Cypython-2.3.3/Python/thread_pthread.h rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/Python/thread_sgi.h => SDKs/XPlatform/Cypython-2.3.3/Python/thread_sgi.h rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/Python/thread_solaris.h => SDKs/XPlatform/Cypython-2.3.3/Python/thread_solaris.h rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/Python/thread_wince.h => SDKs/XPlatform/Cypython-2.3.3/Python/thread_wince.h rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/Python/traceback.c => SDKs/XPlatform/Cypython-2.3.3/Python/traceback.c rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/README => SDKs/XPlatform/Cypython-2.3.3/README rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/XboxBuild/_sre_static.vcproj => SDKs/XPlatform/Cypython-2.3.3/XboxBuild/_sre_static.vcproj rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/XboxBuild/pythoncore_static.vcproj => SDKs/XPlatform/Cypython-2.3.3/XboxBuild/pythoncore_static.vcproj rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/include/Python.h => SDKs/XPlatform/Cypython-2.3.3/include/Python.h rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/include/abstract.h => SDKs/XPlatform/Cypython-2.3.3/include/abstract.h rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/include/bitset.h => SDKs/XPlatform/Cypython-2.3.3/include/bitset.h rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/include/boolobject.h => SDKs/XPlatform/Cypython-2.3.3/include/boolobject.h rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/include/bufferobject.h => SDKs/XPlatform/Cypython-2.3.3/include/bufferobject.h rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/include/cStringIO.h => SDKs/XPlatform/Cypython-2.3.3/include/cStringIO.h rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/include/cellobject.h => SDKs/XPlatform/Cypython-2.3.3/include/cellobject.h rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/include/ceval.h => SDKs/XPlatform/Cypython-2.3.3/include/ceval.h rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/include/classobject.h => SDKs/XPlatform/Cypython-2.3.3/include/classobject.h rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/include/cobject.h => SDKs/XPlatform/Cypython-2.3.3/include/cobject.h rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/include/codecs.h => SDKs/XPlatform/Cypython-2.3.3/include/codecs.h rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/include/compile.h => SDKs/XPlatform/Cypython-2.3.3/include/compile.h rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/include/complexobject.h => SDKs/XPlatform/Cypython-2.3.3/include/complexobject.h rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/include/datetime.h => SDKs/XPlatform/Cypython-2.3.3/include/datetime.h rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/include/descrobject.h => SDKs/XPlatform/Cypython-2.3.3/include/descrobject.h rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/include/dictobject.h => SDKs/XPlatform/Cypython-2.3.3/include/dictobject.h rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/include/enumobject.h => SDKs/XPlatform/Cypython-2.3.3/include/enumobject.h rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/include/errcode.h => SDKs/XPlatform/Cypython-2.3.3/include/errcode.h rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/include/eval.h => SDKs/XPlatform/Cypython-2.3.3/include/eval.h rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/include/fileobject.h => SDKs/XPlatform/Cypython-2.3.3/include/fileobject.h rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/include/floatobject.h => SDKs/XPlatform/Cypython-2.3.3/include/floatobject.h rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/include/frameobject.h => SDKs/XPlatform/Cypython-2.3.3/include/frameobject.h rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/include/funcobject.h => SDKs/XPlatform/Cypython-2.3.3/include/funcobject.h rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/include/graminit.h => SDKs/XPlatform/Cypython-2.3.3/include/graminit.h rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/include/grammar.h => SDKs/XPlatform/Cypython-2.3.3/include/grammar.h rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/include/import.h => SDKs/XPlatform/Cypython-2.3.3/include/import.h rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/include/intobject.h => SDKs/XPlatform/Cypython-2.3.3/include/intobject.h rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/include/intrcheck.h => SDKs/XPlatform/Cypython-2.3.3/include/intrcheck.h rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/include/iterobject.h => SDKs/XPlatform/Cypython-2.3.3/include/iterobject.h rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/include/listobject.h => SDKs/XPlatform/Cypython-2.3.3/include/listobject.h rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/include/longintrepr.h => SDKs/XPlatform/Cypython-2.3.3/include/longintrepr.h rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/include/longobject.h => SDKs/XPlatform/Cypython-2.3.3/include/longobject.h rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/include/marshal.h => SDKs/XPlatform/Cypython-2.3.3/include/marshal.h rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/include/metagrammar.h => SDKs/XPlatform/Cypython-2.3.3/include/metagrammar.h rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/include/methodobject.h => SDKs/XPlatform/Cypython-2.3.3/include/methodobject.h rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/include/modsupport.h => SDKs/XPlatform/Cypython-2.3.3/include/modsupport.h rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/include/moduleobject.h => SDKs/XPlatform/Cypython-2.3.3/include/moduleobject.h rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/include/node.h => SDKs/XPlatform/Cypython-2.3.3/include/node.h rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/include/object.h => SDKs/XPlatform/Cypython-2.3.3/include/object.h rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/include/objimpl.h => SDKs/XPlatform/Cypython-2.3.3/include/objimpl.h rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/include/opcode.h => SDKs/XPlatform/Cypython-2.3.3/include/opcode.h rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/include/osdefs.h => SDKs/XPlatform/Cypython-2.3.3/include/osdefs.h rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/include/parsetok.h => SDKs/XPlatform/Cypython-2.3.3/include/parsetok.h rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/include/patchlevel.h => SDKs/XPlatform/Cypython-2.3.3/include/patchlevel.h rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/include/pgen.h => SDKs/XPlatform/Cypython-2.3.3/include/pgen.h rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/include/pgenheaders.h => SDKs/XPlatform/Cypython-2.3.3/include/pgenheaders.h rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/include/py_curses.h => SDKs/XPlatform/Cypython-2.3.3/include/py_curses.h rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/include/pydebug.h => SDKs/XPlatform/Cypython-2.3.3/include/pydebug.h rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/include/pyerrors.h => SDKs/XPlatform/Cypython-2.3.3/include/pyerrors.h rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/include/pyfpe.h => SDKs/XPlatform/Cypython-2.3.3/include/pyfpe.h rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/include/pygetopt.h => SDKs/XPlatform/Cypython-2.3.3/include/pygetopt.h rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/include/pymactoolbox.h => SDKs/XPlatform/Cypython-2.3.3/include/pymactoolbox.h rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/include/pymem.h => SDKs/XPlatform/Cypython-2.3.3/include/pymem.h rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/include/pyport.h => SDKs/XPlatform/Cypython-2.3.3/include/pyport.h rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/include/pystate.h => SDKs/XPlatform/Cypython-2.3.3/include/pystate.h rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/include/pythonrun.h => SDKs/XPlatform/Cypython-2.3.3/include/pythonrun.h rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/include/pythread.h => SDKs/XPlatform/Cypython-2.3.3/include/pythread.h rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/include/rangeobject.h => SDKs/XPlatform/Cypython-2.3.3/include/rangeobject.h rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/include/sliceobject.h => SDKs/XPlatform/Cypython-2.3.3/include/sliceobject.h rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/include/stringobject.h => SDKs/XPlatform/Cypython-2.3.3/include/stringobject.h rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/include/structmember.h => SDKs/XPlatform/Cypython-2.3.3/include/structmember.h rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/include/structseq.h => SDKs/XPlatform/Cypython-2.3.3/include/structseq.h rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/include/symtable.h => SDKs/XPlatform/Cypython-2.3.3/include/symtable.h rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/include/sysmodule.h => SDKs/XPlatform/Cypython-2.3.3/include/sysmodule.h rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/include/token.h => SDKs/XPlatform/Cypython-2.3.3/include/token.h rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/include/traceback.h => SDKs/XPlatform/Cypython-2.3.3/include/traceback.h rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/include/tupleobject.h => SDKs/XPlatform/Cypython-2.3.3/include/tupleobject.h rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/include/ucnhash.h => SDKs/XPlatform/Cypython-2.3.3/include/ucnhash.h rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/include/unicodeobject.h => SDKs/XPlatform/Cypython-2.3.3/include/unicodeobject.h rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/include/weakrefobject.h => SDKs/XPlatform/Cypython-2.3.3/include/weakrefobject.h rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/pyconfig_dyn/pyconfig.h => SDKs/XPlatform/Cypython-2.3.3/pyconfig_dyn/pyconfig.h rename : MOULOpenSourceClientPlugin/Plasma20/SDKs/XPlatform/Cypython-2.3.3/pyconfig_static/pyconfig.h => SDKs/XPlatform/Cypython-2.3.3/pyconfig_static/pyconfig.h rename : MOULOpenSourceClientPlugin/Plasma20/Scripts/Installer/LargeMOUL.nsi => Scripts/Installer/LargeMOUL.nsi rename : MOULOpenSourceClientPlugin/Plasma20/Scripts/Installer/MOUL.nsi => Scripts/Installer/MOUL.nsi rename : MOULOpenSourceClientPlugin/Plasma20/Scripts/Installer/MOULInstaller.exe => Scripts/Installer/MOULInstaller.exe rename : MOULOpenSourceClientPlugin/Plasma20/Scripts/Max/PlasmaExport.ms => Scripts/Max/PlasmaExport.ms rename : MOULOpenSourceClientPlugin/Plasma20/Scripts/Python/plasma/Plasma.py => Scripts/Python/plasma/Plasma.py rename : MOULOpenSourceClientPlugin/Plasma20/Scripts/Python/plasma/PlasmaConstants.py => Scripts/Python/plasma/PlasmaConstants.py rename : MOULOpenSourceClientPlugin/Plasma20/Scripts/Python/plasma/PlasmaControlKeys.py => Scripts/Python/plasma/PlasmaControlKeys.py rename : MOULOpenSourceClientPlugin/Plasma20/Scripts/Python/plasma/PlasmaGame.py => Scripts/Python/plasma/PlasmaGame.py rename : MOULOpenSourceClientPlugin/Plasma20/Scripts/Python/plasma/PlasmaGameConstants.py => Scripts/Python/plasma/PlasmaGameConstants.py rename : MOULOpenSourceClientPlugin/Plasma20/Scripts/Python/plasma/PlasmaKITypes.py => Scripts/Python/plasma/PlasmaKITypes.py rename : MOULOpenSourceClientPlugin/Plasma20/Scripts/Python/plasma/PlasmaNetConstants.py => Scripts/Python/plasma/PlasmaNetConstants.py rename : MOULOpenSourceClientPlugin/Plasma20/Scripts/Python/plasma/PlasmaTypes.py => Scripts/Python/plasma/PlasmaTypes.py rename : MOULOpenSourceClientPlugin/Plasma20/Scripts/Python/plasma/PlasmaVaultConstants.py => Scripts/Python/plasma/PlasmaVaultConstants.py rename : MOULOpenSourceClientPlugin/Plasma20/Scripts/Python/plasma/glue.py => Scripts/Python/plasma/glue.py rename : MOULOpenSourceClientPlugin/Plasma20/Scripts/Python/plasma/pch.py => Scripts/Python/plasma/pch.py rename : MOULOpenSourceClientPlugin/Plasma20/Scripts/Python/plasma/ptWordFilter.py => Scripts/Python/plasma/ptWordFilter.py rename : MOULOpenSourceClientPlugin/Plasma20/Scripts/Python/system/Bastion.py => Scripts/Python/system/Bastion.py rename : MOULOpenSourceClientPlugin/Plasma20/Scripts/Python/system/ConfigParser.py => Scripts/Python/system/ConfigParser.py rename : MOULOpenSourceClientPlugin/Plasma20/Scripts/Python/system/HTMLParser.py => Scripts/Python/system/HTMLParser.py rename : MOULOpenSourceClientPlugin/Plasma20/Scripts/Python/system/StringIO.py => Scripts/Python/system/StringIO.py rename : MOULOpenSourceClientPlugin/Plasma20/Scripts/Python/system/UserDict.py => Scripts/Python/system/UserDict.py rename : MOULOpenSourceClientPlugin/Plasma20/Scripts/Python/system/__future__.py => Scripts/Python/system/__future__.py rename : MOULOpenSourceClientPlugin/Plasma20/Scripts/Python/system/ascii.py => Scripts/Python/system/ascii.py rename : MOULOpenSourceClientPlugin/Plasma20/Scripts/Python/system/atexit.py => Scripts/Python/system/atexit.py rename : MOULOpenSourceClientPlugin/Plasma20/Scripts/Python/system/bdb.py => Scripts/Python/system/bdb.py rename : MOULOpenSourceClientPlugin/Plasma20/Scripts/Python/system/bisect.py => Scripts/Python/system/bisect.py rename : MOULOpenSourceClientPlugin/Plasma20/Scripts/Python/system/calendar.py => Scripts/Python/system/calendar.py rename : MOULOpenSourceClientPlugin/Plasma20/Scripts/Python/system/cmd.py => Scripts/Python/system/cmd.py rename : MOULOpenSourceClientPlugin/Plasma20/Scripts/Python/system/codecs.py => Scripts/Python/system/codecs.py rename : MOULOpenSourceClientPlugin/Plasma20/Scripts/Python/system/colorsys.py => Scripts/Python/system/colorsys.py rename : MOULOpenSourceClientPlugin/Plasma20/Scripts/Python/system/commands.py => Scripts/Python/system/commands.py rename : MOULOpenSourceClientPlugin/Plasma20/Scripts/Python/system/compileall.py => Scripts/Python/system/compileall.py rename : MOULOpenSourceClientPlugin/Plasma20/Scripts/Python/system/copy.py => Scripts/Python/system/copy.py rename : MOULOpenSourceClientPlugin/Plasma20/Scripts/Python/system/copy_reg.py => Scripts/Python/system/copy_reg.py rename : MOULOpenSourceClientPlugin/Plasma20/Scripts/Python/system/decompyle.py => Scripts/Python/system/decompyle.py rename : MOULOpenSourceClientPlugin/Plasma20/Scripts/Python/system/difflib.py => Scripts/Python/system/difflib.py rename : MOULOpenSourceClientPlugin/Plasma20/Scripts/Python/system/dircache.py => Scripts/Python/system/dircache.py rename : MOULOpenSourceClientPlugin/Plasma20/Scripts/Python/system/dis.py => Scripts/Python/system/dis.py rename : MOULOpenSourceClientPlugin/Plasma20/Scripts/Python/system/dospath.py => Scripts/Python/system/dospath.py rename : MOULOpenSourceClientPlugin/Plasma20/Scripts/Python/system/encoding_utf_8.py => Scripts/Python/system/encoding_utf_8.py rename : MOULOpenSourceClientPlugin/Plasma20/Scripts/Python/system/encodings.py => Scripts/Python/system/encodings.py rename : MOULOpenSourceClientPlugin/Plasma20/Scripts/Python/system/filecmp.py => Scripts/Python/system/filecmp.py rename : MOULOpenSourceClientPlugin/Plasma20/Scripts/Python/system/fileinput.py => Scripts/Python/system/fileinput.py rename : MOULOpenSourceClientPlugin/Plasma20/Scripts/Python/system/fnmatch.py => Scripts/Python/system/fnmatch.py rename : MOULOpenSourceClientPlugin/Plasma20/Scripts/Python/system/fpformat.py => Scripts/Python/system/fpformat.py rename : MOULOpenSourceClientPlugin/Plasma20/Scripts/Python/system/getopt.py => Scripts/Python/system/getopt.py rename : MOULOpenSourceClientPlugin/Plasma20/Scripts/Python/system/gettext.py => Scripts/Python/system/gettext.py rename : MOULOpenSourceClientPlugin/Plasma20/Scripts/Python/system/glob.py => Scripts/Python/system/glob.py rename : MOULOpenSourceClientPlugin/Plasma20/Scripts/Python/system/ihooks.py => Scripts/Python/system/ihooks.py rename : MOULOpenSourceClientPlugin/Plasma20/Scripts/Python/system/imghdr.py => Scripts/Python/system/imghdr.py rename : MOULOpenSourceClientPlugin/Plasma20/Scripts/Python/system/imputil.py => Scripts/Python/system/imputil.py rename : MOULOpenSourceClientPlugin/Plasma20/Scripts/Python/system/inspect.py => Scripts/Python/system/inspect.py rename : MOULOpenSourceClientPlugin/Plasma20/Scripts/Python/system/keyword.py => Scripts/Python/system/keyword.py rename : MOULOpenSourceClientPlugin/Plasma20/Scripts/Python/system/knee.py => Scripts/Python/system/knee.py rename : MOULOpenSourceClientPlugin/Plasma20/Scripts/Python/system/linecache.py => Scripts/Python/system/linecache.py rename : MOULOpenSourceClientPlugin/Plasma20/Scripts/Python/system/locale.py => Scripts/Python/system/locale.py rename : MOULOpenSourceClientPlugin/Plasma20/Scripts/Python/system/markupbase.py => Scripts/Python/system/markupbase.py rename : MOULOpenSourceClientPlugin/Plasma20/Scripts/Python/system/mutex.py => Scripts/Python/system/mutex.py rename : MOULOpenSourceClientPlugin/Plasma20/Scripts/Python/system/netrc.py => Scripts/Python/system/netrc.py rename : MOULOpenSourceClientPlugin/Plasma20/Scripts/Python/system/ntpath.py => Scripts/Python/system/ntpath.py rename : MOULOpenSourceClientPlugin/Plasma20/Scripts/Python/system/opcode.py => Scripts/Python/system/opcode.py rename : MOULOpenSourceClientPlugin/Plasma20/Scripts/Python/system/os.py => Scripts/Python/system/os.py rename : MOULOpenSourceClientPlugin/Plasma20/Scripts/Python/system/pdb.py => Scripts/Python/system/pdb.py rename : MOULOpenSourceClientPlugin/Plasma20/Scripts/Python/system/pickle.py => Scripts/Python/system/pickle.py rename : MOULOpenSourceClientPlugin/Plasma20/Scripts/Python/system/popen2.py => Scripts/Python/system/popen2.py rename : MOULOpenSourceClientPlugin/Plasma20/Scripts/Python/system/posixpath.py => Scripts/Python/system/posixpath.py rename : MOULOpenSourceClientPlugin/Plasma20/Scripts/Python/system/pre.py => Scripts/Python/system/pre.py rename : MOULOpenSourceClientPlugin/Plasma20/Scripts/Python/system/profile.py => Scripts/Python/system/profile.py rename : MOULOpenSourceClientPlugin/Plasma20/Scripts/Python/system/pstats.py => Scripts/Python/system/pstats.py rename : MOULOpenSourceClientPlugin/Plasma20/Scripts/Python/system/py_compile.py => Scripts/Python/system/py_compile.py rename : MOULOpenSourceClientPlugin/Plasma20/Scripts/Python/system/pyclbr.py => Scripts/Python/system/pyclbr.py rename : MOULOpenSourceClientPlugin/Plasma20/Scripts/Python/system/random.py => Scripts/Python/system/random.py rename : MOULOpenSourceClientPlugin/Plasma20/Scripts/Python/system/re.py => Scripts/Python/system/re.py rename : MOULOpenSourceClientPlugin/Plasma20/Scripts/Python/system/regex_syntax.py => Scripts/Python/system/regex_syntax.py rename : MOULOpenSourceClientPlugin/Plasma20/Scripts/Python/system/repr.py => Scripts/Python/system/repr.py rename : MOULOpenSourceClientPlugin/Plasma20/Scripts/Python/system/shlex.py => Scripts/Python/system/shlex.py rename : MOULOpenSourceClientPlugin/Plasma20/Scripts/Python/system/shutil.py => Scripts/Python/system/shutil.py rename : MOULOpenSourceClientPlugin/Plasma20/Scripts/Python/system/site.py => Scripts/Python/system/site.py rename : MOULOpenSourceClientPlugin/Plasma20/Scripts/Python/system/spark.py => Scripts/Python/system/spark.py rename : MOULOpenSourceClientPlugin/Plasma20/Scripts/Python/system/sre.py => Scripts/Python/system/sre.py rename : MOULOpenSourceClientPlugin/Plasma20/Scripts/Python/system/sre_compile.py => Scripts/Python/system/sre_compile.py rename : MOULOpenSourceClientPlugin/Plasma20/Scripts/Python/system/sre_constants.py => Scripts/Python/system/sre_constants.py rename : MOULOpenSourceClientPlugin/Plasma20/Scripts/Python/system/sre_parse.py => Scripts/Python/system/sre_parse.py rename : MOULOpenSourceClientPlugin/Plasma20/Scripts/Python/system/stat.py => Scripts/Python/system/stat.py rename : MOULOpenSourceClientPlugin/Plasma20/Scripts/Python/system/statcache.py => Scripts/Python/system/statcache.py rename : MOULOpenSourceClientPlugin/Plasma20/Scripts/Python/system/string.py => Scripts/Python/system/string.py rename : MOULOpenSourceClientPlugin/Plasma20/Scripts/Python/system/symbol.py => Scripts/Python/system/symbol.py rename : MOULOpenSourceClientPlugin/Plasma20/Scripts/Python/system/tabnanny.py => Scripts/Python/system/tabnanny.py rename : MOULOpenSourceClientPlugin/Plasma20/Scripts/Python/system/token.py => Scripts/Python/system/token.py rename : MOULOpenSourceClientPlugin/Plasma20/Scripts/Python/system/tokenize.py => Scripts/Python/system/tokenize.py rename : MOULOpenSourceClientPlugin/Plasma20/Scripts/Python/system/traceback.py => Scripts/Python/system/traceback.py rename : MOULOpenSourceClientPlugin/Plasma20/Scripts/Python/system/types.py => Scripts/Python/system/types.py rename : MOULOpenSourceClientPlugin/Plasma20/Scripts/Python/system/verify.py => Scripts/Python/system/verify.py rename : MOULOpenSourceClientPlugin/Plasma20/Scripts/Python/system/warnings.py => Scripts/Python/system/warnings.py rename : MOULOpenSourceClientPlugin/Plasma20/Scripts/Python/system/weakref.py => Scripts/Python/system/weakref.py rename : MOULOpenSourceClientPlugin/Plasma20/Scripts/Python/system/webbrowser.py => Scripts/Python/system/webbrowser.py rename : MOULOpenSourceClientPlugin/Plasma20/Scripts/Python/system/whrandom.py => Scripts/Python/system/whrandom.py rename : MOULOpenSourceClientPlugin/Plasma20/Scripts/ServerPython/python/Do_Not_Load_Neighborhood.py => Scripts/ServerPython/python/Do_Not_Load_Neighborhood.py rename : MOULOpenSourceClientPlugin/Plasma20/Scripts/ServerPython/python/Do_Not_Load_RestorationGuild.py => Scripts/ServerPython/python/Do_Not_Load_RestorationGuild.py rename : MOULOpenSourceClientPlugin/Plasma20/Scripts/ServerPython/python/plasma/placeholder.txt => Scripts/ServerPython/python/plasma/placeholder.txt rename : MOULOpenSourceClientPlugin/Plasma20/Scripts/ServerPython/python/system/Bastion.py => Scripts/ServerPython/python/system/Bastion.py rename : MOULOpenSourceClientPlugin/Plasma20/Scripts/ServerPython/python/system/ConfigParser.py => Scripts/ServerPython/python/system/ConfigParser.py rename : MOULOpenSourceClientPlugin/Plasma20/Scripts/ServerPython/python/system/StringIO.py => Scripts/ServerPython/python/system/StringIO.py rename : MOULOpenSourceClientPlugin/Plasma20/Scripts/ServerPython/python/system/__future__.py => Scripts/ServerPython/python/system/__future__.py rename : MOULOpenSourceClientPlugin/Plasma20/Scripts/ServerPython/python/system/_sre.pyd => Scripts/ServerPython/python/system/_sre.pyd rename : MOULOpenSourceClientPlugin/Plasma20/Scripts/ServerPython/python/system/_sre_d.pyd => Scripts/ServerPython/python/system/_sre_d.pyd rename : MOULOpenSourceClientPlugin/Plasma20/Scripts/ServerPython/python/system/atexit.py => Scripts/ServerPython/python/system/atexit.py rename : MOULOpenSourceClientPlugin/Plasma20/Scripts/ServerPython/python/system/bdb.py => Scripts/ServerPython/python/system/bdb.py rename : MOULOpenSourceClientPlugin/Plasma20/Scripts/ServerPython/python/system/bisect.py => Scripts/ServerPython/python/system/bisect.py rename : MOULOpenSourceClientPlugin/Plasma20/Scripts/ServerPython/python/system/calendar.py => Scripts/ServerPython/python/system/calendar.py rename : MOULOpenSourceClientPlugin/Plasma20/Scripts/ServerPython/python/system/cmd.py => Scripts/ServerPython/python/system/cmd.py rename : MOULOpenSourceClientPlugin/Plasma20/Scripts/ServerPython/python/system/codecs.py => Scripts/ServerPython/python/system/codecs.py rename : MOULOpenSourceClientPlugin/Plasma20/Scripts/ServerPython/python/system/colorsys.py => Scripts/ServerPython/python/system/colorsys.py rename : MOULOpenSourceClientPlugin/Plasma20/Scripts/ServerPython/python/system/commands.py => Scripts/ServerPython/python/system/commands.py rename : MOULOpenSourceClientPlugin/Plasma20/Scripts/ServerPython/python/system/compileall.py => Scripts/ServerPython/python/system/compileall.py rename : MOULOpenSourceClientPlugin/Plasma20/Scripts/ServerPython/python/system/copy.py => Scripts/ServerPython/python/system/copy.py rename : MOULOpenSourceClientPlugin/Plasma20/Scripts/ServerPython/python/system/copy_reg.py => Scripts/ServerPython/python/system/copy_reg.py rename : MOULOpenSourceClientPlugin/Plasma20/Scripts/ServerPython/python/system/decompyle.py => Scripts/ServerPython/python/system/decompyle.py rename : MOULOpenSourceClientPlugin/Plasma20/Scripts/ServerPython/python/system/difflib.py => Scripts/ServerPython/python/system/difflib.py rename : MOULOpenSourceClientPlugin/Plasma20/Scripts/ServerPython/python/system/dircache.py => Scripts/ServerPython/python/system/dircache.py rename : MOULOpenSourceClientPlugin/Plasma20/Scripts/ServerPython/python/system/dis.py => Scripts/ServerPython/python/system/dis.py rename : MOULOpenSourceClientPlugin/Plasma20/Scripts/ServerPython/python/system/dospath.py => Scripts/ServerPython/python/system/dospath.py rename : MOULOpenSourceClientPlugin/Plasma20/Scripts/ServerPython/python/system/filecmp.py => Scripts/ServerPython/python/system/filecmp.py rename : MOULOpenSourceClientPlugin/Plasma20/Scripts/ServerPython/python/system/fileinput.py => Scripts/ServerPython/python/system/fileinput.py rename : MOULOpenSourceClientPlugin/Plasma20/Scripts/ServerPython/python/system/fnmatch.py => Scripts/ServerPython/python/system/fnmatch.py rename : MOULOpenSourceClientPlugin/Plasma20/Scripts/ServerPython/python/system/fpformat.py => Scripts/ServerPython/python/system/fpformat.py rename : MOULOpenSourceClientPlugin/Plasma20/Scripts/ServerPython/python/system/getopt.py => Scripts/ServerPython/python/system/getopt.py rename : MOULOpenSourceClientPlugin/Plasma20/Scripts/ServerPython/python/system/gettext.py => Scripts/ServerPython/python/system/gettext.py rename : MOULOpenSourceClientPlugin/Plasma20/Scripts/ServerPython/python/system/glob.py => Scripts/ServerPython/python/system/glob.py rename : MOULOpenSourceClientPlugin/Plasma20/Scripts/ServerPython/python/system/ihooks.py => Scripts/ServerPython/python/system/ihooks.py rename : MOULOpenSourceClientPlugin/Plasma20/Scripts/ServerPython/python/system/imghdr.py => Scripts/ServerPython/python/system/imghdr.py rename : MOULOpenSourceClientPlugin/Plasma20/Scripts/ServerPython/python/system/imputil.py => Scripts/ServerPython/python/system/imputil.py rename : MOULOpenSourceClientPlugin/Plasma20/Scripts/ServerPython/python/system/inspect.py => Scripts/ServerPython/python/system/inspect.py rename : MOULOpenSourceClientPlugin/Plasma20/Scripts/ServerPython/python/system/keyword.py => Scripts/ServerPython/python/system/keyword.py rename : MOULOpenSourceClientPlugin/Plasma20/Scripts/ServerPython/python/system/knee.py => Scripts/ServerPython/python/system/knee.py rename : MOULOpenSourceClientPlugin/Plasma20/Scripts/ServerPython/python/system/linecache.py => Scripts/ServerPython/python/system/linecache.py rename : MOULOpenSourceClientPlugin/Plasma20/Scripts/ServerPython/python/system/locale.py => Scripts/ServerPython/python/system/locale.py rename : MOULOpenSourceClientPlugin/Plasma20/Scripts/ServerPython/python/system/mutex.py => Scripts/ServerPython/python/system/mutex.py rename : MOULOpenSourceClientPlugin/Plasma20/Scripts/ServerPython/python/system/netrc.py => Scripts/ServerPython/python/system/netrc.py rename : MOULOpenSourceClientPlugin/Plasma20/Scripts/ServerPython/python/system/ntpath.py => Scripts/ServerPython/python/system/ntpath.py rename : MOULOpenSourceClientPlugin/Plasma20/Scripts/ServerPython/python/system/os.py => Scripts/ServerPython/python/system/os.py rename : MOULOpenSourceClientPlugin/Plasma20/Scripts/ServerPython/python/system/pdb.py => Scripts/ServerPython/python/system/pdb.py rename : MOULOpenSourceClientPlugin/Plasma20/Scripts/ServerPython/python/system/pickle.py => Scripts/ServerPython/python/system/pickle.py rename : MOULOpenSourceClientPlugin/Plasma20/Scripts/ServerPython/python/system/popen2.py => Scripts/ServerPython/python/system/popen2.py rename : MOULOpenSourceClientPlugin/Plasma20/Scripts/ServerPython/python/system/posixpath.py => Scripts/ServerPython/python/system/posixpath.py rename : MOULOpenSourceClientPlugin/Plasma20/Scripts/ServerPython/python/system/pre.py => Scripts/ServerPython/python/system/pre.py rename : MOULOpenSourceClientPlugin/Plasma20/Scripts/ServerPython/python/system/profile.py => Scripts/ServerPython/python/system/profile.py rename : MOULOpenSourceClientPlugin/Plasma20/Scripts/ServerPython/python/system/pstats.py => Scripts/ServerPython/python/system/pstats.py rename : MOULOpenSourceClientPlugin/Plasma20/Scripts/ServerPython/python/system/py_compile.py => Scripts/ServerPython/python/system/py_compile.py rename : MOULOpenSourceClientPlugin/Plasma20/Scripts/ServerPython/python/system/pyclbr.py => Scripts/ServerPython/python/system/pyclbr.py rename : MOULOpenSourceClientPlugin/Plasma20/Scripts/ServerPython/python/system/random.py => Scripts/ServerPython/python/system/random.py rename : MOULOpenSourceClientPlugin/Plasma20/Scripts/ServerPython/python/system/re.py => Scripts/ServerPython/python/system/re.py rename : MOULOpenSourceClientPlugin/Plasma20/Scripts/ServerPython/python/system/regex_syntax.py => Scripts/ServerPython/python/system/regex_syntax.py rename : MOULOpenSourceClientPlugin/Plasma20/Scripts/ServerPython/python/system/repr.py => Scripts/ServerPython/python/system/repr.py rename : MOULOpenSourceClientPlugin/Plasma20/Scripts/ServerPython/python/system/shlex.py => Scripts/ServerPython/python/system/shlex.py rename : MOULOpenSourceClientPlugin/Plasma20/Scripts/ServerPython/python/system/shutil.py => Scripts/ServerPython/python/system/shutil.py rename : MOULOpenSourceClientPlugin/Plasma20/Scripts/ServerPython/python/system/site.py => Scripts/ServerPython/python/system/site.py rename : MOULOpenSourceClientPlugin/Plasma20/Scripts/ServerPython/python/system/spark.py => Scripts/ServerPython/python/system/spark.py rename : MOULOpenSourceClientPlugin/Plasma20/Scripts/ServerPython/python/system/sre.py => Scripts/ServerPython/python/system/sre.py rename : MOULOpenSourceClientPlugin/Plasma20/Scripts/ServerPython/python/system/sre_compile.py => Scripts/ServerPython/python/system/sre_compile.py rename : MOULOpenSourceClientPlugin/Plasma20/Scripts/ServerPython/python/system/sre_constants.py => Scripts/ServerPython/python/system/sre_constants.py rename : MOULOpenSourceClientPlugin/Plasma20/Scripts/ServerPython/python/system/sre_parse.py => Scripts/ServerPython/python/system/sre_parse.py rename : MOULOpenSourceClientPlugin/Plasma20/Scripts/ServerPython/python/system/stat.py => Scripts/ServerPython/python/system/stat.py rename : MOULOpenSourceClientPlugin/Plasma20/Scripts/ServerPython/python/system/statcache.py => Scripts/ServerPython/python/system/statcache.py rename : MOULOpenSourceClientPlugin/Plasma20/Scripts/ServerPython/python/system/string.py => Scripts/ServerPython/python/system/string.py rename : MOULOpenSourceClientPlugin/Plasma20/Scripts/ServerPython/python/system/symbol.py => Scripts/ServerPython/python/system/symbol.py rename : MOULOpenSourceClientPlugin/Plasma20/Scripts/ServerPython/python/system/tabnanny.py => Scripts/ServerPython/python/system/tabnanny.py rename : MOULOpenSourceClientPlugin/Plasma20/Scripts/ServerPython/python/system/token.py => Scripts/ServerPython/python/system/token.py rename : MOULOpenSourceClientPlugin/Plasma20/Scripts/ServerPython/python/system/tokenize.py => Scripts/ServerPython/python/system/tokenize.py rename : MOULOpenSourceClientPlugin/Plasma20/Scripts/ServerPython/python/system/traceback.py => Scripts/ServerPython/python/system/traceback.py rename : MOULOpenSourceClientPlugin/Plasma20/Scripts/ServerPython/python/system/types.py => Scripts/ServerPython/python/system/types.py rename : MOULOpenSourceClientPlugin/Plasma20/Scripts/ServerPython/python/system/verify.py => Scripts/ServerPython/python/system/verify.py rename : MOULOpenSourceClientPlugin/Plasma20/Scripts/ServerPython/python/system/warnings.py => Scripts/ServerPython/python/system/warnings.py rename : MOULOpenSourceClientPlugin/Plasma20/Scripts/ServerPython/python/system/weakref.py => Scripts/ServerPython/python/system/weakref.py rename : MOULOpenSourceClientPlugin/Plasma20/Scripts/ServerPython/python/system/whrandom.py => Scripts/ServerPython/python/system/whrandom.py rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/Apps/CMakeLists.txt => Sources/Plasma/Apps/CMakeLists.txt rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/Apps/plClient/CMakeLists.txt => Sources/Plasma/Apps/plClient/CMakeLists.txt rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/Apps/plClient/pfAllCreatables.cpp => Sources/Plasma/Apps/plClient/pfAllCreatables.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/Apps/plClient/plAllCreatables.cpp => Sources/Plasma/Apps/plClient/plAllCreatables.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/Apps/plClient/plClient.cpp => Sources/Plasma/Apps/plClient/plClient.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/Apps/plClient/plClient.h => Sources/Plasma/Apps/plClient/plClient.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/Apps/plClient/plClientCreatable.h => Sources/Plasma/Apps/plClient/plClientCreatable.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/Apps/plClient/plClientUpdateFormat.h => Sources/Plasma/Apps/plClient/plClientUpdateFormat.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/Apps/plClient/plSimStateMsg.h => Sources/Plasma/Apps/plClient/plSimStateMsg.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/Apps/plClient/pnAllCreatables.cpp => Sources/Plasma/Apps/plClient/pnAllCreatables.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/Apps/plClient/res/Dirt.ICO => Sources/Plasma/Apps/plClient/res/Dirt.ICO rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/Apps/plClient/res/Microphone.bmp => Sources/Plasma/Apps/plClient/res/Microphone.bmp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/Apps/plClient/res/Speaker.bmp => Sources/Plasma/Apps/plClient/res/Speaker.bmp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/Apps/plClient/res/banner.bmp => Sources/Plasma/Apps/plClient/res/banner.bmp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/Apps/plClient/res/bitmap1.bmp => Sources/Plasma/Apps/plClient/res/bitmap1.bmp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/Apps/plClient/res/bitmap2.bmp => Sources/Plasma/Apps/plClient/res/bitmap2.bmp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/Apps/plClient/res/bitmap3.bmp => Sources/Plasma/Apps/plClient/res/bitmap3.bmp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/Apps/plClient/res/bmp00001.bmp => Sources/Plasma/Apps/plClient/res/bmp00001.bmp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/Apps/plClient/res/bmp00002.bmp => Sources/Plasma/Apps/plClient/res/bmp00002.bmp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/Apps/plClient/res/bmp00003.bmp => Sources/Plasma/Apps/plClient/res/bmp00003.bmp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/Apps/plClient/res/bmp00004.bmp => Sources/Plasma/Apps/plClient/res/bmp00004.bmp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/Apps/plClient/res/bmp00005.bmp => Sources/Plasma/Apps/plClient/res/bmp00005.bmp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/Apps/plClient/res/book.bmp => Sources/Plasma/Apps/plClient/res/book.bmp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/Apps/plClient/res/book_cli.bmp => Sources/Plasma/Apps/plClient/res/book_cli.bmp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/Apps/plClient/res/book_hig.bmp => Sources/Plasma/Apps/plClient/res/book_hig.bmp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/Apps/plClient/res/cnsl1.bin => Sources/Plasma/Apps/plClient/res/cnsl1.bin rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/Apps/plClient/res/cursor_clicked.bmp => Sources/Plasma/Apps/plClient/res/cursor_clicked.bmp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/Apps/plClient/res/cursor_disabled.bmp => Sources/Plasma/Apps/plClient/res/cursor_disabled.bmp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/Apps/plClient/res/cursor_down.bmp => Sources/Plasma/Apps/plClient/res/cursor_down.bmp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/Apps/plClient/res/cursor_grab.bmp => Sources/Plasma/Apps/plClient/res/cursor_grab.bmp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/Apps/plClient/res/cursor_left.bmp => Sources/Plasma/Apps/plClient/res/cursor_left.bmp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/Apps/plClient/res/cursor_open.bmp => Sources/Plasma/Apps/plClient/res/cursor_open.bmp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/Apps/plClient/res/cursor_poised.bmp => Sources/Plasma/Apps/plClient/res/cursor_poised.bmp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/Apps/plClient/res/cursor_right.bmp => Sources/Plasma/Apps/plClient/res/cursor_right.bmp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/Apps/plClient/res/cursor_u.bmp => Sources/Plasma/Apps/plClient/res/cursor_u.bmp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/Apps/plClient/res/cursor_up.bmp => Sources/Plasma/Apps/plClient/res/cursor_up.bmp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/Apps/plClient/res/cursor_upward.bmp => Sources/Plasma/Apps/plClient/res/cursor_upward.bmp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/Apps/plClient/res/headspin.ico => Sources/Plasma/Apps/plClient/res/headspin.ico rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/Apps/plClient/res/plClient.exe.manifest => Sources/Plasma/Apps/plClient/res/plClient.exe.manifest rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/Apps/plClient/res/plClient.rc => Sources/Plasma/Apps/plClient/res/plClient.rc rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/Apps/plClient/res/resource.h => Sources/Plasma/Apps/plClient/res/resource.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/Apps/plClient/res/xLoading_Linking.01.jpg => Sources/Plasma/Apps/plClient/res/xLoading_Linking.01.jpg rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/Apps/plClient/res/xLoading_Linking.02.jpg => Sources/Plasma/Apps/plClient/res/xLoading_Linking.02.jpg rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/Apps/plClient/res/xLoading_Linking.03.jpg => Sources/Plasma/Apps/plClient/res/xLoading_Linking.03.jpg rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/Apps/plClient/res/xLoading_Linking.04.jpg => Sources/Plasma/Apps/plClient/res/xLoading_Linking.04.jpg rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/Apps/plClient/res/xLoading_Linking.05.jpg => Sources/Plasma/Apps/plClient/res/xLoading_Linking.05.jpg rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/Apps/plClient/res/xLoading_Linking.06.jpg => Sources/Plasma/Apps/plClient/res/xLoading_Linking.06.jpg rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/Apps/plClient/res/xLoading_Linking.07.jpg => Sources/Plasma/Apps/plClient/res/xLoading_Linking.07.jpg rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/Apps/plClient/res/xLoading_Linking.08.jpg => Sources/Plasma/Apps/plClient/res/xLoading_Linking.08.jpg rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/Apps/plClient/res/xLoading_Linking.09.jpg => Sources/Plasma/Apps/plClient/res/xLoading_Linking.09.jpg rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/Apps/plClient/res/xLoading_Linking.10.jpg => Sources/Plasma/Apps/plClient/res/xLoading_Linking.10.jpg rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/Apps/plClient/res/xLoading_Linking.11.jpg => Sources/Plasma/Apps/plClient/res/xLoading_Linking.11.jpg rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/Apps/plClient/res/xLoading_Linking.12.jpg => Sources/Plasma/Apps/plClient/res/xLoading_Linking.12.jpg rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/Apps/plClient/res/xLoading_Linking.13.jpg => Sources/Plasma/Apps/plClient/res/xLoading_Linking.13.jpg rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/Apps/plClient/res/xLoading_Linking.14.jpg => Sources/Plasma/Apps/plClient/res/xLoading_Linking.14.jpg rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/Apps/plClient/res/xLoading_Linking.15.jpg => Sources/Plasma/Apps/plClient/res/xLoading_Linking.15.jpg rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/Apps/plClient/res/xLoading_Linking.16.jpg => Sources/Plasma/Apps/plClient/res/xLoading_Linking.16.jpg rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/Apps/plClient/res/xLoading_Linking.17.jpg => Sources/Plasma/Apps/plClient/res/xLoading_Linking.17.jpg rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/Apps/plClient/res/xLoading_Linking.18.jpg => Sources/Plasma/Apps/plClient/res/xLoading_Linking.18.jpg rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/Apps/plClient/res/xLoading_Linking_Text.jpg => Sources/Plasma/Apps/plClient/res/xLoading_Linking_Text.jpg rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/Apps/plClient/res/xLoading_Updating_Text.jpg => Sources/Plasma/Apps/plClient/res/xLoading_Updating_Text.jpg rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/Apps/plClient/winmain.cpp => Sources/Plasma/Apps/plClient/winmain.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/Apps/plClientKey/DllMain.cpp => Sources/Plasma/Apps/plClientKey/DllMain.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/Apps/plClientKey/plClientKey.cpp => Sources/Plasma/Apps/plClientKey/plClientKey.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/Apps/plClientKey/plClientKey.def => Sources/Plasma/Apps/plClientKey/plClientKey.def rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/Apps/plClientKey/plClientKey.h => Sources/Plasma/Apps/plClientKey/plClientKey.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/Apps/plClientPatcher/CMakeLists.txt => Sources/Plasma/Apps/plClientPatcher/CMakeLists.txt rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/Apps/plClientPatcher/Intern.h => Sources/Plasma/Apps/plClientPatcher/Intern.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/Apps/plClientPatcher/Pch.h => Sources/Plasma/Apps/plClientPatcher/Pch.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/Apps/plClientPatcher/UruPlayer.cpp => Sources/Plasma/Apps/plClientPatcher/UruPlayer.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/Apps/plClientPatcher/UruPlayer.h => Sources/Plasma/Apps/plClientPatcher/UruPlayer.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/Apps/plClientPatcher/plLauncherCallback.h => Sources/Plasma/Apps/plClientPatcher/plLauncherCallback.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/Apps/plFileEncrypt/main.cpp => Sources/Plasma/Apps/plFileEncrypt/main.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/Apps/plFileSecure/main.cpp => Sources/Plasma/Apps/plFileSecure/main.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/Apps/plLogDecrypt/plLogDecrypt.cpp => Sources/Plasma/Apps/plLogDecrypt/plLogDecrypt.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/Apps/plMD5/Intern.h => Sources/Plasma/Apps/plMD5/Intern.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/Apps/plMD5/Main.cpp => Sources/Plasma/Apps/plMD5/Main.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/Apps/plMD5/Pch.h => Sources/Plasma/Apps/plMD5/Pch.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/Apps/plPageInfo/plAllCreatables.cpp => Sources/Plasma/Apps/plPageInfo/plAllCreatables.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/Apps/plPageInfo/plPageInfo.cpp => Sources/Plasma/Apps/plPageInfo/plPageInfo.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/Apps/plPageOptimizer/main.cpp => Sources/Plasma/Apps/plPageOptimizer/main.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/Apps/plPageOptimizer/pfAllCreatables.cpp => Sources/Plasma/Apps/plPageOptimizer/pfAllCreatables.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/Apps/plPageOptimizer/plPageOptimizer.cpp => Sources/Plasma/Apps/plPageOptimizer/plPageOptimizer.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/Apps/plPageOptimizer/plPageOptimizer.h => Sources/Plasma/Apps/plPageOptimizer/plPageOptimizer.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/Apps/plPlasmaInstaller/Dirt.ICO => Sources/Plasma/Apps/plPlasmaInstaller/Dirt.ICO rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/Apps/plPlasmaInstaller/main.cpp => Sources/Plasma/Apps/plPlasmaInstaller/main.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/Apps/plPlasmaInstaller/plInstallerReg.cpp => Sources/Plasma/Apps/plPlasmaInstaller/plInstallerReg.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/Apps/plPlasmaInstaller/plInstallerReg.h => Sources/Plasma/Apps/plPlasmaInstaller/plInstallerReg.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/Apps/plPlasmaInstaller/plPlasmaInstaller.cpp => Sources/Plasma/Apps/plPlasmaInstaller/plPlasmaInstaller.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/Apps/plPlasmaInstaller/plPlasmaInstaller.h => Sources/Plasma/Apps/plPlasmaInstaller/plPlasmaInstaller.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/Apps/plPlasmaInstaller/plPlasmaInstaller.rc => Sources/Plasma/Apps/plPlasmaInstaller/plPlasmaInstaller.rc rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/Apps/plPlasmaInstaller/plSetPlasmaPath.cpp => Sources/Plasma/Apps/plPlasmaInstaller/plSetPlasmaPath.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/Apps/plPlasmaInstaller/plSetPlasmaPath.h => Sources/Plasma/Apps/plPlasmaInstaller/plSetPlasmaPath.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/Apps/plPlasmaInstaller/plUnzip.cpp => Sources/Plasma/Apps/plPlasmaInstaller/plUnzip.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/Apps/plPlasmaInstaller/plUnzip.h => Sources/Plasma/Apps/plPlasmaInstaller/plUnzip.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/Apps/plPlasmaInstaller/resource.h => Sources/Plasma/Apps/plPlasmaInstaller/resource.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/Apps/plPlasmaUpdate/Dirt.ICO => Sources/Plasma/Apps/plPlasmaUpdate/Dirt.ICO rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/Apps/plPlasmaUpdate/main.cpp => Sources/Plasma/Apps/plPlasmaUpdate/main.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/Apps/plPlasmaUpdate/plFileGrabber.cpp => Sources/Plasma/Apps/plPlasmaUpdate/plFileGrabber.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/Apps/plPlasmaUpdate/plFileGrabber.h => Sources/Plasma/Apps/plPlasmaUpdate/plFileGrabber.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/Apps/plPlasmaUpdate/plManifest.cpp => Sources/Plasma/Apps/plPlasmaUpdate/plManifest.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/Apps/plPlasmaUpdate/plManifest.h => Sources/Plasma/Apps/plPlasmaUpdate/plManifest.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/Apps/plPlasmaUpdate/plPlasmaServers.cpp => Sources/Plasma/Apps/plPlasmaUpdate/plPlasmaServers.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/Apps/plPlasmaUpdate/plPlasmaServers.h => Sources/Plasma/Apps/plPlasmaUpdate/plPlasmaServers.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/Apps/plPlasmaUpdate/plPlasmaUpdate.cpp => Sources/Plasma/Apps/plPlasmaUpdate/plPlasmaUpdate.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/Apps/plPlasmaUpdate/plPlasmaUpdate.h => Sources/Plasma/Apps/plPlasmaUpdate/plPlasmaUpdate.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/Apps/plPlasmaUpdate/plPlasmaUpdate.rc => Sources/Plasma/Apps/plPlasmaUpdate/plPlasmaUpdate.rc rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/Apps/plPlasmaUpdate/resource.h => Sources/Plasma/Apps/plPlasmaUpdate/resource.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/Apps/plPythonPack/CMakeLists.txt => Sources/Plasma/Apps/plPythonPack/CMakeLists.txt rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/Apps/plPythonPack/PythonInterface.cpp => Sources/Plasma/Apps/plPythonPack/PythonInterface.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/Apps/plPythonPack/PythonInterface.h => Sources/Plasma/Apps/plPythonPack/PythonInterface.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/Apps/plPythonPack/main.cpp => Sources/Plasma/Apps/plPythonPack/main.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/Apps/plUruLauncher/CMakeLists.txt => Sources/Plasma/Apps/plUruLauncher/CMakeLists.txt rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/Apps/plUruLauncher/Dirt.ICO => Sources/Plasma/Apps/plUruLauncher/Dirt.ICO rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/Apps/plUruLauncher/Intern.h => Sources/Plasma/Apps/plUruLauncher/Intern.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/Apps/plUruLauncher/Main.cpp => Sources/Plasma/Apps/plUruLauncher/Main.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/Apps/plUruLauncher/Pch.h => Sources/Plasma/Apps/plUruLauncher/Pch.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/Apps/plUruLauncher/SelfPatcher.cpp => Sources/Plasma/Apps/plUruLauncher/SelfPatcher.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/Apps/plUruLauncher/banner.bmp => Sources/Plasma/Apps/plUruLauncher/banner.bmp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/Apps/plUruLauncher/plLauncherInfo.h => Sources/Plasma/Apps/plUruLauncher/plLauncherInfo.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/Apps/plUruLauncher/plUruLauncher.rc => Sources/Plasma/Apps/plUruLauncher/plUruLauncher.rc rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/Apps/plUruLauncher/resource.h => Sources/Plasma/Apps/plUruLauncher/resource.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/CMakeLists.txt => Sources/Plasma/CMakeLists.txt rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/CoreLib/CMakeLists.txt => Sources/Plasma/CoreLib/CMakeLists.txt rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/CoreLib/HS_POINT2.inc => Sources/Plasma/CoreLib/HS_POINT2.inc rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/CoreLib/HeadSpin.cpp => Sources/Plasma/CoreLib/HeadSpin.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/CoreLib/HeadSpin.h => Sources/Plasma/CoreLib/HeadSpin.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/CoreLib/hsBiExpander.h => Sources/Plasma/CoreLib/hsBiExpander.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/CoreLib/hsBitVector.cpp => Sources/Plasma/CoreLib/hsBitVector.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/CoreLib/hsBitVector.h => Sources/Plasma/CoreLib/hsBitVector.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/CoreLib/hsBounds.cpp => Sources/Plasma/CoreLib/hsBounds.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/CoreLib/hsBounds.h => Sources/Plasma/CoreLib/hsBounds.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/CoreLib/hsColorRGBA.h => Sources/Plasma/CoreLib/hsColorRGBA.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/CoreLib/hsConfig.h => Sources/Plasma/CoreLib/hsConfig.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/CoreLib/hsCritSect.cpp => Sources/Plasma/CoreLib/hsCritSect.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/CoreLib/hsCritSect.h => Sources/Plasma/CoreLib/hsCritSect.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/CoreLib/hsExceptionStack.cpp => Sources/Plasma/CoreLib/hsExceptionStack.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/CoreLib/hsExceptionStack.h => Sources/Plasma/CoreLib/hsExceptionStack.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/CoreLib/hsExceptions.h => Sources/Plasma/CoreLib/hsExceptions.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/CoreLib/hsFastMath.cpp => Sources/Plasma/CoreLib/hsFastMath.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/CoreLib/hsFastMath.h => Sources/Plasma/CoreLib/hsFastMath.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/CoreLib/hsFixedTypes.h => Sources/Plasma/CoreLib/hsFixedTypes.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/CoreLib/hsGeometry3.cpp => Sources/Plasma/CoreLib/hsGeometry3.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/CoreLib/hsGeometry3.h => Sources/Plasma/CoreLib/hsGeometry3.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/CoreLib/hsHashTable.h => Sources/Plasma/CoreLib/hsHashTable.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/CoreLib/hsLOD.h => Sources/Plasma/CoreLib/hsLOD.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/CoreLib/hsMMIOStream.cpp => Sources/Plasma/CoreLib/hsMMIOStream.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/CoreLib/hsMMIOStream.h => Sources/Plasma/CoreLib/hsMMIOStream.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/CoreLib/hsMalloc.cpp => Sources/Plasma/CoreLib/hsMalloc.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/CoreLib/hsMalloc.h => Sources/Plasma/CoreLib/hsMalloc.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/CoreLib/hsMatrix33.cpp => Sources/Plasma/CoreLib/hsMatrix33.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/CoreLib/hsMatrix33.h => Sources/Plasma/CoreLib/hsMatrix33.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/CoreLib/hsMatrix44.cpp => Sources/Plasma/CoreLib/hsMatrix44.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/CoreLib/hsMatrix44.h => Sources/Plasma/CoreLib/hsMatrix44.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/CoreLib/hsMemory.cpp => Sources/Plasma/CoreLib/hsMemory.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/CoreLib/hsMemory.h => Sources/Plasma/CoreLib/hsMemory.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/CoreLib/hsPoint2.h => Sources/Plasma/CoreLib/hsPoint2.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/CoreLib/hsQuat.cpp => Sources/Plasma/CoreLib/hsQuat.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/CoreLib/hsQuat.h => Sources/Plasma/CoreLib/hsQuat.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/CoreLib/hsQueue.h => Sources/Plasma/CoreLib/hsQueue.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/CoreLib/hsRefCnt.h => Sources/Plasma/CoreLib/hsRefCnt.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/CoreLib/hsSTLStream.cpp => Sources/Plasma/CoreLib/hsSTLStream.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/CoreLib/hsSTLStream.h => Sources/Plasma/CoreLib/hsSTLStream.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/CoreLib/hsSafeRefCnt.cpp => Sources/Plasma/CoreLib/hsSafeRefCnt.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/CoreLib/hsSafeRefCnt.h => Sources/Plasma/CoreLib/hsSafeRefCnt.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/CoreLib/hsScalar.h => Sources/Plasma/CoreLib/hsScalar.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/CoreLib/hsStlSortUtils.h => Sources/Plasma/CoreLib/hsStlSortUtils.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/CoreLib/hsStlUtils.cpp => Sources/Plasma/CoreLib/hsStlUtils.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/CoreLib/hsStlUtils.h => Sources/Plasma/CoreLib/hsStlUtils.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/CoreLib/hsStream.cpp => Sources/Plasma/CoreLib/hsStream.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/CoreLib/hsStream.h => Sources/Plasma/CoreLib/hsStream.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/CoreLib/hsStringTokenizer.cpp => Sources/Plasma/CoreLib/hsStringTokenizer.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/CoreLib/hsStringTokenizer.h => Sources/Plasma/CoreLib/hsStringTokenizer.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/CoreLib/hsTempPointer.h => Sources/Plasma/CoreLib/hsTempPointer.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/CoreLib/hsTemplates.cpp => Sources/Plasma/CoreLib/hsTemplates.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/CoreLib/hsTemplates.h => Sources/Plasma/CoreLib/hsTemplates.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/CoreLib/hsThread.cpp => Sources/Plasma/CoreLib/hsThread.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/CoreLib/hsThread.h => Sources/Plasma/CoreLib/hsThread.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/CoreLib/hsThread_Mac.cpp => Sources/Plasma/CoreLib/hsThread_Mac.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/CoreLib/hsThread_Unix.cpp => Sources/Plasma/CoreLib/hsThread_Unix.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/CoreLib/hsThread_Win.cpp => Sources/Plasma/CoreLib/hsThread_Win.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/CoreLib/hsTypes.h => Sources/Plasma/CoreLib/hsTypes.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/CoreLib/hsUtils.cpp => Sources/Plasma/CoreLib/hsUtils.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/CoreLib/hsUtils.h => Sources/Plasma/CoreLib/hsUtils.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/CoreLib/hsWide.cpp => Sources/Plasma/CoreLib/hsWide.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/CoreLib/hsWide.h => Sources/Plasma/CoreLib/hsWide.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/CoreLib/hsWindowHndl.h => Sources/Plasma/CoreLib/hsWindowHndl.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/CoreLib/hsWindows.h => Sources/Plasma/CoreLib/hsWindows.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/CoreLib/notes.txt => Sources/Plasma/CoreLib/notes.txt rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/CoreLib/pcSmallRect.cpp => Sources/Plasma/CoreLib/pcSmallRect.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/CoreLib/pcSmallRect.h => Sources/Plasma/CoreLib/pcSmallRect.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/CoreLib/plGeneric.cpp => Sources/Plasma/CoreLib/plGeneric.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/CoreLib/plGeneric.h => Sources/Plasma/CoreLib/plGeneric.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/CoreLib/plLoadMask.cpp => Sources/Plasma/CoreLib/plLoadMask.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/CoreLib/plLoadMask.h => Sources/Plasma/CoreLib/plLoadMask.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/CoreLib/plQuality.h => Sources/Plasma/CoreLib/plQuality.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/CoreLib/plRefCnt.h => Sources/Plasma/CoreLib/plRefCnt.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/CoreLib/plRenderLevel.h => Sources/Plasma/CoreLib/plRenderLevel.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/CoreLib/plTweak.h => Sources/Plasma/CoreLib/plTweak.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/CoreLib/plViewTransform.cpp => Sources/Plasma/CoreLib/plViewTransform.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/CoreLib/plViewTransform.h => Sources/Plasma/CoreLib/plViewTransform.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/CoreLibExe/CMakeLists.txt => Sources/Plasma/CoreLibExe/CMakeLists.txt rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/CoreLibExe/Intern.h => Sources/Plasma/CoreLibExe/Intern.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/CoreLibExe/Pch.h => Sources/Plasma/CoreLibExe/Pch.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/CoreLibExe/hsExeError.cpp => Sources/Plasma/CoreLibExe/hsExeError.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/CoreLibExe/hsExeMalloc.cpp => Sources/Plasma/CoreLibExe/hsExeMalloc.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/CMakeLists.txt => Sources/Plasma/FeatureLib/CMakeLists.txt rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/inc/pfAllCreatables.h => Sources/Plasma/FeatureLib/inc/pfAllCreatables.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfAnimation/CMakeLists.txt => Sources/Plasma/FeatureLib/pfAnimation/CMakeLists.txt rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfAnimation/pfAnimationCreatable.h => Sources/Plasma/FeatureLib/pfAnimation/pfAnimationCreatable.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfAnimation/pfObjectFlocker.cpp => Sources/Plasma/FeatureLib/pfAnimation/pfObjectFlocker.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfAnimation/pfObjectFlocker.h => Sources/Plasma/FeatureLib/pfAnimation/pfObjectFlocker.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfAnimation/plAnimDebugList.cpp => Sources/Plasma/FeatureLib/pfAnimation/plAnimDebugList.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfAnimation/plAnimDebugList.h => Sources/Plasma/FeatureLib/pfAnimation/plAnimDebugList.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfAnimation/plBlower.cpp => Sources/Plasma/FeatureLib/pfAnimation/plBlower.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfAnimation/plBlower.h => Sources/Plasma/FeatureLib/pfAnimation/plBlower.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfAnimation/plFilterCoordInterface.cpp => Sources/Plasma/FeatureLib/pfAnimation/plFilterCoordInterface.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfAnimation/plFilterCoordInterface.h => Sources/Plasma/FeatureLib/pfAnimation/plFilterCoordInterface.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfAnimation/plFollowMod.cpp => Sources/Plasma/FeatureLib/pfAnimation/plFollowMod.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfAnimation/plFollowMod.h => Sources/Plasma/FeatureLib/pfAnimation/plFollowMod.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfAnimation/plLightModifier.cpp => Sources/Plasma/FeatureLib/pfAnimation/plLightModifier.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfAnimation/plLightModifier.h => Sources/Plasma/FeatureLib/pfAnimation/plLightModifier.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfAnimation/plLineFollowMod.cpp => Sources/Plasma/FeatureLib/pfAnimation/plLineFollowMod.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfAnimation/plLineFollowMod.h => Sources/Plasma/FeatureLib/pfAnimation/plLineFollowMod.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfAnimation/plRandomCommandMod.cpp => Sources/Plasma/FeatureLib/pfAnimation/plRandomCommandMod.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfAnimation/plRandomCommandMod.h => Sources/Plasma/FeatureLib/pfAnimation/plRandomCommandMod.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfAnimation/plStereizer.cpp => Sources/Plasma/FeatureLib/pfAnimation/plStereizer.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfAnimation/plStereizer.h => Sources/Plasma/FeatureLib/pfAnimation/plStereizer.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfAnimation/plViewFaceModifier.cpp => Sources/Plasma/FeatureLib/pfAnimation/plViewFaceModifier.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfAnimation/plViewFaceModifier.h => Sources/Plasma/FeatureLib/pfAnimation/plViewFaceModifier.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfAudio/CMakeLists.txt => Sources/Plasma/FeatureLib/pfAudio/CMakeLists.txt rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfAudio/pfAudioCreatable.h => Sources/Plasma/FeatureLib/pfAudio/pfAudioCreatable.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfAudio/plListener.cpp => Sources/Plasma/FeatureLib/pfAudio/plListener.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfAudio/plListener.h => Sources/Plasma/FeatureLib/pfAudio/plListener.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfAudio/plRandomSoundMod.cpp => Sources/Plasma/FeatureLib/pfAudio/plRandomSoundMod.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfAudio/plRandomSoundMod.h => Sources/Plasma/FeatureLib/pfAudio/plRandomSoundMod.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfCCR/CMakeLists.txt => Sources/Plasma/FeatureLib/pfCCR/CMakeLists.txt rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfCCR/plCCRCreatable.h => Sources/Plasma/FeatureLib/pfCCR/plCCRCreatable.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfCCR/plCCRMgr.cpp => Sources/Plasma/FeatureLib/pfCCR/plCCRMgr.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfCCR/plCCRMgr.h => Sources/Plasma/FeatureLib/pfCCR/plCCRMgr.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfCCR/plCCRVault.cpp => Sources/Plasma/FeatureLib/pfCCR/plCCRVault.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfCCR/plCCRVault.h => Sources/Plasma/FeatureLib/pfCCR/plCCRVault.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfCamera/CMakeLists.txt => Sources/Plasma/FeatureLib/pfCamera/CMakeLists.txt rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfCamera/pfCameraCreatable.h => Sources/Plasma/FeatureLib/pfCamera/pfCameraCreatable.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfCamera/pfCameraProxy.cpp => Sources/Plasma/FeatureLib/pfCamera/pfCameraProxy.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfCamera/pfCameraProxy.h => Sources/Plasma/FeatureLib/pfCamera/pfCameraProxy.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfCamera/plCameraBrain.cpp => Sources/Plasma/FeatureLib/pfCamera/plCameraBrain.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfCamera/plCameraBrain.h => Sources/Plasma/FeatureLib/pfCamera/plCameraBrain.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfCamera/plCameraModifier.cpp => Sources/Plasma/FeatureLib/pfCamera/plCameraModifier.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfCamera/plCameraModifier.h => Sources/Plasma/FeatureLib/pfCamera/plCameraModifier.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfCamera/plInterestingModifier.cpp => Sources/Plasma/FeatureLib/pfCamera/plInterestingModifier.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfCamera/plInterestingModifier.h => Sources/Plasma/FeatureLib/pfCamera/plInterestingModifier.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfCamera/plVirtualCamNeu.cpp => Sources/Plasma/FeatureLib/pfCamera/plVirtualCamNeu.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfCamera/plVirtualCamNeu.h => Sources/Plasma/FeatureLib/pfCamera/plVirtualCamNeu.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfCharacter/CMakeLists.txt => Sources/Plasma/FeatureLib/pfCharacter/CMakeLists.txt rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfCharacter/pfCharacterCreatable.h => Sources/Plasma/FeatureLib/pfCharacter/pfCharacterCreatable.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfCharacter/pfMarkerInfo.cpp => Sources/Plasma/FeatureLib/pfCharacter/pfMarkerInfo.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfCharacter/pfMarkerInfo.h => Sources/Plasma/FeatureLib/pfCharacter/pfMarkerInfo.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfCharacter/pfMarkerMgr.cpp => Sources/Plasma/FeatureLib/pfCharacter/pfMarkerMgr.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfCharacter/pfMarkerMgr.h => Sources/Plasma/FeatureLib/pfCharacter/pfMarkerMgr.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfCharacter/plPlayerModifier.cpp => Sources/Plasma/FeatureLib/pfCharacter/plPlayerModifier.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfCharacter/plPlayerModifier.h => Sources/Plasma/FeatureLib/pfCharacter/plPlayerModifier.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfConditional/CMakeLists.txt => Sources/Plasma/FeatureLib/pfConditional/CMakeLists.txt rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfConditional/plANDConditionalObject.cpp => Sources/Plasma/FeatureLib/pfConditional/plANDConditionalObject.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfConditional/plANDConditionalObject.h => Sources/Plasma/FeatureLib/pfConditional/plANDConditionalObject.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfConditional/plActivatorConditionalObject.cpp => Sources/Plasma/FeatureLib/pfConditional/plActivatorConditionalObject.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfConditional/plActivatorConditionalObject.h => Sources/Plasma/FeatureLib/pfConditional/plActivatorConditionalObject.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfConditional/plAnimationEventConditionalObject.cpp => Sources/Plasma/FeatureLib/pfConditional/plAnimationEventConditionalObject.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfConditional/plAnimationEventConditionalObject.h => Sources/Plasma/FeatureLib/pfConditional/plAnimationEventConditionalObject.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfConditional/plConditionalObjectCreatable.h => Sources/Plasma/FeatureLib/pfConditional/plConditionalObjectCreatable.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfConditional/plControlEventConditionalObject.cpp => Sources/Plasma/FeatureLib/pfConditional/plControlEventConditionalObject.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfConditional/plControlEventConditionalObject.h => Sources/Plasma/FeatureLib/pfConditional/plControlEventConditionalObject.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfConditional/plFacingConditionalObject.cpp => Sources/Plasma/FeatureLib/pfConditional/plFacingConditionalObject.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfConditional/plFacingConditionalObject.h => Sources/Plasma/FeatureLib/pfConditional/plFacingConditionalObject.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfConditional/plKeyPressConditionalObject.cpp => Sources/Plasma/FeatureLib/pfConditional/plKeyPressConditionalObject.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfConditional/plKeyPressConditionalObject.h => Sources/Plasma/FeatureLib/pfConditional/plKeyPressConditionalObject.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfConditional/plLocalPlayerInBoxConditionalObject.cpp => Sources/Plasma/FeatureLib/pfConditional/plLocalPlayerInBoxConditionalObject.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfConditional/plLocalPlayerInBoxConditionalObject.h => Sources/Plasma/FeatureLib/pfConditional/plLocalPlayerInBoxConditionalObject.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfConditional/plLocalPlayerIntersectPlaneConditionalObject.cpp => Sources/Plasma/FeatureLib/pfConditional/plLocalPlayerIntersectPlaneConditionalObject.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfConditional/plLocalPlayerIntersectPlaneConditionalObject.h => Sources/Plasma/FeatureLib/pfConditional/plLocalPlayerIntersectPlaneConditionalObject.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfConditional/plORConditionalObject.cpp => Sources/Plasma/FeatureLib/pfConditional/plORConditionalObject.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfConditional/plORConditionalObject.h => Sources/Plasma/FeatureLib/pfConditional/plORConditionalObject.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfConditional/plObjectInBoxConditionalObject.cpp => Sources/Plasma/FeatureLib/pfConditional/plObjectInBoxConditionalObject.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfConditional/plObjectInBoxConditionalObject.h => Sources/Plasma/FeatureLib/pfConditional/plObjectInBoxConditionalObject.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfConditional/plObjectIntersectPlaneConditionalObject.cpp => Sources/Plasma/FeatureLib/pfConditional/plObjectIntersectPlaneConditionalObject.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfConditional/plObjectIntersectPlaneConditionalObject.h => Sources/Plasma/FeatureLib/pfConditional/plObjectIntersectPlaneConditionalObject.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfConditional/plPickedConditionalObject.cpp => Sources/Plasma/FeatureLib/pfConditional/plPickedConditionalObject.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfConditional/plPickedConditionalObject.h => Sources/Plasma/FeatureLib/pfConditional/plPickedConditionalObject.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfConsole/CMakeLists.txt => Sources/Plasma/FeatureLib/pfConsole/CMakeLists.txt rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfConsole/pfAvatarConsoleCommands.cpp => Sources/Plasma/FeatureLib/pfConsole/pfAvatarConsoleCommands.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfConsole/pfCCRConsoleCommands.cpp => Sources/Plasma/FeatureLib/pfConsole/pfCCRConsoleCommands.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfConsole/pfConsole.cpp => Sources/Plasma/FeatureLib/pfConsole/pfConsole.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfConsole/pfConsole.h => Sources/Plasma/FeatureLib/pfConsole/pfConsole.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfConsole/pfConsoleCmd.cpp => Sources/Plasma/FeatureLib/pfConsole/pfConsoleCmd.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfConsole/pfConsoleCmd.h => Sources/Plasma/FeatureLib/pfConsole/pfConsoleCmd.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfConsole/pfConsoleCommands.cpp => Sources/Plasma/FeatureLib/pfConsole/pfConsoleCommands.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfConsole/pfConsoleCommandsNet.cpp => Sources/Plasma/FeatureLib/pfConsole/pfConsoleCommandsNet.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfConsole/pfConsoleContext.cpp => Sources/Plasma/FeatureLib/pfConsole/pfConsoleContext.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfConsole/pfConsoleContext.h => Sources/Plasma/FeatureLib/pfConsole/pfConsoleContext.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfConsole/pfConsoleCreatable.h => Sources/Plasma/FeatureLib/pfConsole/pfConsoleCreatable.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfConsole/pfConsoleDirSrc.cpp => Sources/Plasma/FeatureLib/pfConsole/pfConsoleDirSrc.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfConsole/pfConsoleDirSrc.h => Sources/Plasma/FeatureLib/pfConsole/pfConsoleDirSrc.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfConsole/pfConsoleEngine.cpp => Sources/Plasma/FeatureLib/pfConsole/pfConsoleEngine.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfConsole/pfConsoleEngine.h => Sources/Plasma/FeatureLib/pfConsole/pfConsoleEngine.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfConsole/pfDispatchLog.cpp => Sources/Plasma/FeatureLib/pfConsole/pfDispatchLog.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfConsole/pfDispatchLog.h => Sources/Plasma/FeatureLib/pfConsole/pfDispatchLog.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfConsole/pfGameConsoleCommands.cpp => Sources/Plasma/FeatureLib/pfConsole/pfGameConsoleCommands.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfCsrSrv/CMakeLists.txt => Sources/Plasma/FeatureLib/pfCsrSrv/CMakeLists.txt rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfCsrSrv/Pch.h => Sources/Plasma/FeatureLib/pfCsrSrv/Pch.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfCsrSrv/pfCsrSrv.cpp => Sources/Plasma/FeatureLib/pfCsrSrv/pfCsrSrv.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfCsrSrv/pfCsrSrv.h => Sources/Plasma/FeatureLib/pfCsrSrv/pfCsrSrv.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfGameGUIMgr/CMakeLists.txt => Sources/Plasma/FeatureLib/pfGameGUIMgr/CMakeLists.txt rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfGameGUIMgr/pfGUIButtonMod.cpp => Sources/Plasma/FeatureLib/pfGameGUIMgr/pfGUIButtonMod.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfGameGUIMgr/pfGUIButtonMod.h => Sources/Plasma/FeatureLib/pfGameGUIMgr/pfGUIButtonMod.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfGameGUIMgr/pfGUICheckBoxCtrl.cpp => Sources/Plasma/FeatureLib/pfGameGUIMgr/pfGUICheckBoxCtrl.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfGameGUIMgr/pfGUICheckBoxCtrl.h => Sources/Plasma/FeatureLib/pfGameGUIMgr/pfGUICheckBoxCtrl.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfGameGUIMgr/pfGUIClickMapCtrl.cpp => Sources/Plasma/FeatureLib/pfGameGUIMgr/pfGUIClickMapCtrl.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfGameGUIMgr/pfGUIClickMapCtrl.h => Sources/Plasma/FeatureLib/pfGameGUIMgr/pfGUIClickMapCtrl.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfGameGUIMgr/pfGUIControlHandlers.cpp => Sources/Plasma/FeatureLib/pfGameGUIMgr/pfGUIControlHandlers.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfGameGUIMgr/pfGUIControlHandlers.h => Sources/Plasma/FeatureLib/pfGameGUIMgr/pfGUIControlHandlers.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfGameGUIMgr/pfGUIControlMod.cpp => Sources/Plasma/FeatureLib/pfGameGUIMgr/pfGUIControlMod.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfGameGUIMgr/pfGUIControlMod.h => Sources/Plasma/FeatureLib/pfGameGUIMgr/pfGUIControlMod.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfGameGUIMgr/pfGUICtrlGenerator.cpp => Sources/Plasma/FeatureLib/pfGameGUIMgr/pfGUICtrlGenerator.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfGameGUIMgr/pfGUICtrlGenerator.h => Sources/Plasma/FeatureLib/pfGameGUIMgr/pfGUICtrlGenerator.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfGameGUIMgr/pfGUIDialogHandlers.h => Sources/Plasma/FeatureLib/pfGameGUIMgr/pfGUIDialogHandlers.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfGameGUIMgr/pfGUIDialogMod.cpp => Sources/Plasma/FeatureLib/pfGameGUIMgr/pfGUIDialogMod.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfGameGUIMgr/pfGUIDialogMod.h => Sources/Plasma/FeatureLib/pfGameGUIMgr/pfGUIDialogMod.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfGameGUIMgr/pfGUIDialogNotifyProc.cpp => Sources/Plasma/FeatureLib/pfGameGUIMgr/pfGUIDialogNotifyProc.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfGameGUIMgr/pfGUIDialogNotifyProc.h => Sources/Plasma/FeatureLib/pfGameGUIMgr/pfGUIDialogNotifyProc.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfGameGUIMgr/pfGUIDragBarCtrl.cpp => Sources/Plasma/FeatureLib/pfGameGUIMgr/pfGUIDragBarCtrl.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfGameGUIMgr/pfGUIDragBarCtrl.h => Sources/Plasma/FeatureLib/pfGameGUIMgr/pfGUIDragBarCtrl.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfGameGUIMgr/pfGUIDraggableMod.cpp => Sources/Plasma/FeatureLib/pfGameGUIMgr/pfGUIDraggableMod.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfGameGUIMgr/pfGUIDraggableMod.h => Sources/Plasma/FeatureLib/pfGameGUIMgr/pfGUIDraggableMod.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfGameGUIMgr/pfGUIDynDisplayCtrl.cpp => Sources/Plasma/FeatureLib/pfGameGUIMgr/pfGUIDynDisplayCtrl.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfGameGUIMgr/pfGUIDynDisplayCtrl.h => Sources/Plasma/FeatureLib/pfGameGUIMgr/pfGUIDynDisplayCtrl.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfGameGUIMgr/pfGUIEditBoxMod.cpp => Sources/Plasma/FeatureLib/pfGameGUIMgr/pfGUIEditBoxMod.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfGameGUIMgr/pfGUIEditBoxMod.h => Sources/Plasma/FeatureLib/pfGameGUIMgr/pfGUIEditBoxMod.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfGameGUIMgr/pfGUIKnobCtrl.cpp => Sources/Plasma/FeatureLib/pfGameGUIMgr/pfGUIKnobCtrl.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfGameGUIMgr/pfGUIKnobCtrl.h => Sources/Plasma/FeatureLib/pfGameGUIMgr/pfGUIKnobCtrl.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfGameGUIMgr/pfGUIListBoxMod.cpp => Sources/Plasma/FeatureLib/pfGameGUIMgr/pfGUIListBoxMod.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfGameGUIMgr/pfGUIListBoxMod.h => Sources/Plasma/FeatureLib/pfGameGUIMgr/pfGUIListBoxMod.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfGameGUIMgr/pfGUIListElement.cpp => Sources/Plasma/FeatureLib/pfGameGUIMgr/pfGUIListElement.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfGameGUIMgr/pfGUIListElement.h => Sources/Plasma/FeatureLib/pfGameGUIMgr/pfGUIListElement.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfGameGUIMgr/pfGUIMenuItem.cpp => Sources/Plasma/FeatureLib/pfGameGUIMgr/pfGUIMenuItem.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfGameGUIMgr/pfGUIMenuItem.h => Sources/Plasma/FeatureLib/pfGameGUIMgr/pfGUIMenuItem.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfGameGUIMgr/pfGUIMultiLineEditCtrl.cpp => Sources/Plasma/FeatureLib/pfGameGUIMgr/pfGUIMultiLineEditCtrl.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfGameGUIMgr/pfGUIMultiLineEditCtrl.h => Sources/Plasma/FeatureLib/pfGameGUIMgr/pfGUIMultiLineEditCtrl.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfGameGUIMgr/pfGUIPopUpMenu.cpp => Sources/Plasma/FeatureLib/pfGameGUIMgr/pfGUIPopUpMenu.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfGameGUIMgr/pfGUIPopUpMenu.h => Sources/Plasma/FeatureLib/pfGameGUIMgr/pfGUIPopUpMenu.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfGameGUIMgr/pfGUIProgressCtrl.cpp => Sources/Plasma/FeatureLib/pfGameGUIMgr/pfGUIProgressCtrl.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfGameGUIMgr/pfGUIProgressCtrl.h => Sources/Plasma/FeatureLib/pfGameGUIMgr/pfGUIProgressCtrl.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfGameGUIMgr/pfGUIRadioGroupCtrl.cpp => Sources/Plasma/FeatureLib/pfGameGUIMgr/pfGUIRadioGroupCtrl.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfGameGUIMgr/pfGUIRadioGroupCtrl.h => Sources/Plasma/FeatureLib/pfGameGUIMgr/pfGUIRadioGroupCtrl.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfGameGUIMgr/pfGUITagDefs.cpp => Sources/Plasma/FeatureLib/pfGameGUIMgr/pfGUITagDefs.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfGameGUIMgr/pfGUITagDefs.h => Sources/Plasma/FeatureLib/pfGameGUIMgr/pfGUITagDefs.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfGameGUIMgr/pfGUITextBoxMod.cpp => Sources/Plasma/FeatureLib/pfGameGUIMgr/pfGUITextBoxMod.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfGameGUIMgr/pfGUITextBoxMod.h => Sources/Plasma/FeatureLib/pfGameGUIMgr/pfGUITextBoxMod.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfGameGUIMgr/pfGUIUpDownPairMod.cpp => Sources/Plasma/FeatureLib/pfGameGUIMgr/pfGUIUpDownPairMod.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfGameGUIMgr/pfGUIUpDownPairMod.h => Sources/Plasma/FeatureLib/pfGameGUIMgr/pfGUIUpDownPairMod.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfGameGUIMgr/pfGUIValueCtrl.cpp => Sources/Plasma/FeatureLib/pfGameGUIMgr/pfGUIValueCtrl.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfGameGUIMgr/pfGUIValueCtrl.h => Sources/Plasma/FeatureLib/pfGameGUIMgr/pfGUIValueCtrl.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfGameGUIMgr/pfGameGUIMgr.cpp => Sources/Plasma/FeatureLib/pfGameGUIMgr/pfGameGUIMgr.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfGameGUIMgr/pfGameGUIMgr.h => Sources/Plasma/FeatureLib/pfGameGUIMgr/pfGameGUIMgr.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfGameGUIMgr/pfGameGUIMgrCreatable.h => Sources/Plasma/FeatureLib/pfGameGUIMgr/pfGameGUIMgrCreatable.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfGameMgr/BlueSpiral/pfGmBlueSpiral.cpp => Sources/Plasma/FeatureLib/pfGameMgr/BlueSpiral/pfGmBlueSpiral.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfGameMgr/BlueSpiral/pfGmBlueSpiral.h => Sources/Plasma/FeatureLib/pfGameMgr/BlueSpiral/pfGmBlueSpiral.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfGameMgr/CMakeLists.txt => Sources/Plasma/FeatureLib/pfGameMgr/CMakeLists.txt rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfGameMgr/ClimbingWall/pfGmClimbingWall.cpp => Sources/Plasma/FeatureLib/pfGameMgr/ClimbingWall/pfGmClimbingWall.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfGameMgr/ClimbingWall/pfGmClimbingWall.h => Sources/Plasma/FeatureLib/pfGameMgr/ClimbingWall/pfGmClimbingWall.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfGameMgr/Heek/pfGmHeek.cpp => Sources/Plasma/FeatureLib/pfGameMgr/Heek/pfGmHeek.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfGameMgr/Heek/pfGmHeek.h => Sources/Plasma/FeatureLib/pfGameMgr/Heek/pfGmHeek.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfGameMgr/Intern.h => Sources/Plasma/FeatureLib/pfGameMgr/Intern.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfGameMgr/Marker/pfGmMarker.cpp => Sources/Plasma/FeatureLib/pfGameMgr/Marker/pfGmMarker.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfGameMgr/Marker/pfGmMarker.h => Sources/Plasma/FeatureLib/pfGameMgr/Marker/pfGmMarker.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfGameMgr/Pch.h => Sources/Plasma/FeatureLib/pfGameMgr/Pch.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfGameMgr/TicTacToe/pfGmTicTacToe.cpp => Sources/Plasma/FeatureLib/pfGameMgr/TicTacToe/pfGmTicTacToe.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfGameMgr/TicTacToe/pfGmTicTacToe.h => Sources/Plasma/FeatureLib/pfGameMgr/TicTacToe/pfGmTicTacToe.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfGameMgr/VarSync/pfGmVarSync.cpp => Sources/Plasma/FeatureLib/pfGameMgr/VarSync/pfGmVarSync.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfGameMgr/VarSync/pfGmVarSync.h => Sources/Plasma/FeatureLib/pfGameMgr/VarSync/pfGmVarSync.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfGameMgr/pfGameMgr.cpp => Sources/Plasma/FeatureLib/pfGameMgr/pfGameMgr.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfGameMgr/pfGameMgr.h => Sources/Plasma/FeatureLib/pfGameMgr/pfGameMgr.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfGameMgr/pfGameMgrCreatables.h => Sources/Plasma/FeatureLib/pfGameMgr/pfGameMgrCreatables.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfGameScoreMgr/CMakeLists.txt => Sources/Plasma/FeatureLib/pfGameScoreMgr/CMakeLists.txt rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfGameScoreMgr/pfGameScoreMgr.cpp => Sources/Plasma/FeatureLib/pfGameScoreMgr/pfGameScoreMgr.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfGameScoreMgr/pfGameScoreMgr.h => Sources/Plasma/FeatureLib/pfGameScoreMgr/pfGameScoreMgr.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfJournalBook/CMakeLists.txt => Sources/Plasma/FeatureLib/pfJournalBook/CMakeLists.txt rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfJournalBook/pfJournalBook.cpp => Sources/Plasma/FeatureLib/pfJournalBook/pfJournalBook.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfJournalBook/pfJournalBook.h => Sources/Plasma/FeatureLib/pfJournalBook/pfJournalBook.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfJournalBook/pfJournalBookCreatable.h => Sources/Plasma/FeatureLib/pfJournalBook/pfJournalBookCreatable.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfKI/pfKI.cpp => Sources/Plasma/FeatureLib/pfKI/pfKI.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfKI/pfKI.h => Sources/Plasma/FeatureLib/pfKI/pfKI.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfKI/pfKICreatable.h => Sources/Plasma/FeatureLib/pfKI/pfKICreatable.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfKI/pfPlayerBookMod.cpp => Sources/Plasma/FeatureLib/pfKI/pfPlayerBookMod.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfKI/pfPlayerBookMod.h => Sources/Plasma/FeatureLib/pfKI/pfPlayerBookMod.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfLocalizationMgr/CMakeLists.txt => Sources/Plasma/FeatureLib/pfLocalizationMgr/CMakeLists.txt rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfLocalizationMgr/pfLocalizationDataMgr.cpp => Sources/Plasma/FeatureLib/pfLocalizationMgr/pfLocalizationDataMgr.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfLocalizationMgr/pfLocalizationDataMgr.h => Sources/Plasma/FeatureLib/pfLocalizationMgr/pfLocalizationDataMgr.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfLocalizationMgr/pfLocalizationMgr.cpp => Sources/Plasma/FeatureLib/pfLocalizationMgr/pfLocalizationMgr.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfLocalizationMgr/pfLocalizationMgr.h => Sources/Plasma/FeatureLib/pfLocalizationMgr/pfLocalizationMgr.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfLocalizationMgr/pfLocalizedString.cpp => Sources/Plasma/FeatureLib/pfLocalizationMgr/pfLocalizedString.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfLocalizationMgr/pfLocalizedString.h => Sources/Plasma/FeatureLib/pfLocalizationMgr/pfLocalizedString.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfLoginDialog/CMakeLists.txt => Sources/Plasma/FeatureLib/pfLoginDialog/CMakeLists.txt rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfLoginDialog/pfLoginDialog.rc => Sources/Plasma/FeatureLib/pfLoginDialog/pfLoginDialog.rc rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfLoginDialog/plLoginDialog.cpp => Sources/Plasma/FeatureLib/pfLoginDialog/plLoginDialog.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfLoginDialog/plLoginDialog.h => Sources/Plasma/FeatureLib/pfLoginDialog/plLoginDialog.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfLoginDialog/resource.h => Sources/Plasma/FeatureLib/pfLoginDialog/resource.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfMessage/CMakeLists.txt => Sources/Plasma/FeatureLib/pfMessage/CMakeLists.txt rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfMessage/pfBackdoorMsg.h => Sources/Plasma/FeatureLib/pfMessage/pfBackdoorMsg.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfMessage/pfGUINotifyMsg.h => Sources/Plasma/FeatureLib/pfMessage/pfGUINotifyMsg.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfMessage/pfGameGUIMsg.h => Sources/Plasma/FeatureLib/pfMessage/pfGameGUIMsg.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfMessage/pfKIMsg.cpp => Sources/Plasma/FeatureLib/pfMessage/pfKIMsg.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfMessage/pfKIMsg.h => Sources/Plasma/FeatureLib/pfMessage/pfKIMsg.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfMessage/pfMarkerMsg.cpp => Sources/Plasma/FeatureLib/pfMessage/pfMarkerMsg.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfMessage/pfMarkerMsg.h => Sources/Plasma/FeatureLib/pfMessage/pfMarkerMsg.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfMessage/pfMessageCreatable.h => Sources/Plasma/FeatureLib/pfMessage/pfMessageCreatable.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfMessage/pfMovieEventMsg.cpp => Sources/Plasma/FeatureLib/pfMessage/pfMovieEventMsg.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfMessage/pfMovieEventMsg.h => Sources/Plasma/FeatureLib/pfMessage/pfMovieEventMsg.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfMessage/plArmatureEffectMsg.cpp => Sources/Plasma/FeatureLib/pfMessage/plArmatureEffectMsg.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfMessage/plArmatureEffectMsg.h => Sources/Plasma/FeatureLib/pfMessage/plArmatureEffectMsg.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfMessage/plClothingMsg.cpp => Sources/Plasma/FeatureLib/pfMessage/plClothingMsg.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfMessage/plClothingMsg.h => Sources/Plasma/FeatureLib/pfMessage/plClothingMsg.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfPython/CMakeLists.txt => Sources/Plasma/FeatureLib/pfPython/CMakeLists.txt rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfPython/Games/BlueSpiral/pyBlueSpiralGame.cpp => Sources/Plasma/FeatureLib/pfPython/Games/BlueSpiral/pyBlueSpiralGame.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfPython/Games/BlueSpiral/pyBlueSpiralGame.h => Sources/Plasma/FeatureLib/pfPython/Games/BlueSpiral/pyBlueSpiralGame.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfPython/Games/BlueSpiral/pyBlueSpiralGameGlue.cpp => Sources/Plasma/FeatureLib/pfPython/Games/BlueSpiral/pyBlueSpiralGameGlue.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfPython/Games/BlueSpiral/pyBlueSpiralMsg.cpp => Sources/Plasma/FeatureLib/pfPython/Games/BlueSpiral/pyBlueSpiralMsg.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfPython/Games/BlueSpiral/pyBlueSpiralMsg.h => Sources/Plasma/FeatureLib/pfPython/Games/BlueSpiral/pyBlueSpiralMsg.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfPython/Games/BlueSpiral/pyBlueSpiralMsgGlue.cpp => Sources/Plasma/FeatureLib/pfPython/Games/BlueSpiral/pyBlueSpiralMsgGlue.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfPython/Games/ClimbingWall/pyClimbingWallGame.cpp => Sources/Plasma/FeatureLib/pfPython/Games/ClimbingWall/pyClimbingWallGame.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfPython/Games/ClimbingWall/pyClimbingWallGame.h => Sources/Plasma/FeatureLib/pfPython/Games/ClimbingWall/pyClimbingWallGame.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfPython/Games/ClimbingWall/pyClimbingWallGameGlue.cpp => Sources/Plasma/FeatureLib/pfPython/Games/ClimbingWall/pyClimbingWallGameGlue.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfPython/Games/ClimbingWall/pyClimbingWallMsg.cpp => Sources/Plasma/FeatureLib/pfPython/Games/ClimbingWall/pyClimbingWallMsg.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfPython/Games/ClimbingWall/pyClimbingWallMsg.h => Sources/Plasma/FeatureLib/pfPython/Games/ClimbingWall/pyClimbingWallMsg.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfPython/Games/ClimbingWall/pyClimbingWallMsgGlue.cpp => Sources/Plasma/FeatureLib/pfPython/Games/ClimbingWall/pyClimbingWallMsgGlue.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfPython/Games/Heek/pyHeekGame.cpp => Sources/Plasma/FeatureLib/pfPython/Games/Heek/pyHeekGame.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfPython/Games/Heek/pyHeekGame.h => Sources/Plasma/FeatureLib/pfPython/Games/Heek/pyHeekGame.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfPython/Games/Heek/pyHeekGameGlue.cpp => Sources/Plasma/FeatureLib/pfPython/Games/Heek/pyHeekGameGlue.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfPython/Games/Heek/pyHeekMsg.cpp => Sources/Plasma/FeatureLib/pfPython/Games/Heek/pyHeekMsg.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfPython/Games/Heek/pyHeekMsg.h => Sources/Plasma/FeatureLib/pfPython/Games/Heek/pyHeekMsg.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfPython/Games/Heek/pyHeekMsgGlue.cpp => Sources/Plasma/FeatureLib/pfPython/Games/Heek/pyHeekMsgGlue.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfPython/Games/Marker/pyMarkerGame.cpp => Sources/Plasma/FeatureLib/pfPython/Games/Marker/pyMarkerGame.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfPython/Games/Marker/pyMarkerGame.h => Sources/Plasma/FeatureLib/pfPython/Games/Marker/pyMarkerGame.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfPython/Games/Marker/pyMarkerGameGlue.cpp => Sources/Plasma/FeatureLib/pfPython/Games/Marker/pyMarkerGameGlue.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfPython/Games/Marker/pyMarkerMsg.cpp => Sources/Plasma/FeatureLib/pfPython/Games/Marker/pyMarkerMsg.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfPython/Games/Marker/pyMarkerMsg.h => Sources/Plasma/FeatureLib/pfPython/Games/Marker/pyMarkerMsg.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfPython/Games/Marker/pyMarkerMsgGlue.cpp => Sources/Plasma/FeatureLib/pfPython/Games/Marker/pyMarkerMsgGlue.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfPython/Games/TicTacToe/pyTTTGame.cpp => Sources/Plasma/FeatureLib/pfPython/Games/TicTacToe/pyTTTGame.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfPython/Games/TicTacToe/pyTTTGame.h => Sources/Plasma/FeatureLib/pfPython/Games/TicTacToe/pyTTTGame.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfPython/Games/TicTacToe/pyTTTGameGlue.cpp => Sources/Plasma/FeatureLib/pfPython/Games/TicTacToe/pyTTTGameGlue.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfPython/Games/TicTacToe/pyTTTMsg.cpp => Sources/Plasma/FeatureLib/pfPython/Games/TicTacToe/pyTTTMsg.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfPython/Games/TicTacToe/pyTTTMsg.h => Sources/Plasma/FeatureLib/pfPython/Games/TicTacToe/pyTTTMsg.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfPython/Games/TicTacToe/pyTTTMsgGlue.cpp => Sources/Plasma/FeatureLib/pfPython/Games/TicTacToe/pyTTTMsgGlue.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfPython/Games/VarSync/pyVarSyncGame.cpp => Sources/Plasma/FeatureLib/pfPython/Games/VarSync/pyVarSyncGame.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfPython/Games/VarSync/pyVarSyncGame.h => Sources/Plasma/FeatureLib/pfPython/Games/VarSync/pyVarSyncGame.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfPython/Games/VarSync/pyVarSyncGameGlue.cpp => Sources/Plasma/FeatureLib/pfPython/Games/VarSync/pyVarSyncGameGlue.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfPython/Games/VarSync/pyVarSyncMsg.cpp => Sources/Plasma/FeatureLib/pfPython/Games/VarSync/pyVarSyncMsg.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfPython/Games/VarSync/pyVarSyncMsg.h => Sources/Plasma/FeatureLib/pfPython/Games/VarSync/pyVarSyncMsg.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfPython/Games/VarSync/pyVarSyncMsgGlue.cpp => Sources/Plasma/FeatureLib/pfPython/Games/VarSync/pyVarSyncMsgGlue.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfPython/Games/pyGameCli.cpp => Sources/Plasma/FeatureLib/pfPython/Games/pyGameCli.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfPython/Games/pyGameCli.h => Sources/Plasma/FeatureLib/pfPython/Games/pyGameCli.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfPython/Games/pyGameCliGlue.cpp => Sources/Plasma/FeatureLib/pfPython/Games/pyGameCliGlue.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfPython/Games/pyGameCliMsg.cpp => Sources/Plasma/FeatureLib/pfPython/Games/pyGameCliMsg.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfPython/Games/pyGameCliMsg.h => Sources/Plasma/FeatureLib/pfPython/Games/pyGameCliMsg.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfPython/Games/pyGameCliMsgGlue.cpp => Sources/Plasma/FeatureLib/pfPython/Games/pyGameCliMsgGlue.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfPython/Games/pyGameMgrMsg.cpp => Sources/Plasma/FeatureLib/pfPython/Games/pyGameMgrMsg.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfPython/Games/pyGameMgrMsg.h => Sources/Plasma/FeatureLib/pfPython/Games/pyGameMgrMsg.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfPython/Games/pyGameMgrMsgGlue.cpp => Sources/Plasma/FeatureLib/pfPython/Games/pyGameMgrMsgGlue.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfPython/cyAccountManagement.cpp => Sources/Plasma/FeatureLib/pfPython/cyAccountManagement.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfPython/cyAccountManagement.h => Sources/Plasma/FeatureLib/pfPython/cyAccountManagement.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfPython/cyAccountManagementGlue.cpp => Sources/Plasma/FeatureLib/pfPython/cyAccountManagementGlue.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfPython/cyAnimation.cpp => Sources/Plasma/FeatureLib/pfPython/cyAnimation.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfPython/cyAnimation.h => Sources/Plasma/FeatureLib/pfPython/cyAnimation.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfPython/cyAnimationGlue.cpp => Sources/Plasma/FeatureLib/pfPython/cyAnimationGlue.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfPython/cyAvatar.cpp => Sources/Plasma/FeatureLib/pfPython/cyAvatar.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfPython/cyAvatar.h => Sources/Plasma/FeatureLib/pfPython/cyAvatar.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfPython/cyAvatarGlue.cpp => Sources/Plasma/FeatureLib/pfPython/cyAvatarGlue.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfPython/cyCamera.cpp => Sources/Plasma/FeatureLib/pfPython/cyCamera.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfPython/cyCamera.h => Sources/Plasma/FeatureLib/pfPython/cyCamera.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfPython/cyCameraGlue.cpp => Sources/Plasma/FeatureLib/pfPython/cyCameraGlue.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfPython/cyDraw.cpp => Sources/Plasma/FeatureLib/pfPython/cyDraw.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfPython/cyDraw.h => Sources/Plasma/FeatureLib/pfPython/cyDraw.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfPython/cyDrawGlue.cpp => Sources/Plasma/FeatureLib/pfPython/cyDrawGlue.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfPython/cyInputInterface.cpp => Sources/Plasma/FeatureLib/pfPython/cyInputInterface.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfPython/cyInputInterface.h => Sources/Plasma/FeatureLib/pfPython/cyInputInterface.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfPython/cyInputInterfaceGlue.cpp => Sources/Plasma/FeatureLib/pfPython/cyInputInterfaceGlue.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfPython/cyMisc.cpp => Sources/Plasma/FeatureLib/pfPython/cyMisc.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfPython/cyMisc.h => Sources/Plasma/FeatureLib/pfPython/cyMisc.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfPython/cyMiscGlue.cpp => Sources/Plasma/FeatureLib/pfPython/cyMiscGlue.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfPython/cyMiscGlue2.cpp => Sources/Plasma/FeatureLib/pfPython/cyMiscGlue2.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfPython/cyMiscGlue3.cpp => Sources/Plasma/FeatureLib/pfPython/cyMiscGlue3.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfPython/cyMiscGlue4.cpp => Sources/Plasma/FeatureLib/pfPython/cyMiscGlue4.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfPython/cyParticleSys.cpp => Sources/Plasma/FeatureLib/pfPython/cyParticleSys.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfPython/cyParticleSys.h => Sources/Plasma/FeatureLib/pfPython/cyParticleSys.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfPython/cyParticleSysGlue.cpp => Sources/Plasma/FeatureLib/pfPython/cyParticleSysGlue.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfPython/cyPhysics.cpp => Sources/Plasma/FeatureLib/pfPython/cyPhysics.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfPython/cyPhysics.h => Sources/Plasma/FeatureLib/pfPython/cyPhysics.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfPython/cyPhysicsGlue.cpp => Sources/Plasma/FeatureLib/pfPython/cyPhysicsGlue.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfPython/cyPythonInterface.cpp => Sources/Plasma/FeatureLib/pfPython/cyPythonInterface.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfPython/cyPythonInterface.h => Sources/Plasma/FeatureLib/pfPython/cyPythonInterface.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfPython/pfPythonCreatable.h => Sources/Plasma/FeatureLib/pfPython/pfPythonCreatable.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfPython/plPythonFileMod.cpp => Sources/Plasma/FeatureLib/pfPython/plPythonFileMod.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfPython/plPythonFileMod.h => Sources/Plasma/FeatureLib/pfPython/plPythonFileMod.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfPython/plPythonHelpers.h => Sources/Plasma/FeatureLib/pfPython/plPythonHelpers.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfPython/plPythonPack.cpp => Sources/Plasma/FeatureLib/pfPython/plPythonPack.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfPython/plPythonPack.h => Sources/Plasma/FeatureLib/pfPython/plPythonPack.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfPython/plPythonParameter.h => Sources/Plasma/FeatureLib/pfPython/plPythonParameter.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfPython/plPythonSDLModifier.cpp => Sources/Plasma/FeatureLib/pfPython/plPythonSDLModifier.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfPython/plPythonSDLModifier.h => Sources/Plasma/FeatureLib/pfPython/plPythonSDLModifier.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfPython/plPythonSDLModifierGlue.cpp => Sources/Plasma/FeatureLib/pfPython/plPythonSDLModifierGlue.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfPython/pyAgeInfoStruct.cpp => Sources/Plasma/FeatureLib/pfPython/pyAgeInfoStruct.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfPython/pyAgeInfoStruct.h => Sources/Plasma/FeatureLib/pfPython/pyAgeInfoStruct.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfPython/pyAgeInfoStructGlue.cpp => Sources/Plasma/FeatureLib/pfPython/pyAgeInfoStructGlue.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfPython/pyAgeLinkStruct.cpp => Sources/Plasma/FeatureLib/pfPython/pyAgeLinkStruct.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfPython/pyAgeLinkStruct.h => Sources/Plasma/FeatureLib/pfPython/pyAgeLinkStruct.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfPython/pyAgeLinkStructGlue.cpp => Sources/Plasma/FeatureLib/pfPython/pyAgeLinkStructGlue.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfPython/pyAgeVault.cpp => Sources/Plasma/FeatureLib/pfPython/pyAgeVault.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfPython/pyAgeVault.h => Sources/Plasma/FeatureLib/pfPython/pyAgeVault.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfPython/pyAgeVaultGlue.cpp => Sources/Plasma/FeatureLib/pfPython/pyAgeVaultGlue.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfPython/pyAlarm.cpp => Sources/Plasma/FeatureLib/pfPython/pyAlarm.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfPython/pyAlarm.h => Sources/Plasma/FeatureLib/pfPython/pyAlarm.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfPython/pyAudioControl.cpp => Sources/Plasma/FeatureLib/pfPython/pyAudioControl.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfPython/pyAudioControl.h => Sources/Plasma/FeatureLib/pfPython/pyAudioControl.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfPython/pyAudioControlGlue.cpp => Sources/Plasma/FeatureLib/pfPython/pyAudioControlGlue.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfPython/pyCCRMgr.cpp => Sources/Plasma/FeatureLib/pfPython/pyCCRMgr.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfPython/pyCCRMgr.h => Sources/Plasma/FeatureLib/pfPython/pyCCRMgr.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfPython/pyCCRMgrGlue.cpp => Sources/Plasma/FeatureLib/pfPython/pyCCRMgrGlue.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfPython/pyCCRMgrGlue2.cpp => Sources/Plasma/FeatureLib/pfPython/pyCCRMgrGlue2.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfPython/pyCluster.cpp => Sources/Plasma/FeatureLib/pfPython/pyCluster.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfPython/pyCluster.h => Sources/Plasma/FeatureLib/pfPython/pyCluster.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfPython/pyClusterGlue.cpp => Sources/Plasma/FeatureLib/pfPython/pyClusterGlue.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfPython/pyColor.cpp => Sources/Plasma/FeatureLib/pfPython/pyColor.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfPython/pyColor.h => Sources/Plasma/FeatureLib/pfPython/pyColor.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfPython/pyColorGlue.cpp => Sources/Plasma/FeatureLib/pfPython/pyColorGlue.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfPython/pyCritterBrain.cpp => Sources/Plasma/FeatureLib/pfPython/pyCritterBrain.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfPython/pyCritterBrain.h => Sources/Plasma/FeatureLib/pfPython/pyCritterBrain.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfPython/pyCritterBrainGlue.cpp => Sources/Plasma/FeatureLib/pfPython/pyCritterBrainGlue.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfPython/pyDniCoordinates.cpp => Sources/Plasma/FeatureLib/pfPython/pyDniCoordinates.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfPython/pyDniCoordinates.h => Sources/Plasma/FeatureLib/pfPython/pyDniCoordinates.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfPython/pyDniCoordinatesGlue.cpp => Sources/Plasma/FeatureLib/pfPython/pyDniCoordinatesGlue.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfPython/pyDniInfoSource.cpp => Sources/Plasma/FeatureLib/pfPython/pyDniInfoSource.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfPython/pyDniInfoSource.h => Sources/Plasma/FeatureLib/pfPython/pyDniInfoSource.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfPython/pyDniInfoSourceGlue.cpp => Sources/Plasma/FeatureLib/pfPython/pyDniInfoSourceGlue.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfPython/pyDrawControl.cpp => Sources/Plasma/FeatureLib/pfPython/pyDrawControl.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfPython/pyDrawControl.h => Sources/Plasma/FeatureLib/pfPython/pyDrawControl.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfPython/pyDrawControlGlue.cpp => Sources/Plasma/FeatureLib/pfPython/pyDrawControlGlue.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfPython/pyDynamicText.cpp => Sources/Plasma/FeatureLib/pfPython/pyDynamicText.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfPython/pyDynamicText.h => Sources/Plasma/FeatureLib/pfPython/pyDynamicText.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfPython/pyDynamicTextGlue.cpp => Sources/Plasma/FeatureLib/pfPython/pyDynamicTextGlue.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfPython/pyEnum.cpp => Sources/Plasma/FeatureLib/pfPython/pyEnum.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfPython/pyEnum.h => Sources/Plasma/FeatureLib/pfPython/pyEnum.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfPython/pyGUIControl.cpp => Sources/Plasma/FeatureLib/pfPython/pyGUIControl.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfPython/pyGUIControl.h => Sources/Plasma/FeatureLib/pfPython/pyGUIControl.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfPython/pyGUIControlButton.cpp => Sources/Plasma/FeatureLib/pfPython/pyGUIControlButton.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfPython/pyGUIControlButton.h => Sources/Plasma/FeatureLib/pfPython/pyGUIControlButton.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfPython/pyGUIControlButtonGlue.cpp => Sources/Plasma/FeatureLib/pfPython/pyGUIControlButtonGlue.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfPython/pyGUIControlCheckBox.cpp => Sources/Plasma/FeatureLib/pfPython/pyGUIControlCheckBox.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfPython/pyGUIControlCheckBox.h => Sources/Plasma/FeatureLib/pfPython/pyGUIControlCheckBox.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfPython/pyGUIControlCheckBoxGlue.cpp => Sources/Plasma/FeatureLib/pfPython/pyGUIControlCheckBoxGlue.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfPython/pyGUIControlClickMap.cpp => Sources/Plasma/FeatureLib/pfPython/pyGUIControlClickMap.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfPython/pyGUIControlClickMap.h => Sources/Plasma/FeatureLib/pfPython/pyGUIControlClickMap.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfPython/pyGUIControlClickMapGlue.cpp => Sources/Plasma/FeatureLib/pfPython/pyGUIControlClickMapGlue.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfPython/pyGUIControlDragBar.cpp => Sources/Plasma/FeatureLib/pfPython/pyGUIControlDragBar.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfPython/pyGUIControlDragBar.h => Sources/Plasma/FeatureLib/pfPython/pyGUIControlDragBar.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfPython/pyGUIControlDragBarGlue.cpp => Sources/Plasma/FeatureLib/pfPython/pyGUIControlDragBarGlue.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfPython/pyGUIControlDraggable.cpp => Sources/Plasma/FeatureLib/pfPython/pyGUIControlDraggable.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfPython/pyGUIControlDraggable.h => Sources/Plasma/FeatureLib/pfPython/pyGUIControlDraggable.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfPython/pyGUIControlDraggableGlue.cpp => Sources/Plasma/FeatureLib/pfPython/pyGUIControlDraggableGlue.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfPython/pyGUIControlDynamicText.cpp => Sources/Plasma/FeatureLib/pfPython/pyGUIControlDynamicText.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfPython/pyGUIControlDynamicText.h => Sources/Plasma/FeatureLib/pfPython/pyGUIControlDynamicText.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfPython/pyGUIControlDynamicTextGlue.cpp => Sources/Plasma/FeatureLib/pfPython/pyGUIControlDynamicTextGlue.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfPython/pyGUIControlEditBox.cpp => Sources/Plasma/FeatureLib/pfPython/pyGUIControlEditBox.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfPython/pyGUIControlEditBox.h => Sources/Plasma/FeatureLib/pfPython/pyGUIControlEditBox.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfPython/pyGUIControlEditBoxGlue.cpp => Sources/Plasma/FeatureLib/pfPython/pyGUIControlEditBoxGlue.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfPython/pyGUIControlGlue.cpp => Sources/Plasma/FeatureLib/pfPython/pyGUIControlGlue.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfPython/pyGUIControlListBox.cpp => Sources/Plasma/FeatureLib/pfPython/pyGUIControlListBox.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfPython/pyGUIControlListBox.h => Sources/Plasma/FeatureLib/pfPython/pyGUIControlListBox.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfPython/pyGUIControlListBoxGlue.cpp => Sources/Plasma/FeatureLib/pfPython/pyGUIControlListBoxGlue.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfPython/pyGUIControlMultiLineEdit.cpp => Sources/Plasma/FeatureLib/pfPython/pyGUIControlMultiLineEdit.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfPython/pyGUIControlMultiLineEdit.h => Sources/Plasma/FeatureLib/pfPython/pyGUIControlMultiLineEdit.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfPython/pyGUIControlMultiLineEditGlue.cpp => Sources/Plasma/FeatureLib/pfPython/pyGUIControlMultiLineEditGlue.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfPython/pyGUIControlRadioGroup.cpp => Sources/Plasma/FeatureLib/pfPython/pyGUIControlRadioGroup.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfPython/pyGUIControlRadioGroup.h => Sources/Plasma/FeatureLib/pfPython/pyGUIControlRadioGroup.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfPython/pyGUIControlRadioGroupGlue.cpp => Sources/Plasma/FeatureLib/pfPython/pyGUIControlRadioGroupGlue.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfPython/pyGUIControlTextBox.cpp => Sources/Plasma/FeatureLib/pfPython/pyGUIControlTextBox.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfPython/pyGUIControlTextBox.h => Sources/Plasma/FeatureLib/pfPython/pyGUIControlTextBox.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfPython/pyGUIControlTextBoxGlue.cpp => Sources/Plasma/FeatureLib/pfPython/pyGUIControlTextBoxGlue.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfPython/pyGUIControlValue.cpp => Sources/Plasma/FeatureLib/pfPython/pyGUIControlValue.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfPython/pyGUIControlValue.h => Sources/Plasma/FeatureLib/pfPython/pyGUIControlValue.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfPython/pyGUIControlValueGlue.cpp => Sources/Plasma/FeatureLib/pfPython/pyGUIControlValueGlue.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfPython/pyGUIDialog.cpp => Sources/Plasma/FeatureLib/pfPython/pyGUIDialog.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfPython/pyGUIDialog.h => Sources/Plasma/FeatureLib/pfPython/pyGUIDialog.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfPython/pyGUIDialogGlue.cpp => Sources/Plasma/FeatureLib/pfPython/pyGUIDialogGlue.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfPython/pyGUIPopUpMenu.cpp => Sources/Plasma/FeatureLib/pfPython/pyGUIPopUpMenu.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfPython/pyGUIPopUpMenu.h => Sources/Plasma/FeatureLib/pfPython/pyGUIPopUpMenu.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfPython/pyGUIPopUpMenuGlue.cpp => Sources/Plasma/FeatureLib/pfPython/pyGUIPopUpMenuGlue.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfPython/pyGUISkin.cpp => Sources/Plasma/FeatureLib/pfPython/pyGUISkin.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfPython/pyGUISkin.h => Sources/Plasma/FeatureLib/pfPython/pyGUISkin.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfPython/pyGUISkinGlue.cpp => Sources/Plasma/FeatureLib/pfPython/pyGUISkinGlue.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfPython/pyGameScore.cpp => Sources/Plasma/FeatureLib/pfPython/pyGameScore.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfPython/pyGameScore.h => Sources/Plasma/FeatureLib/pfPython/pyGameScore.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfPython/pyGameScoreGlue.cpp => Sources/Plasma/FeatureLib/pfPython/pyGameScoreGlue.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfPython/pyGeometry3.cpp => Sources/Plasma/FeatureLib/pfPython/pyGeometry3.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfPython/pyGeometry3.h => Sources/Plasma/FeatureLib/pfPython/pyGeometry3.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfPython/pyGeometry3Glue.cpp => Sources/Plasma/FeatureLib/pfPython/pyGeometry3Glue.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfPython/pyGlueHelpers.h => Sources/Plasma/FeatureLib/pfPython/pyGlueHelpers.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfPython/pyGrassShader.cpp => Sources/Plasma/FeatureLib/pfPython/pyGrassShader.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfPython/pyGrassShader.h => Sources/Plasma/FeatureLib/pfPython/pyGrassShader.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfPython/pyGrassShaderGlue.cpp => Sources/Plasma/FeatureLib/pfPython/pyGrassShaderGlue.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfPython/pyImage.cpp => Sources/Plasma/FeatureLib/pfPython/pyImage.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfPython/pyImage.h => Sources/Plasma/FeatureLib/pfPython/pyImage.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfPython/pyImageGlue.cpp => Sources/Plasma/FeatureLib/pfPython/pyImageGlue.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfPython/pyJournalBook.cpp => Sources/Plasma/FeatureLib/pfPython/pyJournalBook.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfPython/pyJournalBook.h => Sources/Plasma/FeatureLib/pfPython/pyJournalBook.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfPython/pyJournalBookGlue.cpp => Sources/Plasma/FeatureLib/pfPython/pyJournalBookGlue.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfPython/pyKey.cpp => Sources/Plasma/FeatureLib/pfPython/pyKey.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfPython/pyKey.h => Sources/Plasma/FeatureLib/pfPython/pyKey.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfPython/pyKeyGlue.cpp => Sources/Plasma/FeatureLib/pfPython/pyKeyGlue.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfPython/pyKeyMap.cpp => Sources/Plasma/FeatureLib/pfPython/pyKeyMap.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfPython/pyKeyMap.h => Sources/Plasma/FeatureLib/pfPython/pyKeyMap.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfPython/pyKeyMapGlue.cpp => Sources/Plasma/FeatureLib/pfPython/pyKeyMapGlue.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfPython/pyMarkerMgr.cpp => Sources/Plasma/FeatureLib/pfPython/pyMarkerMgr.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfPython/pyMarkerMgr.h => Sources/Plasma/FeatureLib/pfPython/pyMarkerMgr.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfPython/pyMarkerMgrGlue.cpp => Sources/Plasma/FeatureLib/pfPython/pyMarkerMgrGlue.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfPython/pyMatrix44.cpp => Sources/Plasma/FeatureLib/pfPython/pyMatrix44.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfPython/pyMatrix44.h => Sources/Plasma/FeatureLib/pfPython/pyMatrix44.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfPython/pyMatrix44Glue.cpp => Sources/Plasma/FeatureLib/pfPython/pyMatrix44Glue.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfPython/pyMoviePlayer.cpp => Sources/Plasma/FeatureLib/pfPython/pyMoviePlayer.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfPython/pyMoviePlayer.h => Sources/Plasma/FeatureLib/pfPython/pyMoviePlayer.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfPython/pyMoviePlayerGlue.cpp => Sources/Plasma/FeatureLib/pfPython/pyMoviePlayerGlue.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfPython/pyNetLinkingMgr.cpp => Sources/Plasma/FeatureLib/pfPython/pyNetLinkingMgr.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfPython/pyNetLinkingMgr.h => Sources/Plasma/FeatureLib/pfPython/pyNetLinkingMgr.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfPython/pyNetLinkingMgrGlue.cpp => Sources/Plasma/FeatureLib/pfPython/pyNetLinkingMgrGlue.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfPython/pyNetServerSessionInfo.cpp => Sources/Plasma/FeatureLib/pfPython/pyNetServerSessionInfo.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfPython/pyNetServerSessionInfo.h => Sources/Plasma/FeatureLib/pfPython/pyNetServerSessionInfo.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfPython/pyNetServerSessionInfoGlue.cpp => Sources/Plasma/FeatureLib/pfPython/pyNetServerSessionInfoGlue.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfPython/pyNotify.cpp => Sources/Plasma/FeatureLib/pfPython/pyNotify.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfPython/pyNotify.h => Sources/Plasma/FeatureLib/pfPython/pyNotify.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfPython/pyNotifyGlue.cpp => Sources/Plasma/FeatureLib/pfPython/pyNotifyGlue.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfPython/pyPlayer.cpp => Sources/Plasma/FeatureLib/pfPython/pyPlayer.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfPython/pyPlayer.h => Sources/Plasma/FeatureLib/pfPython/pyPlayer.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfPython/pyPlayerGlue.cpp => Sources/Plasma/FeatureLib/pfPython/pyPlayerGlue.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfPython/pySDL.cpp => Sources/Plasma/FeatureLib/pfPython/pySDL.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfPython/pySDL.h => Sources/Plasma/FeatureLib/pfPython/pySDL.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfPython/pySDLGlue.cpp => Sources/Plasma/FeatureLib/pfPython/pySDLGlue.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfPython/pySceneObject.cpp => Sources/Plasma/FeatureLib/pfPython/pySceneObject.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfPython/pySceneObject.h => Sources/Plasma/FeatureLib/pfPython/pySceneObject.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfPython/pySceneObjectGlue.cpp => Sources/Plasma/FeatureLib/pfPython/pySceneObjectGlue.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfPython/pyScoreMgr.cpp => Sources/Plasma/FeatureLib/pfPython/pyScoreMgr.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfPython/pyScoreMgr.h => Sources/Plasma/FeatureLib/pfPython/pyScoreMgr.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfPython/pyScoreMgrGlue.cpp => Sources/Plasma/FeatureLib/pfPython/pyScoreMgrGlue.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfPython/pySpawnPointInfo.cpp => Sources/Plasma/FeatureLib/pfPython/pySpawnPointInfo.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfPython/pySpawnPointInfo.h => Sources/Plasma/FeatureLib/pfPython/pySpawnPointInfo.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfPython/pySpawnPointInfoGlue.cpp => Sources/Plasma/FeatureLib/pfPython/pySpawnPointInfoGlue.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfPython/pyStatusLog.cpp => Sources/Plasma/FeatureLib/pfPython/pyStatusLog.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfPython/pyStatusLog.h => Sources/Plasma/FeatureLib/pfPython/pyStatusLog.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfPython/pyStatusLogGlue.cpp => Sources/Plasma/FeatureLib/pfPython/pyStatusLogGlue.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfPython/pyStream.cpp => Sources/Plasma/FeatureLib/pfPython/pyStream.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfPython/pyStream.h => Sources/Plasma/FeatureLib/pfPython/pyStream.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfPython/pyStreamGlue.cpp => Sources/Plasma/FeatureLib/pfPython/pyStreamGlue.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfPython/pySwimCurrentInterface.cpp => Sources/Plasma/FeatureLib/pfPython/pySwimCurrentInterface.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfPython/pySwimCurrentInterface.h => Sources/Plasma/FeatureLib/pfPython/pySwimCurrentInterface.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfPython/pySwimCurrentInterfaceGlue.cpp => Sources/Plasma/FeatureLib/pfPython/pySwimCurrentInterfaceGlue.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfPython/pyVault.cpp => Sources/Plasma/FeatureLib/pfPython/pyVault.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfPython/pyVault.h => Sources/Plasma/FeatureLib/pfPython/pyVault.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfPython/pyVaultAgeInfoListNode.cpp => Sources/Plasma/FeatureLib/pfPython/pyVaultAgeInfoListNode.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfPython/pyVaultAgeInfoListNode.h => Sources/Plasma/FeatureLib/pfPython/pyVaultAgeInfoListNode.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfPython/pyVaultAgeInfoListNodeGlue.cpp => Sources/Plasma/FeatureLib/pfPython/pyVaultAgeInfoListNodeGlue.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfPython/pyVaultAgeInfoNode.cpp => Sources/Plasma/FeatureLib/pfPython/pyVaultAgeInfoNode.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfPython/pyVaultAgeInfoNode.h => Sources/Plasma/FeatureLib/pfPython/pyVaultAgeInfoNode.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfPython/pyVaultAgeInfoNodeGlue.cpp => Sources/Plasma/FeatureLib/pfPython/pyVaultAgeInfoNodeGlue.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfPython/pyVaultAgeLinkNode.cpp => Sources/Plasma/FeatureLib/pfPython/pyVaultAgeLinkNode.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfPython/pyVaultAgeLinkNode.h => Sources/Plasma/FeatureLib/pfPython/pyVaultAgeLinkNode.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfPython/pyVaultAgeLinkNodeGlue.cpp => Sources/Plasma/FeatureLib/pfPython/pyVaultAgeLinkNodeGlue.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfPython/pyVaultChronicleNode.cpp => Sources/Plasma/FeatureLib/pfPython/pyVaultChronicleNode.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfPython/pyVaultChronicleNode.h => Sources/Plasma/FeatureLib/pfPython/pyVaultChronicleNode.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfPython/pyVaultChronicleNodeGlue.cpp => Sources/Plasma/FeatureLib/pfPython/pyVaultChronicleNodeGlue.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfPython/pyVaultFolderNode.cpp => Sources/Plasma/FeatureLib/pfPython/pyVaultFolderNode.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfPython/pyVaultFolderNode.h => Sources/Plasma/FeatureLib/pfPython/pyVaultFolderNode.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfPython/pyVaultFolderNodeGlue.cpp => Sources/Plasma/FeatureLib/pfPython/pyVaultFolderNodeGlue.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfPython/pyVaultGlue.cpp => Sources/Plasma/FeatureLib/pfPython/pyVaultGlue.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfPython/pyVaultImageNode.cpp => Sources/Plasma/FeatureLib/pfPython/pyVaultImageNode.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfPython/pyVaultImageNode.h => Sources/Plasma/FeatureLib/pfPython/pyVaultImageNode.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfPython/pyVaultImageNodeGlue.cpp => Sources/Plasma/FeatureLib/pfPython/pyVaultImageNodeGlue.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfPython/pyVaultMarkerGameNode.cpp => Sources/Plasma/FeatureLib/pfPython/pyVaultMarkerGameNode.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfPython/pyVaultMarkerGameNode.h => Sources/Plasma/FeatureLib/pfPython/pyVaultMarkerGameNode.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfPython/pyVaultMarkerGameNodeGlue.cpp => Sources/Plasma/FeatureLib/pfPython/pyVaultMarkerGameNodeGlue.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfPython/pyVaultNode.cpp => Sources/Plasma/FeatureLib/pfPython/pyVaultNode.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfPython/pyVaultNode.h => Sources/Plasma/FeatureLib/pfPython/pyVaultNode.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfPython/pyVaultNodeGlue.cpp => Sources/Plasma/FeatureLib/pfPython/pyVaultNodeGlue.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfPython/pyVaultNodeRef.cpp => Sources/Plasma/FeatureLib/pfPython/pyVaultNodeRef.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfPython/pyVaultNodeRef.h => Sources/Plasma/FeatureLib/pfPython/pyVaultNodeRef.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfPython/pyVaultNodeRefGlue.cpp => Sources/Plasma/FeatureLib/pfPython/pyVaultNodeRefGlue.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfPython/pyVaultPlayerInfoListNode.cpp => Sources/Plasma/FeatureLib/pfPython/pyVaultPlayerInfoListNode.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfPython/pyVaultPlayerInfoListNode.h => Sources/Plasma/FeatureLib/pfPython/pyVaultPlayerInfoListNode.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfPython/pyVaultPlayerInfoListNodeGlue.cpp => Sources/Plasma/FeatureLib/pfPython/pyVaultPlayerInfoListNodeGlue.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfPython/pyVaultPlayerInfoNode.cpp => Sources/Plasma/FeatureLib/pfPython/pyVaultPlayerInfoNode.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfPython/pyVaultPlayerInfoNode.h => Sources/Plasma/FeatureLib/pfPython/pyVaultPlayerInfoNode.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfPython/pyVaultPlayerInfoNodeGlue.cpp => Sources/Plasma/FeatureLib/pfPython/pyVaultPlayerInfoNodeGlue.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfPython/pyVaultPlayerNode.cpp => Sources/Plasma/FeatureLib/pfPython/pyVaultPlayerNode.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfPython/pyVaultPlayerNode.h => Sources/Plasma/FeatureLib/pfPython/pyVaultPlayerNode.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfPython/pyVaultPlayerNodeGlue.cpp => Sources/Plasma/FeatureLib/pfPython/pyVaultPlayerNodeGlue.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfPython/pyVaultSDLNode.cpp => Sources/Plasma/FeatureLib/pfPython/pyVaultSDLNode.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfPython/pyVaultSDLNode.h => Sources/Plasma/FeatureLib/pfPython/pyVaultSDLNode.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfPython/pyVaultSDLNodeGlue.cpp => Sources/Plasma/FeatureLib/pfPython/pyVaultSDLNodeGlue.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfPython/pyVaultSystemNode.cpp => Sources/Plasma/FeatureLib/pfPython/pyVaultSystemNode.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfPython/pyVaultSystemNode.h => Sources/Plasma/FeatureLib/pfPython/pyVaultSystemNode.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfPython/pyVaultSystemNodeGlue.cpp => Sources/Plasma/FeatureLib/pfPython/pyVaultSystemNodeGlue.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfPython/pyVaultTextNoteNode.cpp => Sources/Plasma/FeatureLib/pfPython/pyVaultTextNoteNode.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfPython/pyVaultTextNoteNode.h => Sources/Plasma/FeatureLib/pfPython/pyVaultTextNoteNode.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfPython/pyVaultTextNoteNodeGlue.cpp => Sources/Plasma/FeatureLib/pfPython/pyVaultTextNoteNodeGlue.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfPython/pyWaveSet.cpp => Sources/Plasma/FeatureLib/pfPython/pyWaveSet.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfPython/pyWaveSet.h => Sources/Plasma/FeatureLib/pfPython/pyWaveSet.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfPython/pyWaveSetGlue.cpp => Sources/Plasma/FeatureLib/pfPython/pyWaveSetGlue.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfSecurePreloader/CMakeLists.txt => Sources/Plasma/FeatureLib/pfSecurePreloader/CMakeLists.txt rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfSecurePreloader/pfSecurePreloader.cpp => Sources/Plasma/FeatureLib/pfSecurePreloader/pfSecurePreloader.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfSecurePreloader/pfSecurePreloader.h => Sources/Plasma/FeatureLib/pfSecurePreloader/pfSecurePreloader.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfSecurePreloader/pfSecurePreloaderCreatable.h => Sources/Plasma/FeatureLib/pfSecurePreloader/pfSecurePreloaderCreatable.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfStackTrace/CMakeLists.txt => Sources/Plasma/FeatureLib/pfStackTrace/CMakeLists.txt rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfStackTrace/pfArray.h => Sources/Plasma/FeatureLib/pfStackTrace/pfArray.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfStackTrace/pfMapFile.cpp => Sources/Plasma/FeatureLib/pfStackTrace/pfMapFile.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfStackTrace/pfMapFile.h => Sources/Plasma/FeatureLib/pfStackTrace/pfMapFile.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfStackTrace/pfMapFileEntry.cpp => Sources/Plasma/FeatureLib/pfStackTrace/pfMapFileEntry.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfStackTrace/pfMapFileEntry.h => Sources/Plasma/FeatureLib/pfStackTrace/pfMapFileEntry.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfStackTrace/pfPrintStackTrace.cpp => Sources/Plasma/FeatureLib/pfStackTrace/pfPrintStackTrace.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfStackTrace/pfPrintStackTrace.h => Sources/Plasma/FeatureLib/pfStackTrace/pfPrintStackTrace.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfStackTrace/pfStackTrace.cpp => Sources/Plasma/FeatureLib/pfStackTrace/pfStackTrace.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfStackTrace/pfStackTrace.h => Sources/Plasma/FeatureLib/pfStackTrace/pfStackTrace.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfStackTrace/pfTextFile.cpp => Sources/Plasma/FeatureLib/pfStackTrace/pfTextFile.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfStackTrace/pfTextFile.h => Sources/Plasma/FeatureLib/pfStackTrace/pfTextFile.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfSurface/CMakeLists.txt => Sources/Plasma/FeatureLib/pfSurface/CMakeLists.txt rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfSurface/pfSurfaceCreatable.h => Sources/Plasma/FeatureLib/pfSurface/pfSurfaceCreatable.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfSurface/plDistOpacityMod.cpp => Sources/Plasma/FeatureLib/pfSurface/plDistOpacityMod.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfSurface/plDistOpacityMod.h => Sources/Plasma/FeatureLib/pfSurface/plDistOpacityMod.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfSurface/plFadeOpacityLay.cpp => Sources/Plasma/FeatureLib/pfSurface/plFadeOpacityLay.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfSurface/plFadeOpacityLay.h => Sources/Plasma/FeatureLib/pfSurface/plFadeOpacityLay.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfSurface/plFadeOpacityMod.cpp => Sources/Plasma/FeatureLib/pfSurface/plFadeOpacityMod.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfSurface/plFadeOpacityMod.h => Sources/Plasma/FeatureLib/pfSurface/plFadeOpacityMod.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfSurface/plGrabCubeMap.cpp => Sources/Plasma/FeatureLib/pfSurface/plGrabCubeMap.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfSurface/plGrabCubeMap.h => Sources/Plasma/FeatureLib/pfSurface/plGrabCubeMap.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfSurface/plLayerAVI.cpp => Sources/Plasma/FeatureLib/pfSurface/plLayerAVI.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfSurface/plLayerAVI.h => Sources/Plasma/FeatureLib/pfSurface/plLayerAVI.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfSurface/plLayerMovie.cpp => Sources/Plasma/FeatureLib/pfSurface/plLayerMovie.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/FeatureLib/pfSurface/plLayerMovie.h => Sources/Plasma/FeatureLib/pfSurface/plLayerMovie.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/CMakeLists.txt => Sources/Plasma/NucleusLib/CMakeLists.txt rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/inc/CMakeLists.txt => Sources/Plasma/NucleusLib/inc/CMakeLists.txt rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/inc/hsGMatState.h => Sources/Plasma/NucleusLib/inc/hsGMatState.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/inc/hsGMatState.inl => Sources/Plasma/NucleusLib/inc/hsGMatState.inl rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/inc/hsResMgr.h => Sources/Plasma/NucleusLib/inc/hsResMgr.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/inc/hsTimer.h => Sources/Plasma/NucleusLib/inc/hsTimer.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/inc/plAudible.h => Sources/Plasma/NucleusLib/inc/plAudible.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/inc/plCCRMgrBase.h => Sources/Plasma/NucleusLib/inc/plCCRMgrBase.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/inc/plClassIndexMacros.h => Sources/Plasma/NucleusLib/inc/plClassIndexMacros.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/inc/plCreatableIndex.h => Sources/Plasma/NucleusLib/inc/plCreatableIndex.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/inc/plCreatableStrings.h => Sources/Plasma/NucleusLib/inc/plCreatableStrings.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/inc/plDrawable.h => Sources/Plasma/NucleusLib/inc/plDrawable.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/inc/plNetServerDatabaseStructClassIndexes.h => Sources/Plasma/NucleusLib/inc/plNetServerDatabaseStructClassIndexes.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/inc/plPhysical.h => Sources/Plasma/NucleusLib/inc/plPhysical.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/inc/plPipeResReq.h => Sources/Plasma/NucleusLib/inc/plPipeResReq.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/inc/plPipeline.h => Sources/Plasma/NucleusLib/inc/plPipeline.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/inc/plProfile.h => Sources/Plasma/NucleusLib/inc/plProfile.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/inc/plProfileManager.cpp => Sources/Plasma/NucleusLib/inc/plProfileManager.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/inc/plProfileManager.h => Sources/Plasma/NucleusLib/inc/plProfileManager.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/inc/plRefFlags.h => Sources/Plasma/NucleusLib/inc/plRefFlags.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/inc/plgDispatch.h => Sources/Plasma/NucleusLib/inc/plgDispatch.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/inc/pnAllCreatables.h => Sources/Plasma/NucleusLib/inc/pnAllCreatables.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/inc/pnNucleusCreatables.h => Sources/Plasma/NucleusLib/inc/pnNucleusCreatables.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/inc/pnSingletons.cpp => Sources/Plasma/NucleusLib/inc/pnSingletons.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnAddrInfo/CMakeLists.txt => Sources/Plasma/NucleusLib/pnAddrInfo/CMakeLists.txt rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnAddrInfo/pnAddrInfo.cpp => Sources/Plasma/NucleusLib/pnAddrInfo/pnAddrInfo.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnAddrInfo/pnAddrInfo.h => Sources/Plasma/NucleusLib/pnAddrInfo/pnAddrInfo.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnAsyncCore/CMakeLists.txt => Sources/Plasma/NucleusLib/pnAsyncCore/CMakeLists.txt rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnAsyncCore/Pch.h => Sources/Plasma/NucleusLib/pnAsyncCore/Pch.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnAsyncCore/Private/pnAcAllIncludes.h => Sources/Plasma/NucleusLib/pnAsyncCore/Private/pnAcAllIncludes.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnAsyncCore/Private/pnAcCore.h => Sources/Plasma/NucleusLib/pnAsyncCore/Private/pnAcCore.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnAsyncCore/Private/pnAcIo.h => Sources/Plasma/NucleusLib/pnAsyncCore/Private/pnAcIo.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnAsyncCore/Private/pnAcLog.cpp => Sources/Plasma/NucleusLib/pnAsyncCore/Private/pnAcLog.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnAsyncCore/Private/pnAcLog.h => Sources/Plasma/NucleusLib/pnAsyncCore/Private/pnAcLog.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnAsyncCore/Private/pnAcThread.h => Sources/Plasma/NucleusLib/pnAsyncCore/Private/pnAcThread.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnAsyncCore/Private/pnAcTimer.h => Sources/Plasma/NucleusLib/pnAsyncCore/Private/pnAcTimer.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnAsyncCore/pnAsyncCore.h => Sources/Plasma/NucleusLib/pnAsyncCore/pnAsyncCore.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnAsyncCoreExe/CMakeLists.txt => Sources/Plasma/NucleusLib/pnAsyncCoreExe/CMakeLists.txt rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnAsyncCoreExe/Pch.h => Sources/Plasma/NucleusLib/pnAsyncCoreExe/Pch.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnAsyncCoreExe/Private/Nt/pnAceNt.cpp => Sources/Plasma/NucleusLib/pnAsyncCoreExe/Private/Nt/pnAceNt.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnAsyncCoreExe/Private/Nt/pnAceNt.h => Sources/Plasma/NucleusLib/pnAsyncCoreExe/Private/Nt/pnAceNt.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnAsyncCoreExe/Private/Nt/pnAceNtFile.cpp => Sources/Plasma/NucleusLib/pnAsyncCoreExe/Private/Nt/pnAceNtFile.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnAsyncCoreExe/Private/Nt/pnAceNtInt.h => Sources/Plasma/NucleusLib/pnAsyncCoreExe/Private/Nt/pnAceNtInt.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnAsyncCoreExe/Private/Nt/pnAceNtSocket.cpp => Sources/Plasma/NucleusLib/pnAsyncCoreExe/Private/Nt/pnAceNtSocket.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnAsyncCoreExe/Private/Nt/pnAceNtThread.cpp => Sources/Plasma/NucleusLib/pnAsyncCoreExe/Private/Nt/pnAceNtThread.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnAsyncCoreExe/Private/Unix/pnAceUx.h => Sources/Plasma/NucleusLib/pnAsyncCoreExe/Private/Unix/pnAceUx.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnAsyncCoreExe/Private/W9x/pnAceW9x.cpp => Sources/Plasma/NucleusLib/pnAsyncCoreExe/Private/W9x/pnAceW9x.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnAsyncCoreExe/Private/W9x/pnAceW9x.h => Sources/Plasma/NucleusLib/pnAsyncCoreExe/Private/W9x/pnAceW9x.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnAsyncCoreExe/Private/W9x/pnAceW9xFile.cpp => Sources/Plasma/NucleusLib/pnAsyncCoreExe/Private/W9x/pnAceW9xFile.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnAsyncCoreExe/Private/W9x/pnAceW9xInt.h => Sources/Plasma/NucleusLib/pnAsyncCoreExe/Private/W9x/pnAceW9xInt.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnAsyncCoreExe/Private/W9x/pnAceW9xSocket.cpp => Sources/Plasma/NucleusLib/pnAsyncCoreExe/Private/W9x/pnAceW9xSocket.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnAsyncCoreExe/Private/W9x/pnAceW9xThread.cpp => Sources/Plasma/NucleusLib/pnAsyncCoreExe/Private/W9x/pnAceW9xThread.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnAsyncCoreExe/Private/Win32/pnAceW32Dns.cpp => Sources/Plasma/NucleusLib/pnAsyncCoreExe/Private/Win32/pnAceW32Dns.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnAsyncCoreExe/Private/Win32/pnAceW32Thread.cpp => Sources/Plasma/NucleusLib/pnAsyncCoreExe/Private/Win32/pnAceW32Thread.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnAsyncCoreExe/Private/pnAceInt.h => Sources/Plasma/NucleusLib/pnAsyncCoreExe/Private/pnAceInt.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnAsyncCoreExe/pnAceCore.cpp => Sources/Plasma/NucleusLib/pnAsyncCoreExe/pnAceCore.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnAsyncCoreExe/pnAceIo.cpp => Sources/Plasma/NucleusLib/pnAsyncCoreExe/pnAceIo.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnAsyncCoreExe/pnAceLog.cpp => Sources/Plasma/NucleusLib/pnAsyncCoreExe/pnAceLog.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnAsyncCoreExe/pnAceThread.cpp => Sources/Plasma/NucleusLib/pnAsyncCoreExe/pnAceThread.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnAsyncCoreExe/pnAceTimer.cpp => Sources/Plasma/NucleusLib/pnAsyncCoreExe/pnAceTimer.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnCrash/CMakeLists.txt => Sources/Plasma/NucleusLib/pnCrash/CMakeLists.txt rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnCrash/Pch.h => Sources/Plasma/NucleusLib/pnCrash/Pch.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnCrash/pnCrash.bat => Sources/Plasma/NucleusLib/pnCrash/pnCrash.bat rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnCrash/pnCrash.cpp => Sources/Plasma/NucleusLib/pnCrash/pnCrash.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnCrash/pnCrash.h => Sources/Plasma/NucleusLib/pnCrash/pnCrash.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnCrash/pnCrash.py => Sources/Plasma/NucleusLib/pnCrash/pnCrash.py rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnCrashExe/CMakeLists.txt => Sources/Plasma/NucleusLib/pnCrashExe/CMakeLists.txt rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnCrashExe/Pch.h => Sources/Plasma/NucleusLib/pnCrashExe/Pch.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnCrashExe/Win32/W32Int.h => Sources/Plasma/NucleusLib/pnCrashExe/Win32/W32Int.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnCrashExe/Win32/pnCreError.cpp => Sources/Plasma/NucleusLib/pnCrashExe/Win32/pnCreError.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnCrashExe/Win32/pnCreGui.cpp => Sources/Plasma/NucleusLib/pnCrashExe/Win32/pnCreGui.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnCrashExe/Win32/pnCreMail.cpp => Sources/Plasma/NucleusLib/pnCrashExe/Win32/pnCreMail.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnCrashExe/Win32/pnCreTools.cpp => Sources/Plasma/NucleusLib/pnCrashExe/Win32/pnCreTools.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnCsrCli/CMakeLists.txt => Sources/Plasma/NucleusLib/pnCsrCli/CMakeLists.txt rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnCsrCli/Pch.h => Sources/Plasma/NucleusLib/pnCsrCli/Pch.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnCsrCli/pnCsrCli.cpp => Sources/Plasma/NucleusLib/pnCsrCli/pnCsrCli.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnCsrCli/pnCsrCli.h => Sources/Plasma/NucleusLib/pnCsrCli/pnCsrCli.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnCsrNet/CMakeLists.txt => Sources/Plasma/NucleusLib/pnCsrNet/CMakeLists.txt rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnCsrNet/Pch.h => Sources/Plasma/NucleusLib/pnCsrNet/Pch.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnCsrNet/pnCsrNet.cpp => Sources/Plasma/NucleusLib/pnCsrNet/pnCsrNet.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnCsrNet/pnCsrNet.h => Sources/Plasma/NucleusLib/pnCsrNet/pnCsrNet.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnDispatch/CMakeLists.txt => Sources/Plasma/NucleusLib/pnDispatch/CMakeLists.txt rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnDispatch/plDispatch.cpp => Sources/Plasma/NucleusLib/pnDispatch/plDispatch.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnDispatch/plDispatch.h => Sources/Plasma/NucleusLib/pnDispatch/plDispatch.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnDispatch/plDispatchLogBase.cpp => Sources/Plasma/NucleusLib/pnDispatch/plDispatchLogBase.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnDispatch/plDispatchLogBase.h => Sources/Plasma/NucleusLib/pnDispatch/plDispatchLogBase.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnDispatch/pnDispatchCreatable.h => Sources/Plasma/NucleusLib/pnDispatch/pnDispatchCreatable.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnFactory/CMakeLists.txt => Sources/Plasma/NucleusLib/pnFactory/CMakeLists.txt rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnFactory/plCreatable.h => Sources/Plasma/NucleusLib/pnFactory/plCreatable.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnFactory/plCreator.h => Sources/Plasma/NucleusLib/pnFactory/plCreator.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnFactory/plFactory.cpp => Sources/Plasma/NucleusLib/pnFactory/plFactory.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnFactory/plFactory.h => Sources/Plasma/NucleusLib/pnFactory/plFactory.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnGameMgr/BlueSpiral/pnGmBlueSpiral.cpp => Sources/Plasma/NucleusLib/pnGameMgr/BlueSpiral/pnGmBlueSpiral.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnGameMgr/BlueSpiral/pnGmBlueSpiral.h => Sources/Plasma/NucleusLib/pnGameMgr/BlueSpiral/pnGmBlueSpiral.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnGameMgr/CMakeLists.txt => Sources/Plasma/NucleusLib/pnGameMgr/CMakeLists.txt rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnGameMgr/ClimbingWall/pnGmClimbingWall.cpp => Sources/Plasma/NucleusLib/pnGameMgr/ClimbingWall/pnGmClimbingWall.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnGameMgr/ClimbingWall/pnGmClimbingWall.h => Sources/Plasma/NucleusLib/pnGameMgr/ClimbingWall/pnGmClimbingWall.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnGameMgr/Heek/pnGmHeek.cpp => Sources/Plasma/NucleusLib/pnGameMgr/Heek/pnGmHeek.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnGameMgr/Heek/pnGmHeek.h => Sources/Plasma/NucleusLib/pnGameMgr/Heek/pnGmHeek.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnGameMgr/Intern.h => Sources/Plasma/NucleusLib/pnGameMgr/Intern.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnGameMgr/Marker/pnGmMarker.cpp => Sources/Plasma/NucleusLib/pnGameMgr/Marker/pnGmMarker.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnGameMgr/Marker/pnGmMarker.h => Sources/Plasma/NucleusLib/pnGameMgr/Marker/pnGmMarker.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnGameMgr/Pch.h => Sources/Plasma/NucleusLib/pnGameMgr/Pch.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnGameMgr/TicTacToe/pnGmTicTacToe.cpp => Sources/Plasma/NucleusLib/pnGameMgr/TicTacToe/pnGmTicTacToe.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnGameMgr/TicTacToe/pnGmTicTacToe.h => Sources/Plasma/NucleusLib/pnGameMgr/TicTacToe/pnGmTicTacToe.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnGameMgr/VarSync/pnGmVarSync.cpp => Sources/Plasma/NucleusLib/pnGameMgr/VarSync/pnGmVarSync.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnGameMgr/VarSync/pnGmVarSync.h => Sources/Plasma/NucleusLib/pnGameMgr/VarSync/pnGmVarSync.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnGameMgr/pnGameMgr.cpp => Sources/Plasma/NucleusLib/pnGameMgr/pnGameMgr.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnGameMgr/pnGameMgr.h => Sources/Plasma/NucleusLib/pnGameMgr/pnGameMgr.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnIni/CMakeLists.txt => Sources/Plasma/NucleusLib/pnIni/CMakeLists.txt rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnIni/Intern.h => Sources/Plasma/NucleusLib/pnIni/Intern.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnIni/Pch.h => Sources/Plasma/NucleusLib/pnIni/Pch.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnIni/Private/pnIniAllIncludes.h => Sources/Plasma/NucleusLib/pnIni/Private/pnIniAllIncludes.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnIni/Private/pnIniChange.h => Sources/Plasma/NucleusLib/pnIni/Private/pnIniChange.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnIni/Private/pnIniCore.cpp => Sources/Plasma/NucleusLib/pnIni/Private/pnIniCore.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnIni/Private/pnIniCore.h => Sources/Plasma/NucleusLib/pnIni/Private/pnIniCore.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnIni/Private/pnIniSrv.cpp => Sources/Plasma/NucleusLib/pnIni/Private/pnIniSrv.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnIni/Private/pnIniSrv.h => Sources/Plasma/NucleusLib/pnIni/Private/pnIniSrv.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnIni/pnIni.h => Sources/Plasma/NucleusLib/pnIni/pnIni.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnIniExe/CMakeLists.txt => Sources/Plasma/NucleusLib/pnIniExe/CMakeLists.txt rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnIniExe/Pch.h => Sources/Plasma/NucleusLib/pnIniExe/Pch.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnIniExe/Private/Win32/pnW32IniChange.cpp => Sources/Plasma/NucleusLib/pnIniExe/Private/Win32/pnW32IniChange.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnIniExe/Private/pnIniSrv.cpp => Sources/Plasma/NucleusLib/pnIniExe/Private/pnIniSrv.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnInputCore/CMakeLists.txt => Sources/Plasma/NucleusLib/pnInputCore/CMakeLists.txt rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnInputCore/plControlDefinition.h => Sources/Plasma/NucleusLib/pnInputCore/plControlDefinition.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnInputCore/plControlEventCodes.h => Sources/Plasma/NucleusLib/pnInputCore/plControlEventCodes.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnInputCore/plInputMap.cpp => Sources/Plasma/NucleusLib/pnInputCore/plInputMap.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnInputCore/plInputMap.h => Sources/Plasma/NucleusLib/pnInputCore/plInputMap.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnInputCore/plKeyDef.h => Sources/Plasma/NucleusLib/pnInputCore/plKeyDef.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnInputCore/plKeyMap.h => Sources/Plasma/NucleusLib/pnInputCore/plKeyMap.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnInputCore/plOSMsg.h => Sources/Plasma/NucleusLib/pnInputCore/plOSMsg.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnKeyedObject/CMakeLists.txt => Sources/Plasma/NucleusLib/pnKeyedObject/CMakeLists.txt rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnKeyedObject/hsKeyedObject.cpp => Sources/Plasma/NucleusLib/pnKeyedObject/hsKeyedObject.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnKeyedObject/hsKeyedObject.h => Sources/Plasma/NucleusLib/pnKeyedObject/hsKeyedObject.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnKeyedObject/plFixedKey.cpp => Sources/Plasma/NucleusLib/pnKeyedObject/plFixedKey.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnKeyedObject/plFixedKey.h => Sources/Plasma/NucleusLib/pnKeyedObject/plFixedKey.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnKeyedObject/plKey.cpp => Sources/Plasma/NucleusLib/pnKeyedObject/plKey.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnKeyedObject/plKey.h => Sources/Plasma/NucleusLib/pnKeyedObject/plKey.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnKeyedObject/plKeyImp.cpp => Sources/Plasma/NucleusLib/pnKeyedObject/plKeyImp.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnKeyedObject/plKeyImp.h => Sources/Plasma/NucleusLib/pnKeyedObject/plKeyImp.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnKeyedObject/plMsgForwarder.cpp => Sources/Plasma/NucleusLib/pnKeyedObject/plMsgForwarder.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnKeyedObject/plMsgForwarder.h => Sources/Plasma/NucleusLib/pnKeyedObject/plMsgForwarder.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnKeyedObject/plReceiver.h => Sources/Plasma/NucleusLib/pnKeyedObject/plReceiver.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnKeyedObject/plTempKey.cpp => Sources/Plasma/NucleusLib/pnKeyedObject/plTempKey.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnKeyedObject/plTempKey.h => Sources/Plasma/NucleusLib/pnKeyedObject/plTempKey.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnKeyedObject/plUoid.cpp => Sources/Plasma/NucleusLib/pnKeyedObject/plUoid.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnKeyedObject/plUoid.h => Sources/Plasma/NucleusLib/pnKeyedObject/plUoid.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnKeyedObject/pnKeyedObjectCreatable.h => Sources/Plasma/NucleusLib/pnKeyedObject/pnKeyedObjectCreatable.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnMail/CMakeLists.txt => Sources/Plasma/NucleusLib/pnMail/CMakeLists.txt rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnMail/Pch.h => Sources/Plasma/NucleusLib/pnMail/Pch.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnMail/pnMail.cpp => Sources/Plasma/NucleusLib/pnMail/pnMail.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnMail/pnMail.h => Sources/Plasma/NucleusLib/pnMail/pnMail.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnMessage/CMakeLists.txt => Sources/Plasma/NucleusLib/pnMessage/CMakeLists.txt rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnMessage/plAttachMsg.h => Sources/Plasma/NucleusLib/pnMessage/plAttachMsg.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnMessage/plAudioSysMsg.h => Sources/Plasma/NucleusLib/pnMessage/plAudioSysMsg.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnMessage/plCameraMsg.cpp => Sources/Plasma/NucleusLib/pnMessage/plCameraMsg.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnMessage/plCameraMsg.h => Sources/Plasma/NucleusLib/pnMessage/plCameraMsg.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnMessage/plClientMsg.cpp => Sources/Plasma/NucleusLib/pnMessage/plClientMsg.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnMessage/plClientMsg.h => Sources/Plasma/NucleusLib/pnMessage/plClientMsg.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnMessage/plCmdIfaceModMsg.h => Sources/Plasma/NucleusLib/pnMessage/plCmdIfaceModMsg.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnMessage/plCollisionMsg.h => Sources/Plasma/NucleusLib/pnMessage/plCollisionMsg.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnMessage/plCorrectionMsg.h => Sources/Plasma/NucleusLib/pnMessage/plCorrectionMsg.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnMessage/plCursorChangeMsg.h => Sources/Plasma/NucleusLib/pnMessage/plCursorChangeMsg.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnMessage/plDISpansMsg.h => Sources/Plasma/NucleusLib/pnMessage/plDISpansMsg.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnMessage/plEnableMsg.h => Sources/Plasma/NucleusLib/pnMessage/plEnableMsg.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnMessage/plEnvEffectMsg.cpp => Sources/Plasma/NucleusLib/pnMessage/plEnvEffectMsg.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnMessage/plEnvEffectMsg.h => Sources/Plasma/NucleusLib/pnMessage/plEnvEffectMsg.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnMessage/plEventCallbackMsg.h => Sources/Plasma/NucleusLib/pnMessage/plEventCallbackMsg.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnMessage/plFakeOutMsg.h => Sources/Plasma/NucleusLib/pnMessage/plFakeOutMsg.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnMessage/plIntRefMsg.h => Sources/Plasma/NucleusLib/pnMessage/plIntRefMsg.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnMessage/plMessage.cpp => Sources/Plasma/NucleusLib/pnMessage/plMessage.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnMessage/plMessage.h => Sources/Plasma/NucleusLib/pnMessage/plMessage.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnMessage/plMessageWithCallbacks.cpp => Sources/Plasma/NucleusLib/pnMessage/plMessageWithCallbacks.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnMessage/plMessageWithCallbacks.h => Sources/Plasma/NucleusLib/pnMessage/plMessageWithCallbacks.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnMessage/plMultiModMsg.h => Sources/Plasma/NucleusLib/pnMessage/plMultiModMsg.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnMessage/plNodeChangeMsg.cpp => Sources/Plasma/NucleusLib/pnMessage/plNodeChangeMsg.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnMessage/plNodeChangeMsg.h => Sources/Plasma/NucleusLib/pnMessage/plNodeChangeMsg.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnMessage/plNodeRefMsg.h => Sources/Plasma/NucleusLib/pnMessage/plNodeRefMsg.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnMessage/plNotifyMsg.cpp => Sources/Plasma/NucleusLib/pnMessage/plNotifyMsg.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnMessage/plNotifyMsg.h => Sources/Plasma/NucleusLib/pnMessage/plNotifyMsg.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnMessage/plObjRefMsg.h => Sources/Plasma/NucleusLib/pnMessage/plObjRefMsg.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnMessage/plPipeResMakeMsg.h => Sources/Plasma/NucleusLib/pnMessage/plPipeResMakeMsg.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnMessage/plPlayerPageMsg.h => Sources/Plasma/NucleusLib/pnMessage/plPlayerPageMsg.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnMessage/plProxyDrawMsg.cpp => Sources/Plasma/NucleusLib/pnMessage/plProxyDrawMsg.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnMessage/plProxyDrawMsg.h => Sources/Plasma/NucleusLib/pnMessage/plProxyDrawMsg.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnMessage/plRefMsg.cpp => Sources/Plasma/NucleusLib/pnMessage/plRefMsg.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnMessage/plRefMsg.h => Sources/Plasma/NucleusLib/pnMessage/plRefMsg.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnMessage/plRemoteAvatarInfoMsg.h => Sources/Plasma/NucleusLib/pnMessage/plRemoteAvatarInfoMsg.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnMessage/plSDLModifierMsg.cpp => Sources/Plasma/NucleusLib/pnMessage/plSDLModifierMsg.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnMessage/plSDLModifierMsg.h => Sources/Plasma/NucleusLib/pnMessage/plSDLModifierMsg.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnMessage/plSDLNotificationMsg.h => Sources/Plasma/NucleusLib/pnMessage/plSDLNotificationMsg.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnMessage/plSatisfiedMsg.h => Sources/Plasma/NucleusLib/pnMessage/plSatisfiedMsg.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnMessage/plSelfDestructMsg.h => Sources/Plasma/NucleusLib/pnMessage/plSelfDestructMsg.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnMessage/plServerReplyMsg.cpp => Sources/Plasma/NucleusLib/pnMessage/plServerReplyMsg.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnMessage/plServerReplyMsg.h => Sources/Plasma/NucleusLib/pnMessage/plServerReplyMsg.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnMessage/plSetNetGroupIDMsg.h => Sources/Plasma/NucleusLib/pnMessage/plSetNetGroupIDMsg.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnMessage/plSharedStateMsg.h => Sources/Plasma/NucleusLib/pnMessage/plSharedStateMsg.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnMessage/plSimulationMsg.cpp => Sources/Plasma/NucleusLib/pnMessage/plSimulationMsg.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnMessage/plSimulationMsg.h => Sources/Plasma/NucleusLib/pnMessage/plSimulationMsg.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnMessage/plSimulationSynchMsg.h => Sources/Plasma/NucleusLib/pnMessage/plSimulationSynchMsg.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnMessage/plSingleModMsg.h => Sources/Plasma/NucleusLib/pnMessage/plSingleModMsg.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnMessage/plSoundMsg.cpp => Sources/Plasma/NucleusLib/pnMessage/plSoundMsg.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnMessage/plSoundMsg.h => Sources/Plasma/NucleusLib/pnMessage/plSoundMsg.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnMessage/plTimeMsg.cpp => Sources/Plasma/NucleusLib/pnMessage/plTimeMsg.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnMessage/plTimeMsg.h => Sources/Plasma/NucleusLib/pnMessage/plTimeMsg.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnMessage/plWarpMsg.h => Sources/Plasma/NucleusLib/pnMessage/plWarpMsg.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnMessage/pnMessageCreatable.h => Sources/Plasma/NucleusLib/pnMessage/pnMessageCreatable.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnModifier/CMakeLists.txt => Sources/Plasma/NucleusLib/pnModifier/CMakeLists.txt rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnModifier/plConditionalObject.cpp => Sources/Plasma/NucleusLib/pnModifier/plConditionalObject.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnModifier/plConditionalObject.h => Sources/Plasma/NucleusLib/pnModifier/plConditionalObject.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnModifier/plLogicModBase.cpp => Sources/Plasma/NucleusLib/pnModifier/plLogicModBase.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnModifier/plLogicModBase.h => Sources/Plasma/NucleusLib/pnModifier/plLogicModBase.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnModifier/plModifier.cpp => Sources/Plasma/NucleusLib/pnModifier/plModifier.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnModifier/plModifier.h => Sources/Plasma/NucleusLib/pnModifier/plModifier.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnModifier/plMultiModifier.cpp => Sources/Plasma/NucleusLib/pnModifier/plMultiModifier.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnModifier/plMultiModifier.h => Sources/Plasma/NucleusLib/pnModifier/plMultiModifier.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnModifier/plSingleModifier.cpp => Sources/Plasma/NucleusLib/pnModifier/plSingleModifier.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnModifier/plSingleModifier.h => Sources/Plasma/NucleusLib/pnModifier/plSingleModifier.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnModifier/pnModifierCreatable.h => Sources/Plasma/NucleusLib/pnModifier/pnModifierCreatable.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnNetBase/CMakeLists.txt => Sources/Plasma/NucleusLib/pnNetBase/CMakeLists.txt rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnNetBase/Intern.h => Sources/Plasma/NucleusLib/pnNetBase/Intern.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnNetBase/Pch.h => Sources/Plasma/NucleusLib/pnNetBase/Pch.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnNetBase/Private/pnNbAges.cpp => Sources/Plasma/NucleusLib/pnNetBase/Private/pnNbAges.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnNetBase/Private/pnNbAges.h => Sources/Plasma/NucleusLib/pnNetBase/Private/pnNbAges.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnNetBase/Private/pnNbAllIncludes.h => Sources/Plasma/NucleusLib/pnNetBase/Private/pnNbAllIncludes.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnNetBase/Private/pnNbEchoMsgs.h => Sources/Plasma/NucleusLib/pnNetBase/Private/pnNbEchoMsgs.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnNetBase/Private/pnNbError.cpp => Sources/Plasma/NucleusLib/pnNetBase/Private/pnNbError.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnNetBase/Private/pnNbError.h => Sources/Plasma/NucleusLib/pnNetBase/Private/pnNbError.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnNetBase/Private/pnNbProtocol.cpp => Sources/Plasma/NucleusLib/pnNetBase/Private/pnNbProtocol.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnNetBase/Private/pnNbProtocol.h => Sources/Plasma/NucleusLib/pnNetBase/Private/pnNbProtocol.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnNetBase/Private/pnNbSrvs.cpp => Sources/Plasma/NucleusLib/pnNetBase/Private/pnNbSrvs.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnNetBase/Private/pnNbSrvs.h => Sources/Plasma/NucleusLib/pnNetBase/Private/pnNbSrvs.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnNetBase/pnNbAuthKey.hpp => Sources/Plasma/NucleusLib/pnNetBase/pnNbAuthKey.hpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnNetBase/pnNbConst.h => Sources/Plasma/NucleusLib/pnNetBase/pnNbConst.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnNetBase/pnNbCsrKey.hpp => Sources/Plasma/NucleusLib/pnNetBase/pnNbCsrKey.hpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnNetBase/pnNbGameKey.hpp => Sources/Plasma/NucleusLib/pnNetBase/pnNbGameKey.hpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnNetBase/pnNbGateKeeperKey.hpp => Sources/Plasma/NucleusLib/pnNetBase/pnNbGateKeeperKey.hpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnNetBase/pnNetBase.h => Sources/Plasma/NucleusLib/pnNetBase/pnNetBase.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnNetCli/CMakeLists.txt => Sources/Plasma/NucleusLib/pnNetCli/CMakeLists.txt rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnNetCli/Intern.h => Sources/Plasma/NucleusLib/pnNetCli/Intern.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnNetCli/Pch.h => Sources/Plasma/NucleusLib/pnNetCli/Pch.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnNetCli/pnNcChannel.cpp => Sources/Plasma/NucleusLib/pnNetCli/pnNcChannel.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnNetCli/pnNcCli.cpp => Sources/Plasma/NucleusLib/pnNetCli/pnNcCli.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnNetCli/pnNcEncrypt.cpp => Sources/Plasma/NucleusLib/pnNetCli/pnNcEncrypt.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnNetCli/pnNcUtils.cpp => Sources/Plasma/NucleusLib/pnNetCli/pnNcUtils.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnNetCli/pnNetCli.h => Sources/Plasma/NucleusLib/pnNetCli/pnNetCli.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnNetCommon/CMakeLists.txt => Sources/Plasma/NucleusLib/pnNetCommon/CMakeLists.txt rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnNetCommon/plGenericVar.cpp => Sources/Plasma/NucleusLib/pnNetCommon/plGenericVar.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnNetCommon/plGenericVar.h => Sources/Plasma/NucleusLib/pnNetCommon/plGenericVar.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnNetCommon/plNetAddress.cpp => Sources/Plasma/NucleusLib/pnNetCommon/plNetAddress.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnNetCommon/plNetAddress.h => Sources/Plasma/NucleusLib/pnNetCommon/plNetAddress.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnNetCommon/plNetApp.cpp => Sources/Plasma/NucleusLib/pnNetCommon/plNetApp.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnNetCommon/plNetApp.h => Sources/Plasma/NucleusLib/pnNetCommon/plNetApp.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnNetCommon/plNetCommonStats.h => Sources/Plasma/NucleusLib/pnNetCommon/plNetCommonStats.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnNetCommon/plNetGroup.cpp => Sources/Plasma/NucleusLib/pnNetCommon/plNetGroup.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnNetCommon/plNetGroup.h => Sources/Plasma/NucleusLib/pnNetCommon/plNetGroup.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnNetCommon/plNetResManager.cpp => Sources/Plasma/NucleusLib/pnNetCommon/plNetResManager.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnNetCommon/plNetResManager.h => Sources/Plasma/NucleusLib/pnNetCommon/plNetResManager.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnNetCommon/plNetServers.cpp => Sources/Plasma/NucleusLib/pnNetCommon/plNetServers.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnNetCommon/plNetServers.h => Sources/Plasma/NucleusLib/pnNetCommon/plNetServers.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnNetCommon/plNetSharedState.cpp => Sources/Plasma/NucleusLib/pnNetCommon/plNetSharedState.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnNetCommon/plNetSharedState.h => Sources/Plasma/NucleusLib/pnNetCommon/plNetSharedState.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnNetCommon/plSDLTypes.cpp => Sources/Plasma/NucleusLib/pnNetCommon/plSDLTypes.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnNetCommon/plSDLTypes.h => Sources/Plasma/NucleusLib/pnNetCommon/plSDLTypes.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnNetCommon/plSynchedObject.cpp => Sources/Plasma/NucleusLib/pnNetCommon/plSynchedObject.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnNetCommon/plSynchedObject.h => Sources/Plasma/NucleusLib/pnNetCommon/plSynchedObject.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnNetCommon/plSynchedValue.cpp => Sources/Plasma/NucleusLib/pnNetCommon/plSynchedValue.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnNetCommon/plSynchedValue.h => Sources/Plasma/NucleusLib/pnNetCommon/plSynchedValue.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnNetCommon/pnNetCommon.cpp => Sources/Plasma/NucleusLib/pnNetCommon/pnNetCommon.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnNetCommon/pnNetCommon.h => Sources/Plasma/NucleusLib/pnNetCommon/pnNetCommon.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnNetCommon/pnNetCommonCreatable.h => Sources/Plasma/NucleusLib/pnNetCommon/pnNetCommonCreatable.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnNetDiag/CMakeLists.txt => Sources/Plasma/NucleusLib/pnNetDiag/CMakeLists.txt rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnNetDiag/Intern.h => Sources/Plasma/NucleusLib/pnNetDiag/Intern.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnNetDiag/Pch.h => Sources/Plasma/NucleusLib/pnNetDiag/Pch.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnNetDiag/pnNdDns.cpp => Sources/Plasma/NucleusLib/pnNetDiag/pnNdDns.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnNetDiag/pnNdIcmp.cpp => Sources/Plasma/NucleusLib/pnNetDiag/pnNdIcmp.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnNetDiag/pnNdTcp.cpp => Sources/Plasma/NucleusLib/pnNetDiag/pnNdTcp.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnNetDiag/pnNetDiag.cpp => Sources/Plasma/NucleusLib/pnNetDiag/pnNetDiag.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnNetDiag/pnNetDiag.h => Sources/Plasma/NucleusLib/pnNetDiag/pnNetDiag.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnNetDiag/pnNetSys.cpp => Sources/Plasma/NucleusLib/pnNetDiag/pnNetSys.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnNetLog/Intern.h => Sources/Plasma/NucleusLib/pnNetLog/Intern.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnNetLog/Pch.h => Sources/Plasma/NucleusLib/pnNetLog/Pch.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnNetLog/pnNetLog.h => Sources/Plasma/NucleusLib/pnNetLog/pnNetLog.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnNetLog/pnNlApi.cpp => Sources/Plasma/NucleusLib/pnNetLog/pnNlApi.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnNetLog/pnNlCli.cpp => Sources/Plasma/NucleusLib/pnNetLog/pnNlCli.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnNetLog/pnNlSrv.cpp => Sources/Plasma/NucleusLib/pnNetLog/pnNlSrv.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnNetProtocol/CMakeLists.txt => Sources/Plasma/NucleusLib/pnNetProtocol/CMakeLists.txt rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnNetProtocol/Intern.h => Sources/Plasma/NucleusLib/pnNetProtocol/Intern.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnNetProtocol/Pch.h => Sources/Plasma/NucleusLib/pnNetProtocol/Pch.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnNetProtocol/Private/Protocols/Cli2Auth/pnNpCli2Auth.cpp => Sources/Plasma/NucleusLib/pnNetProtocol/Private/Protocols/Cli2Auth/pnNpCli2Auth.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnNetProtocol/Private/Protocols/Cli2Auth/pnNpCli2Auth.h => Sources/Plasma/NucleusLib/pnNetProtocol/Private/Protocols/Cli2Auth/pnNpCli2Auth.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnNetProtocol/Private/Protocols/Cli2Csr/pnNpCli2Csr.cpp => Sources/Plasma/NucleusLib/pnNetProtocol/Private/Protocols/Cli2Csr/pnNpCli2Csr.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnNetProtocol/Private/Protocols/Cli2Csr/pnNpCli2Csr.h => Sources/Plasma/NucleusLib/pnNetProtocol/Private/Protocols/Cli2Csr/pnNpCli2Csr.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnNetProtocol/Private/Protocols/Cli2File/pnNpCli2File.cpp => Sources/Plasma/NucleusLib/pnNetProtocol/Private/Protocols/Cli2File/pnNpCli2File.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnNetProtocol/Private/Protocols/Cli2File/pnNpCli2File.h => Sources/Plasma/NucleusLib/pnNetProtocol/Private/Protocols/Cli2File/pnNpCli2File.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnNetProtocol/Private/Protocols/Cli2Game/pnNpCli2Game.cpp => Sources/Plasma/NucleusLib/pnNetProtocol/Private/Protocols/Cli2Game/pnNpCli2Game.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnNetProtocol/Private/Protocols/Cli2Game/pnNpCli2Game.h => Sources/Plasma/NucleusLib/pnNetProtocol/Private/Protocols/Cli2Game/pnNpCli2Game.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnNetProtocol/Private/Protocols/Cli2GateKeeper/pnNpCli2GateKeeper.cpp => Sources/Plasma/NucleusLib/pnNetProtocol/Private/Protocols/Cli2GateKeeper/pnNpCli2GateKeeper.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnNetProtocol/Private/Protocols/Cli2GateKeeper/pnNpCli2GateKeeper.h => Sources/Plasma/NucleusLib/pnNetProtocol/Private/Protocols/Cli2GateKeeper/pnNpCli2GateKeeper.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnNetProtocol/Private/Protocols/Srv2Db/pnNpSrv2Db.cpp => Sources/Plasma/NucleusLib/pnNetProtocol/Private/Protocols/Srv2Db/pnNpSrv2Db.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnNetProtocol/Private/Protocols/Srv2Db/pnNpSrv2Db.h => Sources/Plasma/NucleusLib/pnNetProtocol/Private/Protocols/Srv2Db/pnNpSrv2Db.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnNetProtocol/Private/Protocols/Srv2Log/pnNpSrv2Log.cpp => Sources/Plasma/NucleusLib/pnNetProtocol/Private/Protocols/Srv2Log/pnNpSrv2Log.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnNetProtocol/Private/Protocols/Srv2Log/pnNpSrv2Log.h => Sources/Plasma/NucleusLib/pnNetProtocol/Private/Protocols/Srv2Log/pnNpSrv2Log.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnNetProtocol/Private/Protocols/Srv2Mcp/pnNpSrv2Mcp.cpp => Sources/Plasma/NucleusLib/pnNetProtocol/Private/Protocols/Srv2Mcp/pnNpSrv2Mcp.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnNetProtocol/Private/Protocols/Srv2Mcp/pnNpSrv2Mcp.h => Sources/Plasma/NucleusLib/pnNetProtocol/Private/Protocols/Srv2Mcp/pnNpSrv2Mcp.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnNetProtocol/Private/Protocols/Srv2Score/pnNpSrv2Score.cpp => Sources/Plasma/NucleusLib/pnNetProtocol/Private/Protocols/Srv2Score/pnNpSrv2Score.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnNetProtocol/Private/Protocols/Srv2Score/pnNpSrv2Score.h => Sources/Plasma/NucleusLib/pnNetProtocol/Private/Protocols/Srv2Score/pnNpSrv2Score.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnNetProtocol/Private/Protocols/Srv2State/pnNpSrv2State.cpp => Sources/Plasma/NucleusLib/pnNetProtocol/Private/Protocols/Srv2State/pnNpSrv2State.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnNetProtocol/Private/Protocols/Srv2State/pnNpSrv2State.h => Sources/Plasma/NucleusLib/pnNetProtocol/Private/Protocols/Srv2State/pnNpSrv2State.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnNetProtocol/Private/Protocols/Srv2Vault/pnNpSrv2Vault.cpp => Sources/Plasma/NucleusLib/pnNetProtocol/Private/Protocols/Srv2Vault/pnNpSrv2Vault.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnNetProtocol/Private/Protocols/Srv2Vault/pnNpSrv2Vault.h => Sources/Plasma/NucleusLib/pnNetProtocol/Private/Protocols/Srv2Vault/pnNpSrv2Vault.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnNetProtocol/Private/pnNpAllIncludes.h => Sources/Plasma/NucleusLib/pnNetProtocol/Private/pnNpAllIncludes.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnNetProtocol/Private/pnNpCommon.cpp => Sources/Plasma/NucleusLib/pnNetProtocol/Private/pnNpCommon.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnNetProtocol/Private/pnNpCommon.h => Sources/Plasma/NucleusLib/pnNetProtocol/Private/pnNpCommon.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnNetProtocol/pnNetProtocol.h => Sources/Plasma/NucleusLib/pnNetProtocol/pnNetProtocol.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnOraLib/Intern.h => Sources/Plasma/NucleusLib/pnOraLib/Intern.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnOraLib/Pch.h => Sources/Plasma/NucleusLib/pnOraLib/Pch.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnOraLib/pnOraLib.cpp => Sources/Plasma/NucleusLib/pnOraLib/pnOraLib.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnOraLib/pnOraLib.h => Sources/Plasma/NucleusLib/pnOraLib/pnOraLib.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnProduct/CMakeLists.txt => Sources/Plasma/NucleusLib/pnProduct/CMakeLists.txt rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnProduct/Pch.h => Sources/Plasma/NucleusLib/pnProduct/Pch.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnProduct/Private/pnPrAllIncludes.h => Sources/Plasma/NucleusLib/pnProduct/Private/pnPrAllIncludes.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnProduct/Private/pnPrBranchId.cpp => Sources/Plasma/NucleusLib/pnProduct/Private/pnPrBranchId.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnProduct/Private/pnPrBranchId.h => Sources/Plasma/NucleusLib/pnProduct/Private/pnPrBranchId.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnProduct/Private/pnPrBuildId.cpp => Sources/Plasma/NucleusLib/pnProduct/Private/pnPrBuildId.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnProduct/Private/pnPrBuildId.h => Sources/Plasma/NucleusLib/pnProduct/Private/pnPrBuildId.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnProduct/Private/pnPrBuildString.cpp => Sources/Plasma/NucleusLib/pnProduct/Private/pnPrBuildString.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnProduct/Private/pnPrBuildString.h => Sources/Plasma/NucleusLib/pnProduct/Private/pnPrBuildString.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnProduct/Private/pnPrBuildType.cpp => Sources/Plasma/NucleusLib/pnProduct/Private/pnPrBuildType.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnProduct/Private/pnPrBuildType.h => Sources/Plasma/NucleusLib/pnProduct/Private/pnPrBuildType.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnProduct/Private/pnPrProductId.cpp => Sources/Plasma/NucleusLib/pnProduct/Private/pnPrProductId.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnProduct/Private/pnPrProductId.h => Sources/Plasma/NucleusLib/pnProduct/Private/pnPrProductId.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnProduct/pnProduct.h => Sources/Plasma/NucleusLib/pnProduct/pnProduct.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnSceneObject/CMakeLists.txt => Sources/Plasma/NucleusLib/pnSceneObject/CMakeLists.txt rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnSceneObject/plAudioInterface.cpp => Sources/Plasma/NucleusLib/pnSceneObject/plAudioInterface.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnSceneObject/plAudioInterface.h => Sources/Plasma/NucleusLib/pnSceneObject/plAudioInterface.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnSceneObject/plCoordinateInterface.cpp => Sources/Plasma/NucleusLib/pnSceneObject/plCoordinateInterface.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnSceneObject/plCoordinateInterface.h => Sources/Plasma/NucleusLib/pnSceneObject/plCoordinateInterface.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnSceneObject/plDrawInterface.cpp => Sources/Plasma/NucleusLib/pnSceneObject/plDrawInterface.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnSceneObject/plDrawInterface.h => Sources/Plasma/NucleusLib/pnSceneObject/plDrawInterface.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnSceneObject/plObjInterface.cpp => Sources/Plasma/NucleusLib/pnSceneObject/plObjInterface.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnSceneObject/plObjInterface.h => Sources/Plasma/NucleusLib/pnSceneObject/plObjInterface.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnSceneObject/plSceneObject.cpp => Sources/Plasma/NucleusLib/pnSceneObject/plSceneObject.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnSceneObject/plSceneObject.h => Sources/Plasma/NucleusLib/pnSceneObject/plSceneObject.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnSceneObject/plSimulationInterface.cpp => Sources/Plasma/NucleusLib/pnSceneObject/plSimulationInterface.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnSceneObject/plSimulationInterface.h => Sources/Plasma/NucleusLib/pnSceneObject/plSimulationInterface.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnSceneObject/pnSceneObjectCreatable.h => Sources/Plasma/NucleusLib/pnSceneObject/pnSceneObjectCreatable.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnSimpleNet/CMakeLists.txt => Sources/Plasma/NucleusLib/pnSimpleNet/CMakeLists.txt rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnSimpleNet/Pch.h => Sources/Plasma/NucleusLib/pnSimpleNet/Pch.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnSimpleNet/pnSimpleNet.cpp => Sources/Plasma/NucleusLib/pnSimpleNet/pnSimpleNet.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnSimpleNet/pnSimpleNet.h => Sources/Plasma/NucleusLib/pnSimpleNet/pnSimpleNet.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnSqlLib/Intern.h => Sources/Plasma/NucleusLib/pnSqlLib/Intern.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnSqlLib/Pch.h => Sources/Plasma/NucleusLib/pnSqlLib/Pch.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnSqlLib/Private/pnSqlAllIncludes.h => Sources/Plasma/NucleusLib/pnSqlLib/Private/pnSqlAllIncludes.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnSqlLib/Private/pnSqlConn.cpp => Sources/Plasma/NucleusLib/pnSqlLib/Private/pnSqlConn.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnSqlLib/Private/pnSqlConn.h => Sources/Plasma/NucleusLib/pnSqlLib/Private/pnSqlConn.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnSqlLib/Private/pnSqlUtil.cpp => Sources/Plasma/NucleusLib/pnSqlLib/Private/pnSqlUtil.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnSqlLib/Private/pnSqlUtil.h => Sources/Plasma/NucleusLib/pnSqlLib/Private/pnSqlUtil.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnSqlLib/pnSqlLib.h => Sources/Plasma/NucleusLib/pnSqlLib/pnSqlLib.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnTimer/CMakeLists.txt => Sources/Plasma/NucleusLib/pnTimer/CMakeLists.txt rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnTimer/hsTimer.cpp => Sources/Plasma/NucleusLib/pnTimer/hsTimer.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnTimer/plTimedValue.cpp => Sources/Plasma/NucleusLib/pnTimer/plTimedValue.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnTimer/plTimedValue.h => Sources/Plasma/NucleusLib/pnTimer/plTimedValue.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnTimer/plTimerCallbackManager.cpp => Sources/Plasma/NucleusLib/pnTimer/plTimerCallbackManager.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnTimer/plTimerCallbackManager.h => Sources/Plasma/NucleusLib/pnTimer/plTimerCallbackManager.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnTimer/pnBranchDate.cpp => Sources/Plasma/NucleusLib/pnTimer/pnBranchDate.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnTimer/pnBuildDates.cpp => Sources/Plasma/NucleusLib/pnTimer/pnBuildDates.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnTimer/pnBuildDates.h => Sources/Plasma/NucleusLib/pnTimer/pnBuildDates.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnTimer/pnTimerCreatable.h => Sources/Plasma/NucleusLib/pnTimer/pnTimerCreatable.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnUtils/CMakeLists.txt => Sources/Plasma/NucleusLib/pnUtils/CMakeLists.txt rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnUtils/Intern.h => Sources/Plasma/NucleusLib/pnUtils/Intern.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnUtils/Pch.h => Sources/Plasma/NucleusLib/pnUtils/Pch.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnUtils/Private/Unix/pnUtUxStr.cpp => Sources/Plasma/NucleusLib/pnUtils/Private/Unix/pnUtUxStr.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnUtils/Private/Unix/pnUtUxSync.cpp => Sources/Plasma/NucleusLib/pnUtils/Private/Unix/pnUtUxSync.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnUtils/Private/Unix/pnUtUxUuid.cpp => Sources/Plasma/NucleusLib/pnUtils/Private/Unix/pnUtUxUuid.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnUtils/Private/Win32/W32Int.h => Sources/Plasma/NucleusLib/pnUtils/Private/Win32/W32Int.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnUtils/Private/Win32/pnUtW32Addr.cpp => Sources/Plasma/NucleusLib/pnUtils/Private/Win32/pnUtW32Addr.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnUtils/Private/Win32/pnUtW32Dll.cpp => Sources/Plasma/NucleusLib/pnUtils/Private/Win32/pnUtW32Dll.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnUtils/Private/Win32/pnUtW32Misc.cpp => Sources/Plasma/NucleusLib/pnUtils/Private/Win32/pnUtW32Misc.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnUtils/Private/Win32/pnUtW32Path.cpp => Sources/Plasma/NucleusLib/pnUtils/Private/Win32/pnUtW32Path.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnUtils/Private/Win32/pnUtW32Str.cpp => Sources/Plasma/NucleusLib/pnUtils/Private/Win32/pnUtW32Str.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnUtils/Private/Win32/pnUtW32Sync.cpp => Sources/Plasma/NucleusLib/pnUtils/Private/Win32/pnUtW32Sync.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnUtils/Private/Win32/pnUtW32Time.cpp => Sources/Plasma/NucleusLib/pnUtils/Private/Win32/pnUtW32Time.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnUtils/Private/Win32/pnUtW32Uuid.cpp => Sources/Plasma/NucleusLib/pnUtils/Private/Win32/pnUtW32Uuid.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnUtils/Private/pnUtAddr.cpp => Sources/Plasma/NucleusLib/pnUtils/Private/pnUtAddr.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnUtils/Private/pnUtAddr.h => Sources/Plasma/NucleusLib/pnUtils/Private/pnUtAddr.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnUtils/Private/pnUtAllIncludes.h => Sources/Plasma/NucleusLib/pnUtils/Private/pnUtAllIncludes.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnUtils/Private/pnUtArray.cpp => Sources/Plasma/NucleusLib/pnUtils/Private/pnUtArray.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnUtils/Private/pnUtArray.h => Sources/Plasma/NucleusLib/pnUtils/Private/pnUtArray.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnUtils/Private/pnUtBase64.cpp => Sources/Plasma/NucleusLib/pnUtils/Private/pnUtBase64.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnUtils/Private/pnUtBase64.h => Sources/Plasma/NucleusLib/pnUtils/Private/pnUtBase64.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnUtils/Private/pnUtBigNum.cpp => Sources/Plasma/NucleusLib/pnUtils/Private/pnUtBigNum.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnUtils/Private/pnUtBigNum.h => Sources/Plasma/NucleusLib/pnUtils/Private/pnUtBigNum.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnUtils/Private/pnUtCmd.cpp => Sources/Plasma/NucleusLib/pnUtils/Private/pnUtCmd.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnUtils/Private/pnUtCmd.h => Sources/Plasma/NucleusLib/pnUtils/Private/pnUtCmd.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnUtils/Private/pnUtCoreLib.h => Sources/Plasma/NucleusLib/pnUtils/Private/pnUtCoreLib.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnUtils/Private/pnUtCrypt.cpp => Sources/Plasma/NucleusLib/pnUtils/Private/pnUtCrypt.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnUtils/Private/pnUtCrypt.h => Sources/Plasma/NucleusLib/pnUtils/Private/pnUtCrypt.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnUtils/Private/pnUtEndian.cpp => Sources/Plasma/NucleusLib/pnUtils/Private/pnUtEndian.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnUtils/Private/pnUtEndian.h => Sources/Plasma/NucleusLib/pnUtils/Private/pnUtEndian.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnUtils/Private/pnUtHash.cpp => Sources/Plasma/NucleusLib/pnUtils/Private/pnUtHash.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnUtils/Private/pnUtHash.h => Sources/Plasma/NucleusLib/pnUtils/Private/pnUtHash.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnUtils/Private/pnUtList.cpp => Sources/Plasma/NucleusLib/pnUtils/Private/pnUtList.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnUtils/Private/pnUtList.h => Sources/Plasma/NucleusLib/pnUtils/Private/pnUtList.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnUtils/Private/pnUtMath.cpp => Sources/Plasma/NucleusLib/pnUtils/Private/pnUtMath.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnUtils/Private/pnUtMath.h => Sources/Plasma/NucleusLib/pnUtils/Private/pnUtMath.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnUtils/Private/pnUtMisc.cpp => Sources/Plasma/NucleusLib/pnUtils/Private/pnUtMisc.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnUtils/Private/pnUtMisc.h => Sources/Plasma/NucleusLib/pnUtils/Private/pnUtMisc.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnUtils/Private/pnUtPath.cpp => Sources/Plasma/NucleusLib/pnUtils/Private/pnUtPath.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnUtils/Private/pnUtPath.h => Sources/Plasma/NucleusLib/pnUtils/Private/pnUtPath.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnUtils/Private/pnUtPragma.h => Sources/Plasma/NucleusLib/pnUtils/Private/pnUtPragma.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnUtils/Private/pnUtPriQ.h => Sources/Plasma/NucleusLib/pnUtils/Private/pnUtPriQ.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnUtils/Private/pnUtRand.cpp => Sources/Plasma/NucleusLib/pnUtils/Private/pnUtRand.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnUtils/Private/pnUtRand.h => Sources/Plasma/NucleusLib/pnUtils/Private/pnUtRand.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnUtils/Private/pnUtRef.h => Sources/Plasma/NucleusLib/pnUtils/Private/pnUtRef.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnUtils/Private/pnUtSkipList.h => Sources/Plasma/NucleusLib/pnUtils/Private/pnUtSkipList.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnUtils/Private/pnUtSort.h => Sources/Plasma/NucleusLib/pnUtils/Private/pnUtSort.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnUtils/Private/pnUtSpareList.cpp => Sources/Plasma/NucleusLib/pnUtils/Private/pnUtSpareList.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnUtils/Private/pnUtSpareList.h => Sources/Plasma/NucleusLib/pnUtils/Private/pnUtSpareList.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnUtils/Private/pnUtStr.cpp => Sources/Plasma/NucleusLib/pnUtils/Private/pnUtStr.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnUtils/Private/pnUtStr.h => Sources/Plasma/NucleusLib/pnUtils/Private/pnUtStr.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnUtils/Private/pnUtSubst.cpp => Sources/Plasma/NucleusLib/pnUtils/Private/pnUtSubst.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnUtils/Private/pnUtSubst.h => Sources/Plasma/NucleusLib/pnUtils/Private/pnUtSubst.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnUtils/Private/pnUtSync.h => Sources/Plasma/NucleusLib/pnUtils/Private/pnUtSync.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnUtils/Private/pnUtTime.cpp => Sources/Plasma/NucleusLib/pnUtils/Private/pnUtTime.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnUtils/Private/pnUtTime.h => Sources/Plasma/NucleusLib/pnUtils/Private/pnUtTime.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnUtils/Private/pnUtTls.cpp => Sources/Plasma/NucleusLib/pnUtils/Private/pnUtTls.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnUtils/Private/pnUtTls.h => Sources/Plasma/NucleusLib/pnUtils/Private/pnUtTls.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnUtils/Private/pnUtTypes.h => Sources/Plasma/NucleusLib/pnUtils/Private/pnUtTypes.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnUtils/Private/pnUtUuid.cpp => Sources/Plasma/NucleusLib/pnUtils/Private/pnUtUuid.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnUtils/Private/pnUtUuid.h => Sources/Plasma/NucleusLib/pnUtils/Private/pnUtUuid.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnUtils/pnUtils.cpp => Sources/Plasma/NucleusLib/pnUtils/pnUtils.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnUtils/pnUtils.h => Sources/Plasma/NucleusLib/pnUtils/pnUtils.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnUtilsExe/CMakeLists.txt => Sources/Plasma/NucleusLib/pnUtilsExe/CMakeLists.txt rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnUtilsExe/Intern.h => Sources/Plasma/NucleusLib/pnUtilsExe/Intern.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnUtilsExe/Pch.h => Sources/Plasma/NucleusLib/pnUtilsExe/Pch.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnUtilsExe/Private/Unix/pnUteUxTime.cpp => Sources/Plasma/NucleusLib/pnUtilsExe/Private/Unix/pnUteUxTime.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnUtilsExe/Private/Win32/pnUteW32Time.cpp => Sources/Plasma/NucleusLib/pnUtilsExe/Private/Win32/pnUteW32Time.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnUtilsExe/Private/pnUteTime.cpp => Sources/Plasma/NucleusLib/pnUtilsExe/Private/pnUteTime.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/NucleusLib/pnUtilsExe/Private/pnUteTls.cpp => Sources/Plasma/NucleusLib/pnUtilsExe/Private/pnUteTls.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/CMakeLists.txt => Sources/Plasma/PubUtilLib/CMakeLists.txt rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/inc/plAllCreatables.h => Sources/Plasma/PubUtilLib/inc/plAllCreatables.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plAgeDescription/CMakeLists.txt => Sources/Plasma/PubUtilLib/plAgeDescription/CMakeLists.txt rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plAgeDescription/plAgeDescription.cpp => Sources/Plasma/PubUtilLib/plAgeDescription/plAgeDescription.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plAgeDescription/plAgeDescription.h => Sources/Plasma/PubUtilLib/plAgeDescription/plAgeDescription.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plAgeDescription/plAgeManifest.cpp => Sources/Plasma/PubUtilLib/plAgeDescription/plAgeManifest.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plAgeDescription/plAgeManifest.h => Sources/Plasma/PubUtilLib/plAgeDescription/plAgeManifest.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plAgeLoader/CMakeLists.txt => Sources/Plasma/PubUtilLib/plAgeLoader/CMakeLists.txt rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plAgeLoader/plAgeLoader.cpp => Sources/Plasma/PubUtilLib/plAgeLoader/plAgeLoader.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plAgeLoader/plAgeLoader.h => Sources/Plasma/PubUtilLib/plAgeLoader/plAgeLoader.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plAgeLoader/plAgeLoaderCreatable.h => Sources/Plasma/PubUtilLib/plAgeLoader/plAgeLoaderCreatable.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plAgeLoader/plAgeLoaderPaging.cpp => Sources/Plasma/PubUtilLib/plAgeLoader/plAgeLoaderPaging.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plAgeLoader/plBackgroundDownloader.cpp => Sources/Plasma/PubUtilLib/plAgeLoader/plBackgroundDownloader.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plAgeLoader/plBackgroundDownloader.h => Sources/Plasma/PubUtilLib/plAgeLoader/plBackgroundDownloader.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plAgeLoader/plResPatcher.cpp => Sources/Plasma/PubUtilLib/plAgeLoader/plResPatcher.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plAgeLoader/plResPatcher.h => Sources/Plasma/PubUtilLib/plAgeLoader/plResPatcher.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plAudible/CMakeLists.txt => Sources/Plasma/PubUtilLib/plAudible/CMakeLists.txt rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plAudible/plAudibleCreatable.h => Sources/Plasma/PubUtilLib/plAudible/plAudibleCreatable.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plAudible/plAudibleNull.cpp => Sources/Plasma/PubUtilLib/plAudible/plAudibleNull.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plAudible/plAudibleNull.h => Sources/Plasma/PubUtilLib/plAudible/plAudibleNull.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plAudible/plWinAudible.cpp => Sources/Plasma/PubUtilLib/plAudible/plWinAudible.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plAudible/plWinAudible.h => Sources/Plasma/PubUtilLib/plAudible/plWinAudible.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plAudible/plWinAudibleProxy.cpp => Sources/Plasma/PubUtilLib/plAudible/plWinAudibleProxy.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plAudible/plWinAudibleProxy.h => Sources/Plasma/PubUtilLib/plAudible/plWinAudibleProxy.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plAudio/CMakeLists.txt => Sources/Plasma/PubUtilLib/plAudio/CMakeLists.txt rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plAudio/plAudioCaps.cpp => Sources/Plasma/PubUtilLib/plAudio/plAudioCaps.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plAudio/plAudioCaps.h => Sources/Plasma/PubUtilLib/plAudio/plAudioCaps.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plAudio/plAudioCreatable.h => Sources/Plasma/PubUtilLib/plAudio/plAudioCreatable.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plAudio/plAudioReaderCreatable.h => Sources/Plasma/PubUtilLib/plAudio/plAudioReaderCreatable.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plAudio/plAudioSystem.cpp => Sources/Plasma/PubUtilLib/plAudio/plAudioSystem.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plAudio/plAudioSystem.h => Sources/Plasma/PubUtilLib/plAudio/plAudioSystem.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plAudio/plDSoundBuffer.cpp => Sources/Plasma/PubUtilLib/plAudio/plDSoundBuffer.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plAudio/plDSoundBuffer.h => Sources/Plasma/PubUtilLib/plAudio/plDSoundBuffer.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plAudio/plEAXEffects.cpp => Sources/Plasma/PubUtilLib/plAudio/plEAXEffects.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plAudio/plEAXEffects.h => Sources/Plasma/PubUtilLib/plAudio/plEAXEffects.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plAudio/plEAXListenerMod.cpp => Sources/Plasma/PubUtilLib/plAudio/plEAXListenerMod.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plAudio/plEAXListenerMod.h => Sources/Plasma/PubUtilLib/plAudio/plEAXListenerMod.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plAudio/plSound.cpp => Sources/Plasma/PubUtilLib/plAudio/plSound.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plAudio/plSound.h => Sources/Plasma/PubUtilLib/plAudio/plSound.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plAudio/plSoundEvent.cpp => Sources/Plasma/PubUtilLib/plAudio/plSoundEvent.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plAudio/plSoundEvent.h => Sources/Plasma/PubUtilLib/plAudio/plSoundEvent.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plAudio/plVoiceChat.cpp => Sources/Plasma/PubUtilLib/plAudio/plVoiceChat.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plAudio/plVoiceChat.h => Sources/Plasma/PubUtilLib/plAudio/plVoiceChat.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plAudio/plWAVClipBuffer.cpp => Sources/Plasma/PubUtilLib/plAudio/plWAVClipBuffer.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plAudio/plWAVClipBuffer.h => Sources/Plasma/PubUtilLib/plAudio/plWAVClipBuffer.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plAudio/plWin32GroupedSound.cpp => Sources/Plasma/PubUtilLib/plAudio/plWin32GroupedSound.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plAudio/plWin32GroupedSound.h => Sources/Plasma/PubUtilLib/plAudio/plWin32GroupedSound.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plAudio/plWin32Sound.cpp => Sources/Plasma/PubUtilLib/plAudio/plWin32Sound.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plAudio/plWin32Sound.h => Sources/Plasma/PubUtilLib/plAudio/plWin32Sound.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plAudio/plWin32StaticSound.cpp => Sources/Plasma/PubUtilLib/plAudio/plWin32StaticSound.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plAudio/plWin32StaticSound.h => Sources/Plasma/PubUtilLib/plAudio/plWin32StaticSound.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plAudio/plWin32StreamingSound.cpp => Sources/Plasma/PubUtilLib/plAudio/plWin32StreamingSound.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plAudio/plWin32StreamingSound.h => Sources/Plasma/PubUtilLib/plAudio/plWin32StreamingSound.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plAudio/plWinMicLevel.cpp => Sources/Plasma/PubUtilLib/plAudio/plWinMicLevel.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plAudio/plWinMicLevel.h => Sources/Plasma/PubUtilLib/plAudio/plWinMicLevel.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plAudioCore/CMakeLists.txt => Sources/Plasma/PubUtilLib/plAudioCore/CMakeLists.txt rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plAudioCore/plAudioCore.h => Sources/Plasma/PubUtilLib/plAudioCore/plAudioCore.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plAudioCore/plAudioCoreCreatable.h => Sources/Plasma/PubUtilLib/plAudioCore/plAudioCoreCreatable.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plAudioCore/plAudioFileReader.cpp => Sources/Plasma/PubUtilLib/plAudioCore/plAudioFileReader.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plAudioCore/plAudioFileReader.h => Sources/Plasma/PubUtilLib/plAudioCore/plAudioFileReader.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plAudioCore/plBufferedFileReader.cpp => Sources/Plasma/PubUtilLib/plAudioCore/plBufferedFileReader.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plAudioCore/plBufferedFileReader.h => Sources/Plasma/PubUtilLib/plAudioCore/plBufferedFileReader.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plAudioCore/plFastWavReader.cpp => Sources/Plasma/PubUtilLib/plAudioCore/plFastWavReader.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plAudioCore/plFastWavReader.h => Sources/Plasma/PubUtilLib/plAudioCore/plFastWavReader.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plAudioCore/plOGGCodec.cpp => Sources/Plasma/PubUtilLib/plAudioCore/plOGGCodec.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plAudioCore/plOGGCodec.h => Sources/Plasma/PubUtilLib/plAudioCore/plOGGCodec.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plAudioCore/plSoundBuffer.cpp => Sources/Plasma/PubUtilLib/plAudioCore/plSoundBuffer.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plAudioCore/plSoundBuffer.h => Sources/Plasma/PubUtilLib/plAudioCore/plSoundBuffer.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plAudioCore/plSoundDeswizzler.cpp => Sources/Plasma/PubUtilLib/plAudioCore/plSoundDeswizzler.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plAudioCore/plSoundDeswizzler.h => Sources/Plasma/PubUtilLib/plAudioCore/plSoundDeswizzler.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plAudioCore/plWavFile.cpp => Sources/Plasma/PubUtilLib/plAudioCore/plWavFile.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plAudioCore/plWavFile.h => Sources/Plasma/PubUtilLib/plAudioCore/plWavFile.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plAvatar/CMakeLists.txt => Sources/Plasma/PubUtilLib/plAvatar/CMakeLists.txt rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plAvatar/plAGAnim.cpp => Sources/Plasma/PubUtilLib/plAvatar/plAGAnim.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plAvatar/plAGAnim.h => Sources/Plasma/PubUtilLib/plAvatar/plAGAnim.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plAvatar/plAGAnimInstance.cpp => Sources/Plasma/PubUtilLib/plAvatar/plAGAnimInstance.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plAvatar/plAGAnimInstance.h => Sources/Plasma/PubUtilLib/plAvatar/plAGAnimInstance.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plAvatar/plAGApplicator.cpp => Sources/Plasma/PubUtilLib/plAvatar/plAGApplicator.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plAvatar/plAGApplicator.h => Sources/Plasma/PubUtilLib/plAvatar/plAGApplicator.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plAvatar/plAGChannel.cpp => Sources/Plasma/PubUtilLib/plAvatar/plAGChannel.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plAvatar/plAGChannel.h => Sources/Plasma/PubUtilLib/plAvatar/plAGChannel.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plAvatar/plAGMasterMod.cpp => Sources/Plasma/PubUtilLib/plAvatar/plAGMasterMod.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plAvatar/plAGMasterMod.h => Sources/Plasma/PubUtilLib/plAvatar/plAGMasterMod.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plAvatar/plAGMasterSDLModifier.cpp => Sources/Plasma/PubUtilLib/plAvatar/plAGMasterSDLModifier.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plAvatar/plAGMasterSDLModifier.h => Sources/Plasma/PubUtilLib/plAvatar/plAGMasterSDLModifier.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plAvatar/plAGModifier.cpp => Sources/Plasma/PubUtilLib/plAvatar/plAGModifier.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plAvatar/plAGModifier.h => Sources/Plasma/PubUtilLib/plAvatar/plAGModifier.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plAvatar/plAnimStage.cpp => Sources/Plasma/PubUtilLib/plAvatar/plAnimStage.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plAvatar/plAnimStage.h => Sources/Plasma/PubUtilLib/plAvatar/plAnimStage.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plAvatar/plAntiGravAction.cpp => Sources/Plasma/PubUtilLib/plAvatar/plAntiGravAction.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plAvatar/plAntiGravAction.h => Sources/Plasma/PubUtilLib/plAvatar/plAntiGravAction.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plAvatar/plArmatureEffects.cpp => Sources/Plasma/PubUtilLib/plAvatar/plArmatureEffects.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plAvatar/plArmatureEffects.h => Sources/Plasma/PubUtilLib/plAvatar/plArmatureEffects.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plAvatar/plArmatureMod.cpp => Sources/Plasma/PubUtilLib/plAvatar/plArmatureMod.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plAvatar/plArmatureMod.h => Sources/Plasma/PubUtilLib/plAvatar/plArmatureMod.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plAvatar/plAvBehaviors.cpp => Sources/Plasma/PubUtilLib/plAvatar/plAvBehaviors.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plAvatar/plAvBehaviors.h => Sources/Plasma/PubUtilLib/plAvatar/plAvBehaviors.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plAvatar/plAvBrain.cpp => Sources/Plasma/PubUtilLib/plAvatar/plAvBrain.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plAvatar/plAvBrain.h => Sources/Plasma/PubUtilLib/plAvatar/plAvBrain.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plAvatar/plAvBrainClimb.cpp => Sources/Plasma/PubUtilLib/plAvatar/plAvBrainClimb.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plAvatar/plAvBrainClimb.h => Sources/Plasma/PubUtilLib/plAvatar/plAvBrainClimb.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plAvatar/plAvBrainCoop.cpp => Sources/Plasma/PubUtilLib/plAvatar/plAvBrainCoop.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plAvatar/plAvBrainCoop.h => Sources/Plasma/PubUtilLib/plAvatar/plAvBrainCoop.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plAvatar/plAvBrainCritter.cpp => Sources/Plasma/PubUtilLib/plAvatar/plAvBrainCritter.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plAvatar/plAvBrainCritter.h => Sources/Plasma/PubUtilLib/plAvatar/plAvBrainCritter.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plAvatar/plAvBrainDrive.cpp => Sources/Plasma/PubUtilLib/plAvatar/plAvBrainDrive.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plAvatar/plAvBrainDrive.h => Sources/Plasma/PubUtilLib/plAvatar/plAvBrainDrive.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plAvatar/plAvBrainGeneric.cpp => Sources/Plasma/PubUtilLib/plAvatar/plAvBrainGeneric.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plAvatar/plAvBrainGeneric.h => Sources/Plasma/PubUtilLib/plAvatar/plAvBrainGeneric.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plAvatar/plAvBrainHuman.cpp => Sources/Plasma/PubUtilLib/plAvatar/plAvBrainHuman.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plAvatar/plAvBrainHuman.h => Sources/Plasma/PubUtilLib/plAvatar/plAvBrainHuman.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plAvatar/plAvBrainPuppet.cpp => Sources/Plasma/PubUtilLib/plAvatar/plAvBrainPuppet.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plAvatar/plAvBrainPuppet.h => Sources/Plasma/PubUtilLib/plAvatar/plAvBrainPuppet.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plAvatar/plAvBrainRideAnimatedPhysical.cpp => Sources/Plasma/PubUtilLib/plAvatar/plAvBrainRideAnimatedPhysical.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plAvatar/plAvBrainRideAnimatedPhysical.h => Sources/Plasma/PubUtilLib/plAvatar/plAvBrainRideAnimatedPhysical.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plAvatar/plAvBrainStaticNPC.cpp => Sources/Plasma/PubUtilLib/plAvatar/plAvBrainStaticNPC.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plAvatar/plAvBrainSwim.cpp => Sources/Plasma/PubUtilLib/plAvatar/plAvBrainSwim.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plAvatar/plAvBrainSwim.h => Sources/Plasma/PubUtilLib/plAvatar/plAvBrainSwim.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plAvatar/plAvBrainUser.cpp => Sources/Plasma/PubUtilLib/plAvatar/plAvBrainUser.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plAvatar/plAvBrainUser.h => Sources/Plasma/PubUtilLib/plAvatar/plAvBrainUser.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plAvatar/plAvCallbackAction.cpp => Sources/Plasma/PubUtilLib/plAvatar/plAvCallbackAction.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plAvatar/plAvCallbackAction.h => Sources/Plasma/PubUtilLib/plAvatar/plAvCallbackAction.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plAvatar/plAvDefs.h => Sources/Plasma/PubUtilLib/plAvatar/plAvDefs.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plAvatar/plAvLadderModifier.cpp => Sources/Plasma/PubUtilLib/plAvatar/plAvLadderModifier.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plAvatar/plAvLadderModifier.h => Sources/Plasma/PubUtilLib/plAvatar/plAvLadderModifier.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plAvatar/plAvMotorHuman.cpp => Sources/Plasma/PubUtilLib/plAvatar/plAvMotorHuman.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plAvatar/plAvMotorHuman.h => Sources/Plasma/PubUtilLib/plAvatar/plAvMotorHuman.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plAvatar/plAvTask.cpp => Sources/Plasma/PubUtilLib/plAvatar/plAvTask.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plAvatar/plAvTask.h => Sources/Plasma/PubUtilLib/plAvatar/plAvTask.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plAvatar/plAvTaskBrain.cpp => Sources/Plasma/PubUtilLib/plAvatar/plAvTaskBrain.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plAvatar/plAvTaskBrain.h => Sources/Plasma/PubUtilLib/plAvatar/plAvTaskBrain.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plAvatar/plAvTaskOrient.cpp => Sources/Plasma/PubUtilLib/plAvatar/plAvTaskOrient.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plAvatar/plAvTaskOrient.h => Sources/Plasma/PubUtilLib/plAvatar/plAvTaskOrient.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plAvatar/plAvTaskSeek.cpp => Sources/Plasma/PubUtilLib/plAvatar/plAvTaskSeek.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plAvatar/plAvTaskSeek.h => Sources/Plasma/PubUtilLib/plAvatar/plAvTaskSeek.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plAvatar/plAvatarClothing.cpp => Sources/Plasma/PubUtilLib/plAvatar/plAvatarClothing.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plAvatar/plAvatarClothing.h => Sources/Plasma/PubUtilLib/plAvatar/plAvatarClothing.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plAvatar/plAvatarCreatable.h => Sources/Plasma/PubUtilLib/plAvatar/plAvatarCreatable.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plAvatar/plAvatarMgr.cpp => Sources/Plasma/PubUtilLib/plAvatar/plAvatarMgr.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plAvatar/plAvatarMgr.h => Sources/Plasma/PubUtilLib/plAvatar/plAvatarMgr.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plAvatar/plAvatarSDLModifier.cpp => Sources/Plasma/PubUtilLib/plAvatar/plAvatarSDLModifier.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plAvatar/plAvatarSDLModifier.h => Sources/Plasma/PubUtilLib/plAvatar/plAvatarSDLModifier.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plAvatar/plAvatarTasks.cpp => Sources/Plasma/PubUtilLib/plAvatar/plAvatarTasks.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plAvatar/plAvatarTasks.h => Sources/Plasma/PubUtilLib/plAvatar/plAvatarTasks.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plAvatar/plClothingLayout.h => Sources/Plasma/PubUtilLib/plAvatar/plClothingLayout.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plAvatar/plClothingSDLModifier.cpp => Sources/Plasma/PubUtilLib/plAvatar/plClothingSDLModifier.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plAvatar/plClothingSDLModifier.h => Sources/Plasma/PubUtilLib/plAvatar/plClothingSDLModifier.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plAvatar/plCoopCoordinator.cpp => Sources/Plasma/PubUtilLib/plAvatar/plCoopCoordinator.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plAvatar/plCoopCoordinator.h => Sources/Plasma/PubUtilLib/plAvatar/plCoopCoordinator.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plAvatar/plCritterCommands.h => Sources/Plasma/PubUtilLib/plAvatar/plCritterCommands.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plAvatar/plMatrixChannel.cpp => Sources/Plasma/PubUtilLib/plAvatar/plMatrixChannel.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plAvatar/plMatrixChannel.h => Sources/Plasma/PubUtilLib/plAvatar/plMatrixChannel.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plAvatar/plMultistageBehMod.cpp => Sources/Plasma/PubUtilLib/plAvatar/plMultistageBehMod.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plAvatar/plMultistageBehMod.h => Sources/Plasma/PubUtilLib/plAvatar/plMultistageBehMod.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plAvatar/plNPCSpawnMod.cpp => Sources/Plasma/PubUtilLib/plAvatar/plNPCSpawnMod.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plAvatar/plNPCSpawnMod.h => Sources/Plasma/PubUtilLib/plAvatar/plNPCSpawnMod.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plAvatar/plOneShotMod.cpp => Sources/Plasma/PubUtilLib/plAvatar/plOneShotMod.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plAvatar/plOneShotMod.h => Sources/Plasma/PubUtilLib/plAvatar/plOneShotMod.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plAvatar/plPhysicalControllerCore.cpp => Sources/Plasma/PubUtilLib/plAvatar/plPhysicalControllerCore.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plAvatar/plPhysicalControllerCore.h => Sources/Plasma/PubUtilLib/plAvatar/plPhysicalControllerCore.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plAvatar/plPointChannel.cpp => Sources/Plasma/PubUtilLib/plAvatar/plPointChannel.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plAvatar/plPointChannel.h => Sources/Plasma/PubUtilLib/plAvatar/plPointChannel.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plAvatar/plPuppetBrainMsg.h => Sources/Plasma/PubUtilLib/plAvatar/plPuppetBrainMsg.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plAvatar/plPuppetCommands.h => Sources/Plasma/PubUtilLib/plAvatar/plPuppetCommands.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plAvatar/plQuatChannel.cpp => Sources/Plasma/PubUtilLib/plAvatar/plQuatChannel.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plAvatar/plQuatChannel.h => Sources/Plasma/PubUtilLib/plAvatar/plQuatChannel.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plAvatar/plScalarChannel.cpp => Sources/Plasma/PubUtilLib/plAvatar/plScalarChannel.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plAvatar/plScalarChannel.h => Sources/Plasma/PubUtilLib/plAvatar/plScalarChannel.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plAvatar/plSeekPointMod.cpp => Sources/Plasma/PubUtilLib/plAvatar/plSeekPointMod.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plAvatar/plSeekPointMod.h => Sources/Plasma/PubUtilLib/plAvatar/plSeekPointMod.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plAvatar/plSittingModifier.cpp => Sources/Plasma/PubUtilLib/plAvatar/plSittingModifier.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plAvatar/plSittingModifier.h => Sources/Plasma/PubUtilLib/plAvatar/plSittingModifier.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plAvatar/plSwimRegion.cpp => Sources/Plasma/PubUtilLib/plAvatar/plSwimRegion.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plAvatar/plSwimRegion.h => Sources/Plasma/PubUtilLib/plAvatar/plSwimRegion.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plCompression/CMakeLists.txt => Sources/Plasma/PubUtilLib/plCompression/CMakeLists.txt rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plCompression/plCompress.h => Sources/Plasma/PubUtilLib/plCompression/plCompress.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plCompression/plZlibCompress.cpp => Sources/Plasma/PubUtilLib/plCompression/plZlibCompress.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plCompression/plZlibCompress.h => Sources/Plasma/PubUtilLib/plCompression/plZlibCompress.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plCompression/plZlibStream.cpp => Sources/Plasma/PubUtilLib/plCompression/plZlibStream.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plCompression/plZlibStream.h => Sources/Plasma/PubUtilLib/plCompression/plZlibStream.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plContainer/CMakeLists.txt => Sources/Plasma/PubUtilLib/plContainer/CMakeLists.txt rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plContainer/hsStringTable.cpp => Sources/Plasma/PubUtilLib/plContainer/hsStringTable.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plContainer/hsStringTable.h => Sources/Plasma/PubUtilLib/plContainer/hsStringTable.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plContainer/plConfigInfo.cpp => Sources/Plasma/PubUtilLib/plContainer/plConfigInfo.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plContainer/plConfigInfo.h => Sources/Plasma/PubUtilLib/plContainer/plConfigInfo.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plContainer/plConfigInfoLogging.cpp => Sources/Plasma/PubUtilLib/plContainer/plConfigInfoLogging.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plContainer/plContainer.h => Sources/Plasma/PubUtilLib/plContainer/plContainer.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plContainer/plKeysAndValues.cpp => Sources/Plasma/PubUtilLib/plContainer/plKeysAndValues.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plContainer/plKeysAndValues.h => Sources/Plasma/PubUtilLib/plContainer/plKeysAndValues.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plDeviceSelector/plDeviceSelector.cpp => Sources/Plasma/PubUtilLib/plDeviceSelector/plDeviceSelector.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plDeviceSelector/plDeviceSelector.h => Sources/Plasma/PubUtilLib/plDeviceSelector/plDeviceSelector.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plDrawable/CMakeLists.txt => Sources/Plasma/PubUtilLib/plDrawable/CMakeLists.txt rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plDrawable/plAccMeshSmooth.cpp => Sources/Plasma/PubUtilLib/plDrawable/plAccMeshSmooth.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plDrawable/plAccMeshSmooth.h => Sources/Plasma/PubUtilLib/plDrawable/plAccMeshSmooth.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plDrawable/plAccessGeometry.cpp => Sources/Plasma/PubUtilLib/plDrawable/plAccessGeometry.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plDrawable/plAccessGeometry.h => Sources/Plasma/PubUtilLib/plDrawable/plAccessGeometry.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plDrawable/plAccessPartySpan.h => Sources/Plasma/PubUtilLib/plDrawable/plAccessPartySpan.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plDrawable/plAccessSnapShot.cpp => Sources/Plasma/PubUtilLib/plDrawable/plAccessSnapShot.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plDrawable/plAccessSnapShot.h => Sources/Plasma/PubUtilLib/plDrawable/plAccessSnapShot.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plDrawable/plAccessSpan.h => Sources/Plasma/PubUtilLib/plDrawable/plAccessSpan.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plDrawable/plAccessTriSpan.h => Sources/Plasma/PubUtilLib/plDrawable/plAccessTriSpan.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plDrawable/plAccessVtxSpan.h => Sources/Plasma/PubUtilLib/plDrawable/plAccessVtxSpan.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plDrawable/plActivePrintShape.cpp => Sources/Plasma/PubUtilLib/plDrawable/plActivePrintShape.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plDrawable/plActivePrintShape.h => Sources/Plasma/PubUtilLib/plDrawable/plActivePrintShape.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plDrawable/plAuxSpan.h => Sources/Plasma/PubUtilLib/plDrawable/plAuxSpan.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plDrawable/plAvMeshSmooth.cpp => Sources/Plasma/PubUtilLib/plDrawable/plAvMeshSmooth.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plDrawable/plAvMeshSmooth.h => Sources/Plasma/PubUtilLib/plDrawable/plAvMeshSmooth.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plDrawable/plCluster.cpp => Sources/Plasma/PubUtilLib/plDrawable/plCluster.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plDrawable/plCluster.h => Sources/Plasma/PubUtilLib/plDrawable/plCluster.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plDrawable/plClusterGroup.cpp => Sources/Plasma/PubUtilLib/plDrawable/plClusterGroup.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plDrawable/plClusterGroup.h => Sources/Plasma/PubUtilLib/plDrawable/plClusterGroup.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plDrawable/plCutter.cpp => Sources/Plasma/PubUtilLib/plDrawable/plCutter.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plDrawable/plCutter.h => Sources/Plasma/PubUtilLib/plDrawable/plCutter.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plDrawable/plDrawableCreatable.h => Sources/Plasma/PubUtilLib/plDrawable/plDrawableCreatable.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plDrawable/plDrawableGenerator.cpp => Sources/Plasma/PubUtilLib/plDrawable/plDrawableGenerator.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plDrawable/plDrawableGenerator.h => Sources/Plasma/PubUtilLib/plDrawable/plDrawableGenerator.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plDrawable/plDrawableSpans.cpp => Sources/Plasma/PubUtilLib/plDrawable/plDrawableSpans.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plDrawable/plDrawableSpans.h => Sources/Plasma/PubUtilLib/plDrawable/plDrawableSpans.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plDrawable/plDrawableSpansExport.cpp => Sources/Plasma/PubUtilLib/plDrawable/plDrawableSpansExport.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plDrawable/plDynaBulletMgr.cpp => Sources/Plasma/PubUtilLib/plDrawable/plDynaBulletMgr.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plDrawable/plDynaBulletMgr.h => Sources/Plasma/PubUtilLib/plDrawable/plDynaBulletMgr.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plDrawable/plDynaDecal.cpp => Sources/Plasma/PubUtilLib/plDrawable/plDynaDecal.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plDrawable/plDynaDecal.h => Sources/Plasma/PubUtilLib/plDrawable/plDynaDecal.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plDrawable/plDynaDecalMgr.cpp => Sources/Plasma/PubUtilLib/plDrawable/plDynaDecalMgr.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plDrawable/plDynaDecalMgr.h => Sources/Plasma/PubUtilLib/plDrawable/plDynaDecalMgr.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plDrawable/plDynaFootMgr.cpp => Sources/Plasma/PubUtilLib/plDrawable/plDynaFootMgr.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plDrawable/plDynaFootMgr.h => Sources/Plasma/PubUtilLib/plDrawable/plDynaFootMgr.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plDrawable/plDynaPuddleMgr.cpp => Sources/Plasma/PubUtilLib/plDrawable/plDynaPuddleMgr.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plDrawable/plDynaPuddleMgr.h => Sources/Plasma/PubUtilLib/plDrawable/plDynaPuddleMgr.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plDrawable/plDynaRippleMgr.cpp => Sources/Plasma/PubUtilLib/plDrawable/plDynaRippleMgr.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plDrawable/plDynaRippleMgr.h => Sources/Plasma/PubUtilLib/plDrawable/plDynaRippleMgr.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plDrawable/plDynaRippleMgrVS.cpp => Sources/Plasma/PubUtilLib/plDrawable/plDynaRippleMgrVS.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plDrawable/plDynaRippleVSMgr.h => Sources/Plasma/PubUtilLib/plDrawable/plDynaRippleVSMgr.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plDrawable/plDynaTorpedoMgr.cpp => Sources/Plasma/PubUtilLib/plDrawable/plDynaTorpedoMgr.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plDrawable/plDynaTorpedoMgr.h => Sources/Plasma/PubUtilLib/plDrawable/plDynaTorpedoMgr.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plDrawable/plDynaTorpedoVSMgr.cpp => Sources/Plasma/PubUtilLib/plDrawable/plDynaTorpedoVSMgr.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plDrawable/plDynaTorpedoVSMgr.h => Sources/Plasma/PubUtilLib/plDrawable/plDynaTorpedoVSMgr.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plDrawable/plDynaWakeMgr.cpp => Sources/Plasma/PubUtilLib/plDrawable/plDynaWakeMgr.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plDrawable/plDynaWakeMgr.h => Sources/Plasma/PubUtilLib/plDrawable/plDynaWakeMgr.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plDrawable/plFixedWaterState7.cpp => Sources/Plasma/PubUtilLib/plDrawable/plFixedWaterState7.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plDrawable/plFixedWaterState7.h => Sources/Plasma/PubUtilLib/plDrawable/plFixedWaterState7.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plDrawable/plGeoSpanDice.cpp => Sources/Plasma/PubUtilLib/plDrawable/plGeoSpanDice.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plDrawable/plGeoSpanDice.h => Sources/Plasma/PubUtilLib/plDrawable/plGeoSpanDice.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plDrawable/plGeometrySpan.cpp => Sources/Plasma/PubUtilLib/plDrawable/plGeometrySpan.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plDrawable/plGeometrySpan.h => Sources/Plasma/PubUtilLib/plDrawable/plGeometrySpan.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plDrawable/plInstanceDrawInterface.cpp => Sources/Plasma/PubUtilLib/plDrawable/plInstanceDrawInterface.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plDrawable/plInstanceDrawInterface.h => Sources/Plasma/PubUtilLib/plDrawable/plInstanceDrawInterface.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plDrawable/plInterMeshSmooth.cpp => Sources/Plasma/PubUtilLib/plDrawable/plInterMeshSmooth.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plDrawable/plInterMeshSmooth.h => Sources/Plasma/PubUtilLib/plDrawable/plInterMeshSmooth.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plDrawable/plMorphArray.cpp => Sources/Plasma/PubUtilLib/plDrawable/plMorphArray.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plDrawable/plMorphArray.h => Sources/Plasma/PubUtilLib/plDrawable/plMorphArray.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plDrawable/plMorphDelta.cpp => Sources/Plasma/PubUtilLib/plDrawable/plMorphDelta.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plDrawable/plMorphDelta.h => Sources/Plasma/PubUtilLib/plDrawable/plMorphDelta.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plDrawable/plMorphSequence.cpp => Sources/Plasma/PubUtilLib/plDrawable/plMorphSequence.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plDrawable/plMorphSequence.h => Sources/Plasma/PubUtilLib/plDrawable/plMorphSequence.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plDrawable/plMorphSequenceSDLMod.cpp => Sources/Plasma/PubUtilLib/plDrawable/plMorphSequenceSDLMod.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plDrawable/plMorphSequenceSDLMod.h => Sources/Plasma/PubUtilLib/plDrawable/plMorphSequenceSDLMod.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plDrawable/plParticleFiller.cpp => Sources/Plasma/PubUtilLib/plDrawable/plParticleFiller.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plDrawable/plParticleFiller.h => Sources/Plasma/PubUtilLib/plDrawable/plParticleFiller.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plDrawable/plPrintShape.cpp => Sources/Plasma/PubUtilLib/plDrawable/plPrintShape.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plDrawable/plPrintShape.h => Sources/Plasma/PubUtilLib/plDrawable/plPrintShape.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plDrawable/plProxyGen.cpp => Sources/Plasma/PubUtilLib/plDrawable/plProxyGen.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plDrawable/plProxyGen.h => Sources/Plasma/PubUtilLib/plDrawable/plProxyGen.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plDrawable/plRipVSConsts.h => Sources/Plasma/PubUtilLib/plDrawable/plRipVSConsts.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plDrawable/plSharedMesh.cpp => Sources/Plasma/PubUtilLib/plDrawable/plSharedMesh.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plDrawable/plSharedMesh.h => Sources/Plasma/PubUtilLib/plDrawable/plSharedMesh.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plDrawable/plSpaceTree.cpp => Sources/Plasma/PubUtilLib/plDrawable/plSpaceTree.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plDrawable/plSpaceTree.h => Sources/Plasma/PubUtilLib/plDrawable/plSpaceTree.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plDrawable/plSpaceTreeMaker.cpp => Sources/Plasma/PubUtilLib/plDrawable/plSpaceTreeMaker.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plDrawable/plSpaceTreeMaker.h => Sources/Plasma/PubUtilLib/plDrawable/plSpaceTreeMaker.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plDrawable/plSpanInstance.cpp => Sources/Plasma/PubUtilLib/plDrawable/plSpanInstance.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plDrawable/plSpanInstance.h => Sources/Plasma/PubUtilLib/plDrawable/plSpanInstance.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plDrawable/plSpanTemplate.cpp => Sources/Plasma/PubUtilLib/plDrawable/plSpanTemplate.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plDrawable/plSpanTemplate.h => Sources/Plasma/PubUtilLib/plDrawable/plSpanTemplate.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plDrawable/plSpanTypes.cpp => Sources/Plasma/PubUtilLib/plDrawable/plSpanTypes.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plDrawable/plSpanTypes.h => Sources/Plasma/PubUtilLib/plDrawable/plSpanTypes.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plDrawable/plTimedInterp.h => Sources/Plasma/PubUtilLib/plDrawable/plTimedInterp.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plDrawable/plVisLOSMgr.cpp => Sources/Plasma/PubUtilLib/plDrawable/plVisLOSMgr.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plDrawable/plVisLOSMgr.h => Sources/Plasma/PubUtilLib/plDrawable/plVisLOSMgr.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plDrawable/plWaveSet7.cpp => Sources/Plasma/PubUtilLib/plDrawable/plWaveSet7.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plDrawable/plWaveSet7.h => Sources/Plasma/PubUtilLib/plDrawable/plWaveSet7.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plDrawable/plWaveSetBase.cpp => Sources/Plasma/PubUtilLib/plDrawable/plWaveSetBase.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plDrawable/plWaveSetBase.h => Sources/Plasma/PubUtilLib/plDrawable/plWaveSetBase.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plDrawable/plWaveSetShaderConsts.h => Sources/Plasma/PubUtilLib/plDrawable/plWaveSetShaderConsts.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plEncryption/CMakeLists.txt => Sources/Plasma/PubUtilLib/plEncryption/CMakeLists.txt rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plEncryption/plChecksum.cpp => Sources/Plasma/PubUtilLib/plEncryption/plChecksum.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plEncryption/plChecksum.h => Sources/Plasma/PubUtilLib/plEncryption/plChecksum.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plFile/CMakeLists.txt => Sources/Plasma/PubUtilLib/plFile/CMakeLists.txt rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plFile/hsFiles.cpp => Sources/Plasma/PubUtilLib/plFile/hsFiles.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plFile/hsFiles.h => Sources/Plasma/PubUtilLib/plFile/hsFiles.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plFile/hsFiles_Mac.cpp => Sources/Plasma/PubUtilLib/plFile/hsFiles_Mac.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plFile/hsFiles_PS2.cpp => Sources/Plasma/PubUtilLib/plFile/hsFiles_PS2.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plFile/hsFiles_Unix.cpp => Sources/Plasma/PubUtilLib/plFile/hsFiles_Unix.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plFile/hsFiles_Win.cpp => Sources/Plasma/PubUtilLib/plFile/hsFiles_Win.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plFile/plBrowseFolder.cpp => Sources/Plasma/PubUtilLib/plFile/plBrowseFolder.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plFile/plBrowseFolder.h => Sources/Plasma/PubUtilLib/plFile/plBrowseFolder.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plFile/plEncryptedStream.cpp => Sources/Plasma/PubUtilLib/plFile/plEncryptedStream.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plFile/plEncryptedStream.h => Sources/Plasma/PubUtilLib/plFile/plEncryptedStream.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plFile/plFileUtils.cpp => Sources/Plasma/PubUtilLib/plFile/plFileUtils.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plFile/plFileUtils.h => Sources/Plasma/PubUtilLib/plFile/plFileUtils.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plFile/plInitFileReader.cpp => Sources/Plasma/PubUtilLib/plFile/plInitFileReader.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plFile/plInitFileReader.h => Sources/Plasma/PubUtilLib/plFile/plInitFileReader.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plFile/plSecureStream.cpp => Sources/Plasma/PubUtilLib/plFile/plSecureStream.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plFile/plSecureStream.h => Sources/Plasma/PubUtilLib/plFile/plSecureStream.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plFile/plStreamSource.cpp => Sources/Plasma/PubUtilLib/plFile/plStreamSource.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plFile/plStreamSource.h => Sources/Plasma/PubUtilLib/plFile/plStreamSource.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plGClip/placeholder.txt => Sources/Plasma/PubUtilLib/plGClip/placeholder.txt rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plGImage/CMakeLists.txt => Sources/Plasma/PubUtilLib/plGImage/CMakeLists.txt rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plGImage/HS_RECT.inc => Sources/Plasma/PubUtilLib/plGImage/HS_RECT.inc rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plGImage/hsCodec.h => Sources/Plasma/PubUtilLib/plGImage/hsCodec.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plGImage/hsCodecManager.cpp => Sources/Plasma/PubUtilLib/plGImage/hsCodecManager.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plGImage/hsCodecManager.h => Sources/Plasma/PubUtilLib/plGImage/hsCodecManager.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plGImage/hsDXTDirectXCodec.cpp => Sources/Plasma/PubUtilLib/plGImage/hsDXTDirectXCodec.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plGImage/hsDXTDirectXCodec.h => Sources/Plasma/PubUtilLib/plGImage/hsDXTDirectXCodec.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plGImage/hsDXTSoftwareCodec.cpp => Sources/Plasma/PubUtilLib/plGImage/hsDXTSoftwareCodec.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plGImage/hsDXTSoftwareCodec.h => Sources/Plasma/PubUtilLib/plGImage/hsDXTSoftwareCodec.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plGImage/hsRect.h => Sources/Plasma/PubUtilLib/plGImage/hsRect.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plGImage/notes.txt => Sources/Plasma/PubUtilLib/plGImage/notes.txt rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plGImage/plAVIWriter.cpp => Sources/Plasma/PubUtilLib/plGImage/plAVIWriter.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plGImage/plAVIWriter.h => Sources/Plasma/PubUtilLib/plGImage/plAVIWriter.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plGImage/plBitmap.cpp => Sources/Plasma/PubUtilLib/plGImage/plBitmap.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plGImage/plBitmap.h => Sources/Plasma/PubUtilLib/plGImage/plBitmap.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plGImage/plBumpMapGen.cpp => Sources/Plasma/PubUtilLib/plGImage/plBumpMapGen.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plGImage/plBumpMapGen.h => Sources/Plasma/PubUtilLib/plGImage/plBumpMapGen.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plGImage/plCubicEnvironmap.cpp => Sources/Plasma/PubUtilLib/plGImage/plCubicEnvironmap.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plGImage/plCubicEnvironmap.h => Sources/Plasma/PubUtilLib/plGImage/plCubicEnvironmap.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plGImage/plDynSurfaceWriter.cpp => Sources/Plasma/PubUtilLib/plGImage/plDynSurfaceWriter.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plGImage/plDynSurfaceWriter.h => Sources/Plasma/PubUtilLib/plGImage/plDynSurfaceWriter.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plGImage/plDynamicTextMap.cpp => Sources/Plasma/PubUtilLib/plGImage/plDynamicTextMap.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plGImage/plDynamicTextMap.h => Sources/Plasma/PubUtilLib/plGImage/plDynamicTextMap.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plGImage/plFont.cpp => Sources/Plasma/PubUtilLib/plGImage/plFont.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plGImage/plFont.h => Sources/Plasma/PubUtilLib/plGImage/plFont.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plGImage/plFontCache.cpp => Sources/Plasma/PubUtilLib/plGImage/plFontCache.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plGImage/plFontCache.h => Sources/Plasma/PubUtilLib/plGImage/plFontCache.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plGImage/plGImageCreatable.h => Sources/Plasma/PubUtilLib/plGImage/plGImageCreatable.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plGImage/plImageConvert.h => Sources/Plasma/PubUtilLib/plGImage/plImageConvert.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plGImage/plLODMipmap.cpp => Sources/Plasma/PubUtilLib/plGImage/plLODMipmap.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plGImage/plLODMipmap.h => Sources/Plasma/PubUtilLib/plGImage/plLODMipmap.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plGImage/plMipmap.cpp => Sources/Plasma/PubUtilLib/plGImage/plMipmap.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plGImage/plMipmap.h => Sources/Plasma/PubUtilLib/plGImage/plMipmap.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plGImage/plTGAWriter.cpp => Sources/Plasma/PubUtilLib/plGImage/plTGAWriter.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plGImage/plTGAWriter.h => Sources/Plasma/PubUtilLib/plGImage/plTGAWriter.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plGImage/plWinFontCache.cpp => Sources/Plasma/PubUtilLib/plGImage/plWinFontCache.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plGImage/plWinFontCache.h => Sources/Plasma/PubUtilLib/plGImage/plWinFontCache.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plGLight/CMakeLists.txt => Sources/Plasma/PubUtilLib/plGLight/CMakeLists.txt rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plGLight/plDirectShadowMaster.cpp => Sources/Plasma/PubUtilLib/plGLight/plDirectShadowMaster.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plGLight/plDirectShadowMaster.h => Sources/Plasma/PubUtilLib/plGLight/plDirectShadowMaster.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plGLight/plGLightCreatable.h => Sources/Plasma/PubUtilLib/plGLight/plGLightCreatable.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plGLight/plLightInfo.cpp => Sources/Plasma/PubUtilLib/plGLight/plLightInfo.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plGLight/plLightInfo.h => Sources/Plasma/PubUtilLib/plGLight/plLightInfo.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plGLight/plLightKonstants.h => Sources/Plasma/PubUtilLib/plGLight/plLightKonstants.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plGLight/plLightProxy.cpp => Sources/Plasma/PubUtilLib/plGLight/plLightProxy.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plGLight/plLightProxy.h => Sources/Plasma/PubUtilLib/plGLight/plLightProxy.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plGLight/plLightSpace.cpp => Sources/Plasma/PubUtilLib/plGLight/plLightSpace.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plGLight/plLightSpace.h => Sources/Plasma/PubUtilLib/plGLight/plLightSpace.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plGLight/plPerspDirSlave.cpp => Sources/Plasma/PubUtilLib/plGLight/plPerspDirSlave.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plGLight/plPerspDirSlave.h => Sources/Plasma/PubUtilLib/plGLight/plPerspDirSlave.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plGLight/plPointShadowMaster.cpp => Sources/Plasma/PubUtilLib/plGLight/plPointShadowMaster.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plGLight/plPointShadowMaster.h => Sources/Plasma/PubUtilLib/plGLight/plPointShadowMaster.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plGLight/plShadowCaster.cpp => Sources/Plasma/PubUtilLib/plGLight/plShadowCaster.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plGLight/plShadowCaster.h => Sources/Plasma/PubUtilLib/plGLight/plShadowCaster.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plGLight/plShadowMaster.cpp => Sources/Plasma/PubUtilLib/plGLight/plShadowMaster.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plGLight/plShadowMaster.h => Sources/Plasma/PubUtilLib/plGLight/plShadowMaster.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plGLight/plShadowSlave.cpp => Sources/Plasma/PubUtilLib/plGLight/plShadowSlave.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plGLight/plShadowSlave.h => Sources/Plasma/PubUtilLib/plGLight/plShadowSlave.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plGRenderProcs/hsGRenderProcs.cpp => Sources/Plasma/PubUtilLib/plGRenderProcs/hsGRenderProcs.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plGRenderProcs/hsGRenderProcs.h => Sources/Plasma/PubUtilLib/plGRenderProcs/hsGRenderProcs.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plGRenderProcs/hsSfxAngleFade.cpp => Sources/Plasma/PubUtilLib/plGRenderProcs/hsSfxAngleFade.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plGRenderProcs/hsSfxAngleFade.h => Sources/Plasma/PubUtilLib/plGRenderProcs/hsSfxAngleFade.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plGRenderProcs/hsSfxDistFade.cpp => Sources/Plasma/PubUtilLib/plGRenderProcs/hsSfxDistFade.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plGRenderProcs/hsSfxDistFade.h => Sources/Plasma/PubUtilLib/plGRenderProcs/hsSfxDistFade.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plGRenderProcs/hsSfxDistShade.cpp => Sources/Plasma/PubUtilLib/plGRenderProcs/hsSfxDistShade.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plGRenderProcs/hsSfxDistShade.h => Sources/Plasma/PubUtilLib/plGRenderProcs/hsSfxDistShade.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plGRenderProcs/hsSfxGlobalShade.cpp => Sources/Plasma/PubUtilLib/plGRenderProcs/hsSfxGlobalShade.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plGRenderProcs/hsSfxGlobalShade.h => Sources/Plasma/PubUtilLib/plGRenderProcs/hsSfxGlobalShade.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plGRenderProcs/hsSfxIntenseAlpha.cpp => Sources/Plasma/PubUtilLib/plGRenderProcs/hsSfxIntenseAlpha.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plGRenderProcs/hsSfxIntenseAlpha.h => Sources/Plasma/PubUtilLib/plGRenderProcs/hsSfxIntenseAlpha.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plGRenderProcs/hsSfxObjDistFade.cpp => Sources/Plasma/PubUtilLib/plGRenderProcs/hsSfxObjDistFade.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plGRenderProcs/hsSfxObjDistFade.h => Sources/Plasma/PubUtilLib/plGRenderProcs/hsSfxObjDistFade.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plGRenderProcs/hsSfxObjDistShade.cpp => Sources/Plasma/PubUtilLib/plGRenderProcs/hsSfxObjDistShade.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plGRenderProcs/hsSfxObjDistShade.h => Sources/Plasma/PubUtilLib/plGRenderProcs/hsSfxObjDistShade.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plGRenderProcs/plGRenderProcsCreatable.h => Sources/Plasma/PubUtilLib/plGRenderProcs/plGRenderProcsCreatable.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plGeometry/hsOscillator.cpp => Sources/Plasma/PubUtilLib/plGeometry/hsOscillator.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plGeometry/hsOscillator.h => Sources/Plasma/PubUtilLib/plGeometry/hsOscillator.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plGeometry/hsPerterber.cpp => Sources/Plasma/PubUtilLib/plGeometry/hsPerterber.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plGeometry/hsPerterber.h => Sources/Plasma/PubUtilLib/plGeometry/hsPerterber.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plGeometry/plGeometryCreatable.h => Sources/Plasma/PubUtilLib/plGeometry/plGeometryCreatable.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plInputCore/CMakeLists.txt => Sources/Plasma/PubUtilLib/plInputCore/CMakeLists.txt rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plInputCore/plAvatarInputInterface.cpp => Sources/Plasma/PubUtilLib/plInputCore/plAvatarInputInterface.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plInputCore/plAvatarInputInterface.h => Sources/Plasma/PubUtilLib/plInputCore/plAvatarInputInterface.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plInputCore/plDInputDevice.cpp => Sources/Plasma/PubUtilLib/plInputCore/plDInputDevice.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plInputCore/plDInputDevice.h => Sources/Plasma/PubUtilLib/plInputCore/plDInputDevice.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plInputCore/plDebugInputInterface.cpp => Sources/Plasma/PubUtilLib/plInputCore/plDebugInputInterface.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plInputCore/plDebugInputInterface.h => Sources/Plasma/PubUtilLib/plInputCore/plDebugInputInterface.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plInputCore/plInputCoreCreatable.h => Sources/Plasma/PubUtilLib/plInputCore/plInputCoreCreatable.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plInputCore/plInputDevice.cpp => Sources/Plasma/PubUtilLib/plInputCore/plInputDevice.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plInputCore/plInputDevice.h => Sources/Plasma/PubUtilLib/plInputCore/plInputDevice.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plInputCore/plInputInterface.cpp => Sources/Plasma/PubUtilLib/plInputCore/plInputInterface.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plInputCore/plInputInterface.h => Sources/Plasma/PubUtilLib/plInputCore/plInputInterface.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plInputCore/plInputInterfaceMgr.cpp => Sources/Plasma/PubUtilLib/plInputCore/plInputInterfaceMgr.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plInputCore/plInputInterfaceMgr.h => Sources/Plasma/PubUtilLib/plInputCore/plInputInterfaceMgr.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plInputCore/plInputManager.cpp => Sources/Plasma/PubUtilLib/plInputCore/plInputManager.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plInputCore/plInputManager.h => Sources/Plasma/PubUtilLib/plInputCore/plInputManager.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plInputCore/plSceneInputInterface.cpp => Sources/Plasma/PubUtilLib/plInputCore/plSceneInputInterface.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plInputCore/plSceneInputInterface.h => Sources/Plasma/PubUtilLib/plInputCore/plSceneInputInterface.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plInputCore/plTelescopeInputInterface.cpp => Sources/Plasma/PubUtilLib/plInputCore/plTelescopeInputInterface.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plInputCore/plTelescopeInputInterface.h => Sources/Plasma/PubUtilLib/plInputCore/plTelescopeInputInterface.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plInterp/CMakeLists.txt => Sources/Plasma/PubUtilLib/plInterp/CMakeLists.txt rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plInterp/hsInterp.cpp => Sources/Plasma/PubUtilLib/plInterp/hsInterp.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plInterp/hsInterp.h => Sources/Plasma/PubUtilLib/plInterp/hsInterp.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plInterp/hsKeys.cpp => Sources/Plasma/PubUtilLib/plInterp/hsKeys.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plInterp/hsKeys.h => Sources/Plasma/PubUtilLib/plInterp/hsKeys.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plInterp/hsTimedValue.h => Sources/Plasma/PubUtilLib/plInterp/hsTimedValue.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plInterp/plATCEaseCurves.cpp => Sources/Plasma/PubUtilLib/plInterp/plATCEaseCurves.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plInterp/plAnimEaseTypes.h => Sources/Plasma/PubUtilLib/plInterp/plAnimEaseTypes.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plInterp/plAnimPath.cpp => Sources/Plasma/PubUtilLib/plInterp/plAnimPath.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plInterp/plAnimPath.h => Sources/Plasma/PubUtilLib/plInterp/plAnimPath.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plInterp/plAnimTimeConvert.cpp => Sources/Plasma/PubUtilLib/plInterp/plAnimTimeConvert.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plInterp/plAnimTimeConvert.h => Sources/Plasma/PubUtilLib/plInterp/plAnimTimeConvert.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plInterp/plController.cpp => Sources/Plasma/PubUtilLib/plInterp/plController.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plInterp/plController.h => Sources/Plasma/PubUtilLib/plInterp/plController.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plInterp/plInterpCreatable.h => Sources/Plasma/PubUtilLib/plInterp/plInterpCreatable.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plInterp/plModulator.cpp => Sources/Plasma/PubUtilLib/plInterp/plModulator.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plInterp/plModulator.h => Sources/Plasma/PubUtilLib/plInterp/plModulator.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plIntersect/CMakeLists.txt => Sources/Plasma/PubUtilLib/plIntersect/CMakeLists.txt rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plIntersect/notes.txt => Sources/Plasma/PubUtilLib/plIntersect/notes.txt rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plIntersect/plClosest.cpp => Sources/Plasma/PubUtilLib/plIntersect/plClosest.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plIntersect/plClosest.h => Sources/Plasma/PubUtilLib/plIntersect/plClosest.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plIntersect/plHardRegion.cpp => Sources/Plasma/PubUtilLib/plIntersect/plHardRegion.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plIntersect/plHardRegion.h => Sources/Plasma/PubUtilLib/plIntersect/plHardRegion.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plIntersect/plHardRegionPlanes.cpp => Sources/Plasma/PubUtilLib/plIntersect/plHardRegionPlanes.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plIntersect/plHardRegionPlanes.h => Sources/Plasma/PubUtilLib/plIntersect/plHardRegionPlanes.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plIntersect/plHardRegionTypes.cpp => Sources/Plasma/PubUtilLib/plIntersect/plHardRegionTypes.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plIntersect/plHardRegionTypes.h => Sources/Plasma/PubUtilLib/plIntersect/plHardRegionTypes.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plIntersect/plIntersectCreatable.h => Sources/Plasma/PubUtilLib/plIntersect/plIntersectCreatable.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plIntersect/plRegionBase.h => Sources/Plasma/PubUtilLib/plIntersect/plRegionBase.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plIntersect/plSoftVolume.cpp => Sources/Plasma/PubUtilLib/plIntersect/plSoftVolume.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plIntersect/plSoftVolume.h => Sources/Plasma/PubUtilLib/plIntersect/plSoftVolume.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plIntersect/plSoftVolumeTypes.cpp => Sources/Plasma/PubUtilLib/plIntersect/plSoftVolumeTypes.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plIntersect/plSoftVolumeTypes.h => Sources/Plasma/PubUtilLib/plIntersect/plSoftVolumeTypes.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plIntersect/plVolumeIsect.cpp => Sources/Plasma/PubUtilLib/plIntersect/plVolumeIsect.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plIntersect/plVolumeIsect.h => Sources/Plasma/PubUtilLib/plIntersect/plVolumeIsect.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plJPEG/CMakeLists.txt => Sources/Plasma/PubUtilLib/plJPEG/CMakeLists.txt rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plJPEG/plJPEG.cpp => Sources/Plasma/PubUtilLib/plJPEG/plJPEG.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plJPEG/plJPEG.h => Sources/Plasma/PubUtilLib/plJPEG/plJPEG.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plMath/CMakeLists.txt => Sources/Plasma/PubUtilLib/plMath/CMakeLists.txt rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plMath/hsNoiseFunc.cpp => Sources/Plasma/PubUtilLib/plMath/hsNoiseFunc.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plMath/hsNoiseFunc.h => Sources/Plasma/PubUtilLib/plMath/hsNoiseFunc.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plMath/hsRadixSort.cpp => Sources/Plasma/PubUtilLib/plMath/hsRadixSort.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plMath/hsRadixSort.h => Sources/Plasma/PubUtilLib/plMath/hsRadixSort.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plMath/hsSearchVersion.h => Sources/Plasma/PubUtilLib/plMath/hsSearchVersion.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plMath/plAvg.cpp => Sources/Plasma/PubUtilLib/plMath/plAvg.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plMath/plAvg.h => Sources/Plasma/PubUtilLib/plMath/plAvg.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plMath/plRandom.h => Sources/Plasma/PubUtilLib/plMath/plRandom.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plMath/plTriUtils.cpp => Sources/Plasma/PubUtilLib/plMath/plTriUtils.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plMath/plTriUtils.h => Sources/Plasma/PubUtilLib/plMath/plTriUtils.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plMessage/CMakeLists.txt => Sources/Plasma/PubUtilLib/plMessage/CMakeLists.txt rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plMessage/plAIMsg.cpp => Sources/Plasma/PubUtilLib/plMessage/plAIMsg.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plMessage/plAIMsg.h => Sources/Plasma/PubUtilLib/plMessage/plAIMsg.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plMessage/plAccountUpdateMsg.cpp => Sources/Plasma/PubUtilLib/plMessage/plAccountUpdateMsg.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plMessage/plAccountUpdateMsg.h => Sources/Plasma/PubUtilLib/plMessage/plAccountUpdateMsg.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plMessage/plActivatorMsg.h => Sources/Plasma/PubUtilLib/plMessage/plActivatorMsg.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plMessage/plAgeLoadedMsg.h => Sources/Plasma/PubUtilLib/plMessage/plAgeLoadedMsg.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plMessage/plAngularVelocityMsg.h => Sources/Plasma/PubUtilLib/plMessage/plAngularVelocityMsg.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plMessage/plAnimCmdMsg.cpp => Sources/Plasma/PubUtilLib/plMessage/plAnimCmdMsg.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plMessage/plAnimCmdMsg.h => Sources/Plasma/PubUtilLib/plMessage/plAnimCmdMsg.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plMessage/plAnimationEventCallbackMsg.h => Sources/Plasma/PubUtilLib/plMessage/plAnimationEventCallbackMsg.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plMessage/plApplyAvatarCustomizationsMsg.h => Sources/Plasma/PubUtilLib/plMessage/plApplyAvatarCustomizationsMsg.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plMessage/plApplyStoredAvatarSettingsMsg.h => Sources/Plasma/PubUtilLib/plMessage/plApplyStoredAvatarSettingsMsg.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plMessage/plAvCoopMsg.cpp => Sources/Plasma/PubUtilLib/plMessage/plAvCoopMsg.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plMessage/plAvCoopMsg.h => Sources/Plasma/PubUtilLib/plMessage/plAvCoopMsg.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plMessage/plAvatarFootMsg.cpp => Sources/Plasma/PubUtilLib/plMessage/plAvatarFootMsg.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plMessage/plAvatarFootMsg.h => Sources/Plasma/PubUtilLib/plMessage/plAvatarFootMsg.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plMessage/plAvatarMsg.cpp => Sources/Plasma/PubUtilLib/plMessage/plAvatarMsg.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plMessage/plAvatarMsg.h => Sources/Plasma/PubUtilLib/plMessage/plAvatarMsg.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plMessage/plBulletMsg.cpp => Sources/Plasma/PubUtilLib/plMessage/plBulletMsg.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plMessage/plBulletMsg.h => Sources/Plasma/PubUtilLib/plMessage/plBulletMsg.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plMessage/plCCRMessageCreatable.h => Sources/Plasma/PubUtilLib/plMessage/plCCRMessageCreatable.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plMessage/plCCRMsg.cpp => Sources/Plasma/PubUtilLib/plMessage/plCCRMsg.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plMessage/plCCRMsg.h => Sources/Plasma/PubUtilLib/plMessage/plCCRMsg.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plMessage/plCaptureRenderMsg.cpp => Sources/Plasma/PubUtilLib/plMessage/plCaptureRenderMsg.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plMessage/plCaptureRenderMsg.h => Sources/Plasma/PubUtilLib/plMessage/plCaptureRenderMsg.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plMessage/plClimbEventMsg.h => Sources/Plasma/PubUtilLib/plMessage/plClimbEventMsg.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plMessage/plClimbMsg.cpp => Sources/Plasma/PubUtilLib/plMessage/plClimbMsg.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plMessage/plClimbMsg.h => Sources/Plasma/PubUtilLib/plMessage/plClimbMsg.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plMessage/plCollideMsg.cpp => Sources/Plasma/PubUtilLib/plMessage/plCollideMsg.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plMessage/plCollideMsg.h => Sources/Plasma/PubUtilLib/plMessage/plCollideMsg.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plMessage/plCondRefMsg.h => Sources/Plasma/PubUtilLib/plMessage/plCondRefMsg.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plMessage/plConnectedToVaultMsg.h => Sources/Plasma/PubUtilLib/plMessage/plConnectedToVaultMsg.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plMessage/plConsoleMsg.h => Sources/Plasma/PubUtilLib/plMessage/plConsoleMsg.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plMessage/plDeviceRecreateMsg.h => Sources/Plasma/PubUtilLib/plMessage/plDeviceRecreateMsg.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plMessage/plDynaDecalEnableMsg.cpp => Sources/Plasma/PubUtilLib/plMessage/plDynaDecalEnableMsg.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plMessage/plDynaDecalEnableMsg.h => Sources/Plasma/PubUtilLib/plMessage/plDynaDecalEnableMsg.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plMessage/plDynamicEnvMapMsg.cpp => Sources/Plasma/PubUtilLib/plMessage/plDynamicEnvMapMsg.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plMessage/plDynamicEnvMapMsg.h => Sources/Plasma/PubUtilLib/plMessage/plDynamicEnvMapMsg.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plMessage/plDynamicTextMsg.cpp => Sources/Plasma/PubUtilLib/plMessage/plDynamicTextMsg.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plMessage/plDynamicTextMsg.h => Sources/Plasma/PubUtilLib/plMessage/plDynamicTextMsg.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plMessage/plElementRefMsg.h => Sources/Plasma/PubUtilLib/plMessage/plElementRefMsg.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plMessage/plEnvEffectMsg.h => Sources/Plasma/PubUtilLib/plMessage/plEnvEffectMsg.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plMessage/plExcludeRegionMsg.h => Sources/Plasma/PubUtilLib/plMessage/plExcludeRegionMsg.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plMessage/plInputEventMsg.cpp => Sources/Plasma/PubUtilLib/plMessage/plInputEventMsg.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plMessage/plInputEventMsg.h => Sources/Plasma/PubUtilLib/plMessage/plInputEventMsg.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plMessage/plInputIfaceMgrMsg.cpp => Sources/Plasma/PubUtilLib/plMessage/plInputIfaceMgrMsg.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plMessage/plInputIfaceMgrMsg.h => Sources/Plasma/PubUtilLib/plMessage/plInputIfaceMgrMsg.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plMessage/plInterestingPing.h => Sources/Plasma/PubUtilLib/plMessage/plInterestingPing.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plMessage/plLOSHitMsg.cpp => Sources/Plasma/PubUtilLib/plMessage/plLOSHitMsg.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plMessage/plLOSHitMsg.h => Sources/Plasma/PubUtilLib/plMessage/plLOSHitMsg.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plMessage/plLOSRequestMsg.cpp => Sources/Plasma/PubUtilLib/plMessage/plLOSRequestMsg.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plMessage/plLOSRequestMsg.h => Sources/Plasma/PubUtilLib/plMessage/plLOSRequestMsg.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plMessage/plLayRefMsg.cpp => Sources/Plasma/PubUtilLib/plMessage/plLayRefMsg.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plMessage/plLayRefMsg.h => Sources/Plasma/PubUtilLib/plMessage/plLayRefMsg.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plMessage/plLightRefMsg.h => Sources/Plasma/PubUtilLib/plMessage/plLightRefMsg.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plMessage/plLinearVelocityMsg.h => Sources/Plasma/PubUtilLib/plMessage/plLinearVelocityMsg.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plMessage/plLinkToAgeMsg.cpp => Sources/Plasma/PubUtilLib/plMessage/plLinkToAgeMsg.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plMessage/plLinkToAgeMsg.h => Sources/Plasma/PubUtilLib/plMessage/plLinkToAgeMsg.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plMessage/plListenerMsg.cpp => Sources/Plasma/PubUtilLib/plMessage/plListenerMsg.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plMessage/plListenerMsg.h => Sources/Plasma/PubUtilLib/plMessage/plListenerMsg.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plMessage/plLoadAgeMsg.cpp => Sources/Plasma/PubUtilLib/plMessage/plLoadAgeMsg.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plMessage/plLoadAgeMsg.h => Sources/Plasma/PubUtilLib/plMessage/plLoadAgeMsg.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plMessage/plLoadAvatarMsg.cpp => Sources/Plasma/PubUtilLib/plMessage/plLoadAvatarMsg.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plMessage/plLoadAvatarMsg.h => Sources/Plasma/PubUtilLib/plMessage/plLoadAvatarMsg.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plMessage/plLoadCloneMsg.cpp => Sources/Plasma/PubUtilLib/plMessage/plLoadCloneMsg.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plMessage/plLoadCloneMsg.h => Sources/Plasma/PubUtilLib/plMessage/plLoadCloneMsg.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plMessage/plMatRefMsg.h => Sources/Plasma/PubUtilLib/plMessage/plMatRefMsg.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plMessage/plMatrixUpdateMsg.cpp => Sources/Plasma/PubUtilLib/plMessage/plMatrixUpdateMsg.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plMessage/plMatrixUpdateMsg.h => Sources/Plasma/PubUtilLib/plMessage/plMatrixUpdateMsg.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plMessage/plMemberUpdateMsg.h => Sources/Plasma/PubUtilLib/plMessage/plMemberUpdateMsg.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plMessage/plMeshRefMsg.h => Sources/Plasma/PubUtilLib/plMessage/plMeshRefMsg.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plMessage/plMessageCreatable.h => Sources/Plasma/PubUtilLib/plMessage/plMessageCreatable.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plMessage/plMovieMsg.h => Sources/Plasma/PubUtilLib/plMessage/plMovieMsg.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plMessage/plMultistageMsg.cpp => Sources/Plasma/PubUtilLib/plMessage/plMultistageMsg.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plMessage/plMultistageMsg.h => Sources/Plasma/PubUtilLib/plMessage/plMultistageMsg.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plMessage/plNCAgeJoinerMsg.cpp => Sources/Plasma/PubUtilLib/plMessage/plNCAgeJoinerMsg.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plMessage/plNCAgeJoinerMsg.h => Sources/Plasma/PubUtilLib/plMessage/plNCAgeJoinerMsg.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plMessage/plNetClientMgrMsg.cpp => Sources/Plasma/PubUtilLib/plMessage/plNetClientMgrMsg.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plMessage/plNetClientMgrMsg.h => Sources/Plasma/PubUtilLib/plMessage/plNetClientMgrMsg.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plMessage/plNetCommMsgs.cpp => Sources/Plasma/PubUtilLib/plMessage/plNetCommMsgs.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plMessage/plNetCommMsgs.h => Sources/Plasma/PubUtilLib/plMessage/plNetCommMsgs.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plMessage/plNetOwnershipMsg.h => Sources/Plasma/PubUtilLib/plMessage/plNetOwnershipMsg.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plMessage/plNetVoiceListMsg.cpp => Sources/Plasma/PubUtilLib/plMessage/plNetVoiceListMsg.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plMessage/plNetVoiceListMsg.h => Sources/Plasma/PubUtilLib/plMessage/plNetVoiceListMsg.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plMessage/plNodeCleanupMsg.h => Sources/Plasma/PubUtilLib/plMessage/plNodeCleanupMsg.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plMessage/plOneShotCallbacks.cpp => Sources/Plasma/PubUtilLib/plMessage/plOneShotCallbacks.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plMessage/plOneShotCallbacks.h => Sources/Plasma/PubUtilLib/plMessage/plOneShotCallbacks.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plMessage/plOneShotMsg.cpp => Sources/Plasma/PubUtilLib/plMessage/plOneShotMsg.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plMessage/plOneShotMsg.h => Sources/Plasma/PubUtilLib/plMessage/plOneShotMsg.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plMessage/plParticleUpdateMsg.h => Sources/Plasma/PubUtilLib/plMessage/plParticleUpdateMsg.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plMessage/plPickedMsg.h => Sources/Plasma/PubUtilLib/plMessage/plPickedMsg.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plMessage/plPlayerMsg.h => Sources/Plasma/PubUtilLib/plMessage/plPlayerMsg.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plMessage/plPreloaderMsg.h => Sources/Plasma/PubUtilLib/plMessage/plPreloaderMsg.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plMessage/plRenderMsg.h => Sources/Plasma/PubUtilLib/plMessage/plRenderMsg.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plMessage/plRenderRequestMsg.cpp => Sources/Plasma/PubUtilLib/plMessage/plRenderRequestMsg.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plMessage/plRenderRequestMsg.h => Sources/Plasma/PubUtilLib/plMessage/plRenderRequestMsg.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plMessage/plReplaceGeometryMsg.h => Sources/Plasma/PubUtilLib/plMessage/plReplaceGeometryMsg.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plMessage/plResMgrHelperMsg.h => Sources/Plasma/PubUtilLib/plMessage/plResMgrHelperMsg.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plMessage/plResponderMsg.h => Sources/Plasma/PubUtilLib/plMessage/plResponderMsg.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plMessage/plRideAnimatedPhysMsg.cpp => Sources/Plasma/PubUtilLib/plMessage/plRideAnimatedPhysMsg.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plMessage/plRideAnimatedPhysMsg.h => Sources/Plasma/PubUtilLib/plMessage/plRideAnimatedPhysMsg.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plMessage/plRippleShapeMsg.cpp => Sources/Plasma/PubUtilLib/plMessage/plRippleShapeMsg.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plMessage/plRippleShapeMsg.h => Sources/Plasma/PubUtilLib/plMessage/plRippleShapeMsg.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plMessage/plRoomLoadNotifyMsg.h => Sources/Plasma/PubUtilLib/plMessage/plRoomLoadNotifyMsg.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plMessage/plShadowCastMsg.h => Sources/Plasma/PubUtilLib/plMessage/plShadowCastMsg.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plMessage/plSimInfluenceMsg.cpp => Sources/Plasma/PubUtilLib/plMessage/plSimInfluenceMsg.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plMessage/plSimInfluenceMsg.h => Sources/Plasma/PubUtilLib/plMessage/plSimInfluenceMsg.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plMessage/plSimStateMsg.cpp => Sources/Plasma/PubUtilLib/plMessage/plSimStateMsg.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plMessage/plSimStateMsg.h => Sources/Plasma/PubUtilLib/plMessage/plSimStateMsg.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plMessage/plSpawnModMsg.h => Sources/Plasma/PubUtilLib/plMessage/plSpawnModMsg.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plMessage/plSpawnRequestMsg.h => Sources/Plasma/PubUtilLib/plMessage/plSpawnRequestMsg.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plMessage/plSwimMsg.cpp => Sources/Plasma/PubUtilLib/plMessage/plSwimMsg.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plMessage/plSwimMsg.h => Sources/Plasma/PubUtilLib/plMessage/plSwimMsg.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plMessage/plSynchEnableMsg.cpp => Sources/Plasma/PubUtilLib/plMessage/plSynchEnableMsg.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plMessage/plSynchEnableMsg.h => Sources/Plasma/PubUtilLib/plMessage/plSynchEnableMsg.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plMessage/plTimerCallbackMsg.h => Sources/Plasma/PubUtilLib/plMessage/plTimerCallbackMsg.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plMessage/plTransitionMsg.cpp => Sources/Plasma/PubUtilLib/plMessage/plTransitionMsg.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plMessage/plTransitionMsg.h => Sources/Plasma/PubUtilLib/plMessage/plTransitionMsg.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plMessage/plTriggerMsg.h => Sources/Plasma/PubUtilLib/plMessage/plTriggerMsg.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plMessage/plUniqueIdsMsg.h => Sources/Plasma/PubUtilLib/plMessage/plUniqueIdsMsg.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plMessage/plVaultNotifyMsg.cpp => Sources/Plasma/PubUtilLib/plMessage/plVaultNotifyMsg.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plMessage/plVaultNotifyMsg.h => Sources/Plasma/PubUtilLib/plMessage/plVaultNotifyMsg.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plModifier/CMakeLists.txt => Sources/Plasma/PubUtilLib/plModifier/CMakeLists.txt rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plModifier/plAnimEventModifier.cpp => Sources/Plasma/PubUtilLib/plModifier/plAnimEventModifier.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plModifier/plAnimEventModifier.h => Sources/Plasma/PubUtilLib/plModifier/plAnimEventModifier.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plModifier/plAnimTimeConvertSDLModifier.cpp => Sources/Plasma/PubUtilLib/plModifier/plAnimTimeConvertSDLModifier.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plModifier/plAnimTimeConvertSDLModifier.h => Sources/Plasma/PubUtilLib/plModifier/plAnimTimeConvertSDLModifier.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plModifier/plAxisAnimModifier.cpp => Sources/Plasma/PubUtilLib/plModifier/plAxisAnimModifier.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plModifier/plAxisAnimModifier.h => Sources/Plasma/PubUtilLib/plModifier/plAxisAnimModifier.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plModifier/plCloneSpawnModifier.cpp => Sources/Plasma/PubUtilLib/plModifier/plCloneSpawnModifier.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plModifier/plCloneSpawnModifier.h => Sources/Plasma/PubUtilLib/plModifier/plCloneSpawnModifier.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plModifier/plDecalEnableMod.cpp => Sources/Plasma/PubUtilLib/plModifier/plDecalEnableMod.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plModifier/plDecalEnableMod.h => Sources/Plasma/PubUtilLib/plModifier/plDecalEnableMod.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plModifier/plDetectorLog.cpp => Sources/Plasma/PubUtilLib/plModifier/plDetectorLog.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plModifier/plDetectorLog.h => Sources/Plasma/PubUtilLib/plModifier/plDetectorLog.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plModifier/plExcludeRegionModifier.cpp => Sources/Plasma/PubUtilLib/plModifier/plExcludeRegionModifier.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plModifier/plExcludeRegionModifier.h => Sources/Plasma/PubUtilLib/plModifier/plExcludeRegionModifier.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plModifier/plGameMarkerModifier.cpp => Sources/Plasma/PubUtilLib/plModifier/plGameMarkerModifier.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plModifier/plGameMarkerModifier.h => Sources/Plasma/PubUtilLib/plModifier/plGameMarkerModifier.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plModifier/plImageLibMod.cpp => Sources/Plasma/PubUtilLib/plModifier/plImageLibMod.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plModifier/plImageLibMod.h => Sources/Plasma/PubUtilLib/plModifier/plImageLibMod.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plModifier/plInterfaceInfoModifier.cpp => Sources/Plasma/PubUtilLib/plModifier/plInterfaceInfoModifier.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plModifier/plInterfaceInfoModifier.h => Sources/Plasma/PubUtilLib/plModifier/plInterfaceInfoModifier.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plModifier/plLayerSDLModifier.cpp => Sources/Plasma/PubUtilLib/plModifier/plLayerSDLModifier.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plModifier/plLayerSDLModifier.h => Sources/Plasma/PubUtilLib/plModifier/plLayerSDLModifier.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plModifier/plLogicModifier.cpp => Sources/Plasma/PubUtilLib/plModifier/plLogicModifier.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plModifier/plLogicModifier.h => Sources/Plasma/PubUtilLib/plModifier/plLogicModifier.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plModifier/plMaintainersMarkerModifier.cpp => Sources/Plasma/PubUtilLib/plModifier/plMaintainersMarkerModifier.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plModifier/plMaintainersMarkerModifier.h => Sources/Plasma/PubUtilLib/plModifier/plMaintainersMarkerModifier.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plModifier/plModifierCreatable.h => Sources/Plasma/PubUtilLib/plModifier/plModifierCreatable.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plModifier/plResponderModifier.cpp => Sources/Plasma/PubUtilLib/plModifier/plResponderModifier.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plModifier/plResponderModifier.h => Sources/Plasma/PubUtilLib/plModifier/plResponderModifier.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plModifier/plResponderSDLModifier.cpp => Sources/Plasma/PubUtilLib/plModifier/plResponderSDLModifier.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plModifier/plResponderSDLModifier.h => Sources/Plasma/PubUtilLib/plModifier/plResponderSDLModifier.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plModifier/plSDLModifier.cpp => Sources/Plasma/PubUtilLib/plModifier/plSDLModifier.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plModifier/plSDLModifier.h => Sources/Plasma/PubUtilLib/plModifier/plSDLModifier.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plModifier/plSimpleModifier.cpp => Sources/Plasma/PubUtilLib/plModifier/plSimpleModifier.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plModifier/plSimpleModifier.h => Sources/Plasma/PubUtilLib/plModifier/plSimpleModifier.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plModifier/plSoundSDLModifier.cpp => Sources/Plasma/PubUtilLib/plModifier/plSoundSDLModifier.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plModifier/plSoundSDLModifier.h => Sources/Plasma/PubUtilLib/plModifier/plSoundSDLModifier.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plModifier/plSpawnModifier.cpp => Sources/Plasma/PubUtilLib/plModifier/plSpawnModifier.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plModifier/plSpawnModifier.h => Sources/Plasma/PubUtilLib/plModifier/plSpawnModifier.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plModifier/plTagModifier.cpp => Sources/Plasma/PubUtilLib/plModifier/plTagModifier.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plModifier/plTagModifier.h => Sources/Plasma/PubUtilLib/plModifier/plTagModifier.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plNetClient/CMakeLists.txt => Sources/Plasma/PubUtilLib/plNetClient/CMakeLists.txt rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plNetClient/plLinkEffectsMgr.cpp => Sources/Plasma/PubUtilLib/plNetClient/plLinkEffectsMgr.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plNetClient/plLinkEffectsMgr.h => Sources/Plasma/PubUtilLib/plNetClient/plLinkEffectsMgr.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plNetClient/plNetCliAgeJoiner.cpp => Sources/Plasma/PubUtilLib/plNetClient/plNetCliAgeJoiner.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plNetClient/plNetCliAgeJoiner.h => Sources/Plasma/PubUtilLib/plNetClient/plNetCliAgeJoiner.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plNetClient/plNetCliAgeLeaver.cpp => Sources/Plasma/PubUtilLib/plNetClient/plNetCliAgeLeaver.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plNetClient/plNetCliAgeLeaver.h => Sources/Plasma/PubUtilLib/plNetClient/plNetCliAgeLeaver.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plNetClient/plNetClientCommInterface.cpp => Sources/Plasma/PubUtilLib/plNetClient/plNetClientCommInterface.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plNetClient/plNetClientCreatable.h => Sources/Plasma/PubUtilLib/plNetClient/plNetClientCreatable.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plNetClient/plNetClientGroup.cpp => Sources/Plasma/PubUtilLib/plNetClient/plNetClientGroup.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plNetClient/plNetClientGroup.h => Sources/Plasma/PubUtilLib/plNetClient/plNetClientGroup.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plNetClient/plNetClientMgr.cpp => Sources/Plasma/PubUtilLib/plNetClient/plNetClientMgr.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plNetClient/plNetClientMgr.h => Sources/Plasma/PubUtilLib/plNetClient/plNetClientMgr.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plNetClient/plNetClientMgrLoad.cpp => Sources/Plasma/PubUtilLib/plNetClient/plNetClientMgrLoad.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plNetClient/plNetClientMgrRecord.cpp => Sources/Plasma/PubUtilLib/plNetClient/plNetClientMgrRecord.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plNetClient/plNetClientMgrSend.cpp => Sources/Plasma/PubUtilLib/plNetClient/plNetClientMgrSend.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plNetClient/plNetClientMgrShow.cpp => Sources/Plasma/PubUtilLib/plNetClient/plNetClientMgrShow.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plNetClient/plNetClientMgrTask.cpp => Sources/Plasma/PubUtilLib/plNetClient/plNetClientMgrTask.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plNetClient/plNetClientMgrVault.cpp => Sources/Plasma/PubUtilLib/plNetClient/plNetClientMgrVault.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plNetClient/plNetClientMgrVoice.cpp => Sources/Plasma/PubUtilLib/plNetClient/plNetClientMgrVoice.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plNetClient/plNetClientMsgHandler.cpp => Sources/Plasma/PubUtilLib/plNetClient/plNetClientMsgHandler.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plNetClient/plNetClientMsgHandler.h => Sources/Plasma/PubUtilLib/plNetClient/plNetClientMsgHandler.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plNetClient/plNetClientMsgScreener.cpp => Sources/Plasma/PubUtilLib/plNetClient/plNetClientMsgScreener.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plNetClient/plNetClientMsgScreener.h => Sources/Plasma/PubUtilLib/plNetClient/plNetClientMsgScreener.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plNetClient/plNetClientStats.cpp => Sources/Plasma/PubUtilLib/plNetClient/plNetClientStats.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plNetClient/plNetClientStats.h => Sources/Plasma/PubUtilLib/plNetClient/plNetClientStats.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plNetClient/plNetClientVNodeMgr.cpp => Sources/Plasma/PubUtilLib/plNetClient/plNetClientVNodeMgr.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plNetClient/plNetClientVault.cpp => Sources/Plasma/PubUtilLib/plNetClient/plNetClientVault.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plNetClient/plNetClientVault.h => Sources/Plasma/PubUtilLib/plNetClient/plNetClientVault.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plNetClient/plNetLinkingMgr.cpp => Sources/Plasma/PubUtilLib/plNetClient/plNetLinkingMgr.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plNetClient/plNetLinkingMgr.h => Sources/Plasma/PubUtilLib/plNetClient/plNetLinkingMgr.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plNetClient/plNetObjectDebugger.cpp => Sources/Plasma/PubUtilLib/plNetClient/plNetObjectDebugger.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plNetClient/plNetObjectDebugger.h => Sources/Plasma/PubUtilLib/plNetClient/plNetObjectDebugger.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plNetClient/plNetVoiceList.cpp => Sources/Plasma/PubUtilLib/plNetClient/plNetVoiceList.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plNetClient/plNetVoiceList.h => Sources/Plasma/PubUtilLib/plNetClient/plNetVoiceList.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plNetClientComm/CMakeLists.txt => Sources/Plasma/PubUtilLib/plNetClientComm/CMakeLists.txt rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plNetClientComm/plNetClientComm.cpp => Sources/Plasma/PubUtilLib/plNetClientComm/plNetClientComm.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plNetClientComm/plNetClientComm.h => Sources/Plasma/PubUtilLib/plNetClientComm/plNetClientComm.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plNetClientComm/plNetClientCommCreatable.h => Sources/Plasma/PubUtilLib/plNetClientComm/plNetClientCommCreatable.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plNetClientComm/plNetClientCommTask.cpp => Sources/Plasma/PubUtilLib/plNetClientComm/plNetClientCommTask.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plNetClientComm/plNetClientCommTask.h => Sources/Plasma/PubUtilLib/plNetClientComm/plNetClientCommTask.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plNetClientRecorder/CMakeLists.txt => Sources/Plasma/PubUtilLib/plNetClientRecorder/CMakeLists.txt rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plNetClientRecorder/plNetClientRecorder.cpp => Sources/Plasma/PubUtilLib/plNetClientRecorder/plNetClientRecorder.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plNetClientRecorder/plNetClientRecorder.h => Sources/Plasma/PubUtilLib/plNetClientRecorder/plNetClientRecorder.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plNetClientRecorder/plNetClientStatsRecorder.cpp => Sources/Plasma/PubUtilLib/plNetClientRecorder/plNetClientStatsRecorder.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plNetClientRecorder/plNetClientStreamRecorder.cpp => Sources/Plasma/PubUtilLib/plNetClientRecorder/plNetClientStreamRecorder.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plNetCommon/CMakeLists.txt => Sources/Plasma/PubUtilLib/plNetCommon/CMakeLists.txt rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plNetCommon/plClientGuid.cpp => Sources/Plasma/PubUtilLib/plNetCommon/plClientGuid.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plNetCommon/plClientGuid.h => Sources/Plasma/PubUtilLib/plNetCommon/plClientGuid.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plNetCommon/plNetCommon.cpp => Sources/Plasma/PubUtilLib/plNetCommon/plNetCommon.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plNetCommon/plNetCommon.h => Sources/Plasma/PubUtilLib/plNetCommon/plNetCommon.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plNetCommon/plNetCommonConstants.h => Sources/Plasma/PubUtilLib/plNetCommon/plNetCommonConstants.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plNetCommon/plNetCommonCreatable.h => Sources/Plasma/PubUtilLib/plNetCommon/plNetCommonCreatable.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plNetCommon/plNetCommonHelpers.cpp => Sources/Plasma/PubUtilLib/plNetCommon/plNetCommonHelpers.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plNetCommon/plNetCommonHelpers.h => Sources/Plasma/PubUtilLib/plNetCommon/plNetCommonHelpers.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plNetCommon/plNetMember.cpp => Sources/Plasma/PubUtilLib/plNetCommon/plNetMember.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plNetCommon/plNetMember.h => Sources/Plasma/PubUtilLib/plNetCommon/plNetMember.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plNetCommon/plNetMsgHandler.h => Sources/Plasma/PubUtilLib/plNetCommon/plNetMsgHandler.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plNetCommon/plNetMsgScreener.cpp => Sources/Plasma/PubUtilLib/plNetCommon/plNetMsgScreener.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plNetCommon/plNetMsgScreener.h => Sources/Plasma/PubUtilLib/plNetCommon/plNetMsgScreener.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plNetCommon/plNetServerSessionInfo.cpp => Sources/Plasma/PubUtilLib/plNetCommon/plNetServerSessionInfo.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plNetCommon/plNetServerSessionInfo.h => Sources/Plasma/PubUtilLib/plNetCommon/plNetServerSessionInfo.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plNetCommon/plServerGuid.cpp => Sources/Plasma/PubUtilLib/plNetCommon/plServerGuid.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plNetCommon/plServerGuid.h => Sources/Plasma/PubUtilLib/plNetCommon/plServerGuid.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plNetCommon/plSpawnPointInfo.cpp => Sources/Plasma/PubUtilLib/plNetCommon/plSpawnPointInfo.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plNetCommon/plSpawnPointInfo.h => Sources/Plasma/PubUtilLib/plNetCommon/plSpawnPointInfo.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plNetGameLib/CMakeLists.txt => Sources/Plasma/PubUtilLib/plNetGameLib/CMakeLists.txt rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plNetGameLib/Intern.h => Sources/Plasma/PubUtilLib/plNetGameLib/Intern.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plNetGameLib/Pch.h => Sources/Plasma/PubUtilLib/plNetGameLib/Pch.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plNetGameLib/Private/plNglAllIncludes.h => Sources/Plasma/PubUtilLib/plNetGameLib/Private/plNglAllIncludes.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plNetGameLib/Private/plNglAuth.cpp => Sources/Plasma/PubUtilLib/plNetGameLib/Private/plNglAuth.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plNetGameLib/Private/plNglAuth.h => Sources/Plasma/PubUtilLib/plNetGameLib/Private/plNglAuth.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plNetGameLib/Private/plNglCore.cpp => Sources/Plasma/PubUtilLib/plNetGameLib/Private/plNglCore.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plNetGameLib/Private/plNglCore.h => Sources/Plasma/PubUtilLib/plNetGameLib/Private/plNglCore.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plNetGameLib/Private/plNglCsr.cpp => Sources/Plasma/PubUtilLib/plNetGameLib/Private/plNglCsr.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plNetGameLib/Private/plNglCsr.h => Sources/Plasma/PubUtilLib/plNetGameLib/Private/plNglCsr.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plNetGameLib/Private/plNglFile.cpp => Sources/Plasma/PubUtilLib/plNetGameLib/Private/plNglFile.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plNetGameLib/Private/plNglFile.h => Sources/Plasma/PubUtilLib/plNetGameLib/Private/plNglFile.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plNetGameLib/Private/plNglGame.cpp => Sources/Plasma/PubUtilLib/plNetGameLib/Private/plNglGame.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plNetGameLib/Private/plNglGame.h => Sources/Plasma/PubUtilLib/plNetGameLib/Private/plNglGame.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plNetGameLib/Private/plNglGateKeeper.cpp => Sources/Plasma/PubUtilLib/plNetGameLib/Private/plNglGateKeeper.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plNetGameLib/Private/plNglGateKeeper.h => Sources/Plasma/PubUtilLib/plNetGameLib/Private/plNglGateKeeper.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plNetGameLib/Private/plNglMisc.cpp => Sources/Plasma/PubUtilLib/plNetGameLib/Private/plNglMisc.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plNetGameLib/Private/plNglTrans.cpp => Sources/Plasma/PubUtilLib/plNetGameLib/Private/plNglTrans.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plNetGameLib/plNetGameLib.h => Sources/Plasma/PubUtilLib/plNetGameLib/plNetGameLib.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plNetMessage/CMakeLists.txt => Sources/Plasma/PubUtilLib/plNetMessage/CMakeLists.txt rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plNetMessage/plNetCommonMessage.h => Sources/Plasma/PubUtilLib/plNetMessage/plNetCommonMessage.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plNetMessage/plNetMessage.cpp => Sources/Plasma/PubUtilLib/plNetMessage/plNetMessage.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plNetMessage/plNetMessage.h => Sources/Plasma/PubUtilLib/plNetMessage/plNetMessage.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plNetMessage/plNetMessageCreatable.h => Sources/Plasma/PubUtilLib/plNetMessage/plNetMessageCreatable.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plNetMessage/plNetMsgHelpers.cpp => Sources/Plasma/PubUtilLib/plNetMessage/plNetMsgHelpers.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plNetMessage/plNetMsgHelpers.h => Sources/Plasma/PubUtilLib/plNetMessage/plNetMsgHelpers.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plNetMessage/plNetMsgVersion.h => Sources/Plasma/PubUtilLib/plNetMessage/plNetMsgVersion.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plNetTransport/CMakeLists.txt => Sources/Plasma/PubUtilLib/plNetTransport/CMakeLists.txt rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plNetTransport/plNetTransport.cpp => Sources/Plasma/PubUtilLib/plNetTransport/plNetTransport.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plNetTransport/plNetTransport.h => Sources/Plasma/PubUtilLib/plNetTransport/plNetTransport.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plNetTransport/plNetTransportMember.cpp => Sources/Plasma/PubUtilLib/plNetTransport/plNetTransportMember.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plNetTransport/plNetTransportMember.h => Sources/Plasma/PubUtilLib/plNetTransport/plNetTransportMember.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plParticleSystem/CMakeLists.txt => Sources/Plasma/PubUtilLib/plParticleSystem/CMakeLists.txt rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plParticleSystem/plBoundInterface.cpp => Sources/Plasma/PubUtilLib/plParticleSystem/plBoundInterface.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plParticleSystem/plBoundInterface.h => Sources/Plasma/PubUtilLib/plParticleSystem/plBoundInterface.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plParticleSystem/plConvexVolume.cpp => Sources/Plasma/PubUtilLib/plParticleSystem/plConvexVolume.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plParticleSystem/plConvexVolume.h => Sources/Plasma/PubUtilLib/plParticleSystem/plConvexVolume.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plParticleSystem/plEffectTargetInfo.h => Sources/Plasma/PubUtilLib/plParticleSystem/plEffectTargetInfo.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plParticleSystem/plParticle.h => Sources/Plasma/PubUtilLib/plParticleSystem/plParticle.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plParticleSystem/plParticleApplicator.cpp => Sources/Plasma/PubUtilLib/plParticleSystem/plParticleApplicator.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plParticleSystem/plParticleApplicator.h => Sources/Plasma/PubUtilLib/plParticleSystem/plParticleApplicator.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plParticleSystem/plParticleCreatable.h => Sources/Plasma/PubUtilLib/plParticleSystem/plParticleCreatable.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plParticleSystem/plParticleEffect.cpp => Sources/Plasma/PubUtilLib/plParticleSystem/plParticleEffect.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plParticleSystem/plParticleEffect.h => Sources/Plasma/PubUtilLib/plParticleSystem/plParticleEffect.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plParticleSystem/plParticleEmitter.cpp => Sources/Plasma/PubUtilLib/plParticleSystem/plParticleEmitter.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plParticleSystem/plParticleEmitter.h => Sources/Plasma/PubUtilLib/plParticleSystem/plParticleEmitter.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plParticleSystem/plParticleGenerator.cpp => Sources/Plasma/PubUtilLib/plParticleSystem/plParticleGenerator.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plParticleSystem/plParticleGenerator.h => Sources/Plasma/PubUtilLib/plParticleSystem/plParticleGenerator.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plParticleSystem/plParticleSDLMod.cpp => Sources/Plasma/PubUtilLib/plParticleSystem/plParticleSDLMod.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plParticleSystem/plParticleSDLMod.h => Sources/Plasma/PubUtilLib/plParticleSystem/plParticleSDLMod.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plParticleSystem/plParticleSystem.cpp => Sources/Plasma/PubUtilLib/plParticleSystem/plParticleSystem.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plParticleSystem/plParticleSystem.h => Sources/Plasma/PubUtilLib/plParticleSystem/plParticleSystem.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plPhysX/CMakeLists.txt => Sources/Plasma/PubUtilLib/plPhysX/CMakeLists.txt rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plPhysX/plLOSDispatch.cpp => Sources/Plasma/PubUtilLib/plPhysX/plLOSDispatch.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plPhysX/plLOSDispatch.h => Sources/Plasma/PubUtilLib/plPhysX/plLOSDispatch.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plPhysX/plPXConvert.cpp => Sources/Plasma/PubUtilLib/plPhysX/plPXConvert.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plPhysX/plPXConvert.h => Sources/Plasma/PubUtilLib/plPhysX/plPXConvert.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plPhysX/plPXPhysical.cpp => Sources/Plasma/PubUtilLib/plPhysX/plPXPhysical.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plPhysX/plPXPhysical.h => Sources/Plasma/PubUtilLib/plPhysX/plPXPhysical.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plPhysX/plPXPhysicalController.cpp => Sources/Plasma/PubUtilLib/plPhysX/plPXPhysicalController.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plPhysX/plPXPhysicalController.h => Sources/Plasma/PubUtilLib/plPhysX/plPXPhysicalController.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plPhysX/plPXPhysicalControllerCore.cpp => Sources/Plasma/PubUtilLib/plPhysX/plPXPhysicalControllerCore.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plPhysX/plPXPhysicalControllerCore.h => Sources/Plasma/PubUtilLib/plPhysX/plPXPhysicalControllerCore.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plPhysX/plPXStream.h => Sources/Plasma/PubUtilLib/plPhysX/plPXStream.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plPhysX/plPhysXCreatable.h => Sources/Plasma/PubUtilLib/plPhysX/plPhysXCreatable.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plPhysX/plSimulationMgr.cpp => Sources/Plasma/PubUtilLib/plPhysX/plSimulationMgr.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plPhysX/plSimulationMgr.h => Sources/Plasma/PubUtilLib/plPhysX/plSimulationMgr.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plPhysical/CMakeLists.txt => Sources/Plasma/PubUtilLib/plPhysical/CMakeLists.txt rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plPhysical/plCollisionDetector.cpp => Sources/Plasma/PubUtilLib/plPhysical/plCollisionDetector.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plPhysical/plCollisionDetector.h => Sources/Plasma/PubUtilLib/plPhysical/plCollisionDetector.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plPhysical/plDetectorModifier.h => Sources/Plasma/PubUtilLib/plPhysical/plDetectorModifier.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plPhysical/plEnvEffectDetector.cpp => Sources/Plasma/PubUtilLib/plPhysical/plEnvEffectDetector.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plPhysical/plEnvEffectDetector.h => Sources/Plasma/PubUtilLib/plPhysical/plEnvEffectDetector.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plPhysical/plPhysicalCreatable.h => Sources/Plasma/PubUtilLib/plPhysical/plPhysicalCreatable.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plPhysical/plPhysicalProxy.cpp => Sources/Plasma/PubUtilLib/plPhysical/plPhysicalProxy.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plPhysical/plPhysicalProxy.h => Sources/Plasma/PubUtilLib/plPhysical/plPhysicalProxy.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plPhysical/plPhysicalSDLModifier.cpp => Sources/Plasma/PubUtilLib/plPhysical/plPhysicalSDLModifier.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plPhysical/plPhysicalSDLModifier.h => Sources/Plasma/PubUtilLib/plPhysical/plPhysicalSDLModifier.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plPhysical/plPhysicalSndGroup.cpp => Sources/Plasma/PubUtilLib/plPhysical/plPhysicalSndGroup.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plPhysical/plPhysicalSndGroup.h => Sources/Plasma/PubUtilLib/plPhysical/plPhysicalSndGroup.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plPhysical/plPhysicsSoundMgr.cpp => Sources/Plasma/PubUtilLib/plPhysical/plPhysicsSoundMgr.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plPhysical/plPhysicsSoundMgr.h => Sources/Plasma/PubUtilLib/plPhysical/plPhysicsSoundMgr.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plPhysical/plPickingDetector.cpp => Sources/Plasma/PubUtilLib/plPhysical/plPickingDetector.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plPhysical/plPickingDetector.h => Sources/Plasma/PubUtilLib/plPhysical/plPickingDetector.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plPhysical/plSimDefs.h => Sources/Plasma/PubUtilLib/plPhysical/plSimDefs.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plPhysical/plSittingModifier.cpp => Sources/Plasma/PubUtilLib/plPhysical/plSittingModifier.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plPhysical/plSittingModifier.h => Sources/Plasma/PubUtilLib/plPhysical/plSittingModifier.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plPipeline/CMakeLists.txt => Sources/Plasma/PubUtilLib/plPipeline/CMakeLists.txt rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plPipeline/hsFogControl.h => Sources/Plasma/PubUtilLib/plPipeline/hsFogControl.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plPipeline/hsG3DDeviceSelector.cpp => Sources/Plasma/PubUtilLib/plPipeline/hsG3DDeviceSelector.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plPipeline/hsG3DDeviceSelector.h => Sources/Plasma/PubUtilLib/plPipeline/hsG3DDeviceSelector.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plPipeline/hsGColorizer.cpp => Sources/Plasma/PubUtilLib/plPipeline/hsGColorizer.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plPipeline/hsGColorizer.h => Sources/Plasma/PubUtilLib/plPipeline/hsGColorizer.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plPipeline/hsGDDrawDllLoad.cpp => Sources/Plasma/PubUtilLib/plPipeline/hsGDDrawDllLoad.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plPipeline/hsGDDrawDllLoad.h => Sources/Plasma/PubUtilLib/plPipeline/hsGDDrawDllLoad.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plPipeline/hsGDeviceRef.h => Sources/Plasma/PubUtilLib/plPipeline/hsGDeviceRef.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plPipeline/hsGEnviron.cpp => Sources/Plasma/PubUtilLib/plPipeline/hsGEnviron.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plPipeline/hsGEnviron.h => Sources/Plasma/PubUtilLib/plPipeline/hsGEnviron.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plPipeline/hsWinRef.h => Sources/Plasma/PubUtilLib/plPipeline/hsWinRef.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plPipeline/plCaptureRender.cpp => Sources/Plasma/PubUtilLib/plPipeline/plCaptureRender.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plPipeline/plCaptureRender.h => Sources/Plasma/PubUtilLib/plPipeline/plCaptureRender.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plPipeline/plCubicRenderTarget.h => Sources/Plasma/PubUtilLib/plPipeline/plCubicRenderTarget.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plPipeline/plCubicRenderTargetModifier.cpp => Sources/Plasma/PubUtilLib/plPipeline/plCubicRenderTargetModifier.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plPipeline/plCubicRenderTargetModifier.h => Sources/Plasma/PubUtilLib/plPipeline/plCubicRenderTargetModifier.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plPipeline/plCullTree.cpp => Sources/Plasma/PubUtilLib/plPipeline/plCullTree.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plPipeline/plCullTree.h => Sources/Plasma/PubUtilLib/plPipeline/plCullTree.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plPipeline/plCuller.h => Sources/Plasma/PubUtilLib/plPipeline/plCuller.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plPipeline/plDTProgressMgr.cpp => Sources/Plasma/PubUtilLib/plPipeline/plDTProgressMgr.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plPipeline/plDTProgressMgr.h => Sources/Plasma/PubUtilLib/plPipeline/plDTProgressMgr.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plPipeline/plDXBufferRefs.h => Sources/Plasma/PubUtilLib/plPipeline/plDXBufferRefs.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plPipeline/plDXDeviceRef.h => Sources/Plasma/PubUtilLib/plPipeline/plDXDeviceRef.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plPipeline/plDXDeviceRefs.cpp => Sources/Plasma/PubUtilLib/plPipeline/plDXDeviceRefs.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plPipeline/plDXEnumerate.cpp => Sources/Plasma/PubUtilLib/plPipeline/plDXEnumerate.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plPipeline/plDXEnumerate.h => Sources/Plasma/PubUtilLib/plPipeline/plDXEnumerate.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plPipeline/plDXLightRef.h => Sources/Plasma/PubUtilLib/plPipeline/plDXLightRef.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plPipeline/plDXPipeline.cpp => Sources/Plasma/PubUtilLib/plPipeline/plDXPipeline.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plPipeline/plDXPipeline.h => Sources/Plasma/PubUtilLib/plPipeline/plDXPipeline.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plPipeline/plDXPixelShader.cpp => Sources/Plasma/PubUtilLib/plPipeline/plDXPixelShader.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plPipeline/plDXPixelShader.h => Sources/Plasma/PubUtilLib/plPipeline/plDXPixelShader.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plPipeline/plDXRenderTargetRef.h => Sources/Plasma/PubUtilLib/plPipeline/plDXRenderTargetRef.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plPipeline/plDXSettings.h => Sources/Plasma/PubUtilLib/plPipeline/plDXSettings.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plPipeline/plDXShader.cpp => Sources/Plasma/PubUtilLib/plPipeline/plDXShader.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plPipeline/plDXShader.h => Sources/Plasma/PubUtilLib/plPipeline/plDXShader.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plPipeline/plDXTextFont.cpp => Sources/Plasma/PubUtilLib/plPipeline/plDXTextFont.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plPipeline/plDXTextFont.h => Sources/Plasma/PubUtilLib/plPipeline/plDXTextFont.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plPipeline/plDXTextureRef.h => Sources/Plasma/PubUtilLib/plPipeline/plDXTextureRef.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plPipeline/plDXVertexShader.cpp => Sources/Plasma/PubUtilLib/plPipeline/plDXVertexShader.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plPipeline/plDXVertexShader.h => Sources/Plasma/PubUtilLib/plPipeline/plDXVertexShader.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plPipeline/plDebugText.cpp => Sources/Plasma/PubUtilLib/plPipeline/plDebugText.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plPipeline/plDebugText.h => Sources/Plasma/PubUtilLib/plPipeline/plDebugText.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plPipeline/plDrawPrim.h => Sources/Plasma/PubUtilLib/plPipeline/plDrawPrim.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plPipeline/plDynamicEnvMap.cpp => Sources/Plasma/PubUtilLib/plPipeline/plDynamicEnvMap.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plPipeline/plDynamicEnvMap.h => Sources/Plasma/PubUtilLib/plPipeline/plDynamicEnvMap.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plPipeline/plFogEnvironment.cpp => Sources/Plasma/PubUtilLib/plPipeline/plFogEnvironment.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plPipeline/plFogEnvironment.h => Sources/Plasma/PubUtilLib/plPipeline/plFogEnvironment.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plPipeline/plGBufferGroup.cpp => Sources/Plasma/PubUtilLib/plPipeline/plGBufferGroup.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plPipeline/plGBufferGroup.h => Sources/Plasma/PubUtilLib/plPipeline/plGBufferGroup.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plPipeline/plPipeDebugFlags.h => Sources/Plasma/PubUtilLib/plPipeline/plPipeDebugFlags.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plPipeline/plPipelineCreatable.h => Sources/Plasma/PubUtilLib/plPipeline/plPipelineCreatable.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plPipeline/plPipelineCreate.h => Sources/Plasma/PubUtilLib/plPipeline/plPipelineCreate.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plPipeline/plPlates.cpp => Sources/Plasma/PubUtilLib/plPipeline/plPlates.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plPipeline/plPlates.h => Sources/Plasma/PubUtilLib/plPipeline/plPlates.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plPipeline/plRenderTarget.cpp => Sources/Plasma/PubUtilLib/plPipeline/plRenderTarget.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plPipeline/plRenderTarget.h => Sources/Plasma/PubUtilLib/plPipeline/plRenderTarget.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plPipeline/plStatusLogDrawer.cpp => Sources/Plasma/PubUtilLib/plPipeline/plStatusLogDrawer.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plPipeline/plStatusLogDrawer.h => Sources/Plasma/PubUtilLib/plPipeline/plStatusLogDrawer.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plPipeline/plStencil.h => Sources/Plasma/PubUtilLib/plPipeline/plStencil.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plPipeline/plTextFont.cpp => Sources/Plasma/PubUtilLib/plPipeline/plTextFont.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plPipeline/plTextFont.h => Sources/Plasma/PubUtilLib/plPipeline/plTextFont.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plPipeline/plTextGenerator.cpp => Sources/Plasma/PubUtilLib/plPipeline/plTextGenerator.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plPipeline/plTextGenerator.h => Sources/Plasma/PubUtilLib/plPipeline/plTextGenerator.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plPipeline/plTransitionMgr.cpp => Sources/Plasma/PubUtilLib/plPipeline/plTransitionMgr.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plPipeline/plTransitionMgr.h => Sources/Plasma/PubUtilLib/plPipeline/plTransitionMgr.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plPipeline/plVertCoder.cpp => Sources/Plasma/PubUtilLib/plPipeline/plVertCoder.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plPipeline/plVertCoder.h => Sources/Plasma/PubUtilLib/plPipeline/plVertCoder.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plProgressMgr/CMakeLists.txt => Sources/Plasma/PubUtilLib/plProgressMgr/CMakeLists.txt rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plProgressMgr/plProgressMgr.cpp => Sources/Plasma/PubUtilLib/plProgressMgr/plProgressMgr.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plProgressMgr/plProgressMgr.h => Sources/Plasma/PubUtilLib/plProgressMgr/plProgressMgr.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plResMgr/CMakeLists.txt => Sources/Plasma/PubUtilLib/plResMgr/CMakeLists.txt rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plResMgr/plBSDiffBuffer.cpp => Sources/Plasma/PubUtilLib/plResMgr/plBSDiffBuffer.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plResMgr/plBSDiffBuffer.h => Sources/Plasma/PubUtilLib/plResMgr/plBSDiffBuffer.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plResMgr/plDiffBuffer.cpp => Sources/Plasma/PubUtilLib/plResMgr/plDiffBuffer.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plResMgr/plDiffBuffer.h => Sources/Plasma/PubUtilLib/plResMgr/plDiffBuffer.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plResMgr/plIndexFile.cpp => Sources/Plasma/PubUtilLib/plResMgr/plIndexFile.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plResMgr/plIndexFile.h => Sources/Plasma/PubUtilLib/plResMgr/plIndexFile.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plResMgr/plKeyFinder.cpp => Sources/Plasma/PubUtilLib/plResMgr/plKeyFinder.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plResMgr/plKeyFinder.h => Sources/Plasma/PubUtilLib/plResMgr/plKeyFinder.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plResMgr/plLoc.cpp => Sources/Plasma/PubUtilLib/plResMgr/plLoc.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plResMgr/plLoc.h => Sources/Plasma/PubUtilLib/plResMgr/plLoc.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plResMgr/plLocalization.cpp => Sources/Plasma/PubUtilLib/plResMgr/plLocalization.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plResMgr/plLocalization.h => Sources/Plasma/PubUtilLib/plResMgr/plLocalization.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plResMgr/plPageInfo.cpp => Sources/Plasma/PubUtilLib/plResMgr/plPageInfo.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plResMgr/plPageInfo.h => Sources/Plasma/PubUtilLib/plResMgr/plPageInfo.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plResMgr/plRegistryHelpers.cpp => Sources/Plasma/PubUtilLib/plResMgr/plRegistryHelpers.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plResMgr/plRegistryHelpers.h => Sources/Plasma/PubUtilLib/plResMgr/plRegistryHelpers.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plResMgr/plRegistryKeyList.cpp => Sources/Plasma/PubUtilLib/plResMgr/plRegistryKeyList.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plResMgr/plRegistryKeyList.h => Sources/Plasma/PubUtilLib/plResMgr/plRegistryKeyList.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plResMgr/plRegistryNode.cpp => Sources/Plasma/PubUtilLib/plResMgr/plRegistryNode.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plResMgr/plRegistryNode.h => Sources/Plasma/PubUtilLib/plResMgr/plRegistryNode.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plResMgr/plResManager.cpp => Sources/Plasma/PubUtilLib/plResMgr/plResManager.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plResMgr/plResManager.h => Sources/Plasma/PubUtilLib/plResMgr/plResManager.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plResMgr/plResManagerHelper.cpp => Sources/Plasma/PubUtilLib/plResMgr/plResManagerHelper.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plResMgr/plResManagerHelper.h => Sources/Plasma/PubUtilLib/plResMgr/plResManagerHelper.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plResMgr/plResMgr.cpp => Sources/Plasma/PubUtilLib/plResMgr/plResMgr.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plResMgr/plResMgr.h => Sources/Plasma/PubUtilLib/plResMgr/plResMgr.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plResMgr/plResMgrCreatable.h => Sources/Plasma/PubUtilLib/plResMgr/plResMgrCreatable.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plResMgr/plResMgrSettings.h => Sources/Plasma/PubUtilLib/plResMgr/plResMgrSettings.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plResMgr/plVersion.cpp => Sources/Plasma/PubUtilLib/plResMgr/plVersion.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plResMgr/plVersion.h => Sources/Plasma/PubUtilLib/plResMgr/plVersion.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plSDL/CMakeLists.txt => Sources/Plasma/PubUtilLib/plSDL/CMakeLists.txt rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plSDL/SDL/animation.sdl => Sources/Plasma/PubUtilLib/plSDL/SDL/animation.sdl rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plSDL/SDL/avatar.sdl => Sources/Plasma/PubUtilLib/plSDL/SDL/avatar.sdl rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plSDL/SDL/cloneMessage.sdl => Sources/Plasma/PubUtilLib/plSDL/SDL/cloneMessage.sdl rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plSDL/SDL/clothing.sdl => Sources/Plasma/PubUtilLib/plSDL/SDL/clothing.sdl rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plSDL/SDL/morph.sdl => Sources/Plasma/PubUtilLib/plSDL/SDL/morph.sdl rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plSDL/SDL/particle.sdl => Sources/Plasma/PubUtilLib/plSDL/SDL/particle.sdl rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plSDL/SDL/physical.sdl => Sources/Plasma/PubUtilLib/plSDL/SDL/physical.sdl rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plSDL/SDL/responder.sdl => Sources/Plasma/PubUtilLib/plSDL/SDL/responder.sdl rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plSDL/SDL/sound.sdl => Sources/Plasma/PubUtilLib/plSDL/SDL/sound.sdl rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plSDL/SDL/xregion.sdl => Sources/Plasma/PubUtilLib/plSDL/SDL/xregion.sdl rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plSDL/plSDL.h => Sources/Plasma/PubUtilLib/plSDL/plSDL.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plSDL/plSDLCreatable.h => Sources/Plasma/PubUtilLib/plSDL/plSDLCreatable.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plSDL/plSDLDescriptor.h => Sources/Plasma/PubUtilLib/plSDL/plSDLDescriptor.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plSDL/plSDLMgr.cpp => Sources/Plasma/PubUtilLib/plSDL/plSDLMgr.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plSDL/plSDLParser.cpp => Sources/Plasma/PubUtilLib/plSDL/plSDLParser.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plSDL/plStateChangeNotifier.cpp => Sources/Plasma/PubUtilLib/plSDL/plStateChangeNotifier.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plSDL/plStateDataRecord.cpp => Sources/Plasma/PubUtilLib/plSDL/plStateDataRecord.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plSDL/plStateDescriptor.cpp => Sources/Plasma/PubUtilLib/plSDL/plStateDescriptor.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plSDL/plStateVariable.cpp => Sources/Plasma/PubUtilLib/plSDL/plStateVariable.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plSDL/plVarDescriptor.cpp => Sources/Plasma/PubUtilLib/plSDL/plVarDescriptor.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plSDLBrowser/plSDLBrowser.rc => Sources/Plasma/PubUtilLib/plSDLBrowser/plSDLBrowser.rc rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plSDLBrowser/plSDLBrowserDlg.cpp => Sources/Plasma/PubUtilLib/plSDLBrowser/plSDLBrowserDlg.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plSDLBrowser/plSDLBrowserDlg.h => Sources/Plasma/PubUtilLib/plSDLBrowser/plSDLBrowserDlg.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plSDLBrowser/plSDLBrowserDlgHandlers.cpp => Sources/Plasma/PubUtilLib/plSDLBrowser/plSDLBrowserDlgHandlers.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plSDLBrowser/resource.h => Sources/Plasma/PubUtilLib/plSDLBrowser/resource.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plScene/CMakeLists.txt => Sources/Plasma/PubUtilLib/plScene/CMakeLists.txt rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plScene/plCullPoly.cpp => Sources/Plasma/PubUtilLib/plScene/plCullPoly.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plScene/plCullPoly.h => Sources/Plasma/PubUtilLib/plScene/plCullPoly.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plScene/plOccTree.cpp => Sources/Plasma/PubUtilLib/plScene/plOccTree.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plScene/plOccTree.h => Sources/Plasma/PubUtilLib/plScene/plOccTree.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plScene/plOccluder.cpp => Sources/Plasma/PubUtilLib/plScene/plOccluder.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plScene/plOccluder.h => Sources/Plasma/PubUtilLib/plScene/plOccluder.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plScene/plOccluderProxy.cpp => Sources/Plasma/PubUtilLib/plScene/plOccluderProxy.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plScene/plOccluderProxy.h => Sources/Plasma/PubUtilLib/plScene/plOccluderProxy.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plScene/plPageTreeMgr.cpp => Sources/Plasma/PubUtilLib/plScene/plPageTreeMgr.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plScene/plPageTreeMgr.h => Sources/Plasma/PubUtilLib/plScene/plPageTreeMgr.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plScene/plPostEffectMod.cpp => Sources/Plasma/PubUtilLib/plScene/plPostEffectMod.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plScene/plPostEffectMod.h => Sources/Plasma/PubUtilLib/plScene/plPostEffectMod.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plScene/plRelevanceMgr.cpp => Sources/Plasma/PubUtilLib/plScene/plRelevanceMgr.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plScene/plRelevanceMgr.h => Sources/Plasma/PubUtilLib/plScene/plRelevanceMgr.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plScene/plRelevanceRegion.cpp => Sources/Plasma/PubUtilLib/plScene/plRelevanceRegion.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plScene/plRelevanceRegion.h => Sources/Plasma/PubUtilLib/plScene/plRelevanceRegion.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plScene/plRenderRequest.cpp => Sources/Plasma/PubUtilLib/plScene/plRenderRequest.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plScene/plRenderRequest.h => Sources/Plasma/PubUtilLib/plScene/plRenderRequest.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plScene/plSceneCreatable.h => Sources/Plasma/PubUtilLib/plScene/plSceneCreatable.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plScene/plSceneNode.cpp => Sources/Plasma/PubUtilLib/plScene/plSceneNode.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plScene/plSceneNode.h => Sources/Plasma/PubUtilLib/plScene/plSceneNode.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plScene/plVisMgr.cpp => Sources/Plasma/PubUtilLib/plScene/plVisMgr.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plScene/plVisMgr.h => Sources/Plasma/PubUtilLib/plScene/plVisMgr.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plScene/plVisRegion.cpp => Sources/Plasma/PubUtilLib/plScene/plVisRegion.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plScene/plVisRegion.h => Sources/Plasma/PubUtilLib/plScene/plVisRegion.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plSockets/CMakeLists.txt => Sources/Plasma/PubUtilLib/plSockets/CMakeLists.txt rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plSockets/plBufferedSocketReader.cpp => Sources/Plasma/PubUtilLib/plSockets/plBufferedSocketReader.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plSockets/plBufferedSocketReader.h => Sources/Plasma/PubUtilLib/plSockets/plBufferedSocketReader.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plSockets/plBufferedSocketWriter.cpp => Sources/Plasma/PubUtilLib/plSockets/plBufferedSocketWriter.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plSockets/plBufferedSocketWriter.h => Sources/Plasma/PubUtilLib/plSockets/plBufferedSocketWriter.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plSockets/plFdSet.cpp => Sources/Plasma/PubUtilLib/plSockets/plFdSet.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plSockets/plFdSet.h => Sources/Plasma/PubUtilLib/plSockets/plFdSet.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plSockets/plMemBuffer.cpp => Sources/Plasma/PubUtilLib/plSockets/plMemBuffer.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plSockets/plMemBuffer.h => Sources/Plasma/PubUtilLib/plSockets/plMemBuffer.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plSockets/plNet.cpp => Sources/Plasma/PubUtilLib/plSockets/plNet.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plSockets/plNet.h => Sources/Plasma/PubUtilLib/plSockets/plNet.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plSockets/plOutgoingUdpSocket.cpp => Sources/Plasma/PubUtilLib/plSockets/plOutgoingUdpSocket.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plSockets/plOutgoingUdpSocket.h => Sources/Plasma/PubUtilLib/plSockets/plOutgoingUdpSocket.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plSockets/plRingBuffer.cpp => Sources/Plasma/PubUtilLib/plSockets/plRingBuffer.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plSockets/plRingBuffer.h => Sources/Plasma/PubUtilLib/plSockets/plRingBuffer.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plSockets/plSocket.cpp => Sources/Plasma/PubUtilLib/plSockets/plSocket.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plSockets/plSocket.h => Sources/Plasma/PubUtilLib/plSockets/plSocket.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plSockets/plTcpListenSocket.cpp => Sources/Plasma/PubUtilLib/plSockets/plTcpListenSocket.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plSockets/plTcpListenSocket.h => Sources/Plasma/PubUtilLib/plSockets/plTcpListenSocket.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plSockets/plTcpSocket.cpp => Sources/Plasma/PubUtilLib/plSockets/plTcpSocket.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plSockets/plTcpSocket.h => Sources/Plasma/PubUtilLib/plSockets/plTcpSocket.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plStatGather/CMakeLists.txt => Sources/Plasma/PubUtilLib/plStatGather/CMakeLists.txt rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plStatGather/plAutoProfile.cpp => Sources/Plasma/PubUtilLib/plStatGather/plAutoProfile.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plStatGather/plAutoProfile.h => Sources/Plasma/PubUtilLib/plStatGather/plAutoProfile.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plStatGather/plCalculatedProfiles.cpp => Sources/Plasma/PubUtilLib/plStatGather/plCalculatedProfiles.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plStatGather/plCalculatedProfiles.h => Sources/Plasma/PubUtilLib/plStatGather/plCalculatedProfiles.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plStatGather/plProfileManagerFull.cpp => Sources/Plasma/PubUtilLib/plStatGather/plProfileManagerFull.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plStatGather/plProfileManagerFull.h => Sources/Plasma/PubUtilLib/plStatGather/plProfileManagerFull.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plStatGather/plStatGatherCreatable.h => Sources/Plasma/PubUtilLib/plStatGather/plStatGatherCreatable.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plStatusLog/CMakeLists.txt => Sources/Plasma/PubUtilLib/plStatusLog/CMakeLists.txt rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plStatusLog/plEncryptLogLine.cpp => Sources/Plasma/PubUtilLib/plStatusLog/plEncryptLogLine.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plStatusLog/plEncryptLogLine.h => Sources/Plasma/PubUtilLib/plStatusLog/plEncryptLogLine.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plStatusLog/plLoggable.cpp => Sources/Plasma/PubUtilLib/plStatusLog/plLoggable.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plStatusLog/plLoggable.h => Sources/Plasma/PubUtilLib/plStatusLog/plLoggable.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plStatusLog/plStatusLog.cpp => Sources/Plasma/PubUtilLib/plStatusLog/plStatusLog.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plStatusLog/plStatusLog.h => Sources/Plasma/PubUtilLib/plStatusLog/plStatusLog.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plStreamLogger/CMakeLists.txt => Sources/Plasma/PubUtilLib/plStreamLogger/CMakeLists.txt rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plStreamLogger/plStreamLogger.cpp => Sources/Plasma/PubUtilLib/plStreamLogger/plStreamLogger.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plStreamLogger/plStreamLogger.h => Sources/Plasma/PubUtilLib/plStreamLogger/plStreamLogger.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plStreamLogger/plStreamLoggerC.h => Sources/Plasma/PubUtilLib/plStreamLogger/plStreamLoggerC.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plSurface/CMakeLists.txt => Sources/Plasma/PubUtilLib/plSurface/CMakeLists.txt rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plSurface/ShaderSrc/AssShader.zip => Sources/Plasma/PubUtilLib/plSurface/ShaderSrc/AssShader.zip rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plSurface/ShaderSrc/ps_BiasNormals.inl => Sources/Plasma/PubUtilLib/plSurface/ShaderSrc/ps_BiasNormals.inl rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plSurface/ShaderSrc/ps_CaddAadd.inl => Sources/Plasma/PubUtilLib/plSurface/ShaderSrc/ps_CaddAadd.inl rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plSurface/ShaderSrc/ps_CaddAbase.inl => Sources/Plasma/PubUtilLib/plSurface/ShaderSrc/ps_CaddAbase.inl rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plSurface/ShaderSrc/ps_CaddAmult.inl => Sources/Plasma/PubUtilLib/plSurface/ShaderSrc/ps_CaddAmult.inl rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plSurface/ShaderSrc/ps_CalphaAadd.inl => Sources/Plasma/PubUtilLib/plSurface/ShaderSrc/ps_CalphaAadd.inl rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plSurface/ShaderSrc/ps_CalphaAbase.inl => Sources/Plasma/PubUtilLib/plSurface/ShaderSrc/ps_CalphaAbase.inl rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plSurface/ShaderSrc/ps_CalphaAmult.inl => Sources/Plasma/PubUtilLib/plSurface/ShaderSrc/ps_CalphaAmult.inl rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plSurface/ShaderSrc/ps_CbaseAbase.inl => Sources/Plasma/PubUtilLib/plSurface/ShaderSrc/ps_CbaseAbase.inl rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plSurface/ShaderSrc/ps_CmultAadd.inl => Sources/Plasma/PubUtilLib/plSurface/ShaderSrc/ps_CmultAadd.inl rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plSurface/ShaderSrc/ps_CmultAbase.inl => Sources/Plasma/PubUtilLib/plSurface/ShaderSrc/ps_CmultAbase.inl rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plSurface/ShaderSrc/ps_CmultAmult.inl => Sources/Plasma/PubUtilLib/plSurface/ShaderSrc/ps_CmultAmult.inl rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plSurface/ShaderSrc/ps_CompCosines.inl => Sources/Plasma/PubUtilLib/plSurface/ShaderSrc/ps_CompCosines.inl rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plSurface/ShaderSrc/ps_GrassShader.inl => Sources/Plasma/PubUtilLib/plSurface/ShaderSrc/ps_GrassShader.inl rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plSurface/ShaderSrc/ps_MoreCosines.inl => Sources/Plasma/PubUtilLib/plSurface/ShaderSrc/ps_MoreCosines.inl rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plSurface/ShaderSrc/ps_ShoreLeave6.inl => Sources/Plasma/PubUtilLib/plSurface/ShaderSrc/ps_ShoreLeave6.inl rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plSurface/ShaderSrc/ps_WaveDecEnv.inl => Sources/Plasma/PubUtilLib/plSurface/ShaderSrc/ps_WaveDecEnv.inl rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plSurface/ShaderSrc/ps_WaveFixed.inl => Sources/Plasma/PubUtilLib/plSurface/ShaderSrc/ps_WaveFixed.inl rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plSurface/ShaderSrc/ps_WaveGraph.inl => Sources/Plasma/PubUtilLib/plSurface/ShaderSrc/ps_WaveGraph.inl rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plSurface/ShaderSrc/ps_WaveGrid.inl => Sources/Plasma/PubUtilLib/plSurface/ShaderSrc/ps_WaveGrid.inl rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plSurface/ShaderSrc/ps_WaveRip.inl => Sources/Plasma/PubUtilLib/plSurface/ShaderSrc/ps_WaveRip.inl rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plSurface/ShaderSrc/vs_BiasNormals.inl => Sources/Plasma/PubUtilLib/plSurface/ShaderSrc/vs_BiasNormals.inl rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plSurface/ShaderSrc/vs_CompCosines.inl => Sources/Plasma/PubUtilLib/plSurface/ShaderSrc/vs_CompCosines.inl rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plSurface/ShaderSrc/vs_GrassShader.inl => Sources/Plasma/PubUtilLib/plSurface/ShaderSrc/vs_GrassShader.inl rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plSurface/ShaderSrc/vs_ShoreLeave6.inl => Sources/Plasma/PubUtilLib/plSurface/ShaderSrc/vs_ShoreLeave6.inl rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plSurface/ShaderSrc/vs_ShoreLeave7.inl => Sources/Plasma/PubUtilLib/plSurface/ShaderSrc/vs_ShoreLeave7.inl rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plSurface/ShaderSrc/vs_WaveDec1Lay.inl => Sources/Plasma/PubUtilLib/plSurface/ShaderSrc/vs_WaveDec1Lay.inl rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plSurface/ShaderSrc/vs_WaveDec1Lay_7.inl => Sources/Plasma/PubUtilLib/plSurface/ShaderSrc/vs_WaveDec1Lay_7.inl rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plSurface/ShaderSrc/vs_WaveDec2Lay11.inl => Sources/Plasma/PubUtilLib/plSurface/ShaderSrc/vs_WaveDec2Lay11.inl rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plSurface/ShaderSrc/vs_WaveDec2Lay11_7.inl => Sources/Plasma/PubUtilLib/plSurface/ShaderSrc/vs_WaveDec2Lay11_7.inl rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plSurface/ShaderSrc/vs_WaveDec2Lay12.inl => Sources/Plasma/PubUtilLib/plSurface/ShaderSrc/vs_WaveDec2Lay12.inl rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plSurface/ShaderSrc/vs_WaveDec2Lay12_7.inl => Sources/Plasma/PubUtilLib/plSurface/ShaderSrc/vs_WaveDec2Lay12_7.inl rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plSurface/ShaderSrc/vs_WaveDecEnv.inl => Sources/Plasma/PubUtilLib/plSurface/ShaderSrc/vs_WaveDecEnv.inl rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plSurface/ShaderSrc/vs_WaveDecEnv_7.inl => Sources/Plasma/PubUtilLib/plSurface/ShaderSrc/vs_WaveDecEnv_7.inl rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plSurface/ShaderSrc/vs_WaveFixedFin6.inl => Sources/Plasma/PubUtilLib/plSurface/ShaderSrc/vs_WaveFixedFin6.inl rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plSurface/ShaderSrc/vs_WaveFixedFin7.inl => Sources/Plasma/PubUtilLib/plSurface/ShaderSrc/vs_WaveFixedFin7.inl rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plSurface/ShaderSrc/vs_WaveGraph2.inl => Sources/Plasma/PubUtilLib/plSurface/ShaderSrc/vs_WaveGraph2.inl rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plSurface/ShaderSrc/vs_WaveGridFin.inl => Sources/Plasma/PubUtilLib/plSurface/ShaderSrc/vs_WaveGridFin.inl rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plSurface/ShaderSrc/vs_WaveRip.inl => Sources/Plasma/PubUtilLib/plSurface/ShaderSrc/vs_WaveRip.inl rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plSurface/ShaderSrc/vs_WaveRip7.inl => Sources/Plasma/PubUtilLib/plSurface/ShaderSrc/vs_WaveRip7.inl rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plSurface/hsGMaterial.cpp => Sources/Plasma/PubUtilLib/plSurface/hsGMaterial.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plSurface/hsGMaterial.h => Sources/Plasma/PubUtilLib/plSurface/hsGMaterial.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plSurface/plGrassShaderMod.cpp => Sources/Plasma/PubUtilLib/plSurface/plGrassShaderMod.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plSurface/plGrassShaderMod.h => Sources/Plasma/PubUtilLib/plSurface/plGrassShaderMod.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plSurface/plLayer.cpp => Sources/Plasma/PubUtilLib/plSurface/plLayer.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plSurface/plLayer.h => Sources/Plasma/PubUtilLib/plSurface/plLayer.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plSurface/plLayerAnimation.cpp => Sources/Plasma/PubUtilLib/plSurface/plLayerAnimation.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plSurface/plLayerAnimation.h => Sources/Plasma/PubUtilLib/plSurface/plLayerAnimation.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plSurface/plLayerDepth.cpp => Sources/Plasma/PubUtilLib/plSurface/plLayerDepth.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plSurface/plLayerDepth.h => Sources/Plasma/PubUtilLib/plSurface/plLayerDepth.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plSurface/plLayerInterface.cpp => Sources/Plasma/PubUtilLib/plSurface/plLayerInterface.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plSurface/plLayerInterface.h => Sources/Plasma/PubUtilLib/plSurface/plLayerInterface.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plSurface/plLayerMultiply.cpp => Sources/Plasma/PubUtilLib/plSurface/plLayerMultiply.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plSurface/plLayerMultiply.h => Sources/Plasma/PubUtilLib/plSurface/plLayerMultiply.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plSurface/plLayerOr.cpp => Sources/Plasma/PubUtilLib/plSurface/plLayerOr.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plSurface/plLayerOr.h => Sources/Plasma/PubUtilLib/plSurface/plLayerOr.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plSurface/plLayerShadowBase.cpp => Sources/Plasma/PubUtilLib/plSurface/plLayerShadowBase.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plSurface/plLayerShadowBase.h => Sources/Plasma/PubUtilLib/plSurface/plLayerShadowBase.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plSurface/plLayerWrapper.cpp => Sources/Plasma/PubUtilLib/plSurface/plLayerWrapper.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plSurface/plLayerWrapper.h => Sources/Plasma/PubUtilLib/plSurface/plLayerWrapper.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plSurface/plShader.cpp => Sources/Plasma/PubUtilLib/plSurface/plShader.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plSurface/plShader.h => Sources/Plasma/PubUtilLib/plSurface/plShader.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plSurface/plShaderTable.cpp => Sources/Plasma/PubUtilLib/plSurface/plShaderTable.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plSurface/plShaderTable.h => Sources/Plasma/PubUtilLib/plSurface/plShaderTable.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plSurface/plSurfaceCreatable.h => Sources/Plasma/PubUtilLib/plSurface/plSurfaceCreatable.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plSurface/ps_BiasNormals.h => Sources/Plasma/PubUtilLib/plSurface/ps_BiasNormals.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plSurface/ps_CaddAAdd.h => Sources/Plasma/PubUtilLib/plSurface/ps_CaddAAdd.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plSurface/ps_CaddAMult.h => Sources/Plasma/PubUtilLib/plSurface/ps_CaddAMult.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plSurface/ps_CaddAbase.h => Sources/Plasma/PubUtilLib/plSurface/ps_CaddAbase.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plSurface/ps_CalphaAMult.h => Sources/Plasma/PubUtilLib/plSurface/ps_CalphaAMult.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plSurface/ps_CalphaAadd.h => Sources/Plasma/PubUtilLib/plSurface/ps_CalphaAadd.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plSurface/ps_CalphaAbase.h => Sources/Plasma/PubUtilLib/plSurface/ps_CalphaAbase.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plSurface/ps_CbaseAbase.h => Sources/Plasma/PubUtilLib/plSurface/ps_CbaseAbase.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plSurface/ps_CmultAAdd.h => Sources/Plasma/PubUtilLib/plSurface/ps_CmultAAdd.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plSurface/ps_CmultAMult.h => Sources/Plasma/PubUtilLib/plSurface/ps_CmultAMult.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plSurface/ps_CmultAbase.h => Sources/Plasma/PubUtilLib/plSurface/ps_CmultAbase.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plSurface/ps_CompCosines.h => Sources/Plasma/PubUtilLib/plSurface/ps_CompCosines.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plSurface/ps_GrassShader.h => Sources/Plasma/PubUtilLib/plSurface/ps_GrassShader.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plSurface/ps_MoreCosines.h => Sources/Plasma/PubUtilLib/plSurface/ps_MoreCosines.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plSurface/ps_ShoreLeave6.h => Sources/Plasma/PubUtilLib/plSurface/ps_ShoreLeave6.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plSurface/ps_WaveDecEnv.h => Sources/Plasma/PubUtilLib/plSurface/ps_WaveDecEnv.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plSurface/ps_WaveFixed.h => Sources/Plasma/PubUtilLib/plSurface/ps_WaveFixed.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plSurface/ps_WaveGraph.h => Sources/Plasma/PubUtilLib/plSurface/ps_WaveGraph.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plSurface/ps_WaveGrid.h => Sources/Plasma/PubUtilLib/plSurface/ps_WaveGrid.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plSurface/ps_WaveRip.h => Sources/Plasma/PubUtilLib/plSurface/ps_WaveRip.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plSurface/vs_BiasNormals.h => Sources/Plasma/PubUtilLib/plSurface/vs_BiasNormals.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plSurface/vs_CompCosines.h => Sources/Plasma/PubUtilLib/plSurface/vs_CompCosines.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plSurface/vs_GrassShader.h => Sources/Plasma/PubUtilLib/plSurface/vs_GrassShader.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plSurface/vs_ShoreLeave6.h => Sources/Plasma/PubUtilLib/plSurface/vs_ShoreLeave6.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plSurface/vs_ShoreLeave7.h => Sources/Plasma/PubUtilLib/plSurface/vs_ShoreLeave7.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plSurface/vs_WaveDec1Lay.h => Sources/Plasma/PubUtilLib/plSurface/vs_WaveDec1Lay.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plSurface/vs_WaveDec1Lay_7.h => Sources/Plasma/PubUtilLib/plSurface/vs_WaveDec1Lay_7.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plSurface/vs_WaveDec2Lay11.h => Sources/Plasma/PubUtilLib/plSurface/vs_WaveDec2Lay11.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plSurface/vs_WaveDec2Lay11_7.h => Sources/Plasma/PubUtilLib/plSurface/vs_WaveDec2Lay11_7.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plSurface/vs_WaveDec2Lay12.h => Sources/Plasma/PubUtilLib/plSurface/vs_WaveDec2Lay12.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plSurface/vs_WaveDec2Lay12_7.h => Sources/Plasma/PubUtilLib/plSurface/vs_WaveDec2Lay12_7.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plSurface/vs_WaveDecEnv.h => Sources/Plasma/PubUtilLib/plSurface/vs_WaveDecEnv.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plSurface/vs_WaveDecEnv_7.h => Sources/Plasma/PubUtilLib/plSurface/vs_WaveDecEnv_7.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plSurface/vs_WaveFixedFin6.h => Sources/Plasma/PubUtilLib/plSurface/vs_WaveFixedFin6.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plSurface/vs_WaveFixedFin7.h => Sources/Plasma/PubUtilLib/plSurface/vs_WaveFixedFin7.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plSurface/vs_WaveGraph2.h => Sources/Plasma/PubUtilLib/plSurface/vs_WaveGraph2.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plSurface/vs_WaveGridFin.h => Sources/Plasma/PubUtilLib/plSurface/vs_WaveGridFin.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plSurface/vs_WaveRip.h => Sources/Plasma/PubUtilLib/plSurface/vs_WaveRip.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plSurface/vs_WaveRip7.h => Sources/Plasma/PubUtilLib/plSurface/vs_WaveRip7.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plTransform/CMakeLists.txt => Sources/Plasma/PubUtilLib/plTransform/CMakeLists.txt rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plTransform/hsAffineParts.cpp => Sources/Plasma/PubUtilLib/plTransform/hsAffineParts.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plTransform/hsAffineParts.h => Sources/Plasma/PubUtilLib/plTransform/hsAffineParts.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plTransform/hsEuler.cpp => Sources/Plasma/PubUtilLib/plTransform/hsEuler.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plTransform/hsEuler.h => Sources/Plasma/PubUtilLib/plTransform/hsEuler.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plTransform/mat_decomp.cpp => Sources/Plasma/PubUtilLib/plTransform/mat_decomp.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plTransform/mat_decomp.h => Sources/Plasma/PubUtilLib/plTransform/mat_decomp.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plTransform/notes.txt => Sources/Plasma/PubUtilLib/plTransform/notes.txt rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plUUID/CMakeLists.txt => Sources/Plasma/PubUtilLib/plUUID/CMakeLists.txt rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plUUID/plUUID.cpp => Sources/Plasma/PubUtilLib/plUUID/plUUID.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plUUID/plUUID.h => Sources/Plasma/PubUtilLib/plUUID/plUUID.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plUUID/plUUID_Unix.cpp => Sources/Plasma/PubUtilLib/plUUID/plUUID_Unix.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plUUID/plUUID_Win32.cpp => Sources/Plasma/PubUtilLib/plUUID/plUUID_Win32.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plUnifiedTime/CMakeLists.txt => Sources/Plasma/PubUtilLib/plUnifiedTime/CMakeLists.txt rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plUnifiedTime/plClientUnifiedTime.cpp => Sources/Plasma/PubUtilLib/plUnifiedTime/plClientUnifiedTime.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plUnifiedTime/plClientUnifiedTime.h => Sources/Plasma/PubUtilLib/plUnifiedTime/plClientUnifiedTime.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plUnifiedTime/plTimeSpan.cpp => Sources/Plasma/PubUtilLib/plUnifiedTime/plTimeSpan.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plUnifiedTime/plTimeSpan.h => Sources/Plasma/PubUtilLib/plUnifiedTime/plTimeSpan.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plUnifiedTime/plUnifiedTime.cpp => Sources/Plasma/PubUtilLib/plUnifiedTime/plUnifiedTime.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plUnifiedTime/plUnifiedTime.h => Sources/Plasma/PubUtilLib/plUnifiedTime/plUnifiedTime.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plUnifiedTime/plUnifiedTimeCreatable.h => Sources/Plasma/PubUtilLib/plUnifiedTime/plUnifiedTimeCreatable.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plVault/CMakeLists.txt => Sources/Plasma/PubUtilLib/plVault/CMakeLists.txt rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plVault/Intern.h => Sources/Plasma/PubUtilLib/plVault/Intern.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plVault/Pch.h => Sources/Plasma/PubUtilLib/plVault/Pch.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plVault/plAgeInfoSource.h => Sources/Plasma/PubUtilLib/plVault/plAgeInfoSource.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plVault/plDniCoordinateInfo.cpp => Sources/Plasma/PubUtilLib/plVault/plDniCoordinateInfo.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plVault/plDniCoordinateInfo.h => Sources/Plasma/PubUtilLib/plVault/plDniCoordinateInfo.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plVault/plVault.cpp => Sources/Plasma/PubUtilLib/plVault/plVault.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plVault/plVault.h => Sources/Plasma/PubUtilLib/plVault/plVault.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plVault/plVaultClientApi.cpp => Sources/Plasma/PubUtilLib/plVault/plVaultClientApi.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plVault/plVaultClientApi.h => Sources/Plasma/PubUtilLib/plVault/plVaultClientApi.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plVault/plVaultConstants.cpp => Sources/Plasma/PubUtilLib/plVault/plVaultConstants.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plVault/plVaultConstants.h => Sources/Plasma/PubUtilLib/plVault/plVaultConstants.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plVault/plVaultCreatable.h => Sources/Plasma/PubUtilLib/plVault/plVaultCreatable.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plVault/plVaultNode.cpp => Sources/Plasma/PubUtilLib/plVault/plVaultNode.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plVault/plVaultNode.h => Sources/Plasma/PubUtilLib/plVault/plVaultNode.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plVault/plVaultNodeAccess.cpp => Sources/Plasma/PubUtilLib/plVault/plVaultNodeAccess.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plVault/plVaultNodeAccess.h => Sources/Plasma/PubUtilLib/plVault/plVaultNodeAccess.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plWinStrBlock/strblock.c => Sources/Plasma/PubUtilLib/plWinStrBlock/strblock.c rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plWinStrBlock/strblock.h => Sources/Plasma/PubUtilLib/plWinStrBlock/strblock.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plWndCtrls/basewnd.cpp => Sources/Plasma/PubUtilLib/plWndCtrls/basewnd.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plWndCtrls/basewnd.h => Sources/Plasma/PubUtilLib/plWndCtrls/basewnd.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plWndCtrls/plButton.h => Sources/Plasma/PubUtilLib/plWndCtrls/plButton.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plWndCtrls/plCheckBox.h => Sources/Plasma/PubUtilLib/plWndCtrls/plCheckBox.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plWndCtrls/plComboBox.h => Sources/Plasma/PubUtilLib/plWndCtrls/plComboBox.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plWndCtrls/plControl.h => Sources/Plasma/PubUtilLib/plWndCtrls/plControl.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plWndCtrls/plDialog.h => Sources/Plasma/PubUtilLib/plWndCtrls/plDialog.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plWndCtrls/plEdit.h => Sources/Plasma/PubUtilLib/plWndCtrls/plEdit.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plWndCtrls/plLabel.h => Sources/Plasma/PubUtilLib/plWndCtrls/plLabel.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plWndCtrls/plListBox.h => Sources/Plasma/PubUtilLib/plWndCtrls/plListBox.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plWndCtrls/plProgressBar.h => Sources/Plasma/PubUtilLib/plWndCtrls/plProgressBar.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plWndCtrls/plRadioButton.h => Sources/Plasma/PubUtilLib/plWndCtrls/plRadioButton.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plWndCtrls/plStatusBar.h => Sources/Plasma/PubUtilLib/plWndCtrls/plStatusBar.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plWndCtrls/plTrackBar.h => Sources/Plasma/PubUtilLib/plWndCtrls/plTrackBar.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plWndCtrls/plWindow.h => Sources/Plasma/PubUtilLib/plWndCtrls/plWindow.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plWndCtrls/plWndCtrls.cpp => Sources/Plasma/PubUtilLib/plWndCtrls/plWndCtrls.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plWndCtrls/plWndCtrls.h => Sources/Plasma/PubUtilLib/plWndCtrls/plWndCtrls.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plWndCtrls/webhost.cpp => Sources/Plasma/PubUtilLib/plWndCtrls/webhost.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PubUtilLib/plWndCtrls/webhost.h => Sources/Plasma/PubUtilLib/plWndCtrls/webhost.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PythonLib/Cypython/PC/placeholder.txt => Sources/Plasma/PythonLib/Cypython/PC/placeholder.txt rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PythonLib/Cypython/placeholder.txt => Sources/Plasma/PythonLib/Cypython/placeholder.txt rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PythonLib/pyNetClientComm/PythonLib/placeholder.txt => Sources/Plasma/PythonLib/pyNetClientComm/PythonLib/placeholder.txt rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PythonLib/pyNetClientComm/pyNetClientComm.cpp => Sources/Plasma/PythonLib/pyNetClientComm/pyNetClientComm.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PythonLib/pyNetClientComm/pyNetClientComm.h => Sources/Plasma/PythonLib/pyNetClientComm/pyNetClientComm.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PythonLib/pyNetClientComm/pyNetClientCommGlue.cpp => Sources/Plasma/PythonLib/pyNetClientComm/pyNetClientCommGlue.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PythonLib/pyNetClientGame/pyNetClientGame.cpp => Sources/Plasma/PythonLib/pyNetClientGame/pyNetClientGame.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PythonLib/pyNetClientGame/pyNetClientGame.h => Sources/Plasma/PythonLib/pyNetClientGame/pyNetClientGame.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PythonLib/pyPlasma/creatables.cpp => Sources/Plasma/PythonLib/pyPlasma/creatables.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PythonLib/pyPlasma/dllmain.cpp => Sources/Plasma/PythonLib/pyPlasma/dllmain.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PythonLib/pyPlasma/pyPlasmaTest.py => Sources/Plasma/PythonLib/pyPlasma/pyPlasmaTest.py rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PythonLib/pyPloticus/dllmain.cpp => Sources/Plasma/PythonLib/pyPloticus/dllmain.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PythonLib/pyPloticus/pyPloticus.cpp => Sources/Plasma/PythonLib/pyPloticus/pyPloticus.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PythonLib/pyPloticus/pyPloticus.h => Sources/Plasma/PythonLib/pyPloticus/pyPloticus.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PythonLib/pyVault/pyVNodeMgr.cpp => Sources/Plasma/PythonLib/pyVault/pyVNodeMgr.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PythonLib/pyVault/pyVNodeMgr.h => Sources/Plasma/PythonLib/pyVault/pyVNodeMgr.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Plasma/PythonLib/pyVault/pyVNodeMgrGlue.cpp => Sources/Plasma/PythonLib/pyVault/pyVNodeMgrGlue.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/CheckFolderVar/CheckFolderVar.cpp => Sources/Tools/CheckFolderVar/CheckFolderVar.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxAss/ValdezInterface.h => Sources/Tools/MaxAss/ValdezInterface.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxComponent/BipedKiller.h => Sources/Tools/MaxComponent/BipedKiller.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxComponent/ComponentDummies.h => Sources/Tools/MaxComponent/ComponentDummies.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxComponent/WavFileStructs.h => Sources/Tools/MaxComponent/WavFileStructs.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxComponent/icon1.ico => Sources/Tools/MaxComponent/icon1.ico rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxComponent/pfGUISkinComp.cpp => Sources/Tools/MaxComponent/pfGUISkinComp.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxComponent/pfGUISkinComp.h => Sources/Tools/MaxComponent/pfGUISkinComp.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxComponent/plAGComponents.cpp => Sources/Tools/MaxComponent/plAGComponents.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxComponent/plActivatorBaseComponent.cpp => Sources/Tools/MaxComponent/plActivatorBaseComponent.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxComponent/plActivatorBaseComponent.h => Sources/Tools/MaxComponent/plActivatorBaseComponent.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxComponent/plActivatorComponent.cpp => Sources/Tools/MaxComponent/plActivatorComponent.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxComponent/plActivatorComponent.h => Sources/Tools/MaxComponent/plActivatorComponent.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxComponent/plAnimCompProc.cpp => Sources/Tools/MaxComponent/plAnimCompProc.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxComponent/plAnimCompProc.h => Sources/Tools/MaxComponent/plAnimCompProc.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxComponent/plAnimComponent.cpp => Sources/Tools/MaxComponent/plAnimComponent.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxComponent/plAnimComponent.h => Sources/Tools/MaxComponent/plAnimComponent.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxComponent/plAnimEventComponent.cpp => Sources/Tools/MaxComponent/plAnimEventComponent.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxComponent/plAnimEventComponent.h => Sources/Tools/MaxComponent/plAnimEventComponent.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxComponent/plAnimObjInterface.h => Sources/Tools/MaxComponent/plAnimObjInterface.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxComponent/plAudioComponents.cpp => Sources/Tools/MaxComponent/plAudioComponents.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxComponent/plAudioComponents.h => Sources/Tools/MaxComponent/plAudioComponents.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxComponent/plAutoComponent.cpp => Sources/Tools/MaxComponent/plAutoComponent.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxComponent/plAutoUIBase.cpp => Sources/Tools/MaxComponent/plAutoUIBase.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxComponent/plAutoUIBase.h => Sources/Tools/MaxComponent/plAutoUIBase.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxComponent/plAutoUIBlock.cpp => Sources/Tools/MaxComponent/plAutoUIBlock.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxComponent/plAutoUIBlock.h => Sources/Tools/MaxComponent/plAutoUIBlock.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxComponent/plAutoUIComp.cpp => Sources/Tools/MaxComponent/plAutoUIComp.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxComponent/plAutoUIComp.h => Sources/Tools/MaxComponent/plAutoUIComp.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxComponent/plAutoUIParams.cpp => Sources/Tools/MaxComponent/plAutoUIParams.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxComponent/plAutoUIParams.h => Sources/Tools/MaxComponent/plAutoUIParams.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxComponent/plAvatarComponent.cpp => Sources/Tools/MaxComponent/plAvatarComponent.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxComponent/plAvatarComponent.h => Sources/Tools/MaxComponent/plAvatarComponent.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxComponent/plBehavioralComponents.cpp => Sources/Tools/MaxComponent/plBehavioralComponents.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxComponent/plBehavioralComponents.h => Sources/Tools/MaxComponent/plBehavioralComponents.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxComponent/plBipedKiller.cpp => Sources/Tools/MaxComponent/plBipedKiller.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxComponent/plBlowComponent.cpp => Sources/Tools/MaxComponent/plBlowComponent.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxComponent/plBlowComponent.h => Sources/Tools/MaxComponent/plBlowComponent.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxComponent/plCAnimParamBlock.cpp => Sources/Tools/MaxComponent/plCAnimParamBlock.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxComponent/plCAnimParamBlock.h => Sources/Tools/MaxComponent/plCAnimParamBlock.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxComponent/plCameraComponent.cpp => Sources/Tools/MaxComponent/plCameraComponent.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxComponent/plCameraComponent.h => Sources/Tools/MaxComponent/plCameraComponent.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxComponent/plCameraComponents.cpp => Sources/Tools/MaxComponent/plCameraComponents.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxComponent/plCameraComponents.h => Sources/Tools/MaxComponent/plCameraComponents.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxComponent/plClickDragComponent.cpp => Sources/Tools/MaxComponent/plClickDragComponent.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxComponent/plClickDragComponent.h => Sources/Tools/MaxComponent/plClickDragComponent.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxComponent/plClickableComponent.cpp => Sources/Tools/MaxComponent/plClickableComponent.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxComponent/plClickableComponent.h => Sources/Tools/MaxComponent/plClickableComponent.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxComponent/plClimbComponent.cpp => Sources/Tools/MaxComponent/plClimbComponent.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxComponent/plClimbComponent.h => Sources/Tools/MaxComponent/plClimbComponent.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxComponent/plClothingComponent.cpp => Sources/Tools/MaxComponent/plClothingComponent.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxComponent/plClothingComponent.h => Sources/Tools/MaxComponent/plClothingComponent.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxComponent/plClusterComponent.cpp => Sources/Tools/MaxComponent/plClusterComponent.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxComponent/plClusterComponent.h => Sources/Tools/MaxComponent/plClusterComponent.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxComponent/plComponent.cpp => Sources/Tools/MaxComponent/plComponent.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxComponent/plComponent.h => Sources/Tools/MaxComponent/plComponent.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxComponent/plComponent.rc => Sources/Tools/MaxComponent/plComponent.rc rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxComponent/plComponentBase.cpp => Sources/Tools/MaxComponent/plComponentBase.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxComponent/plComponentBase.h => Sources/Tools/MaxComponent/plComponentBase.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxComponent/plComponentExt.h => Sources/Tools/MaxComponent/plComponentExt.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxComponent/plComponentMgr.cpp => Sources/Tools/MaxComponent/plComponentMgr.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxComponent/plComponentMgr.h => Sources/Tools/MaxComponent/plComponentMgr.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxComponent/plComponentProcBase.h => Sources/Tools/MaxComponent/plComponentProcBase.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxComponent/plComponentReg.h => Sources/Tools/MaxComponent/plComponentReg.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxComponent/plComponentTools.cpp => Sources/Tools/MaxComponent/plComponentTools.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxComponent/plComponentTools.h => Sources/Tools/MaxComponent/plComponentTools.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxComponent/plDicer.cpp => Sources/Tools/MaxComponent/plDicer.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxComponent/plDicer.h => Sources/Tools/MaxComponent/plDicer.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxComponent/plDistribComponent.cpp => Sources/Tools/MaxComponent/plDistribComponent.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxComponent/plDistribComponent.h => Sources/Tools/MaxComponent/plDistribComponent.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxComponent/plDistribComponent_old.cpp => Sources/Tools/MaxComponent/plDistribComponent_old.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxComponent/plDistribComponent_old.h => Sources/Tools/MaxComponent/plDistribComponent_old.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxComponent/plExcludeRegionComponent.cpp => Sources/Tools/MaxComponent/plExcludeRegionComponent.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxComponent/plExcludeRegionComponent.h => Sources/Tools/MaxComponent/plExcludeRegionComponent.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxComponent/plFlexibilityComponent.h => Sources/Tools/MaxComponent/plFlexibilityComponent.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxComponent/plFootPrintComponent.cpp => Sources/Tools/MaxComponent/plFootPrintComponent.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxComponent/plFootstepComponent.cpp => Sources/Tools/MaxComponent/plFootstepComponent.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxComponent/plFootstepComponent.h => Sources/Tools/MaxComponent/plFootstepComponent.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxComponent/plGUICompClassIDs.h => Sources/Tools/MaxComponent/plGUICompClassIDs.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxComponent/plGUIComponents.cpp => Sources/Tools/MaxComponent/plGUIComponents.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxComponent/plGUIComponents.h => Sources/Tools/MaxComponent/plGUIComponents.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxComponent/plGrassComponent.cpp => Sources/Tools/MaxComponent/plGrassComponent.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxComponent/plGrassComponent.h => Sources/Tools/MaxComponent/plGrassComponent.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxComponent/plIgnoreComponent.cpp => Sources/Tools/MaxComponent/plIgnoreComponent.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxComponent/plImpactGadgetComponent.cpp => Sources/Tools/MaxComponent/plImpactGadgetComponent.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxComponent/plImpactGadgetComponent.h => Sources/Tools/MaxComponent/plImpactGadgetComponent.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxComponent/plInventoryObjComponent.cpp => Sources/Tools/MaxComponent/plInventoryObjComponent.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxComponent/plInventoryObjComponent.h => Sources/Tools/MaxComponent/plInventoryObjComponent.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxComponent/plLODFadeComponent.cpp => Sources/Tools/MaxComponent/plLODFadeComponent.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxComponent/plLODFadeComponent.h => Sources/Tools/MaxComponent/plLODFadeComponent.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxComponent/plLightGrpComponent.cpp => Sources/Tools/MaxComponent/plLightGrpComponent.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxComponent/plLightGrpComponent.h => Sources/Tools/MaxComponent/plLightGrpComponent.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxComponent/plLightMapComponent.cpp => Sources/Tools/MaxComponent/plLightMapComponent.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxComponent/plLightMapComponent.h => Sources/Tools/MaxComponent/plLightMapComponent.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxComponent/plLineFollowComp.cpp => Sources/Tools/MaxComponent/plLineFollowComp.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxComponent/plMaxAnimUtils.cpp => Sources/Tools/MaxComponent/plMaxAnimUtils.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxComponent/plMaxAnimUtils.h => Sources/Tools/MaxComponent/plMaxAnimUtils.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxComponent/plMaxWaveUtils.cpp => Sources/Tools/MaxComponent/plMaxWaveUtils.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxComponent/plMaxWaveUtils.h => Sources/Tools/MaxComponent/plMaxWaveUtils.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxComponent/plMiscComponents.cpp => Sources/Tools/MaxComponent/plMiscComponents.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxComponent/plMiscComponents.h => Sources/Tools/MaxComponent/plMiscComponents.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxComponent/plMorphSeqComp.cpp => Sources/Tools/MaxComponent/plMorphSeqComp.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxComponent/plMultistageBehComponent.cpp => Sources/Tools/MaxComponent/plMultistageBehComponent.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxComponent/plMultistageBehComponent.h => Sources/Tools/MaxComponent/plMultistageBehComponent.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxComponent/plMultistageStage.cpp => Sources/Tools/MaxComponent/plMultistageStage.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxComponent/plMultistageStage.h => Sources/Tools/MaxComponent/plMultistageStage.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxComponent/plNPCSpawnComp.cpp => Sources/Tools/MaxComponent/plNPCSpawnComp.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxComponent/plNPCSpawnComp.h => Sources/Tools/MaxComponent/plNPCSpawnComp.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxComponent/plNavigableComponents.cpp => Sources/Tools/MaxComponent/plNavigableComponents.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxComponent/plNavigableComponents.h => Sources/Tools/MaxComponent/plNavigableComponents.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxComponent/plNoteTrackDlgComp.cpp => Sources/Tools/MaxComponent/plNoteTrackDlgComp.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxComponent/plNoteTrackDlgComp.h => Sources/Tools/MaxComponent/plNoteTrackDlgComp.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxComponent/plNotetrackAnim.cpp => Sources/Tools/MaxComponent/plNotetrackAnim.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxComponent/plNotetrackAnim.h => Sources/Tools/MaxComponent/plNotetrackAnim.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxComponent/plNotetrackDlg.cpp => Sources/Tools/MaxComponent/plNotetrackDlg.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxComponent/plNotetrackDlg.h => Sources/Tools/MaxComponent/plNotetrackDlg.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxComponent/plObjectFlockerComponent.cpp => Sources/Tools/MaxComponent/plObjectFlockerComponent.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxComponent/plObjectFlockerComponent.h => Sources/Tools/MaxComponent/plObjectFlockerComponent.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxComponent/plOneShotComponent.cpp => Sources/Tools/MaxComponent/plOneShotComponent.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxComponent/plOneShotComponent.h => Sources/Tools/MaxComponent/plOneShotComponent.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxComponent/plParticleComponents.cpp => Sources/Tools/MaxComponent/plParticleComponents.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxComponent/plParticleComponents.h => Sources/Tools/MaxComponent/plParticleComponents.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxComponent/plPhysConstraintComponents.cpp => Sources/Tools/MaxComponent/plPhysConstraintComponents.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxComponent/plPhysicalComponents.cpp => Sources/Tools/MaxComponent/plPhysicalComponents.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxComponent/plPhysicalComponents.h => Sources/Tools/MaxComponent/plPhysicalComponents.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxComponent/plPhysicsGroups.h => Sources/Tools/MaxComponent/plPhysicsGroups.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxComponent/plPickLocalizationDlg.cpp => Sources/Tools/MaxComponent/plPickLocalizationDlg.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxComponent/plPickLocalizationDlg.h => Sources/Tools/MaxComponent/plPickLocalizationDlg.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxComponent/plPickMaterialMap.cpp => Sources/Tools/MaxComponent/plPickMaterialMap.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxComponent/plPickMaterialMap.h => Sources/Tools/MaxComponent/plPickMaterialMap.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxComponent/plPickNode.cpp => Sources/Tools/MaxComponent/plPickNode.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxComponent/plPickNode.h => Sources/Tools/MaxComponent/plPickNode.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxComponent/plPickNodeBase.cpp => Sources/Tools/MaxComponent/plPickNodeBase.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxComponent/plPickNodeBase.h => Sources/Tools/MaxComponent/plPickNodeBase.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxComponent/plPickNodeComp.cpp => Sources/Tools/MaxComponent/plPickNodeComp.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxComponent/plPythonFileComponent.cpp => Sources/Tools/MaxComponent/plPythonFileComponent.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxComponent/plPythonFileComponent.h => Sources/Tools/MaxComponent/plPythonFileComponent.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxComponent/plRepComponent.cpp => Sources/Tools/MaxComponent/plRepComponent.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxComponent/plResponderAnim.cpp => Sources/Tools/MaxComponent/plResponderAnim.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxComponent/plResponderAnim.h => Sources/Tools/MaxComponent/plResponderAnim.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxComponent/plResponderCmd.h => Sources/Tools/MaxComponent/plResponderCmd.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxComponent/plResponderComponent.cpp => Sources/Tools/MaxComponent/plResponderComponent.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxComponent/plResponderComponent.h => Sources/Tools/MaxComponent/plResponderComponent.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxComponent/plResponderComponentPriv.h => Sources/Tools/MaxComponent/plResponderComponentPriv.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxComponent/plResponderGetComp.cpp => Sources/Tools/MaxComponent/plResponderGetComp.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxComponent/plResponderGetComp.h => Sources/Tools/MaxComponent/plResponderGetComp.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxComponent/plResponderLink.cpp => Sources/Tools/MaxComponent/plResponderLink.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxComponent/plResponderLink.h => Sources/Tools/MaxComponent/plResponderLink.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxComponent/plResponderMtl.cpp => Sources/Tools/MaxComponent/plResponderMtl.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxComponent/plResponderMtl.h => Sources/Tools/MaxComponent/plResponderMtl.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxComponent/plResponderWait.cpp => Sources/Tools/MaxComponent/plResponderWait.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxComponent/plResponderWait.h => Sources/Tools/MaxComponent/plResponderWait.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxComponent/plSeekPoint.cpp => Sources/Tools/MaxComponent/plSeekPoint.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxComponent/plShadowComponents.cpp => Sources/Tools/MaxComponent/plShadowComponents.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxComponent/plShadowComponents.h => Sources/Tools/MaxComponent/plShadowComponents.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxComponent/plSmoothComponent.cpp => Sources/Tools/MaxComponent/plSmoothComponent.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxComponent/plSoftVolumeComponent.cpp => Sources/Tools/MaxComponent/plSoftVolumeComponent.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxComponent/plSoftVolumeComponent.h => Sources/Tools/MaxComponent/plSoftVolumeComponent.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxComponent/plTemplateComponent.cpp => Sources/Tools/MaxComponent/plTemplateComponent.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxComponent/plTypesComponents.cpp => Sources/Tools/MaxComponent/plTypesComponents.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxComponent/plVolumeGadgetComponent.cpp => Sources/Tools/MaxComponent/plVolumeGadgetComponent.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxComponent/plVolumeGadgetComponent.h => Sources/Tools/MaxComponent/plVolumeGadgetComponent.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxComponent/plWaterComponent.cpp => Sources/Tools/MaxComponent/plWaterComponent.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxComponent/plWaterComponent.h => Sources/Tools/MaxComponent/plWaterComponent.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxComponent/plXImposter.cpp => Sources/Tools/MaxComponent/plXImposter.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxComponent/plXImposter.h => Sources/Tools/MaxComponent/plXImposter.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxComponent/resource.h => Sources/Tools/MaxComponent/resource.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxComponent/zoomin1.ico => Sources/Tools/MaxComponent/zoomin1.ico rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxConvert/StringTokenizer.cpp => Sources/Tools/MaxConvert/StringTokenizer.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxConvert/StringTokenizer.h => Sources/Tools/MaxConvert/StringTokenizer.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxConvert/UserPropMgr.cpp => Sources/Tools/MaxConvert/UserPropMgr.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxConvert/UserPropMgr.h => Sources/Tools/MaxConvert/UserPropMgr.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxConvert/hsControlConverter.cpp => Sources/Tools/MaxConvert/hsControlConverter.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxConvert/hsControlConverter.h => Sources/Tools/MaxConvert/hsControlConverter.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxConvert/hsConverterUtils.cpp => Sources/Tools/MaxConvert/hsConverterUtils.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxConvert/hsConverterUtils.h => Sources/Tools/MaxConvert/hsConverterUtils.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxConvert/hsMaterialConverter.cpp => Sources/Tools/MaxConvert/hsMaterialConverter.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxConvert/hsMaterialConverter.h => Sources/Tools/MaxConvert/hsMaterialConverter.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxConvert/hsMaxLayerBase.h => Sources/Tools/MaxConvert/hsMaxLayerBase.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxConvert/hsVertexShader.cpp => Sources/Tools/MaxConvert/hsVertexShader.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxConvert/hsVertexShader.h => Sources/Tools/MaxConvert/hsVertexShader.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxConvert/plBitmapCreator.cpp => Sources/Tools/MaxConvert/plBitmapCreator.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxConvert/plBitmapCreator.h => Sources/Tools/MaxConvert/plBitmapCreator.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxConvert/plClusterUtil.cpp => Sources/Tools/MaxConvert/plClusterUtil.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxConvert/plClusterUtil.h => Sources/Tools/MaxConvert/plClusterUtil.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxConvert/plConvert.cpp => Sources/Tools/MaxConvert/plConvert.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxConvert/plConvert.h => Sources/Tools/MaxConvert/plConvert.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxConvert/plDistTree.cpp => Sources/Tools/MaxConvert/plDistTree.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxConvert/plDistTree.h => Sources/Tools/MaxConvert/plDistTree.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxConvert/plDistributor.cpp => Sources/Tools/MaxConvert/plDistributor.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxConvert/plDistributor.h => Sources/Tools/MaxConvert/plDistributor.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxConvert/plLayerConverter.cpp => Sources/Tools/MaxConvert/plLayerConverter.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxConvert/plLayerConverter.h => Sources/Tools/MaxConvert/plLayerConverter.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxConvert/plLightMapGen.cpp => Sources/Tools/MaxConvert/plLightMapGen.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxConvert/plLightMapGen.h => Sources/Tools/MaxConvert/plLightMapGen.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxConvert/plMaxLightContext.h => Sources/Tools/MaxConvert/plMaxLightContext.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxConvert/plMeshConverter.cpp => Sources/Tools/MaxConvert/plMeshConverter.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxConvert/plMeshConverter.h => Sources/Tools/MaxConvert/plMeshConverter.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxConvert/plRenderGlobalContext.cpp => Sources/Tools/MaxConvert/plRenderGlobalContext.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxConvert/plRenderGlobalContext.h => Sources/Tools/MaxConvert/plRenderGlobalContext.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxConvert/plRenderInstance.cpp => Sources/Tools/MaxConvert/plRenderInstance.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxConvert/plRenderInstance.h => Sources/Tools/MaxConvert/plRenderInstance.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxExport/SimpleExport.cpp => Sources/Tools/MaxExport/SimpleExport.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxExport/SimpleExport.h => Sources/Tools/MaxExport/SimpleExport.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxExport/plErrorMsg.cpp => Sources/Tools/MaxExport/plErrorMsg.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxExport/plErrorMsg.h => Sources/Tools/MaxExport/plErrorMsg.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxExport/plExportDlg.cpp => Sources/Tools/MaxExport/plExportDlg.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxExport/plExportDlg.h => Sources/Tools/MaxExport/plExportDlg.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxExport/plExportErrorMsg.cpp => Sources/Tools/MaxExport/plExportErrorMsg.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxExport/plExportErrorMsg.h => Sources/Tools/MaxExport/plExportErrorMsg.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxExport/plExportLogErrorMsg.cpp => Sources/Tools/MaxExport/plExportLogErrorMsg.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxExport/plExportLogErrorMsg.h => Sources/Tools/MaxExport/plExportLogErrorMsg.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxExport/plExportProgressBar.cpp => Sources/Tools/MaxExport/plExportProgressBar.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxExport/plExportProgressBar.h => Sources/Tools/MaxExport/plExportProgressBar.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxExport/plProgressBar.h => Sources/Tools/MaxExport/plProgressBar.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxMain/GlobalUtility.cpp => Sources/Tools/MaxMain/GlobalUtility.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxMain/GlobalUtility.h => Sources/Tools/MaxMain/GlobalUtility.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxMain/MaxAllocDll.cpp => Sources/Tools/MaxMain/MaxAllocDll.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxMain/MaxAllocDll.h => Sources/Tools/MaxMain/MaxAllocDll.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxMain/SimpleExport.rc => Sources/Tools/MaxMain/SimpleExport.rc rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxMain/indexes.cpp => Sources/Tools/MaxMain/indexes.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxMain/main.cpp => Sources/Tools/MaxMain/main.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxMain/main.def => Sources/Tools/MaxMain/main.def rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxMain/plActionTableMgr.cpp => Sources/Tools/MaxMain/plActionTableMgr.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxMain/plActionTableMgr.h => Sources/Tools/MaxMain/plActionTableMgr.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxMain/plAgeDescInterface.cpp => Sources/Tools/MaxMain/plAgeDescInterface.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxMain/plAgeDescInterface.h => Sources/Tools/MaxMain/plAgeDescInterface.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxMain/plCommonObjLib.cpp => Sources/Tools/MaxMain/plCommonObjLib.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxMain/plCommonObjLib.h => Sources/Tools/MaxMain/plCommonObjLib.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxMain/plComponentDlg.cpp => Sources/Tools/MaxMain/plComponentDlg.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxMain/plComponentDlg.h => Sources/Tools/MaxMain/plComponentDlg.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxMain/plComponentPanel.cpp => Sources/Tools/MaxMain/plComponentPanel.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxMain/plComponentPanel.h => Sources/Tools/MaxMain/plComponentPanel.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxMain/plGetLocationDlg.cpp => Sources/Tools/MaxMain/plGetLocationDlg.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxMain/plGetLocationDlg.h => Sources/Tools/MaxMain/plGetLocationDlg.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxMain/plMaxAccelerators.cpp => Sources/Tools/MaxMain/plMaxAccelerators.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxMain/plMaxAccelerators.h => Sources/Tools/MaxMain/plMaxAccelerators.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxMain/plMaxCFGFile.cpp => Sources/Tools/MaxMain/plMaxCFGFile.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxMain/plMaxCFGFile.h => Sources/Tools/MaxMain/plMaxCFGFile.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxMain/plMaxMenu.cpp => Sources/Tools/MaxMain/plMaxMenu.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxMain/plMaxMenu.h => Sources/Tools/MaxMain/plMaxMenu.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxMain/plMaxMeshExtractor.cpp => Sources/Tools/MaxMain/plMaxMeshExtractor.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxMain/plMaxMeshExtractor.h => Sources/Tools/MaxMain/plMaxMeshExtractor.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxMain/plMaxNode.cpp => Sources/Tools/MaxMain/plMaxNode.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxMain/plMaxNode.h => Sources/Tools/MaxMain/plMaxNode.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxMain/plMaxNodeBase.cpp => Sources/Tools/MaxMain/plMaxNodeBase.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxMain/plMaxNodeBase.h => Sources/Tools/MaxMain/plMaxNodeBase.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxMain/plMaxNodeData.h => Sources/Tools/MaxMain/plMaxNodeData.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxMain/plMaxUtils.cpp => Sources/Tools/MaxMain/plMaxUtils.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxMain/plMaxUtils.h => Sources/Tools/MaxMain/plMaxUtils.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxMain/plMtlCollector.cpp => Sources/Tools/MaxMain/plMtlCollector.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxMain/plMtlCollector.h => Sources/Tools/MaxMain/plMtlCollector.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxMain/plNodeLock.cpp => Sources/Tools/MaxMain/plNodeLock.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxMain/plNodeLock.h => Sources/Tools/MaxMain/plNodeLock.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxMain/plPhysXCooking.cpp => Sources/Tools/MaxMain/plPhysXCooking.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxMain/plPhysXCooking.h => Sources/Tools/MaxMain/plPhysXCooking.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxMain/plPhysicalProps.cpp => Sources/Tools/MaxMain/plPhysicalProps.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxMain/plPhysicalProps.h => Sources/Tools/MaxMain/plPhysicalProps.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxMain/plPlasmaRefMsgs.h => Sources/Tools/MaxMain/plPlasmaRefMsgs.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxMain/plPluginResManager.cpp => Sources/Tools/MaxMain/plPluginResManager.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxMain/plPluginResManager.h => Sources/Tools/MaxMain/plPluginResManager.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxMain/plPythonMgr.cpp => Sources/Tools/MaxMain/plPythonMgr.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxMain/plPythonMgr.h => Sources/Tools/MaxMain/plPythonMgr.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxMain/plResCollector.cpp => Sources/Tools/MaxMain/plResCollector.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxMain/plResCollector.h => Sources/Tools/MaxMain/plResCollector.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxMain/plResetXform.cpp => Sources/Tools/MaxMain/plResetXform.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxMain/plResetXform.h => Sources/Tools/MaxMain/plResetXform.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxMain/plSaveSelected.cpp => Sources/Tools/MaxMain/plSaveSelected.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxMain/plSaveSelected.h => Sources/Tools/MaxMain/plSaveSelected.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxMain/plTextureExportLog.cpp => Sources/Tools/MaxMain/plTextureExportLog.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxMain/plTextureExportLog.h => Sources/Tools/MaxMain/plTextureExportLog.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxMain/plTextureSearch.cpp => Sources/Tools/MaxMain/plTextureSearch.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxMain/plTextureSearch.h => Sources/Tools/MaxMain/plTextureSearch.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxMain/resource.h => Sources/Tools/MaxMain/resource.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxMtlUpdate/DllEntry.cpp => Sources/Tools/MaxMtlUpdate/DllEntry.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxMtlUpdate/OldMat/hsMaxLayer.h => Sources/Tools/MaxMtlUpdate/OldMat/hsMaxLayer.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxMtlUpdate/OldMat/hsMaxLayerBase.h => Sources/Tools/MaxMtlUpdate/OldMat/hsMaxLayerBase.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxMtlUpdate/plMaterialUpdate.cpp => Sources/Tools/MaxMtlUpdate/plMaterialUpdate.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxMtlUpdate/plMaterialUpdate.def => Sources/Tools/MaxMtlUpdate/plMaterialUpdate.def rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxMtlUpdate/plMaterialUpdate.h => Sources/Tools/MaxMtlUpdate/plMaterialUpdate.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxMtlUpdate/plMaterialUpdate.rc => Sources/Tools/MaxMtlUpdate/plMaterialUpdate.rc rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxMtlUpdate/resource.h => Sources/Tools/MaxMtlUpdate/resource.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxPlasmaLights/DLLEntry.cpp => Sources/Tools/MaxPlasmaLights/DLLEntry.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxPlasmaLights/plRTLightBaseAnimDlgProc.h => Sources/Tools/MaxPlasmaLights/plRTLightBaseAnimDlgProc.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxPlasmaLights/plRTLightBaseAnimPBDec.h => Sources/Tools/MaxPlasmaLights/plRTLightBaseAnimPBDec.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxPlasmaLights/plRTLights.rc => Sources/Tools/MaxPlasmaLights/plRTLights.rc rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxPlasmaLights/plRTObjLightDesc.h => Sources/Tools/MaxPlasmaLights/plRTObjLightDesc.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxPlasmaLights/plRTPlasmaLights.def => Sources/Tools/MaxPlasmaLights/plRTPlasmaLights.def rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxPlasmaLights/plRTProjDirLight.cpp => Sources/Tools/MaxPlasmaLights/plRTProjDirLight.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxPlasmaLights/plRTProjDirLight.h => Sources/Tools/MaxPlasmaLights/plRTProjDirLight.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxPlasmaLights/plRTProjDirLightClassDesc.h => Sources/Tools/MaxPlasmaLights/plRTProjDirLightClassDesc.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxPlasmaLights/plRTProjDirLightPBDec.h => Sources/Tools/MaxPlasmaLights/plRTProjDirLightPBDec.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxPlasmaLights/plRealTimeLightBase.cpp => Sources/Tools/MaxPlasmaLights/plRealTimeLightBase.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxPlasmaLights/plRealTimeLightBase.h => Sources/Tools/MaxPlasmaLights/plRealTimeLightBase.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxPlasmaLights/plRealTimeLights.cpp => Sources/Tools/MaxPlasmaLights/plRealTimeLights.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxPlasmaLights/plRealTimeLights.h => Sources/Tools/MaxPlasmaLights/plRealTimeLights.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxPlasmaLights/plRealTimeLightsPBDec.h => Sources/Tools/MaxPlasmaLights/plRealTimeLightsPBDec.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxPlasmaLights/prim.h => Sources/Tools/MaxPlasmaLights/prim.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxPlasmaLights/resource.h => Sources/Tools/MaxPlasmaLights/resource.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxPlasmaLights/target.h => Sources/Tools/MaxPlasmaLights/target.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxPlasmaMtls/Layers/plAngleAttenLayer.cpp => Sources/Tools/MaxPlasmaMtls/Layers/plAngleAttenLayer.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxPlasmaMtls/Layers/plAngleAttenLayer.h => Sources/Tools/MaxPlasmaMtls/Layers/plAngleAttenLayer.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxPlasmaMtls/Layers/plDynamicEnvLayer.cpp => Sources/Tools/MaxPlasmaMtls/Layers/plDynamicEnvLayer.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxPlasmaMtls/Layers/plDynamicEnvLayer.h => Sources/Tools/MaxPlasmaMtls/Layers/plDynamicEnvLayer.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxPlasmaMtls/Layers/plDynamicEnvLayerBitmapPB.cpp => Sources/Tools/MaxPlasmaMtls/Layers/plDynamicEnvLayerBitmapPB.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxPlasmaMtls/Layers/plDynamicTextLayer.cpp => Sources/Tools/MaxPlasmaMtls/Layers/plDynamicTextLayer.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxPlasmaMtls/Layers/plDynamicTextLayer.h => Sources/Tools/MaxPlasmaMtls/Layers/plDynamicTextLayer.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxPlasmaMtls/Layers/plDynamicTextLayerBitmapPB.cpp => Sources/Tools/MaxPlasmaMtls/Layers/plDynamicTextLayerBitmapPB.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxPlasmaMtls/Layers/plLayerTex.cpp => Sources/Tools/MaxPlasmaMtls/Layers/plLayerTex.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxPlasmaMtls/Layers/plLayerTex.h => Sources/Tools/MaxPlasmaMtls/Layers/plLayerTex.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxPlasmaMtls/Layers/plLayerTexBasicPB.cpp => Sources/Tools/MaxPlasmaMtls/Layers/plLayerTexBasicPB.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxPlasmaMtls/Layers/plLayerTexBasicPB.h => Sources/Tools/MaxPlasmaMtls/Layers/plLayerTexBasicPB.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxPlasmaMtls/Layers/plLayerTexBitmapPB.cpp => Sources/Tools/MaxPlasmaMtls/Layers/plLayerTexBitmapPB.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxPlasmaMtls/Layers/plLayerTexBitmapPB.h => Sources/Tools/MaxPlasmaMtls/Layers/plLayerTexBitmapPB.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxPlasmaMtls/Layers/plMAXCameraLayer.cpp => Sources/Tools/MaxPlasmaMtls/Layers/plMAXCameraLayer.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxPlasmaMtls/Layers/plMAXCameraLayer.h => Sources/Tools/MaxPlasmaMtls/Layers/plMAXCameraLayer.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxPlasmaMtls/Layers/plPlasmaMAXLayer.cpp => Sources/Tools/MaxPlasmaMtls/Layers/plPlasmaMAXLayer.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxPlasmaMtls/Layers/plPlasmaMAXLayer.h => Sources/Tools/MaxPlasmaMtls/Layers/plPlasmaMAXLayer.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxPlasmaMtls/Layers/plStaticEnvLayer.cpp => Sources/Tools/MaxPlasmaMtls/Layers/plStaticEnvLayer.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxPlasmaMtls/Layers/plStaticEnvLayer.h => Sources/Tools/MaxPlasmaMtls/Layers/plStaticEnvLayer.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxPlasmaMtls/Layers/plStaticEnvLayerBitmapPB.cpp => Sources/Tools/MaxPlasmaMtls/Layers/plStaticEnvLayerBitmapPB.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxPlasmaMtls/Layers/plStaticEnvLayerBitmapPB.h => Sources/Tools/MaxPlasmaMtls/Layers/plStaticEnvLayerBitmapPB.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxPlasmaMtls/Materials/plAnimStealthConvert.cpp => Sources/Tools/MaxPlasmaMtls/Materials/plAnimStealthConvert.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxPlasmaMtls/Materials/plAnimStealthNode.cpp => Sources/Tools/MaxPlasmaMtls/Materials/plAnimStealthNode.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxPlasmaMtls/Materials/plAnimStealthNode.h => Sources/Tools/MaxPlasmaMtls/Materials/plAnimStealthNode.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxPlasmaMtls/Materials/plBumpMtl.cpp => Sources/Tools/MaxPlasmaMtls/Materials/plBumpMtl.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxPlasmaMtls/Materials/plBumpMtl.h => Sources/Tools/MaxPlasmaMtls/Materials/plBumpMtl.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxPlasmaMtls/Materials/plBumpMtlAnimPB.h => Sources/Tools/MaxPlasmaMtls/Materials/plBumpMtlAnimPB.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxPlasmaMtls/Materials/plBumpMtlAnimPBDec.h => Sources/Tools/MaxPlasmaMtls/Materials/plBumpMtlAnimPBDec.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxPlasmaMtls/Materials/plBumpMtlBasicPB.h => Sources/Tools/MaxPlasmaMtls/Materials/plBumpMtlBasicPB.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxPlasmaMtls/Materials/plBumpMtlBasicPBDec.h => Sources/Tools/MaxPlasmaMtls/Materials/plBumpMtlBasicPBDec.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxPlasmaMtls/Materials/plClothingMtl.cpp => Sources/Tools/MaxPlasmaMtls/Materials/plClothingMtl.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxPlasmaMtls/Materials/plClothingMtl.h => Sources/Tools/MaxPlasmaMtls/Materials/plClothingMtl.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxPlasmaMtls/Materials/plClothingMtlPBDec.h => Sources/Tools/MaxPlasmaMtls/Materials/plClothingMtlPBDec.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxPlasmaMtls/Materials/plCompositeMtl.cpp => Sources/Tools/MaxPlasmaMtls/Materials/plCompositeMtl.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxPlasmaMtls/Materials/plCompositeMtl.h => Sources/Tools/MaxPlasmaMtls/Materials/plCompositeMtl.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxPlasmaMtls/Materials/plCompositeMtlDlg.cpp => Sources/Tools/MaxPlasmaMtls/Materials/plCompositeMtlDlg.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxPlasmaMtls/Materials/plCompositeMtlDlg.h => Sources/Tools/MaxPlasmaMtls/Materials/plCompositeMtlDlg.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxPlasmaMtls/Materials/plCompositeMtlPB.h => Sources/Tools/MaxPlasmaMtls/Materials/plCompositeMtlPB.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxPlasmaMtls/Materials/plCompositeMtlPBDec.h => Sources/Tools/MaxPlasmaMtls/Materials/plCompositeMtlPBDec.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxPlasmaMtls/Materials/plDecalMtl.cpp => Sources/Tools/MaxPlasmaMtls/Materials/plDecalMtl.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxPlasmaMtls/Materials/plDecalMtl.h => Sources/Tools/MaxPlasmaMtls/Materials/plDecalMtl.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxPlasmaMtls/Materials/plDecalMtlAdvPB.h => Sources/Tools/MaxPlasmaMtls/Materials/plDecalMtlAdvPB.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxPlasmaMtls/Materials/plDecalMtlAdvPBDec.h => Sources/Tools/MaxPlasmaMtls/Materials/plDecalMtlAdvPBDec.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxPlasmaMtls/Materials/plDecalMtlAnimPB.h => Sources/Tools/MaxPlasmaMtls/Materials/plDecalMtlAnimPB.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxPlasmaMtls/Materials/plDecalMtlAnimPBDec.h => Sources/Tools/MaxPlasmaMtls/Materials/plDecalMtlAnimPBDec.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxPlasmaMtls/Materials/plDecalMtlBasicPB.h => Sources/Tools/MaxPlasmaMtls/Materials/plDecalMtlBasicPB.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxPlasmaMtls/Materials/plDecalMtlBasicPBDec.h => Sources/Tools/MaxPlasmaMtls/Materials/plDecalMtlBasicPBDec.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxPlasmaMtls/Materials/plDecalMtlLayersPB.h => Sources/Tools/MaxPlasmaMtls/Materials/plDecalMtlLayersPB.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxPlasmaMtls/Materials/plDecalMtlLayersPBDec.h => Sources/Tools/MaxPlasmaMtls/Materials/plDecalMtlLayersPBDec.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxPlasmaMtls/Materials/plMultipassMtl.cpp => Sources/Tools/MaxPlasmaMtls/Materials/plMultipassMtl.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxPlasmaMtls/Materials/plMultipassMtl.h => Sources/Tools/MaxPlasmaMtls/Materials/plMultipassMtl.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxPlasmaMtls/Materials/plMultipassMtlDlg.cpp => Sources/Tools/MaxPlasmaMtls/Materials/plMultipassMtlDlg.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxPlasmaMtls/Materials/plMultipassMtlDlg.h => Sources/Tools/MaxPlasmaMtls/Materials/plMultipassMtlDlg.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxPlasmaMtls/Materials/plMultipassMtlPB.cpp => Sources/Tools/MaxPlasmaMtls/Materials/plMultipassMtlPB.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxPlasmaMtls/Materials/plMultipassMtlPB.h => Sources/Tools/MaxPlasmaMtls/Materials/plMultipassMtlPB.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxPlasmaMtls/Materials/plNoteTrackWatcher.cpp => Sources/Tools/MaxPlasmaMtls/Materials/plNoteTrackWatcher.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxPlasmaMtls/Materials/plNoteTrackWatcher.h => Sources/Tools/MaxPlasmaMtls/Materials/plNoteTrackWatcher.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxPlasmaMtls/Materials/plParticleMtl.cpp => Sources/Tools/MaxPlasmaMtls/Materials/plParticleMtl.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxPlasmaMtls/Materials/plParticleMtl.h => Sources/Tools/MaxPlasmaMtls/Materials/plParticleMtl.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxPlasmaMtls/Materials/plParticleMtlPBDec.h => Sources/Tools/MaxPlasmaMtls/Materials/plParticleMtlPBDec.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxPlasmaMtls/Materials/plPassAnimDlgProc.cpp => Sources/Tools/MaxPlasmaMtls/Materials/plPassAnimDlgProc.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxPlasmaMtls/Materials/plPassAnimDlgProc.h => Sources/Tools/MaxPlasmaMtls/Materials/plPassAnimDlgProc.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxPlasmaMtls/Materials/plPassBaseParamIDs.h => Sources/Tools/MaxPlasmaMtls/Materials/plPassBaseParamIDs.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxPlasmaMtls/Materials/plPassMtl.cpp => Sources/Tools/MaxPlasmaMtls/Materials/plPassMtl.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxPlasmaMtls/Materials/plPassMtl.h => Sources/Tools/MaxPlasmaMtls/Materials/plPassMtl.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxPlasmaMtls/Materials/plPassMtlAdvPB.h => Sources/Tools/MaxPlasmaMtls/Materials/plPassMtlAdvPB.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxPlasmaMtls/Materials/plPassMtlAdvPBDec.h => Sources/Tools/MaxPlasmaMtls/Materials/plPassMtlAdvPBDec.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxPlasmaMtls/Materials/plPassMtlAnimPB.h => Sources/Tools/MaxPlasmaMtls/Materials/plPassMtlAnimPB.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxPlasmaMtls/Materials/plPassMtlAnimPBDec.h => Sources/Tools/MaxPlasmaMtls/Materials/plPassMtlAnimPBDec.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxPlasmaMtls/Materials/plPassMtlBase.cpp => Sources/Tools/MaxPlasmaMtls/Materials/plPassMtlBase.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxPlasmaMtls/Materials/plPassMtlBase.h => Sources/Tools/MaxPlasmaMtls/Materials/plPassMtlBase.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxPlasmaMtls/Materials/plPassMtlBasicPB.h => Sources/Tools/MaxPlasmaMtls/Materials/plPassMtlBasicPB.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxPlasmaMtls/Materials/plPassMtlBasicPBDec.h => Sources/Tools/MaxPlasmaMtls/Materials/plPassMtlBasicPBDec.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxPlasmaMtls/Materials/plPassMtlLayersPB.h => Sources/Tools/MaxPlasmaMtls/Materials/plPassMtlLayersPB.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxPlasmaMtls/Materials/plPassMtlLayersPBDec.h => Sources/Tools/MaxPlasmaMtls/Materials/plPassMtlLayersPBDec.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxPlasmaMtls/MaxPlasmaMtls.rc => Sources/Tools/MaxPlasmaMtls/MaxPlasmaMtls.rc rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxPlasmaMtls/Shaders.cpp => Sources/Tools/MaxPlasmaMtls/Shaders.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxPlasmaMtls/Shaders.h => Sources/Tools/MaxPlasmaMtls/Shaders.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxPlasmaMtls/plBMSampler.cpp => Sources/Tools/MaxPlasmaMtls/plBMSampler.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxPlasmaMtls/plBMSampler.h => Sources/Tools/MaxPlasmaMtls/plBMSampler.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxPlasmaMtls/plDetailCurveCtrl.cpp => Sources/Tools/MaxPlasmaMtls/plDetailCurveCtrl.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxPlasmaMtls/plDetailCurveCtrl.h => Sources/Tools/MaxPlasmaMtls/plDetailCurveCtrl.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxPlasmaMtls/plDrawCurve.cpp => Sources/Tools/MaxPlasmaMtls/plDrawCurve.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxPlasmaMtls/plMaterialRefMsg.h => Sources/Tools/MaxPlasmaMtls/plMaterialRefMsg.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxPlasmaMtls/plMtlImport.cpp => Sources/Tools/MaxPlasmaMtls/plMtlImport.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxPlasmaMtls/plMtlImport.h => Sources/Tools/MaxPlasmaMtls/plMtlImport.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxPlasmaMtls/res/detailBgnd8bit.bmp => Sources/Tools/MaxPlasmaMtls/res/detailBgnd8bit.bmp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxPlasmaMtls/res/dmtlbut.bmp => Sources/Tools/MaxPlasmaMtls/res/dmtlbut.bmp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxPlasmaMtls/res/dmtlmsk.bmp => Sources/Tools/MaxPlasmaMtls/res/dmtlmsk.bmp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxPlasmaMtls/resource.h => Sources/Tools/MaxPlasmaMtls/resource.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxSceneViewer/SceneSync.cpp => Sources/Tools/MaxSceneViewer/SceneSync.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxSceneViewer/SceneSync.h => Sources/Tools/MaxSceneViewer/SceneSync.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxSceneViewer/SceneViewer.cpp => Sources/Tools/MaxSceneViewer/SceneViewer.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxSceneViewer/SceneViewer.h => Sources/Tools/MaxSceneViewer/SceneViewer.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxSceneViewer/SceneWatcher.cpp => Sources/Tools/MaxSceneViewer/SceneWatcher.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxSceneViewer/SceneWatcher.h => Sources/Tools/MaxSceneViewer/SceneWatcher.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxSceneViewer/plKeyRefSort.cpp => Sources/Tools/MaxSceneViewer/plKeyRefSort.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxSceneViewer/plKeyRefSort.h => Sources/Tools/MaxSceneViewer/plKeyRefSort.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxSceneViewer/plMaxFileData.cpp => Sources/Tools/MaxSceneViewer/plMaxFileData.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxSceneViewer/plMaxFileData.h => Sources/Tools/MaxSceneViewer/plMaxFileData.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxSceneViewer/plPluginApp.cpp => Sources/Tools/MaxSceneViewer/plPluginApp.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxSceneViewer/plPluginApp.h => Sources/Tools/MaxSceneViewer/plPluginApp.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxSceneViewer/plPluginClient.cpp => Sources/Tools/MaxSceneViewer/plPluginClient.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/MaxSceneViewer/plPluginClient.h => Sources/Tools/MaxSceneViewer/plPluginClient.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/Migration/Migration.cpp => Sources/Tools/Migration/Migration.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/Migration/Migration.h => Sources/Tools/Migration/Migration.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/Migration/Migration.ico => Sources/Tools/Migration/Migration.ico rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/Migration/Migration.rc => Sources/Tools/Migration/Migration.rc rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/Migration/MigrationTask.cpp => Sources/Tools/Migration/MigrationTask.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/Migration/MigrationTask.h => Sources/Tools/Migration/MigrationTask.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/Migration/OptionalDialog.cpp => Sources/Tools/Migration/OptionalDialog.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/Migration/OptionalDialog.h => Sources/Tools/Migration/OptionalDialog.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/Migration/resource.h => Sources/Tools/Migration/resource.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/Migration/small.ico => Sources/Tools/Migration/small.ico rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/plDatMerger/plAllCreatables.cpp => Sources/Tools/plDatMerger/plAllCreatables.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/plDatMerger/plDatMerger.cpp => Sources/Tools/plDatMerger/plDatMerger.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/plDatMerger/plRawKeyedObject.cpp => Sources/Tools/plDatMerger/plRawKeyedObject.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/plDatMerger/plRawKeyedObject.h => Sources/Tools/plDatMerger/plRawKeyedObject.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/plDatMerger/plRawPageAccessor.cpp => Sources/Tools/plDatMerger/plRawPageAccessor.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/plDatMerger/plRawPageAccessor.h => Sources/Tools/plDatMerger/plRawPageAccessor.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/plDatMerger/plRawResManager.cpp => Sources/Tools/plDatMerger/plRawResManager.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/plDatMerger/plRawResManager.h => Sources/Tools/plDatMerger/plRawResManager.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/plFontConverter/hsCodecManagerStub.cpp => Sources/Tools/plFontConverter/hsCodecManagerStub.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/plFontConverter/plFontConverter.cpp => Sources/Tools/plFontConverter/plFontConverter.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/plFontConverter/plFontConverterProc.cpp => Sources/Tools/plFontConverter/plFontConverterProc.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/plFontConverter/plFontFreeType.cpp => Sources/Tools/plFontConverter/plFontFreeType.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/plFontConverter/plFontFreeType.h => Sources/Tools/plFontConverter/plFontFreeType.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/plFontConverter/res/icon1.ico => Sources/Tools/plFontConverter/res/icon1.ico rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/plFontConverter/res/plFontConverter.rc => Sources/Tools/plFontConverter/res/plFontConverter.rc rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/plFontConverter/res/resource.h => Sources/Tools/plFontConverter/res/resource.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/plResBrowser/plResBrowser.cpp => Sources/Tools/plResBrowser/plResBrowser.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/plResBrowser/plResBrowser.dsp => Sources/Tools/plResBrowser/plResBrowser.dsp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/plResBrowser/plResBrowser.vcproj => Sources/Tools/plResBrowser/plResBrowser.vcproj rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/plResBrowser/plResBrowserWndProc.cpp => Sources/Tools/plResBrowser/plResBrowserWndProc.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/plResBrowser/plResTreeView.cpp => Sources/Tools/plResBrowser/plResTreeView.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/plResBrowser/plResTreeView.h => Sources/Tools/plResBrowser/plResTreeView.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/plResBrowser/plWinRegistryTools.cpp => Sources/Tools/plResBrowser/plWinRegistryTools.cpp rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/plResBrowser/plWinRegistryTools.h => Sources/Tools/plResBrowser/plWinRegistryTools.h rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/plResBrowser/res/dataicon.ico => Sources/Tools/plResBrowser/res/dataicon.ico rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/plResBrowser/res/icon1.ico => Sources/Tools/plResBrowser/res/icon1.ico rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/plResBrowser/res/icon2.ico => Sources/Tools/plResBrowser/res/icon2.ico rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/plResBrowser/res/indexico.ico => Sources/Tools/plResBrowser/res/indexico.ico rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/plResBrowser/res/mergedda.ico => Sources/Tools/plResBrowser/res/mergedda.ico rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/plResBrowser/res/mergedin.ico => Sources/Tools/plResBrowser/res/mergedin.ico rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/plResBrowser/res/plResBrowser.rc => Sources/Tools/plResBrowser/res/plResBrowser.rc rename : MOULOpenSourceClientPlugin/Plasma20/Sources/Tools/plResBrowser/res/resource.h => Sources/Tools/plResBrowser/res/resource.h rename : MOULOpenSourceClientPlugin/Plasma20/cmake/FindBink.cmake => cmake/FindBink.cmake rename : MOULOpenSourceClientPlugin/Plasma20/cmake/FindDirectX.cmake => cmake/FindDirectX.cmake rename : MOULOpenSourceClientPlugin/Plasma20/cmake/FindOgg.cmake => cmake/FindOgg.cmake rename : MOULOpenSourceClientPlugin/Plasma20/cmake/FindPhysX.cmake => cmake/FindPhysX.cmake rename : MOULOpenSourceClientPlugin/Plasma20/cmake/FindSpeex.cmake => cmake/FindSpeex.cmake rename : MOULOpenSourceClientPlugin/Plasma20/cmake/FindVorbis.cmake => cmake/FindVorbis.cmake --- .../Plasma20/CMakeLists.txt => CMakeLists.txt | 0 .../Plasma20/Docs => Docs}/Distributor.doc | Bin .../ReleaseNotes/ReleaseNotes.txt | 0 .../Docs => Docs}/Resource Manager.doc | Bin .../Plasma20/Docs => Docs}/sound cones.htm | 0 MOULOpenSourceClientPlugin/LICENSE.txt | 622 - .../StaticSDKs/Win32/Bink/placeholder.txt | 1 - .../StaticSDKs/Win32/DX9.0c/placeholder.txt | 1 - .../StaticSDKs/Win32/EAX/placeholder.txt | 1 - .../StaticSDKs/Win32/Expat/placeholder.txt | 1 - .../StaticSDKs/Win32/IJL/ijlnotes.htm | 157 - .../StaticSDKs/Win32/MAX7SDK/placeholder.txt | 1 - .../StaticSDKs/Win32/MySQL/ReadMe.txt | 1 - .../OpenAL 1.1 with EFX SDK/placeholder.txt | 1 - .../StaticSDKs/Win32/OpenSSL/placeholder.txt | 1 - .../StaticSDKs/Win32/PhysX/release_notes.html | 1042 - .../StaticSDKs/Win32/PlatformSDK/ReadMe.txt | 1 - .../StaticSDKs/Win32/QTW/placeholder.txt | 1 - .../StaticSDKs/Win32/Scintilla/License.txt | 20 - .../StaticSDKs/Win32/Scintilla/README | 69 - .../Win32/Scintilla/bin/SciLexer.dll | Bin 537088 -> 0 bytes .../Win32/Scintilla/bin/SciLexer.exp | Bin 639 -> 0 bytes .../Win32/Scintilla/bin/SciLexer.lib | Bin 1814 -> 0 bytes .../Win32/Scintilla/bin/SciLexer.pdb | Bin 1403904 -> 0 bytes .../Win32/Scintilla/bin/Scintilla.dll | Bin 279552 -> 0 bytes .../Win32/Scintilla/bin/Scintilla.exp | Bin 644 -> 0 bytes .../Win32/Scintilla/bin/Scintilla.lib | Bin 1826 -> 0 bytes .../Win32/Scintilla/bin/Scintilla.pdb | Bin 969728 -> 0 bytes .../Win32/Scintilla/doc/Design.html | 249 - .../StaticSDKs/Win32/Scintilla/doc/Icons.html | 56 - .../StaticSDKs/Win32/Scintilla/doc/Lexer.txt | 226 - .../Win32/Scintilla/doc/SciBreak.jpg | Bin 14998 -> 0 bytes .../Win32/Scintilla/doc/SciCoding.html | 251 - .../Win32/Scintilla/doc/SciRest.jpg | Bin 16680 -> 0 bytes .../Win32/Scintilla/doc/SciTEIco.png | Bin 10091 -> 0 bytes .../Win32/Scintilla/doc/SciWord.jpg | Bin 6164 -> 0 bytes .../Win32/Scintilla/doc/ScintillaDoc.html | 5350 ------ .../Scintilla/doc/ScintillaDownload.html | 70 - .../Win32/Scintilla/doc/ScintillaHistory.html | 5296 ------ .../Win32/Scintilla/doc/ScintillaRelated.html | 507 - .../Win32/Scintilla/doc/ScintillaToDo.html | 178 - .../Win32/Scintilla/doc/ScintillaUsage.html | 375 - .../StaticSDKs/Win32/Scintilla/doc/Steps.html | 142 - .../StaticSDKs/Win32/Scintilla/doc/index.html | 198 - .../Win32/Scintilla/include/Accessor.h | 78 - .../Win32/Scintilla/include/Face.py | 107 - .../Win32/Scintilla/include/HFacer.py | 76 - .../Win32/Scintilla/include/KeyWords.h | 82 - .../Win32/Scintilla/include/Platform.h | 517 - .../Win32/Scintilla/include/PropSet.h | 114 - .../Win32/Scintilla/include/SString.h | 280 - .../Win32/Scintilla/include/SciLexer.h | 1074 -- .../Win32/Scintilla/include/Scintilla.h | 780 - .../Win32/Scintilla/include/Scintilla.iface | 3012 --- .../Win32/Scintilla/include/ScintillaWidget.h | 59 - .../Win32/Scintilla/include/WindowAccessor.h | 57 - .../Win32/Scintilla/src/AutoComplete.cxx | 174 - .../Win32/Scintilla/src/AutoComplete.h | 70 - .../Win32/Scintilla/src/CallTip.cxx | 314 - .../StaticSDKs/Win32/Scintilla/src/CallTip.h | 79 - .../Win32/Scintilla/src/CellBuffer.cxx | 1120 -- .../Win32/Scintilla/src/CellBuffer.h | 250 - .../Win32/Scintilla/src/CharClassify.cxx | 43 - .../Win32/Scintilla/src/CharClassify.h | 25 - .../Win32/Scintilla/src/ContractionState.cxx | 289 - .../Win32/Scintilla/src/ContractionState.h | 65 - .../Win32/Scintilla/src/Document.cxx | 1577 -- .../StaticSDKs/Win32/Scintilla/src/Document.h | 305 - .../Win32/Scintilla/src/DocumentAccessor.cxx | 187 - .../Win32/Scintilla/src/DocumentAccessor.h | 67 - .../StaticSDKs/Win32/Scintilla/src/Editor.cxx | 7297 ------- .../StaticSDKs/Win32/Scintilla/src/Editor.h | 582 - .../Win32/Scintilla/src/ExternalLexer.cxx | 259 - .../Win32/Scintilla/src/ExternalLexer.h | 95 - .../Win32/Scintilla/src/Indicator.cxx | 77 - .../Win32/Scintilla/src/Indicator.h | 22 - .../StaticSDKs/Win32/Scintilla/src/KeyMap.cxx | 148 - .../StaticSDKs/Win32/Scintilla/src/KeyMap.h | 43 - .../Win32/Scintilla/src/KeyWords.cxx | 221 - .../Win32/Scintilla/src/LexAPDL.cxx | 136 - .../StaticSDKs/Win32/Scintilla/src/LexAU3.cxx | 891 - .../StaticSDKs/Win32/Scintilla/src/LexAVE.cxx | 225 - .../StaticSDKs/Win32/Scintilla/src/LexAda.cxx | 520 - .../StaticSDKs/Win32/Scintilla/src/LexAsm.cxx | 177 - .../Win32/Scintilla/src/LexAsn1.cxx | 181 - .../Win32/Scintilla/src/LexBaan.cxx | 189 - .../Win32/Scintilla/src/LexBash.cxx | 663 - .../Win32/Scintilla/src/LexBasic.cxx | 369 - .../Win32/Scintilla/src/LexBullant.cxx | 225 - .../StaticSDKs/Win32/Scintilla/src/LexCLW.cxx | 675 - .../StaticSDKs/Win32/Scintilla/src/LexCPP.cxx | 489 - .../StaticSDKs/Win32/Scintilla/src/LexCSS.cxx | 303 - .../Win32/Scintilla/src/LexCaml.cxx | 399 - .../Win32/Scintilla/src/LexConf.cxx | 184 - .../Win32/Scintilla/src/LexCrontab.cxx | 218 - .../Win32/Scintilla/src/LexCsound.cxx | 207 - .../Win32/Scintilla/src/LexEScript.cxx | 270 - .../Win32/Scintilla/src/LexEiffel.cxx | 234 - .../Win32/Scintilla/src/LexErlang.cxx | 522 - .../Win32/Scintilla/src/LexFlagship.cxx | 226 - .../Win32/Scintilla/src/LexForth.cxx | 348 - .../Win32/Scintilla/src/LexFortran.cxx | 452 - .../StaticSDKs/Win32/Scintilla/src/LexGen.py | 241 - .../Win32/Scintilla/src/LexGui4Cli.cxx | 309 - .../Win32/Scintilla/src/LexHTML.cxx | 2042 -- .../Win32/Scintilla/src/LexHaskell.cxx | 263 - .../Win32/Scintilla/src/LexInno.cxx | 290 - .../StaticSDKs/Win32/Scintilla/src/LexKix.cxx | 122 - .../Win32/Scintilla/src/LexLisp.cxx | 275 - .../Win32/Scintilla/src/LexLout.cxx | 208 - .../StaticSDKs/Win32/Scintilla/src/LexLua.cxx | 357 - .../Win32/Scintilla/src/LexMMIXAL.cxx | 183 - .../StaticSDKs/Win32/Scintilla/src/LexMPT.cxx | 182 - .../Win32/Scintilla/src/LexMSSQL.cxx | 359 - .../Win32/Scintilla/src/LexMatlab.cxx | 225 - .../Win32/Scintilla/src/LexMetapost.cxx | 320 - .../Win32/Scintilla/src/LexNsis.cxx | 647 - .../Win32/Scintilla/src/LexOpal.cxx | 518 - .../Win32/Scintilla/src/LexOthers.cxx | 1140 -- .../StaticSDKs/Win32/Scintilla/src/LexPB.cxx | 358 - .../StaticSDKs/Win32/Scintilla/src/LexPOV.cxx | 312 - .../StaticSDKs/Win32/Scintilla/src/LexPS.cxx | 343 - .../Win32/Scintilla/src/LexPascal.cxx | 369 - .../Win32/Scintilla/src/LexPerl.cxx | 1256 -- .../Win32/Scintilla/src/LexPython.cxx | 449 - .../Win32/Scintilla/src/LexRebol.cxx | 319 - .../Win32/Scintilla/src/LexRuby.cxx | 1542 -- .../StaticSDKs/Win32/Scintilla/src/LexSQL.cxx | 342 - .../Win32/Scintilla/src/LexScriptol.cxx | 404 - .../Win32/Scintilla/src/LexSmalltalk.cxx | 317 - .../Win32/Scintilla/src/LexSpecman.cxx | 286 - .../Win32/Scintilla/src/LexSpice.cxx | 221 - .../Win32/Scintilla/src/LexTADS3.cxx | 837 - .../StaticSDKs/Win32/Scintilla/src/LexTCL.cxx | 362 - .../StaticSDKs/Win32/Scintilla/src/LexTeX.cxx | 288 - .../StaticSDKs/Win32/Scintilla/src/LexVB.cxx | 278 - .../Win32/Scintilla/src/LexVHDL.cxx | 473 - .../Win32/Scintilla/src/LexVerilog.cxx | 299 - .../Win32/Scintilla/src/LexYAML.cxx | 305 - .../Win32/Scintilla/src/LineMarker.cxx | 301 - .../Win32/Scintilla/src/LineMarker.h | 54 - .../Win32/Scintilla/src/PropSet.cxx | 1170 -- .../Win32/Scintilla/src/RESearch.cxx | 788 - .../StaticSDKs/Win32/Scintilla/src/RESearch.h | 65 - .../StaticSDKs/Win32/Scintilla/src/SVector.h | 127 - .../Win32/Scintilla/src/SciTE.properties | 6 - .../Win32/Scintilla/src/ScintillaBase.cxx | 727 - .../Win32/Scintilla/src/ScintillaBase.h | 93 - .../StaticSDKs/Win32/Scintilla/src/Style.cxx | 154 - .../StaticSDKs/Win32/Scintilla/src/Style.h | 56 - .../Win32/Scintilla/src/StyleContext.cxx | 51 - .../Win32/Scintilla/src/StyleContext.h | 169 - .../Win32/Scintilla/src/UniConversion.cxx | 76 - .../Win32/Scintilla/src/UniConversion.h | 12 - .../Win32/Scintilla/src/ViewStyle.cxx | 297 - .../Win32/Scintilla/src/ViewStyle.h | 108 - .../Win32/Scintilla/src/WindowAccessor.cxx | 178 - .../StaticSDKs/Win32/Scintilla/src/XPM.cxx | 322 - .../StaticSDKs/Win32/Scintilla/src/XPM.h | 72 - .../StaticSDKs/Win32/Scintilla/version.txt | 1 - .../Win32/Scintilla/win32/Margin.cur | Bin 326 -> 0 bytes .../Win32/Scintilla/win32/PlatWin.cxx | 2176 --- .../Win32/Scintilla/win32/PlatformRes.h | 8 - .../Win32/Scintilla/win32/SciTE.properties | 21 - .../Win32/Scintilla/win32/ScintRes.rc | 40 - .../Win32/Scintilla/win32/Scintilla.def | 2 - .../Win32/Scintilla/win32/ScintillaWin.cxx | 2413 --- .../StaticSDKs/Win32/Scintilla/win32/deps.mak | 211 - .../StaticSDKs/Win32/Scintilla/win32/makefile | 114 - .../Win32/Scintilla/win32/scintilla.mak | 453 - .../Win32/Scintilla/win32/scintilla_vc6.mak | 452 - .../StaticSDKs/Win32/UnicoWS/License.Txt | 179 - .../StaticSDKs/Win32/UnicoWS/redist.txt | 12 - .../StaticSDKs/Win32/UnicoWS/unicows.dll | Bin 245408 -> 0 bytes .../StaticSDKs/Win32/UnicoWS/unicows.pdb | Bin 355328 -> 0 bytes .../StaticSDKs/Win32/UnicoWS/unicows.sym | Bin 84868 -> 0 bytes .../StaticSDKs/Win32/WMSDK/placeholder.txt | 1 - .../Win32/freetype-2.1.4/placeholder.txt | 1 - .../Win32/freetype-2/placeholder.txt | 1 - .../Win32/oggvorbis/placeholder.txt | 1 - .../StaticSDKs/Win32/speex-1.0.1/AUTHORS | 15 - .../StaticSDKs/Win32/speex-1.0.1/COPYING | 26 - .../StaticSDKs/Win32/speex-1.0.1/ChangeLog | 6 - .../StaticSDKs/Win32/speex-1.0.1/INSTALL | 8 - .../StaticSDKs/Win32/speex-1.0.1/Makefile.am | 11 - .../StaticSDKs/Win32/speex-1.0.1/Makefile.in | 347 - .../StaticSDKs/Win32/speex-1.0.1/NEWS | 1 - .../StaticSDKs/Win32/speex-1.0.1/README | 9 - .../StaticSDKs/Win32/speex-1.0.1/Speex.spec | 68 - .../Win32/speex-1.0.1/Speex.spec.in | 68 - .../StaticSDKs/Win32/speex-1.0.1/TODO | 18 - .../StaticSDKs/Win32/speex-1.0.1/acinclude.m4 | 84 - .../StaticSDKs/Win32/speex-1.0.1/aclocal.m4 | 3894 ---- .../StaticSDKs/Win32/speex-1.0.1/config.guess | 1363 -- .../StaticSDKs/Win32/speex-1.0.1/config.sub | 1470 -- .../StaticSDKs/Win32/speex-1.0.1/configure | 6110 ------ .../StaticSDKs/Win32/speex-1.0.1/configure.in | 69 - .../Win32/speex-1.0.1/doc/Makefile.am | 5 - .../Win32/speex-1.0.1/doc/Makefile.in | 213 - .../Win32/speex-1.0.1/doc/manual.pdf | Bin 152166 -> 0 bytes .../StaticSDKs/Win32/speex-1.0.1/install-sh | 251 - .../Win32/speex-1.0.1/libspeex/Makefile.am | 77 - .../Win32/speex-1.0.1/libspeex/Makefile.in | 450 - .../Win32/speex-1.0.1/libspeex/bits.c | 352 - .../Win32/speex-1.0.1/libspeex/cb_search.c | 387 - .../Win32/speex-1.0.1/libspeex/cb_search.h | 95 - .../speex-1.0.1/libspeex/exc_10_16_table.c | 50 - .../speex-1.0.1/libspeex/exc_10_32_table.c | 66 - .../speex-1.0.1/libspeex/exc_20_32_table.c | 66 - .../speex-1.0.1/libspeex/exc_5_256_table.c | 290 - .../speex-1.0.1/libspeex/exc_5_64_table.c | 98 - .../speex-1.0.1/libspeex/exc_8_128_table.c | 162 - .../Win32/speex-1.0.1/libspeex/filters.c | 292 - .../Win32/speex-1.0.1/libspeex/filters.h | 79 - .../Win32/speex-1.0.1/libspeex/filters_sse.h | 289 - .../Win32/speex-1.0.1/libspeex/gain_table.c | 160 - .../speex-1.0.1/libspeex/gain_table_lbr.c | 64 - .../speex-1.0.1/libspeex/hexc_10_32_table.c | 66 - .../Win32/speex-1.0.1/libspeex/hexc_table.c | 162 - .../speex-1.0.1/libspeex/high_lsp_tables.c | 163 - .../Win32/speex-1.0.1/libspeex/lpc.c | 119 - .../Win32/speex-1.0.1/libspeex/lpc.h | 50 - .../Win32/speex-1.0.1/libspeex/lsp.c | 328 - .../Win32/speex-1.0.1/libspeex/lsp.h | 57 - .../speex-1.0.1/libspeex/lsp_tables_nb.c | 360 - .../Win32/speex-1.0.1/libspeex/ltp.c | 548 - .../Win32/speex-1.0.1/libspeex/ltp.h | 138 - .../Win32/speex-1.0.1/libspeex/ltp_sse.h | 95 - .../Win32/speex-1.0.1/libspeex/math_approx.c | 105 - .../Win32/speex-1.0.1/libspeex/math_approx.h | 39 - .../Win32/speex-1.0.1/libspeex/misc.c | 145 - .../Win32/speex-1.0.1/libspeex/misc.h | 83 - .../Win32/speex-1.0.1/libspeex/modes.c | 650 - .../Win32/speex-1.0.1/libspeex/modes.h | 146 - .../Win32/speex-1.0.1/libspeex/nb_celp.c | 1715 -- .../Win32/speex-1.0.1/libspeex/nb_celp.h | 202 - .../Win32/speex-1.0.1/libspeex/quant_lsp.c | 311 - .../Win32/speex-1.0.1/libspeex/quant_lsp.h | 71 - .../Win32/speex-1.0.1/libspeex/sb_celp.c | 1333 -- .../Win32/speex-1.0.1/libspeex/sb_celp.h | 167 - .../Win32/speex-1.0.1/libspeex/speex.h | 331 - .../Win32/speex-1.0.1/libspeex/speex_bits.h | 154 - .../speex-1.0.1/libspeex/speex_callbacks.c | 135 - .../speex-1.0.1/libspeex/speex_callbacks.h | 128 - .../Win32/speex-1.0.1/libspeex/speex_header.c | 162 - .../Win32/speex-1.0.1/libspeex/speex_header.h | 82 - .../Win32/speex-1.0.1/libspeex/speex_stereo.h | 62 - .../Win32/speex-1.0.1/libspeex/stack_alloc.h | 62 - .../Win32/speex-1.0.1/libspeex/stereo.c | 122 - .../Win32/speex-1.0.1/libspeex/testenc.c | 127 - .../Win32/speex-1.0.1/libspeex/testenc_uwb.c | 106 - .../Win32/speex-1.0.1/libspeex/testenc_wb.c | 106 - .../Win32/speex-1.0.1/libspeex/vbr.c | 268 - .../Win32/speex-1.0.1/libspeex/vbr.h | 66 - .../Win32/speex-1.0.1/libspeex/vq.c | 116 - .../Win32/speex-1.0.1/libspeex/vq.h | 42 - .../StaticSDKs/Win32/speex-1.0.1/ltmain.sh | 5130 ----- .../StaticSDKs/Win32/speex-1.0.1/missing | 198 - .../Win32/speex-1.0.1/mkinstalldirs | 40 - .../Win32/speex-1.0.1/src/Makefile.am | 24 - .../Win32/speex-1.0.1/src/Makefile.in | 418 - .../StaticSDKs/Win32/speex-1.0.1/src/getopt.c | 1047 - .../Win32/speex-1.0.1/src/getopt1.c | 188 - .../Win32/speex-1.0.1/src/getopt_win.h | 169 - .../StaticSDKs/Win32/speex-1.0.1/src/ogg.h | 184 - .../Win32/speex-1.0.1/src/os_types.h | 84 - .../Win32/speex-1.0.1/src/speexdec.1 | 78 - .../Win32/speex-1.0.1/src/speexdec.c | 686 - .../Win32/speex-1.0.1/src/speexenc.1 | 105 - .../Win32/speex-1.0.1/src/speexenc.c | 809 - .../StaticSDKs/Win32/speex-1.0.1/src/wav_io.c | 226 - .../StaticSDKs/Win32/speex-1.0.1/src/wav_io.h | 40 - .../Win32/speex-1.0.1/src/wave_out.c | 216 - .../Win32/speex-1.0.1/src/wave_out.h | 65 - .../Win32/speex-1.0.1/win32/Makefile.am | 7 - .../Win32/speex-1.0.1/win32/Makefile.in | 294 - .../win32/libspeex/Debug/libspeex.lib | Bin 267360 -> 0 bytes .../speex-1.0.1/win32/libspeex/Debug/vc70.pdb | Bin 69632 -> 0 bytes .../speex-1.0.1/win32/libspeex/Makefile.am | 6 - .../speex-1.0.1/win32/libspeex/Makefile.in | 190 - .../win32/libspeex/Release/libspeex.lib | Bin 157148 -> 0 bytes .../speex-1.0.1/win32/libspeex/libspeex.dsp | 282 - .../speex-1.0.1/win32/libspeex/libspeex.dsw | 29 - .../speex-1.0.1/win32/libspeex/libspeex.opt | Bin 53760 -> 0 bytes .../speex-1.0.1/win32/libspeex/libspeex.plg | 116 - .../speex-1.0.1/win32/libspeex/libspeex.sln | 21 - .../win32/libspeex/libspeex.vcproj | 702 - .../speex-1.0.1/win32/speexdec/Makefile.am | 6 - .../speex-1.0.1/win32/speexdec/Makefile.in | 190 - .../speex-1.0.1/win32/speexdec/speexdec.dsp | 129 - .../speex-1.0.1/win32/speexdec/speexdec.dsw | 59 - .../speex-1.0.1/win32/speexdec/speexdec.opt | Bin 59904 -> 0 bytes .../speex-1.0.1/win32/speexenc/Copy of ogg.h | 184 - .../speex-1.0.1/win32/speexenc/Makefile.am | 6 - .../speex-1.0.1/win32/speexenc/Makefile.in | 190 - .../Win32/speex-1.0.1/win32/speexenc/ogg.h | 184 - .../speex-1.0.1/win32/speexenc/speexenc.dsp | 121 - .../speex-1.0.1/win32/speexenc/speexenc.dsw | 59 - .../speex-1.0.1/win32/speexenc/speexenc.opt | Bin 59904 -> 0 bytes .../speex-1.0.1/win32/speexenc/speexenc.plg | 35 - .../XPlatform/OCI11/placeholder.txt | 1 - .../XPlatform/expat-1.95.7/COPYING.txt | 22 - .../XPlatform/expat-1.95.7/Changes.txt | 124 - .../XPlatform/expat-1.95.7/Include/expat.h | 1001 - .../XPlatform/expat-1.95.7/Libs/libexpat.dll | Bin 184320 -> 0 bytes .../XPlatform/expat-1.95.7/Libs/libexpat.exp | Bin 10883 -> 0 bytes .../XPlatform/expat-1.95.7/Libs/libexpat.lib | Bin 16592 -> 0 bytes .../XPlatform/expat-1.95.7/Libs/libexpatw.dll | Bin 188416 -> 0 bytes .../XPlatform/expat-1.95.7/Libs/libexpatw.exp | Bin 10890 -> 0 bytes .../XPlatform/expat-1.95.7/Libs/libexpatw.lib | Bin 16674 -> 0 bytes .../XPlatform/expat-1.95.7/README.txt | 119 - .../XPlatform/expat-1.95.7/Source/README.txt | 58 - .../XPlatform/expat-1.95.7/Source/expat.sln | 86 - .../XPlatform/expat-1.95.7/Source/lib/ascii.h | 85 - .../expat-1.95.7/Source/lib/asciitab.h | 36 - .../XPlatform/expat-1.95.7/Source/lib/expat.h | 1001 - .../expat-1.95.7/Source/lib/expat.vcproj | 246 - .../Source/lib/expat_static.vcproj | 213 - .../expat-1.95.7/Source/lib/expatw.vcproj | 246 - .../Source/lib/expatw_static.vcproj | 213 - .../Source/lib/expatw_static_xbox.vcproj | 239 - .../expat-1.95.7/Source/lib/iasciitab.h | 37 - .../expat-1.95.7/Source/lib/internal.h | 73 - .../expat-1.95.7/Source/lib/latin1tab.h | 36 - .../expat-1.95.7/Source/lib/libexpat.def | 69 - .../expat-1.95.7/Source/lib/libexpatw.def | 69 - .../expat-1.95.7/Source/lib/macconfig.h | 104 - .../expat-1.95.7/Source/lib/nametab.h | 150 - .../expat-1.95.7/Source/lib/utf8tab.h | 37 - .../expat-1.95.7/Source/lib/winconfig.h | 34 - .../expat-1.95.7/Source/lib/xmlparse.c | 5814 ------ .../expat-1.95.7/Source/lib/xmlrole.c | 1323 -- .../expat-1.95.7/Source/lib/xmlrole.h | 114 - .../expat-1.95.7/Source/lib/xmltok.c | 1634 -- .../expat-1.95.7/Source/lib/xmltok.h | 315 - .../expat-1.95.7/Source/lib/xmltok_impl.c | 1779 -- .../expat-1.95.7/Source/lib/xmltok_impl.h | 46 - .../expat-1.95.7/Source/lib/xmltok_ns.c | 106 - .../StaticLibs/Win32/libexpatwMT.lib | Bin 234832 -> 0 bytes .../StaticLibs/Xbox/libexpatwMT.lib | Bin 508408 -> 0 bytes .../expat-1.95.7/StaticLibs/Xbox/vc70.pdb | Bin 102400 -> 0 bytes .../XPlatform/jpeg-6b/placeholder.txt | 1 - .../XPlatform/jpeg-8c-rgba/Makefile.am | 134 - .../XPlatform/jpeg-8c-rgba/Makefile.in | 1092 -- .../StaticSDKs/XPlatform/jpeg-8c-rgba/README | 326 - .../XPlatform/jpeg-8c-rgba/README.CWE | 5 - .../XPlatform/jpeg-8c-rgba/aclocal.m4 | 9471 --------- .../XPlatform/jpeg-8c-rgba/ansi2knr.1 | 36 - .../XPlatform/jpeg-8c-rgba/ansi2knr.c | 739 - .../XPlatform/jpeg-8c-rgba/cderror.h | 134 - .../XPlatform/jpeg-8c-rgba/cdjpeg.c | 181 - .../XPlatform/jpeg-8c-rgba/cdjpeg.h | 187 - .../XPlatform/jpeg-8c-rgba/change.log | 326 - .../StaticSDKs/XPlatform/jpeg-8c-rgba/cjpeg.1 | 339 - .../StaticSDKs/XPlatform/jpeg-8c-rgba/cjpeg.c | 639 - .../XPlatform/jpeg-8c-rgba/ckconfig.c | 402 - .../XPlatform/jpeg-8c-rgba/coderules.txt | 118 - .../XPlatform/jpeg-8c-rgba/config.guess | 1501 -- .../XPlatform/jpeg-8c-rgba/config.sub | 1705 -- .../XPlatform/jpeg-8c-rgba/configure | 15870 ---------------- .../XPlatform/jpeg-8c-rgba/configure.ac | 318 - .../StaticSDKs/XPlatform/jpeg-8c-rgba/depcomp | 630 - .../StaticSDKs/XPlatform/jpeg-8c-rgba/djpeg.1 | 252 - .../StaticSDKs/XPlatform/jpeg-8c-rgba/djpeg.c | 617 - .../XPlatform/jpeg-8c-rgba/example.c | 433 - .../XPlatform/jpeg-8c-rgba/filelist.txt | 215 - .../XPlatform/jpeg-8c-rgba/install-sh | 520 - .../XPlatform/jpeg-8c-rgba/install.txt | 1096 -- .../XPlatform/jpeg-8c-rgba/jaricom.c | 153 - .../XPlatform/jpeg-8c-rgba/jcapimin.c | 288 - .../XPlatform/jpeg-8c-rgba/jcapistd.c | 161 - .../XPlatform/jpeg-8c-rgba/jcarith.c | 934 - .../XPlatform/jpeg-8c-rgba/jccoefct.c | 453 - .../XPlatform/jpeg-8c-rgba/jccolor.c | 574 - .../XPlatform/jpeg-8c-rgba/jcdctmgr.c | 482 - .../XPlatform/jpeg-8c-rgba/jchuff.c | 1576 -- .../XPlatform/jpeg-8c-rgba/jcinit.c | 65 - .../XPlatform/jpeg-8c-rgba/jcmainct.c | 293 - .../XPlatform/jpeg-8c-rgba/jcmarker.c | 682 - .../XPlatform/jpeg-8c-rgba/jcmaster.c | 858 - .../XPlatform/jpeg-8c-rgba/jcomapi.c | 106 - .../XPlatform/jpeg-8c-rgba/jconfig.bcc | 48 - .../XPlatform/jpeg-8c-rgba/jconfig.cfg | 53 - .../XPlatform/jpeg-8c-rgba/jconfig.dj | 38 - .../XPlatform/jpeg-8c-rgba/jconfig.mac | 43 - .../XPlatform/jpeg-8c-rgba/jconfig.manx | 43 - .../XPlatform/jpeg-8c-rgba/jconfig.mc6 | 52 - .../XPlatform/jpeg-8c-rgba/jconfig.sas | 43 - .../XPlatform/jpeg-8c-rgba/jconfig.st | 42 - .../XPlatform/jpeg-8c-rgba/jconfig.txt | 164 - .../XPlatform/jpeg-8c-rgba/jconfig.vc | 45 - .../XPlatform/jpeg-8c-rgba/jconfig.vms | 37 - .../XPlatform/jpeg-8c-rgba/jconfig.wat | 38 - .../XPlatform/jpeg-8c-rgba/jcparam.c | 633 - .../XPlatform/jpeg-8c-rgba/jcprepct.c | 358 - .../XPlatform/jpeg-8c-rgba/jcsample.c | 545 - .../XPlatform/jpeg-8c-rgba/jctrans.c | 382 - .../XPlatform/jpeg-8c-rgba/jdapimin.c | 396 - .../XPlatform/jpeg-8c-rgba/jdapistd.c | 275 - .../XPlatform/jpeg-8c-rgba/jdarith.c | 772 - .../XPlatform/jpeg-8c-rgba/jdatadst.c | 267 - .../XPlatform/jpeg-8c-rgba/jdatasrc.c | 274 - .../XPlatform/jpeg-8c-rgba/jdcoefct.c | 736 - .../XPlatform/jpeg-8c-rgba/jdcolor.c | 498 - .../StaticSDKs/XPlatform/jpeg-8c-rgba/jdct.h | 393 - .../XPlatform/jpeg-8c-rgba/jddctmgr.c | 384 - .../XPlatform/jpeg-8c-rgba/jdhuff.c | 1541 -- .../XPlatform/jpeg-8c-rgba/jdinput.c | 661 - .../XPlatform/jpeg-8c-rgba/jdmainct.c | 512 - .../XPlatform/jpeg-8c-rgba/jdmarker.c | 1406 -- .../XPlatform/jpeg-8c-rgba/jdmaster.c | 533 - .../XPlatform/jpeg-8c-rgba/jdmerge.c | 400 - .../XPlatform/jpeg-8c-rgba/jdpostct.c | 290 - .../XPlatform/jpeg-8c-rgba/jdsample.c | 361 - .../XPlatform/jpeg-8c-rgba/jdtrans.c | 140 - .../XPlatform/jpeg-8c-rgba/jerror.c | 252 - .../XPlatform/jpeg-8c-rgba/jerror.h | 304 - .../XPlatform/jpeg-8c-rgba/jfdctflt.c | 174 - .../XPlatform/jpeg-8c-rgba/jfdctfst.c | 230 - .../XPlatform/jpeg-8c-rgba/jfdctint.c | 4348 ----- .../XPlatform/jpeg-8c-rgba/jidctflt.c | 235 - .../XPlatform/jpeg-8c-rgba/jidctfst.c | 368 - .../XPlatform/jpeg-8c-rgba/jidctint.c | 5137 ----- .../XPlatform/jpeg-8c-rgba/jinclude.h | 91 - .../XPlatform/jpeg-8c-rgba/jmemansi.c | 167 - .../XPlatform/jpeg-8c-rgba/jmemdos.c | 638 - .../XPlatform/jpeg-8c-rgba/jmemdosa.asm | 379 - .../XPlatform/jpeg-8c-rgba/jmemmac.c | 289 - .../XPlatform/jpeg-8c-rgba/jmemmgr.c | 1118 -- .../XPlatform/jpeg-8c-rgba/jmemname.c | 276 - .../XPlatform/jpeg-8c-rgba/jmemnobs.c | 109 - .../XPlatform/jpeg-8c-rgba/jmemsys.h | 198 - .../XPlatform/jpeg-8c-rgba/jmorecfg.h | 373 - .../XPlatform/jpeg-8c-rgba/jpegint.h | 407 - .../XPlatform/jpeg-8c-rgba/jpeglib.h | 1161 -- .../XPlatform/jpeg-8c-rgba/jpegtran.1 | 285 - .../XPlatform/jpeg-8c-rgba/jpegtran.c | 560 - .../XPlatform/jpeg-8c-rgba/jquant1.c | 856 - .../XPlatform/jpeg-8c-rgba/jquant2.c | 1310 -- .../XPlatform/jpeg-8c-rgba/jutils.c | 231 - .../XPlatform/jpeg-8c-rgba/jversion.h | 14 - .../XPlatform/jpeg-8c-rgba/libjpeg.map | 4 - .../XPlatform/jpeg-8c-rgba/libjpeg.txt | 3084 --- .../XPlatform/jpeg-8c-rgba/ltmain.sh | 9636 ---------- .../XPlatform/jpeg-8c-rgba/makcjpeg.st | 36 - .../XPlatform/jpeg-8c-rgba/makdjpeg.st | 36 - .../XPlatform/jpeg-8c-rgba/makeadsw.vc6 | 77 - .../XPlatform/jpeg-8c-rgba/makeasln.v10 | 33 - .../XPlatform/jpeg-8c-rgba/makecdep.vc6 | 82 - .../XPlatform/jpeg-8c-rgba/makecdsp.vc6 | 130 - .../XPlatform/jpeg-8c-rgba/makecfil.v10 | 69 - .../XPlatform/jpeg-8c-rgba/makecmak.vc6 | 159 - .../XPlatform/jpeg-8c-rgba/makecvcx.v10 | 76 - .../XPlatform/jpeg-8c-rgba/makeddep.vc6 | 82 - .../XPlatform/jpeg-8c-rgba/makeddsp.vc6 | 130 - .../XPlatform/jpeg-8c-rgba/makedfil.v10 | 69 - .../XPlatform/jpeg-8c-rgba/makedmak.vc6 | 159 - .../XPlatform/jpeg-8c-rgba/makedvcx.v10 | 76 - .../XPlatform/jpeg-8c-rgba/makefile.ansi | 221 - .../XPlatform/jpeg-8c-rgba/makefile.bcc | 292 - .../XPlatform/jpeg-8c-rgba/makefile.dj | 227 - .../XPlatform/jpeg-8c-rgba/makefile.manx | 221 - .../XPlatform/jpeg-8c-rgba/makefile.mc6 | 256 - .../XPlatform/jpeg-8c-rgba/makefile.mms | 225 - .../XPlatform/jpeg-8c-rgba/makefile.sas | 259 - .../XPlatform/jpeg-8c-rgba/makefile.unix | 235 - .../XPlatform/jpeg-8c-rgba/makefile.vc | 273 - .../XPlatform/jpeg-8c-rgba/makefile.vms | 142 - .../XPlatform/jpeg-8c-rgba/makefile.wat | 240 - .../XPlatform/jpeg-8c-rgba/makejdep.vc6 | 423 - .../XPlatform/jpeg-8c-rgba/makejdsp.vc6 | 285 - .../XPlatform/jpeg-8c-rgba/makejdsw.vc6 | 29 - .../XPlatform/jpeg-8c-rgba/makejfil.v10 | 186 - .../XPlatform/jpeg-8c-rgba/makejmak.vc6 | 425 - .../XPlatform/jpeg-8c-rgba/makejsln.v10 | 17 - .../XPlatform/jpeg-8c-rgba/makejvcx.v10 | 112 - .../XPlatform/jpeg-8c-rgba/makeproj.mac | 213 - .../XPlatform/jpeg-8c-rgba/makerdep.vc6 | 6 - .../XPlatform/jpeg-8c-rgba/makerdsp.vc6 | 78 - .../XPlatform/jpeg-8c-rgba/makerfil.v10 | 30 - .../XPlatform/jpeg-8c-rgba/makermak.vc6 | 110 - .../XPlatform/jpeg-8c-rgba/makervcx.v10 | 62 - .../XPlatform/jpeg-8c-rgba/maketdep.vc6 | 43 - .../XPlatform/jpeg-8c-rgba/maketdsp.vc6 | 122 - .../XPlatform/jpeg-8c-rgba/maketfil.v10 | 63 - .../XPlatform/jpeg-8c-rgba/maketmak.vc6 | 131 - .../XPlatform/jpeg-8c-rgba/maketvcx.v10 | 74 - .../XPlatform/jpeg-8c-rgba/makewdep.vc6 | 6 - .../XPlatform/jpeg-8c-rgba/makewdsp.vc6 | 78 - .../XPlatform/jpeg-8c-rgba/makewfil.v10 | 30 - .../XPlatform/jpeg-8c-rgba/makewmak.vc6 | 110 - .../XPlatform/jpeg-8c-rgba/makewvcx.v10 | 62 - .../XPlatform/jpeg-8c-rgba/makljpeg.st | 68 - .../XPlatform/jpeg-8c-rgba/maktjpeg.st | 30 - .../XPlatform/jpeg-8c-rgba/makvms.opt | 4 - .../StaticSDKs/XPlatform/jpeg-8c-rgba/missing | 376 - .../StaticSDKs/XPlatform/jpeg-8c-rgba/rdbmp.c | 480 - .../XPlatform/jpeg-8c-rgba/rdcolmap.c | 253 - .../StaticSDKs/XPlatform/jpeg-8c-rgba/rdgif.c | 38 - .../XPlatform/jpeg-8c-rgba/rdjpgcom.1 | 63 - .../XPlatform/jpeg-8c-rgba/rdjpgcom.c | 515 - .../StaticSDKs/XPlatform/jpeg-8c-rgba/rdppm.c | 459 - .../StaticSDKs/XPlatform/jpeg-8c-rgba/rdrle.c | 387 - .../XPlatform/jpeg-8c-rgba/rdswitch.c | 365 - .../XPlatform/jpeg-8c-rgba/rdtarga.c | 500 - .../XPlatform/jpeg-8c-rgba/structure.txt | 945 - .../XPlatform/jpeg-8c-rgba/testimg.bmp | Bin 35050 -> 0 bytes .../XPlatform/jpeg-8c-rgba/testimg.jpg | Bin 5764 -> 0 bytes .../XPlatform/jpeg-8c-rgba/testimg.ppm | 4 - .../XPlatform/jpeg-8c-rgba/testimgp.jpg | Bin 5645 -> 0 bytes .../XPlatform/jpeg-8c-rgba/testorig.jpg | Bin 5770 -> 0 bytes .../XPlatform/jpeg-8c-rgba/testprog.jpg | Bin 5655 -> 0 bytes .../XPlatform/jpeg-8c-rgba/transupp.c | 1583 -- .../XPlatform/jpeg-8c-rgba/transupp.h | 210 - .../XPlatform/jpeg-8c-rgba/usage.txt | 631 - .../XPlatform/jpeg-8c-rgba/wizard.txt | 211 - .../StaticSDKs/XPlatform/jpeg-8c-rgba/wrbmp.c | 442 - .../StaticSDKs/XPlatform/jpeg-8c-rgba/wrgif.c | 399 - .../XPlatform/jpeg-8c-rgba/wrjpgcom.1 | 103 - .../XPlatform/jpeg-8c-rgba/wrjpgcom.c | 583 - .../StaticSDKs/XPlatform/jpeg-8c-rgba/wrppm.c | 269 - .../StaticSDKs/XPlatform/jpeg-8c-rgba/wrrle.c | 305 - .../XPlatform/jpeg-8c-rgba/wrtarga.c | 253 - .../StaticSDKs/XPlatform/png/ANNOUNCE | 31 - .../StaticSDKs/XPlatform/png/CHANGES | 1021 - .../StaticSDKs/XPlatform/png/INSTALL | 143 - .../StaticSDKs/XPlatform/png/KNOWNBUG | 9 - .../StaticSDKs/XPlatform/png/LICENSE | 102 - .../StaticSDKs/XPlatform/png/Makefile | 112 - .../StaticSDKs/XPlatform/png/README | 254 - .../StaticSDKs/XPlatform/png/TODO | 24 - .../StaticSDKs/XPlatform/png/Y2KINFO | 55 - .../StaticSDKs/XPlatform/png/example.c | 804 - .../StaticSDKs/XPlatform/png/lib/libpng.lib | Bin 284224 -> 0 bytes .../XPlatform/png/lib/libpng_dbg.lib | Bin 582974 -> 0 bytes .../StaticSDKs/XPlatform/png/libpng.dsp | 176 - .../StaticSDKs/XPlatform/png/libpng.dsw | 44 - .../StaticSDKs/XPlatform/png/libpng.txt | 2903 --- .../StaticSDKs/XPlatform/png/png.c | 777 - .../StaticSDKs/XPlatform/png/png.h | 3200 ---- .../StaticSDKs/XPlatform/png/pngasmrd.h | 11 - .../StaticSDKs/XPlatform/png/pngbar.jpg | Bin 2498 -> 0 bytes .../StaticSDKs/XPlatform/png/pngbar.png | Bin 2399 -> 0 bytes .../StaticSDKs/XPlatform/png/pngconf.h | 1331 -- .../StaticSDKs/XPlatform/png/pngerror.c | 289 - .../StaticSDKs/XPlatform/png/pnggccrd.c | 5340 ------ .../StaticSDKs/XPlatform/png/pngget.c | 917 - .../StaticSDKs/XPlatform/png/pngmem.c | 517 - .../StaticSDKs/XPlatform/png/pngnow.png | Bin 2018 -> 0 bytes .../StaticSDKs/XPlatform/png/pngpread.c | 1502 -- .../StaticSDKs/XPlatform/png/pngread.c | 1398 -- .../StaticSDKs/XPlatform/png/pngrio.c | 161 - .../StaticSDKs/XPlatform/png/pngrtran.c | 4137 ---- .../StaticSDKs/XPlatform/png/pngrutil.c | 3001 --- .../StaticSDKs/XPlatform/png/pngset.c | 1033 - .../StaticSDKs/XPlatform/png/pngtest.c | 1515 -- .../StaticSDKs/XPlatform/png/pngtest.dsp | 104 - .../StaticSDKs/XPlatform/png/pngtest.plg | 99 - .../StaticSDKs/XPlatform/png/pngtest.png | Bin 8574 -> 0 bytes .../StaticSDKs/XPlatform/png/pngtrans.c | 640 - .../StaticSDKs/XPlatform/png/pngvcrd.c | 3845 ---- .../StaticSDKs/XPlatform/png/pngwio.c | 228 - .../StaticSDKs/XPlatform/png/pngwrite.c | 1432 -- .../StaticSDKs/XPlatform/png/pngwtran.c | 563 - .../StaticSDKs/XPlatform/png/pngwutil.c | 2669 --- .../XPlatform/png/scripts/SCOPTIONS.ppc | 7 - .../XPlatform/png/scripts/descrip.mms | 52 - .../XPlatform/png/scripts/libpng.icc | 44 - .../XPlatform/png/scripts/makefile.acorn | 51 - .../XPlatform/png/scripts/makefile.aix | 84 - .../XPlatform/png/scripts/makefile.amiga | 48 - .../XPlatform/png/scripts/makefile.atari | 33 - .../XPlatform/png/scripts/makefile.bc32 | 151 - .../XPlatform/png/scripts/makefile.bd32 | 76 - .../XPlatform/png/scripts/makefile.beos | 104 - .../XPlatform/png/scripts/makefile.bor | 162 - .../XPlatform/png/scripts/makefile.cygwin | 187 - .../XPlatform/png/scripts/makefile.darwin | 106 - .../XPlatform/png/scripts/makefile.dec | 91 - .../XPlatform/png/scripts/makefile.dj2 | 52 - .../XPlatform/png/scripts/makefile.gcc | 66 - .../XPlatform/png/scripts/makefile.gcmmx | 147 - .../XPlatform/png/scripts/makefile.hpgcc | 112 - .../XPlatform/png/scripts/makefile.hpux | 98 - .../XPlatform/png/scripts/makefile.ibmc | 71 - .../XPlatform/png/scripts/makefile.intel | 114 - .../XPlatform/png/scripts/makefile.knr | 82 - .../XPlatform/png/scripts/makefile.linux | 112 - .../XPlatform/png/scripts/makefile.macosx | 92 - .../XPlatform/png/scripts/makefile.mips | 66 - .../XPlatform/png/scripts/makefile.msc | 86 - .../XPlatform/png/scripts/makefile.netbsd | 42 - .../XPlatform/png/scripts/makefile.os2 | 69 - .../XPlatform/png/scripts/makefile.sco | 102 - .../XPlatform/png/scripts/makefile.sggcc | 97 - .../XPlatform/png/scripts/makefile.sgi | 110 - .../XPlatform/png/scripts/makefile.so9 | 124 - .../XPlatform/png/scripts/makefile.solaris | 120 - .../XPlatform/png/scripts/makefile.std | 72 - .../XPlatform/png/scripts/makefile.sunos | 76 - .../XPlatform/png/scripts/makefile.tc3 | 89 - .../XPlatform/png/scripts/makefile.watcom | 109 - .../XPlatform/png/scripts/makevms.com | 144 - .../XPlatform/png/scripts/pngdef.pas | 795 - .../XPlatform/png/scripts/pngos2.def | 234 - .../XPlatform/png/scripts/smakefile.ppc | 30 - .../StaticSDKs/XPlatform/zlib/SRC/ChangeLog | 481 - .../StaticSDKs/XPlatform/zlib/SRC/FAQ | 100 - .../StaticSDKs/XPlatform/zlib/SRC/INDEX | 86 - .../XPlatform/zlib/SRC/Make_vms.com | 115 - .../StaticSDKs/XPlatform/zlib/SRC/Makefile | 175 - .../StaticSDKs/XPlatform/zlib/SRC/Makefile.in | 175 - .../XPlatform/zlib/SRC/Makefile.riscos | 151 - .../StaticSDKs/XPlatform/zlib/SRC/README | 147 - .../StaticSDKs/XPlatform/zlib/SRC/adler32.c | 48 - .../XPlatform/zlib/SRC/algorithm.txt | 213 - .../XPlatform/zlib/SRC/amiga/Makefile.pup | 66 - .../XPlatform/zlib/SRC/amiga/Makefile.sas | 64 - .../StaticSDKs/XPlatform/zlib/SRC/compress.c | 68 - .../StaticSDKs/XPlatform/zlib/SRC/configure | 212 - .../XPlatform/zlib/SRC/contrib/README.contrib | 34 - .../zlib/SRC/contrib/asm386/gvmat32.asm | 559 - .../zlib/SRC/contrib/asm386/gvmat32c.c | 200 - .../zlib/SRC/contrib/asm386/mkgvmt32.bat | 1 - .../zlib/SRC/contrib/asm386/zlibvc.def | 74 - .../zlib/SRC/contrib/asm386/zlibvc.dsp | 651 - .../zlib/SRC/contrib/asm386/zlibvc.dsw | 41 - .../zlib/SRC/contrib/asm586/README.586 | 43 - .../XPlatform/zlib/SRC/contrib/asm586/match.S | 354 - .../zlib/SRC/contrib/asm686/README.686 | 34 - .../XPlatform/zlib/SRC/contrib/asm686/match.S | 327 - .../zlib/SRC/contrib/delphi/zlib.mak | 36 - .../zlib/SRC/contrib/delphi/zlibdef.pas | 169 - .../zlib/SRC/contrib/delphi2/d_zlib.bpr | 224 - .../zlib/SRC/contrib/delphi2/d_zlib.cpp | 17 - .../zlib/SRC/contrib/delphi2/readme.txt | 17 - .../zlib/SRC/contrib/delphi2/zlib.bpg | 26 - .../zlib/SRC/contrib/delphi2/zlib.bpr | 225 - .../zlib/SRC/contrib/delphi2/zlib.cpp | 22 - .../zlib/SRC/contrib/delphi2/zlib.pas | 534 - .../zlib/SRC/contrib/delphi2/zlib32.bpr | 174 - .../zlib/SRC/contrib/delphi2/zlib32.cpp | 42 - .../zlib/SRC/contrib/iostream/test.cpp | 24 - .../zlib/SRC/contrib/iostream/zfstream.cpp | 329 - .../zlib/SRC/contrib/iostream/zfstream.h | 142 - .../zlib/SRC/contrib/iostream2/zstream.h | 307 - .../SRC/contrib/iostream2/zstream_test.cpp | 25 - .../zlib/SRC/contrib/minizip/ChangeLogUnzip | 38 - .../zlib/SRC/contrib/minizip/Makefile | 25 - .../zlib/SRC/contrib/minizip/miniunz.c | 508 - .../zlib/SRC/contrib/minizip/minizip.c | 302 - .../zlib/SRC/contrib/minizip/readme.txt | 37 - .../zlib/SRC/contrib/minizip/unzip.c | 1294 -- .../zlib/SRC/contrib/minizip/unzip.def | 15 - .../zlib/SRC/contrib/minizip/unzip.h | 275 - .../XPlatform/zlib/SRC/contrib/minizip/zip.c | 718 - .../zlib/SRC/contrib/minizip/zip.def | 5 - .../XPlatform/zlib/SRC/contrib/minizip/zip.h | 150 - .../zlib/SRC/contrib/minizip/zlibvc.def | 74 - .../zlib/SRC/contrib/minizip/zlibvc.dsp | 651 - .../zlib/SRC/contrib/minizip/zlibvc.dsw | 41 - .../XPlatform/zlib/SRC/contrib/untgz/Makefile | 14 - .../zlib/SRC/contrib/untgz/makefile.w32 | 63 - .../XPlatform/zlib/SRC/contrib/untgz/untgz.c | 522 - .../zlib/SRC/contrib/visual-basic.txt | 69 - .../StaticSDKs/XPlatform/zlib/SRC/crc32.c | 162 - .../StaticSDKs/XPlatform/zlib/SRC/deflate.c | 1350 -- .../StaticSDKs/XPlatform/zlib/SRC/deflate.h | 318 - .../StaticSDKs/XPlatform/zlib/SRC/descrip.mms | 48 - .../StaticSDKs/XPlatform/zlib/SRC/example.c | 556 - .../StaticSDKs/XPlatform/zlib/SRC/gzio.c | 875 - .../StaticSDKs/XPlatform/zlib/SRC/infblock.c | 403 - .../StaticSDKs/XPlatform/zlib/SRC/infblock.h | 39 - .../StaticSDKs/XPlatform/zlib/SRC/infcodes.c | 251 - .../StaticSDKs/XPlatform/zlib/SRC/infcodes.h | 27 - .../StaticSDKs/XPlatform/zlib/SRC/inffast.c | 183 - .../StaticSDKs/XPlatform/zlib/SRC/inffast.h | 17 - .../StaticSDKs/XPlatform/zlib/SRC/inffixed.h | 151 - .../StaticSDKs/XPlatform/zlib/SRC/inflate.c | 366 - .../StaticSDKs/XPlatform/zlib/SRC/inftrees.c | 454 - .../StaticSDKs/XPlatform/zlib/SRC/inftrees.h | 58 - .../StaticSDKs/XPlatform/zlib/SRC/infutil.c | 87 - .../StaticSDKs/XPlatform/zlib/SRC/infutil.h | 98 - .../StaticSDKs/XPlatform/zlib/SRC/maketree.c | 85 - .../StaticSDKs/XPlatform/zlib/SRC/minigzip.c | 320 - .../XPlatform/zlib/SRC/msdos/Makefile.b32 | 104 - .../XPlatform/zlib/SRC/msdos/Makefile.bor | 125 - .../XPlatform/zlib/SRC/msdos/Makefile.dj2 | 100 - .../XPlatform/zlib/SRC/msdos/Makefile.emx | 69 - .../XPlatform/zlib/SRC/msdos/Makefile.msc | 121 - .../XPlatform/zlib/SRC/msdos/Makefile.tc | 108 - .../XPlatform/zlib/SRC/msdos/Makefile.w32 | 97 - .../XPlatform/zlib/SRC/msdos/Makefile.wat | 103 - .../XPlatform/zlib/SRC/msdos/zlib.def | 60 - .../XPlatform/zlib/SRC/msdos/zlib.rc | 32 - .../XPlatform/zlib/SRC/nt/Makefile.emx | 138 - .../XPlatform/zlib/SRC/nt/Makefile.gcc | 87 - .../XPlatform/zlib/SRC/nt/Makefile.nt | 88 - .../StaticSDKs/XPlatform/zlib/SRC/nt/zlib.dnt | 47 - .../XPlatform/zlib/SRC/os2/Makefile.os2 | 136 - .../XPlatform/zlib/SRC/os2/zlib.def | 51 - .../StaticSDKs/XPlatform/zlib/SRC/trees.c | 1214 -- .../StaticSDKs/XPlatform/zlib/SRC/trees.h | 128 - .../StaticSDKs/XPlatform/zlib/SRC/uncompr.c | 58 - .../StaticSDKs/XPlatform/zlib/SRC/zconf.h | 279 - .../StaticSDKs/XPlatform/zlib/SRC/zlib.3 | 107 - .../StaticSDKs/XPlatform/zlib/SRC/zlib.h | 893 - .../StaticSDKs/XPlatform/zlib/SRC/zlib.html | 971 - .../StaticSDKs/XPlatform/zlib/SRC/zutil.c | 225 - .../StaticSDKs/XPlatform/zlib/SRC/zutil.h | 220 - .../XPlatform/zlib/ZLIB_VSS_MAKE/zlib.dsw | 29 - .../XPlatform/zlib/ZLIB_VSS_MAKE/zlib.opt | Bin 53760 -> 0 bytes .../XPlatform/zlib/ZLIB_VSS_MAKE/zlib.sln | 27 - .../zlib/ZLIB_VSS_MAKE/zlib/zlib.dsp | 196 - .../zlib/ZLIB_VSS_MAKE/zlib/zlib.plg | 74 - .../zlib/ZLIB_VSS_MAKE/zlib/zlib.vcproj | 759 - .../StaticSDKs/XPlatform/zlib/inc/zconf.h | 279 - .../StaticSDKs/XPlatform/zlib/inc/zlib.h | 893 - .../StaticSDKs/XPlatform/zlib/lib/vc70.pdb | Bin 69632 -> 0 bytes .../StaticSDKs/XPlatform/zlib/lib/zlib.lib | Bin 83876 -> 0 bytes .../XPlatform/zlib/lib/zlib_srv.lib | Bin 91578 -> 0 bytes .../StaticSDKs/XPlatform/zlib/lib/zlibd.lib | Bin 164968 -> 0 bytes .../XPlatform/zlib/lib/zlibd_srv.lib | Bin 187378 -> 0 bytes .../AllDlls/AllDlls.sln | 0 .../AllDlls/AllDlls.vcproj | 0 .../Plasma/Apps/AllClient/AllClient.sln | 0 .../Plasma/Apps/AllClient/AllClient.vcproj | 0 .../Plasma/Apps/plClient/plClient.vcproj | 0 .../Apps/plClientKey/plClientKey.vcproj | 0 .../plClientPatcher/plClientPatcher.vcproj | 0 .../Apps/plFileEncrypt/plFileEncrypt.vcproj | 0 .../Apps/plFileSecure/plFileSecure.vcproj | 0 .../Apps/plLogDecrypt/plLogDecrypt.vcproj | 0 .../Plasma/Apps/plMD5/plMD5.vcproj | 0 .../Plasma/Apps/plPageInfo/plPageInfo.vcproj | 0 .../plPageOptimizer/plPageOptimizer.vcproj | 0 .../plPlasmaInstaller.vcproj | 0 .../Apps/plPlasmaUpdate/plPlasmaUpdate.vcproj | 0 .../Apps/plPythonPack/plPythonPack.vcproj | 0 .../Apps/plUruLauncher/plUruLauncher.vcproj | 0 .../Plasma/CoreLib/CoreLib.vcproj | 0 .../Plasma/CoreLibExe/CoreLibExe.vcproj | 0 .../FeatureLibInc/FeatureLibInc.vcproj | 0 .../FeatureLib/pfAnimation/pfAnimation.vcproj | 0 .../Plasma/FeatureLib/pfAudio/pfAudio.vcproj | 0 .../Plasma/FeatureLib/pfCCR/pfCCR.vcproj | 0 .../FeatureLib/pfCamera/pfCamera.vcproj | 0 .../FeatureLib/pfCharacter/pfCharacter.vcproj | 0 .../pfConditional/pfConditional.vcproj | 0 .../FeatureLib/pfConsole/pfConsole.vcproj | 0 .../FeatureLib/pfCsrSrv/pfCsrSrv.vcproj | 0 .../pfGameGUIMgr/pfGameGUIMgr.vcproj | 0 .../FeatureLib/pfGameMgr/pfGameMgr.vcproj | 0 .../pfGameScoreMgr/pfGameScoreMgr.vcproj | 0 .../pfJournalBook/pfJournalBook.vcproj | 0 .../Plasma/FeatureLib/pfKI/placeholder.txt | 0 .../pfLocalizationMgr.vcproj | 0 .../pfLoginDialog/pfLoginDialog.vcproj | 0 .../FeatureLib/pfMessage/pfMessage.vcproj | 0 .../FeatureLib/pfPython/pfPython.vcproj | 0 .../pfSecurePreloader.vcproj | 0 .../pfStackTrace/pfStackTrace.vcproj | 0 .../FeatureLib/pfSurface/pfSurface.vcproj | 0 .../PlasmaGame/GameLib/placeholder.txt | 0 .../Plasma/GameLib/PlasmaGame/placeholder.txt | 0 .../Plasma/GameLib/placeholder.txt | 0 .../NucleusLib/pnAddrInfo/pnAddrInfo.vcproj | 0 .../NucleusLib/pnAsyncCore/pnAsyncCore.vcproj | 0 .../pnAsyncCoreExe/pnAsyncCoreExe.vcproj | 0 .../Plasma/NucleusLib/pnCrash/pnCrash.vcproj | 0 .../NucleusLib/pnCrashExe/pnCrashExe.vcproj | 0 .../NucleusLib/pnCsrCli/pnCsrCli.vcproj | 0 .../NucleusLib/pnCsrNet/pnCsrNet.vcproj | 0 .../NucleusLib/pnDispatch/pnDispatch.vcproj | 0 .../NucleusLib/pnFactory/pnFactory.vcproj | 0 .../NucleusLib/pnGameMgr/pnGameMgr.vcproj | 0 .../Plasma/NucleusLib/pnIni/pnIni.vcproj | 0 .../NucleusLib/pnIniExe/pnIniExe.vcproj | 0 .../NucleusLib/pnInputCore/pnInputCore.vcproj | 0 .../pnKeyedObject/pnKeyedObject.vcproj | 0 .../Plasma/NucleusLib/pnMail/pnMail.vcproj | 0 .../NucleusLib/pnMessage/pnMessage.vcproj | 0 .../NucleusLib/pnModifier/pnModifier.vcproj | 0 .../NucleusLib/pnNetBase/pnNetBase.vcproj | 0 .../NucleusLib/pnNetCli/pnNetCli.vcproj | 0 .../NucleusLib/pnNetCommon/pnNetCommon.vcproj | 0 .../NucleusLib/pnNetDiag/pnNetDiag.vcproj | 0 .../NucleusLib/pnNetLog/pnNetLog.vcproj | 0 .../pnNetProtocol/pnNetProtocol.vcproj | 0 .../pnNucleusInc/pnNucleusInc.vcproj | 0 .../NucleusLib/pnOraLib/pnOraLib.vcproj | 0 .../NucleusLib/pnProduct/pnProduct.vcproj | 0 .../pnSceneObject/pnSceneObject.vcproj | 0 .../NucleusLib/pnSimpleNet/pnSimpleNet.vcproj | 0 .../NucleusLib/pnSqlLib/pnSqlLib.vcproj | 0 .../NucleusLib/pnSrvUtils/pnSrvUtils.vcproj | 0 .../pnSrvUtilsExe/pnSrvUtilsExe.vcproj | 0 .../Plasma/NucleusLib/pnTimer/pnTimer.vcproj | 0 .../Plasma/NucleusLib/pnUtils/pnUtils.vcproj | 0 .../NucleusLib/pnUtilsExe/pnUtilsExe.vcproj | 0 .../PubUtilLib/PubUtilInc/PubUtilInc.vcproj | 0 .../plAgeDescription/plAgeDescription.vcproj | 0 .../PubUtilLib/plAgeLoader/plAgeLoader.vcproj | 0 .../PubUtilLib/plAudible/plAudible.vcproj | 0 .../Plasma/PubUtilLib/plAudio/plAudio.vcproj | 0 .../PubUtilLib/plAudioCore/plAudioCore.vcproj | 0 .../PubUtilLib/plAvatar/plAvatar.vcproj | 0 .../plCompression/plCompression.vcproj | 0 .../plConditionalObject/placeholder.txt | 0 .../PubUtilLib/plContainer/plContainer.vcproj | 0 .../plDeviceSelector/plDeviceSelector.vcproj | 0 .../PubUtilLib/plDrawable/plDrawable.vcproj | 0 .../plEncryption/plEncryption.vcproj | 0 .../Plasma/PubUtilLib/plFile/plFile.vcproj | 0 .../Plasma/PubUtilLib/plGClip/plGClip.vcproj | 0 .../PubUtilLib/plGImage/plGImage.vcproj | 0 .../PubUtilLib/plGLight/plGLight.vcproj | 0 .../PubUtilLib/plGeometry/plGeometry.vcproj | 0 .../PubUtilLib/plInputCore/plInputCore.vcproj | 0 .../PubUtilLib/plInterp/plInterp.vcproj | 0 .../PubUtilLib/plIntersect/plIntersect.vcproj | 0 .../Plasma/PubUtilLib/plJPEG/plJPEG.vcproj | 0 .../Plasma/PubUtilLib/plMath/plMath.vcproj | 0 .../PubUtilLib/plMessage/plMessage.vcproj | 0 .../PubUtilLib/plModifier/plModifier.vcproj | 0 .../PubUtilLib/plNetClient/PlNetClient.vcproj | 0 .../plNetClientComm/plNetClientComm.vcproj | 0 .../plNetClientRecorder.vcproj | 0 .../PubUtilLib/plNetCommon/plNetCommon.vcproj | 0 .../plNetGameLib/plNetGameLib.vcproj | 0 .../plNetMessage/plNetMessage.vcproj | 0 .../plNetTransport/plNetTransport.vcproj | 0 .../plParticleSystem/plParticleSystem.vcproj | 0 .../Plasma/PubUtilLib/plPhysX/plPhysX.vcproj | 0 .../PubUtilLib/plPhysical/plPhysical.vcproj | 0 .../PubUtilLib/plPipeline/plPipeline.vcproj | 0 .../plProgressMgr/plProgressMgr.vcproj | 0 .../PubUtilLib/plResMgr/plResMgr.vcproj | 0 .../Plasma/PubUtilLib/plSDL/plSDL.vcproj | 0 .../PubUtilLib/plSDLBrowser/placeholder.txt | 0 .../Plasma/PubUtilLib/plScene/plScene.vcproj | 0 .../PubUtilLib/plSockets/plSockets.vcproj | 0 .../plStatGather/plStatGather.vcproj | 0 .../PubUtilLib/plStatusLog/plStatusLog.vcproj | 0 .../plStreamLogger/plStreamLogger.vcproj | 0 .../PubUtilLib/plSurface/plSurface.vcproj | 0 .../PubUtilLib/plTransform/plTransform.vcproj | 0 .../Plasma/PubUtilLib/plUUID/plUUID.vcproj | 0 .../plUnifiedTime/plUnifiedTime.vcproj | 0 .../Plasma/PubUtilLib/plVault/plVault.vcproj | 0 .../plWinStrBlock/plWinStrBlock.vcproj | 0 .../PubUtilLib/plWndCtrls/plWndCtrls.vcproj | 0 .../Plasma/PythonLib/Cypython/placeholder.txt | 0 .../pyNetClientComm/pyNetClientComm.vcproj | 0 .../PythonLib/pyNetClientGame/placeholder.txt | 0 .../Plasma/PythonLib/pyPlasma/pyPlasma.vcproj | 0 .../PythonLib/pyPloticus/pyPloticus.vcproj | 0 .../Plasma/PythonLib/pyVault/pyVault.vcproj | 0 .../Tools/CheckFolderVar/placeholder.txt | 0 .../Tools/MaxComponent/MaxComponent.vcproj | 0 .../Tools/MaxConvert/MaxConvert.vcproj | 0 .../Tools/MaxExport/MaxExport.vcproj | 0 .../Tools/MaxMain/MaxMain.vcproj | 0 .../Tools/MaxMtlUpdate/placeholder.txt | 0 .../MaxPlasmaLights/MaxPlasmaLights.vcproj | 0 .../Tools/MaxPlasmaMtls/MaxPlasmaMtls.vcproj | 0 .../MaxSceneViewer/MaxSceneViewer.vcproj | 0 .../Tools/plDatMerger/placeholder.txt | 0 .../plFontConverter/plFontConverter.vcproj | 0 .../Tools/plResBrowser/placeholder.txt | 0 .../Win32/HawkVoice/lib/HawkVoiceDIstatic.lib | Bin .../Win32/HawkVoice/src/BLOWFISH/Blowfish.001 | 0 .../Win32/HawkVoice/src/BLOWFISH/Blowfish.dsp | 0 .../Win32/HawkVoice/src/BLOWFISH/COPYRIGHT | 0 .../Win32/HawkVoice/src/BLOWFISH/INSTALL | 0 .../Win32/HawkVoice/src/BLOWFISH/Makefile | 0 .../Win32/HawkVoice/src/BLOWFISH/Makefile.ssl | 0 .../Win32/HawkVoice/src/BLOWFISH/Makefile.uni | 0 .../Win32/HawkVoice/src/BLOWFISH/README | 0 .../Win32/HawkVoice/src/BLOWFISH/asm/bf586.pl | 0 .../HawkVoice/src/BLOWFISH/asm/bx86-cpp.s | 0 .../HawkVoice/src/BLOWFISH/asm/bx86unix.cpp | 0 .../Win32/HawkVoice/src/BLOWFISH/asm/readme | 0 .../HawkVoice/src/BLOWFISH/asm/win32.asm | 0 .../Win32/HawkVoice/src/BLOWFISH/asm/x86ms.pl | 0 .../HawkVoice/src/BLOWFISH/asm/x86unix.pl | 0 .../Win32/HawkVoice/src/BLOWFISH/bf_cbc.c | 0 .../Win32/HawkVoice/src/BLOWFISH/bf_cfb64.c | 0 .../Win32/HawkVoice/src/BLOWFISH/bf_ecb.c | 0 .../Win32/HawkVoice/src/BLOWFISH/bf_enc.c | 0 .../Win32/HawkVoice/src/BLOWFISH/bf_locl.h | 0 .../Win32/HawkVoice/src/BLOWFISH/bf_locl.org | 0 .../Win32/HawkVoice/src/BLOWFISH/bf_ofb64.c | 0 .../Win32/HawkVoice/src/BLOWFISH/bf_pi.h | 0 .../Win32/HawkVoice/src/BLOWFISH/bf_skey.c | 0 .../Win32/HawkVoice/src/BLOWFISH/blowfish.doc | 0 .../Win32/HawkVoice/src/BLOWFISH/blowfish.h | 0 .../SDKs => SDKs}/Win32/HawkVoice/src/hvdi.h | 0 .../Cypython-2.3.3/Grammar/.cvsignore | 0 .../XPlatform/Cypython-2.3.3/Grammar/Grammar | 0 .../XPlatform/Cypython-2.3.3/LICENSE | 0 .../Cypython-2.3.3/Modules/.cvsignore | 0 .../Cypython-2.3.3/Modules/Setup.config.in | 0 .../Cypython-2.3.3/Modules/Setup.dist | 0 .../XPlatform/Cypython-2.3.3/Modules/_bsddb.c | 0 .../Cypython-2.3.3/Modules/_codecsmodule.c | 0 .../XPlatform/Cypython-2.3.3/Modules/_csv.c | 0 .../Cypython-2.3.3/Modules/_curses_panel.c | 0 .../Cypython-2.3.3/Modules/_cursesmodule.c | 0 .../Cypython-2.3.3/Modules/_hotshot.c | 0 .../Cypython-2.3.3/Modules/_localemodule.c | 0 .../Cypython-2.3.3/Modules/_randommodule.c | 0 .../XPlatform/Cypython-2.3.3/Modules/_sre.c | 0 .../XPlatform/Cypython-2.3.3/Modules/_ssl.c | 0 .../Cypython-2.3.3/Modules/_testcapimodule.c | 0 .../Cypython-2.3.3/Modules/_tkinter.c | 0 .../Cypython-2.3.3/Modules/_weakref.c | 0 .../Cypython-2.3.3/Modules/addrinfo.h | 0 .../Cypython-2.3.3/Modules/almodule.c | 0 .../XPlatform/Cypython-2.3.3/Modules/ar_beos | 0 .../Cypython-2.3.3/Modules/arraymodule.c | 0 .../Cypython-2.3.3/Modules/audioop.c | 0 .../Cypython-2.3.3/Modules/binascii.c | 0 .../Cypython-2.3.3/Modules/bsddbmodule.c | 0 .../Cypython-2.3.3/Modules/bz2module.c | 0 .../Cypython-2.3.3/Modules/cPickle.c | 0 .../Cypython-2.3.3/Modules/cStringIO.c | 0 .../Cypython-2.3.3/Modules/ccpython.cc | 0 .../Cypython-2.3.3/Modules/cdmodule.c | 0 .../XPlatform/Cypython-2.3.3/Modules/cgen.py | 0 .../Cypython-2.3.3/Modules/cgensupport.c | 0 .../Cypython-2.3.3/Modules/cgensupport.h | 0 .../Cypython-2.3.3/Modules/clmodule.c | 0 .../Cypython-2.3.3/Modules/cmathmodule.c | 0 .../Cypython-2.3.3/Modules/config.c.in | 0 .../Cypython-2.3.3/Modules/cryptmodule.c | 0 .../XPlatform/Cypython-2.3.3/Modules/cstubs | 0 .../Cypython-2.3.3/Modules/datetimemodule.c | 0 .../Cypython-2.3.3/Modules/dbmmodule.c | 0 .../Cypython-2.3.3/Modules/dlmodule.c | 0 .../Cypython-2.3.3/Modules/errnomodule.c | 0 .../Cypython-2.3.3/Modules/expat/Makefile.in | 0 .../Cypython-2.3.3/Modules/expat/ascii.h | 0 .../Cypython-2.3.3/Modules/expat/asciitab.h | 0 .../Cypython-2.3.3/Modules/expat/expat.h | 0 .../Cypython-2.3.3/Modules/expat/iasciitab.h | 0 .../Cypython-2.3.3/Modules/expat/internal.h | 0 .../Cypython-2.3.3/Modules/expat/latin1tab.h | 0 .../Cypython-2.3.3/Modules/expat/macconfig.h | 0 .../Cypython-2.3.3/Modules/expat/nametab.h | 0 .../Cypython-2.3.3/Modules/expat/utf8tab.h | 0 .../Cypython-2.3.3/Modules/expat/winconfig.h | 0 .../Cypython-2.3.3/Modules/expat/xmlparse.c | 0 .../Cypython-2.3.3/Modules/expat/xmlrole.c | 0 .../Cypython-2.3.3/Modules/expat/xmlrole.h | 0 .../Cypython-2.3.3/Modules/expat/xmltok.c | 0 .../Cypython-2.3.3/Modules/expat/xmltok.h | 0 .../Modules/expat/xmltok_impl.c | 0 .../Modules/expat/xmltok_impl.h | 0 .../Cypython-2.3.3/Modules/expat/xmltok_ns.c | 0 .../Cypython-2.3.3/Modules/fcntlmodule.c | 0 .../Cypython-2.3.3/Modules/flmodule.c | 0 .../Cypython-2.3.3/Modules/fmmodule.c | 0 .../Cypython-2.3.3/Modules/fpectlmodule.c | 0 .../Cypython-2.3.3/Modules/fpetestmodule.c | 0 .../Cypython-2.3.3/Modules/gc_weakref.txt | 0 .../Cypython-2.3.3/Modules/gcmodule.c | 0 .../Cypython-2.3.3/Modules/gdbmmodule.c | 0 .../Cypython-2.3.3/Modules/getaddrinfo.c | 0 .../Cypython-2.3.3/Modules/getbuildinfo.c | 0 .../Cypython-2.3.3/Modules/getnameinfo.c | 0 .../Cypython-2.3.3/Modules/getpath.c | 0 .../Cypython-2.3.3/Modules/glmodule.c | 0 .../Cypython-2.3.3/Modules/grpmodule.c | 0 .../Cypython-2.3.3/Modules/imageop.c | 0 .../Cypython-2.3.3/Modules/imgfile.c | 0 .../Cypython-2.3.3/Modules/itertoolsmodule.c | 0 .../Cypython-2.3.3/Modules/ld_so_aix | 0 .../Cypython-2.3.3/Modules/ld_so_beos | 0 .../Cypython-2.3.3/Modules/linuxaudiodev.c | 0 .../XPlatform/Cypython-2.3.3/Modules/main.c | 0 .../Cypython-2.3.3/Modules/makesetup | 0 .../Cypython-2.3.3/Modules/makexp_aix | 0 .../Cypython-2.3.3/Modules/mathmodule.c | 0 .../XPlatform/Cypython-2.3.3/Modules/md5.h | 0 .../XPlatform/Cypython-2.3.3/Modules/md5c.c | 0 .../Cypython-2.3.3/Modules/md5module.c | 0 .../Cypython-2.3.3/Modules/mmapmodule.c | 0 .../Cypython-2.3.3/Modules/mpzmodule.c | 0 .../Cypython-2.3.3/Modules/nismodule.c | 0 .../Cypython-2.3.3/Modules/operator.c | 0 .../Cypython-2.3.3/Modules/ossaudiodev.c | 0 .../Cypython-2.3.3/Modules/parsermodule.c | 0 .../Cypython-2.3.3/Modules/pcre-int.h | 0 .../XPlatform/Cypython-2.3.3/Modules/pcre.h | 0 .../Cypython-2.3.3/Modules/pcremodule.c | 0 .../Cypython-2.3.3/Modules/posixmodule.c | 0 .../Cypython-2.3.3/Modules/puremodule.c | 0 .../Cypython-2.3.3/Modules/pwdmodule.c | 0 .../Cypython-2.3.3/Modules/pyexpat.c | 0 .../XPlatform/Cypython-2.3.3/Modules/pypcre.c | 0 .../XPlatform/Cypython-2.3.3/Modules/python.c | 0 .../Cypython-2.3.3/Modules/readline.c | 0 .../Cypython-2.3.3/Modules/regexmodule.c | 0 .../Cypython-2.3.3/Modules/regexpr.c | 0 .../Cypython-2.3.3/Modules/regexpr.h | 0 .../Cypython-2.3.3/Modules/resource.c | 0 .../Cypython-2.3.3/Modules/rgbimgmodule.c | 0 .../Cypython-2.3.3/Modules/rotormodule.c | 0 .../Cypython-2.3.3/Modules/selectmodule.c | 0 .../Cypython-2.3.3/Modules/sgimodule.c | 0 .../Cypython-2.3.3/Modules/shamodule.c | 0 .../Cypython-2.3.3/Modules/signalmodule.c | 0 .../Cypython-2.3.3/Modules/socketmodule.c | 0 .../Cypython-2.3.3/Modules/socketmodule.h | 0 .../XPlatform/Cypython-2.3.3/Modules/sre.h | 0 .../Cypython-2.3.3/Modules/sre_constants.h | 0 .../Cypython-2.3.3/Modules/stropmodule.c | 0 .../Cypython-2.3.3/Modules/structmodule.c | 0 .../Cypython-2.3.3/Modules/sunaudiodev.c | 0 .../Cypython-2.3.3/Modules/svmodule.c | 0 .../Cypython-2.3.3/Modules/symtablemodule.c | 0 .../Cypython-2.3.3/Modules/syslogmodule.c | 0 .../Cypython-2.3.3/Modules/termios.c | 0 .../Cypython-2.3.3/Modules/testcapi_long.h | 0 .../Cypython-2.3.3/Modules/threadmodule.c | 0 .../Cypython-2.3.3/Modules/timemodule.c | 0 .../XPlatform/Cypython-2.3.3/Modules/timing.h | 0 .../Cypython-2.3.3/Modules/timingmodule.c | 0 .../Cypython-2.3.3/Modules/tkappinit.c | 0 .../Cypython-2.3.3/Modules/unicodedata.c | 0 .../Cypython-2.3.3/Modules/unicodedata_db.h | 0 .../Cypython-2.3.3/Modules/unicodename_db.h | 0 .../Cypython-2.3.3/Modules/xreadlinesmodule.c | 0 .../Cypython-2.3.3/Modules/xxmodule.c | 0 .../Cypython-2.3.3/Modules/xxsubtype.c | 0 .../XPlatform/Cypython-2.3.3/Modules/yuv.h | 0 .../Cypython-2.3.3/Modules/yuvconvert.c | 0 .../Cypython-2.3.3/Modules/zipimport.c | 0 .../Cypython-2.3.3/Modules/zlibmodule.c | 0 .../Cypython-2.3.3/Objects/.cvsignore | 0 .../Cypython-2.3.3/Objects/abstract.c | 0 .../Cypython-2.3.3/Objects/boolobject.c | 0 .../Cypython-2.3.3/Objects/bufferobject.c | 0 .../Cypython-2.3.3/Objects/cellobject.c | 0 .../Cypython-2.3.3/Objects/classobject.c | 0 .../Cypython-2.3.3/Objects/cobject.c | 0 .../Cypython-2.3.3/Objects/complexobject.c | 0 .../Cypython-2.3.3/Objects/descrobject.c | 0 .../Cypython-2.3.3/Objects/dictnotes.txt | 0 .../Cypython-2.3.3/Objects/dictobject.c | 0 .../Cypython-2.3.3/Objects/enumobject.c | 0 .../Cypython-2.3.3/Objects/fileobject.c | 0 .../Cypython-2.3.3/Objects/floatobject.c | 0 .../Cypython-2.3.3/Objects/frameobject.c | 0 .../Cypython-2.3.3/Objects/funcobject.c | 0 .../Cypython-2.3.3/Objects/intobject.c | 0 .../Cypython-2.3.3/Objects/iterobject.c | 0 .../Cypython-2.3.3/Objects/listobject.c | 0 .../Cypython-2.3.3/Objects/listsort.txt | 0 .../Cypython-2.3.3/Objects/longobject.c | 0 .../Cypython-2.3.3/Objects/methodobject.c | 0 .../Cypython-2.3.3/Objects/moduleobject.c | 0 .../XPlatform/Cypython-2.3.3/Objects/object.c | 0 .../Cypython-2.3.3/Objects/obmalloc.c | 0 .../Cypython-2.3.3/Objects/rangeobject.c | 0 .../Cypython-2.3.3/Objects/sliceobject.c | 0 .../Cypython-2.3.3/Objects/stringobject.c | 0 .../Cypython-2.3.3/Objects/structseq.c | 0 .../Cypython-2.3.3/Objects/tupleobject.c | 0 .../Cypython-2.3.3/Objects/typeobject.c | 0 .../Cypython-2.3.3/Objects/unicodectype.c | 0 .../Cypython-2.3.3/Objects/unicodeobject.c | 0 .../Cypython-2.3.3/Objects/unicodetype_db.h | 0 .../Cypython-2.3.3/Objects/weakrefobject.c | 0 .../XPlatform/Cypython-2.3.3/PC/.cvsignore | 0 .../Cypython-2.3.3/PC/PlasmaPack.cpp | 0 .../XPlatform/Cypython-2.3.3/PC/PlasmaPack.h | 0 .../XPlatform/Cypython-2.3.3/PC/WinMain.c | 0 .../XPlatform/Cypython-2.3.3/PC/_winreg.c | 0 .../PC/bdist_wininst/.cvsignore | 0 .../PC/bdist_wininst/PythonPowered.bmp | Bin .../PC/bdist_wininst/README.txt | 0 .../Cypython-2.3.3/PC/bdist_wininst/archive.h | 0 .../Cypython-2.3.3/PC/bdist_wininst/extract.c | 0 .../Cypython-2.3.3/PC/bdist_wininst/install.c | 0 .../PC/bdist_wininst/install.rc | 0 .../PC/bdist_wininst/resource.h | 0 .../PC/bdist_wininst/wininst.dsp | 0 .../PC/bdist_wininst/wininst.dsw | 0 .../XPlatform/Cypython-2.3.3/PC/config.c | 0 .../XPlatform/Cypython-2.3.3/PC/dl_nt.c | 0 .../Cypython-2.3.3/PC/dllbase_nt.txt | 0 .../Cypython-2.3.3/PC/example_nt/.cvsignore | 0 .../Cypython-2.3.3/PC/example_nt/example.c | 0 .../Cypython-2.3.3/PC/example_nt/example.def | 0 .../Cypython-2.3.3/PC/example_nt/example.dsp | 0 .../Cypython-2.3.3/PC/example_nt/example.dsw | 0 .../Cypython-2.3.3/PC/example_nt/readme.txt | 0 .../Cypython-2.3.3/PC/frozen_dllmain.c | 0 .../XPlatform/Cypython-2.3.3/PC/getpathp.c | 0 .../XPlatform/Cypython-2.3.3/PC/import_nt.c | 0 .../Cypython-2.3.3/PC/make_versioninfo.c | 0 .../Cypython-2.3.3/PC/msvcrtmodule.c | 0 .../Cypython-2.3.3/PC/os2emx/Makefile | 0 .../Cypython-2.3.3/PC/os2emx/README.os2emx | 0 .../Cypython-2.3.3/PC/os2emx/config.c | 0 .../Cypython-2.3.3/PC/os2emx/dlfcn.c | 0 .../Cypython-2.3.3/PC/os2emx/dlfcn.h | 0 .../Cypython-2.3.3/PC/os2emx/dllentry.c | 0 .../Cypython-2.3.3/PC/os2emx/getpathp.c | 0 .../Cypython-2.3.3/PC/os2emx/pyconfig.h | 0 .../Cypython-2.3.3/PC/os2emx/python23.def | 0 .../Cypython-2.3.3/PC/os2emx/pythonpm.c | 0 .../Cypython-2.3.3/PC/os2vacpp/_tkinter.def | 0 .../Cypython-2.3.3/PC/os2vacpp/config.c | 0 .../Cypython-2.3.3/PC/os2vacpp/getpathp.c | 0 .../Cypython-2.3.3/PC/os2vacpp/makefile | 0 .../Cypython-2.3.3/PC/os2vacpp/makefile.omk | 0 .../Cypython-2.3.3/PC/os2vacpp/pyconfig.h | 0 .../Cypython-2.3.3/PC/os2vacpp/python.def | 0 .../Cypython-2.3.3/PC/os2vacpp/readme.txt | 0 .../XPlatform/Cypython-2.3.3/PC/py.ico | Bin .../XPlatform/Cypython-2.3.3/PC/pyc.ico | Bin .../XPlatform/Cypython-2.3.3/PC/pycon.ico | Bin .../XPlatform/Cypython-2.3.3/PC/python.mk | 0 .../XPlatform/Cypython-2.3.3/PC/python_exe.rc | 0 .../XPlatform/Cypython-2.3.3/PC/python_nt.rc | 0 .../XPlatform/Cypython-2.3.3/PC/pythonnt_rc.h | 0 .../Cypython-2.3.3/PC/pythonnt_rc_d.h | 0 .../XPlatform/Cypython-2.3.3/PC/readme.txt | 0 .../XPlatform/Cypython-2.3.3/PC/testpy.py | 0 .../XPlatform/Cypython-2.3.3/PC/w9xpopen.c | 0 .../XPlatform/Cypython-2.3.3/PC/winsound.c | 0 .../Cypython-2.3.3/PCbuild/.cvsignore | 0 .../Cypython-2.3.3/PCbuild/BUILDno.txt | 0 .../Cypython-2.3.3/PCbuild/Uninstal.wse | 0 .../Cypython-2.3.3/PCbuild/_bsddb.dsp | 0 .../XPlatform/Cypython-2.3.3/PCbuild/_csv.dsp | 0 .../Cypython-2.3.3/PCbuild/_socket.dsp | 0 .../XPlatform/Cypython-2.3.3/PCbuild/_sre.dsp | 0 .../Cypython-2.3.3/PCbuild/_sre_static.vcproj | 0 .../XPlatform/Cypython-2.3.3/PCbuild/_ssl.dsp | 0 .../XPlatform/Cypython-2.3.3/PCbuild/_ssl.mak | 0 .../Cypython-2.3.3/PCbuild/_symtable.dsp | 0 .../Cypython-2.3.3/PCbuild/_testcapi.dsp | 0 .../Cypython-2.3.3/PCbuild/_tkinter.dsp | 0 .../Cypython-2.3.3/PCbuild/build_ssl.py | 0 .../XPlatform/Cypython-2.3.3/PCbuild/bz2.dsp | 0 .../Cypython-2.3.3/PCbuild/datetime.dsp | 0 .../Cypython-2.3.3/PCbuild/field3.py | 0 .../Cypython-2.3.3/PCbuild/installer.bmp | Bin .../XPlatform/Cypython-2.3.3/PCbuild/mmap.dsp | 0 .../Cypython-2.3.3/PCbuild/parser.dsp | 0 .../Cypython-2.3.3/PCbuild/pcbuild.dsw | 0 .../Cypython-2.3.3/PCbuild/pyexpat.dsp | 0 .../Cypython-2.3.3/PCbuild/python.dsp | 0 .../Cypython-2.3.3/PCbuild/python.iss | 0 .../Cypython-2.3.3/PCbuild/python20.wse | 0 .../Cypython-2.3.3/PCbuild/pythoncore.dsp | 0 .../Cypython-2.3.3/PCbuild/pythoncore.vcproj | 0 .../PCbuild/pythoncore_dyn_server.vcproj | 0 .../PCbuild/pythoncore_static.vcproj | 0 .../Cypython-2.3.3/PCbuild/pythonw.dsp | 0 .../Cypython-2.3.3/PCbuild/readme.txt | 0 .../XPlatform/Cypython-2.3.3/PCbuild/rmpyc.py | 0 .../XPlatform/Cypython-2.3.3/PCbuild/rt.bat | 0 .../Cypython-2.3.3/PCbuild/select.dsp | 0 .../Cypython-2.3.3/PCbuild/unicodedata.dsp | 0 .../Cypython-2.3.3/PCbuild/w9xpopen.dsp | 0 .../Cypython-2.3.3/PCbuild/winreg.dsp | 0 .../Cypython-2.3.3/PCbuild/winsound.dsp | 0 .../XPlatform/Cypython-2.3.3/PCbuild/zlib.dsp | 0 .../Cypython-2.3.3/Parser/.cvsignore | 0 .../XPlatform/Cypython-2.3.3/Parser/acceler.c | 0 .../XPlatform/Cypython-2.3.3/Parser/bitset.c | 0 .../Cypython-2.3.3/Parser/firstsets.c | 0 .../XPlatform/Cypython-2.3.3/Parser/grammar.c | 0 .../Cypython-2.3.3/Parser/grammar.mak | 0 .../Cypython-2.3.3/Parser/grammar1.c | 0 .../Cypython-2.3.3/Parser/intrcheck.c | 0 .../Cypython-2.3.3/Parser/listnode.c | 0 .../Cypython-2.3.3/Parser/metagrammar.c | 0 .../Cypython-2.3.3/Parser/myreadline.c | 0 .../XPlatform/Cypython-2.3.3/Parser/node.c | 0 .../XPlatform/Cypython-2.3.3/Parser/parser.c | 0 .../XPlatform/Cypython-2.3.3/Parser/parser.h | 0 .../Cypython-2.3.3/Parser/parsetok.c | 0 .../XPlatform/Cypython-2.3.3/Parser/pgen.c | 0 .../Cypython-2.3.3/Parser/pgenmain.c | 0 .../Cypython-2.3.3/Parser/printgrammar.c | 0 .../Cypython-2.3.3/Parser/tokenizer.c | 0 .../Cypython-2.3.3/Parser/tokenizer.h | 0 .../Cypython-2.3.3/Parser/tokenizer_pgen.c | 0 .../Cypython-2.3.3/Python/.cvsignore | 0 .../XPlatform/Cypython-2.3.3/Python/atof.c | 0 .../Cypython-2.3.3/Python/bltinmodule.c | 0 .../XPlatform/Cypython-2.3.3/Python/ceval.c | 0 .../XPlatform/Cypython-2.3.3/Python/codecs.c | 0 .../XPlatform/Cypython-2.3.3/Python/compile.c | 0 .../XPlatform/Cypython-2.3.3/Python/dup2.c | 0 .../Cypython-2.3.3/Python/dynload_aix.c | 0 .../Cypython-2.3.3/Python/dynload_atheos.c | 0 .../Cypython-2.3.3/Python/dynload_beos.c | 0 .../Cypython-2.3.3/Python/dynload_dl.c | 0 .../Cypython-2.3.3/Python/dynload_hpux.c | 0 .../Cypython-2.3.3/Python/dynload_mac.c | 0 .../Cypython-2.3.3/Python/dynload_next.c | 0 .../Cypython-2.3.3/Python/dynload_os2.c | 0 .../Cypython-2.3.3/Python/dynload_shlib.c | 0 .../Cypython-2.3.3/Python/dynload_stub.c | 0 .../Cypython-2.3.3/Python/dynload_win.c | 0 .../XPlatform/Cypython-2.3.3/Python/errors.c | 0 .../Cypython-2.3.3/Python/exceptions.c | 0 .../XPlatform/Cypython-2.3.3/Python/fmod.c | 0 .../XPlatform/Cypython-2.3.3/Python/frozen.c | 0 .../Cypython-2.3.3/Python/frozenmain.c | 0 .../XPlatform/Cypython-2.3.3/Python/future.c | 0 .../XPlatform/Cypython-2.3.3/Python/getargs.c | 0 .../Cypython-2.3.3/Python/getcompiler.c | 0 .../Cypython-2.3.3/Python/getcopyright.c | 0 .../XPlatform/Cypython-2.3.3/Python/getcwd.c | 0 .../Cypython-2.3.3/Python/getmtime.c | 0 .../XPlatform/Cypython-2.3.3/Python/getopt.c | 0 .../Cypython-2.3.3/Python/getplatform.c | 0 .../Cypython-2.3.3/Python/getversion.c | 0 .../Cypython-2.3.3/Python/graminit.c | 0 .../XPlatform/Cypython-2.3.3/Python/hypot.c | 0 .../XPlatform/Cypython-2.3.3/Python/import.c | 0 .../Cypython-2.3.3/Python/import_pack.c | 0 .../Cypython-2.3.3/Python/importdl.c | 0 .../Cypython-2.3.3/Python/importdl.h | 0 .../Cypython-2.3.3/Python/mactoolboxglue.c | 0 .../XPlatform/Cypython-2.3.3/Python/marshal.c | 0 .../XPlatform/Cypython-2.3.3/Python/memmove.c | 0 .../Cypython-2.3.3/Python/modsupport.c | 0 .../Cypython-2.3.3/Python/mysnprintf.c | 0 .../Cypython-2.3.3/Python/mystrtoul.c | 0 .../XPlatform/Cypython-2.3.3/Python/pyfpe.c | 0 .../XPlatform/Cypython-2.3.3/Python/pystate.c | 0 .../Cypython-2.3.3/Python/pythonrun.c | 0 .../Cypython-2.3.3/Python/sigcheck.c | 0 .../XPlatform/Cypython-2.3.3/Python/strdup.c | 0 .../Cypython-2.3.3/Python/strerror.c | 0 .../XPlatform/Cypython-2.3.3/Python/strtod.c | 0 .../Cypython-2.3.3/Python/structmember.c | 0 .../Cypython-2.3.3/Python/symtable.c | 0 .../Cypython-2.3.3/Python/sysmodule.c | 0 .../XPlatform/Cypython-2.3.3/Python/thread.c | 0 .../Cypython-2.3.3/Python/thread_atheos.h | 0 .../Cypython-2.3.3/Python/thread_beos.h | 0 .../Cypython-2.3.3/Python/thread_cthread.h | 0 .../Cypython-2.3.3/Python/thread_foobar.h | 0 .../Cypython-2.3.3/Python/thread_lwp.h | 0 .../Cypython-2.3.3/Python/thread_nt.h | 0 .../Cypython-2.3.3/Python/thread_os2.h | 0 .../Cypython-2.3.3/Python/thread_pth.h | 0 .../Cypython-2.3.3/Python/thread_pthread.h | 0 .../Cypython-2.3.3/Python/thread_sgi.h | 0 .../Cypython-2.3.3/Python/thread_solaris.h | 0 .../Cypython-2.3.3/Python/thread_wince.h | 0 .../Cypython-2.3.3/Python/traceback.c | 0 .../XPlatform/Cypython-2.3.3/README | 0 .../XboxBuild/_sre_static.vcproj | 0 .../XboxBuild/pythoncore_static.vcproj | 0 .../XPlatform/Cypython-2.3.3/include/Python.h | 0 .../Cypython-2.3.3/include/abstract.h | 0 .../XPlatform/Cypython-2.3.3/include/bitset.h | 0 .../Cypython-2.3.3/include/boolobject.h | 0 .../Cypython-2.3.3/include/bufferobject.h | 0 .../Cypython-2.3.3/include/cStringIO.h | 0 .../Cypython-2.3.3/include/cellobject.h | 0 .../XPlatform/Cypython-2.3.3/include/ceval.h | 0 .../Cypython-2.3.3/include/classobject.h | 0 .../Cypython-2.3.3/include/cobject.h | 0 .../XPlatform/Cypython-2.3.3/include/codecs.h | 0 .../Cypython-2.3.3/include/compile.h | 0 .../Cypython-2.3.3/include/complexobject.h | 0 .../Cypython-2.3.3/include/datetime.h | 0 .../Cypython-2.3.3/include/descrobject.h | 0 .../Cypython-2.3.3/include/dictobject.h | 0 .../Cypython-2.3.3/include/enumobject.h | 0 .../Cypython-2.3.3/include/errcode.h | 0 .../XPlatform/Cypython-2.3.3/include/eval.h | 0 .../Cypython-2.3.3/include/fileobject.h | 0 .../Cypython-2.3.3/include/floatobject.h | 0 .../Cypython-2.3.3/include/frameobject.h | 0 .../Cypython-2.3.3/include/funcobject.h | 0 .../Cypython-2.3.3/include/graminit.h | 0 .../Cypython-2.3.3/include/grammar.h | 0 .../XPlatform/Cypython-2.3.3/include/import.h | 0 .../Cypython-2.3.3/include/intobject.h | 0 .../Cypython-2.3.3/include/intrcheck.h | 0 .../Cypython-2.3.3/include/iterobject.h | 0 .../Cypython-2.3.3/include/listobject.h | 0 .../Cypython-2.3.3/include/longintrepr.h | 0 .../Cypython-2.3.3/include/longobject.h | 0 .../Cypython-2.3.3/include/marshal.h | 0 .../Cypython-2.3.3/include/metagrammar.h | 0 .../Cypython-2.3.3/include/methodobject.h | 0 .../Cypython-2.3.3/include/modsupport.h | 0 .../Cypython-2.3.3/include/moduleobject.h | 0 .../XPlatform/Cypython-2.3.3/include/node.h | 0 .../XPlatform/Cypython-2.3.3/include/object.h | 0 .../Cypython-2.3.3/include/objimpl.h | 0 .../XPlatform/Cypython-2.3.3/include/opcode.h | 0 .../XPlatform/Cypython-2.3.3/include/osdefs.h | 0 .../Cypython-2.3.3/include/parsetok.h | 0 .../Cypython-2.3.3/include/patchlevel.h | 0 .../XPlatform/Cypython-2.3.3/include/pgen.h | 0 .../Cypython-2.3.3/include/pgenheaders.h | 0 .../Cypython-2.3.3/include/py_curses.h | 0 .../Cypython-2.3.3/include/pydebug.h | 0 .../Cypython-2.3.3/include/pyerrors.h | 0 .../XPlatform/Cypython-2.3.3/include/pyfpe.h | 0 .../Cypython-2.3.3/include/pygetopt.h | 0 .../Cypython-2.3.3/include/pymactoolbox.h | 0 .../XPlatform/Cypython-2.3.3/include/pymem.h | 0 .../XPlatform/Cypython-2.3.3/include/pyport.h | 0 .../Cypython-2.3.3/include/pystate.h | 0 .../Cypython-2.3.3/include/pythonrun.h | 0 .../Cypython-2.3.3/include/pythread.h | 0 .../Cypython-2.3.3/include/rangeobject.h | 0 .../Cypython-2.3.3/include/sliceobject.h | 0 .../Cypython-2.3.3/include/stringobject.h | 0 .../Cypython-2.3.3/include/structmember.h | 0 .../Cypython-2.3.3/include/structseq.h | 0 .../Cypython-2.3.3/include/symtable.h | 0 .../Cypython-2.3.3/include/sysmodule.h | 0 .../XPlatform/Cypython-2.3.3/include/token.h | 0 .../Cypython-2.3.3/include/traceback.h | 0 .../Cypython-2.3.3/include/tupleobject.h | 0 .../Cypython-2.3.3/include/ucnhash.h | 0 .../Cypython-2.3.3/include/unicodeobject.h | 0 .../Cypython-2.3.3/include/weakrefobject.h | 0 .../Cypython-2.3.3/pyconfig_dyn/pyconfig.h | 0 .../Cypython-2.3.3/pyconfig_static/pyconfig.h | 0 .../Installer/LargeMOUL.nsi | 0 .../Scripts => Scripts}/Installer/MOUL.nsi | 0 .../Installer/MOULInstaller.exe | Bin .../Scripts => Scripts}/Max/PlasmaExport.ms | 0 .../Python/plasma/Plasma.py | 0 .../Python/plasma/PlasmaConstants.py | 0 .../Python/plasma/PlasmaControlKeys.py | 0 .../Python/plasma/PlasmaGame.py | 0 .../Python/plasma/PlasmaGameConstants.py | 0 .../Python/plasma/PlasmaKITypes.py | 0 .../Python/plasma/PlasmaNetConstants.py | 0 .../Python/plasma/PlasmaTypes.py | 0 .../Python/plasma/PlasmaVaultConstants.py | 0 .../Scripts => Scripts}/Python/plasma/glue.py | 0 .../Scripts => Scripts}/Python/plasma/pch.py | 0 .../Python/plasma/ptWordFilter.py | 0 .../Python/system/Bastion.py | 0 .../Python/system/ConfigParser.py | 0 .../Python/system/HTMLParser.py | 0 .../Python/system/StringIO.py | 0 .../Python/system/UserDict.py | 0 .../Python/system/__future__.py | 0 .../Python/system/ascii.py | 0 .../Python/system/atexit.py | 0 .../Scripts => Scripts}/Python/system/bdb.py | 0 .../Python/system/bisect.py | 0 .../Python/system/calendar.py | 0 .../Scripts => Scripts}/Python/system/cmd.py | 0 .../Python/system/codecs.py | 0 .../Python/system/colorsys.py | 0 .../Python/system/commands.py | 0 .../Python/system/compileall.py | 0 .../Scripts => Scripts}/Python/system/copy.py | 0 .../Python/system/copy_reg.py | 0 .../Python/system/decompyle.py | 0 .../Python/system/difflib.py | 0 .../Python/system/dircache.py | 0 .../Scripts => Scripts}/Python/system/dis.py | 0 .../Python/system/dospath.py | 0 .../Python/system/encoding_utf_8.py | 0 .../Python/system/encodings.py | 0 .../Python/system/filecmp.py | 0 .../Python/system/fileinput.py | 0 .../Python/system/fnmatch.py | 0 .../Python/system/fpformat.py | 0 .../Python/system/getopt.py | 0 .../Python/system/gettext.py | 0 .../Scripts => Scripts}/Python/system/glob.py | 0 .../Python/system/ihooks.py | 0 .../Python/system/imghdr.py | 0 .../Python/system/imputil.py | 0 .../Python/system/inspect.py | 0 .../Python/system/keyword.py | 0 .../Scripts => Scripts}/Python/system/knee.py | 0 .../Python/system/linecache.py | 0 .../Python/system/locale.py | 0 .../Python/system/markupbase.py | 0 .../Python/system/mutex.py | 0 .../Python/system/netrc.py | 0 .../Python/system/ntpath.py | 0 .../Python/system/opcode.py | 0 .../Scripts => Scripts}/Python/system/os.py | 0 .../Scripts => Scripts}/Python/system/pdb.py | 0 .../Python/system/pickle.py | 0 .../Python/system/popen2.py | 0 .../Python/system/posixpath.py | 0 .../Scripts => Scripts}/Python/system/pre.py | 0 .../Python/system/profile.py | 0 .../Python/system/pstats.py | 0 .../Python/system/py_compile.py | 0 .../Python/system/pyclbr.py | 0 .../Python/system/random.py | 0 .../Scripts => Scripts}/Python/system/re.py | 0 .../Python/system/regex_syntax.py | 0 .../Scripts => Scripts}/Python/system/repr.py | 0 .../Python/system/shlex.py | 0 .../Python/system/shutil.py | 0 .../Scripts => Scripts}/Python/system/site.py | 0 .../Python/system/spark.py | 0 .../Scripts => Scripts}/Python/system/sre.py | 0 .../Python/system/sre_compile.py | 0 .../Python/system/sre_constants.py | 0 .../Python/system/sre_parse.py | 0 .../Scripts => Scripts}/Python/system/stat.py | 0 .../Python/system/statcache.py | 0 .../Python/system/string.py | 0 .../Python/system/symbol.py | 0 .../Python/system/tabnanny.py | 0 .../Python/system/token.py | 0 .../Python/system/tokenize.py | 0 .../Python/system/traceback.py | 0 .../Python/system/types.py | 0 .../Python/system/verify.py | 0 .../Python/system/warnings.py | 0 .../Python/system/weakref.py | 0 .../Python/system/webbrowser.py | 0 .../Python/system/whrandom.py | 0 .../python/Do_Not_Load_Neighborhood.py | 0 .../python/Do_Not_Load_RestorationGuild.py | 0 .../python/plasma/placeholder.txt | 0 .../ServerPython/python/system/Bastion.py | 0 .../python/system/ConfigParser.py | 0 .../ServerPython/python/system/StringIO.py | 0 .../ServerPython/python/system/__future__.py | 0 .../ServerPython/python/system/_sre.pyd | Bin .../ServerPython/python/system/_sre_d.pyd | Bin .../ServerPython/python/system/atexit.py | 0 .../ServerPython/python/system/bdb.py | 0 .../ServerPython/python/system/bisect.py | 0 .../ServerPython/python/system/calendar.py | 0 .../ServerPython/python/system/cmd.py | 0 .../ServerPython/python/system/codecs.py | 0 .../ServerPython/python/system/colorsys.py | 0 .../ServerPython/python/system/commands.py | 0 .../ServerPython/python/system/compileall.py | 0 .../ServerPython/python/system/copy.py | 0 .../ServerPython/python/system/copy_reg.py | 0 .../ServerPython/python/system/decompyle.py | 0 .../ServerPython/python/system/difflib.py | 0 .../ServerPython/python/system/dircache.py | 0 .../ServerPython/python/system/dis.py | 0 .../ServerPython/python/system/dospath.py | 0 .../ServerPython/python/system/filecmp.py | 0 .../ServerPython/python/system/fileinput.py | 0 .../ServerPython/python/system/fnmatch.py | 0 .../ServerPython/python/system/fpformat.py | 0 .../ServerPython/python/system/getopt.py | 0 .../ServerPython/python/system/gettext.py | 0 .../ServerPython/python/system/glob.py | 0 .../ServerPython/python/system/ihooks.py | 0 .../ServerPython/python/system/imghdr.py | 0 .../ServerPython/python/system/imputil.py | 0 .../ServerPython/python/system/inspect.py | 0 .../ServerPython/python/system/keyword.py | 0 .../ServerPython/python/system/knee.py | 0 .../ServerPython/python/system/linecache.py | 0 .../ServerPython/python/system/locale.py | 0 .../ServerPython/python/system/mutex.py | 0 .../ServerPython/python/system/netrc.py | 0 .../ServerPython/python/system/ntpath.py | 0 .../ServerPython/python/system/os.py | 0 .../ServerPython/python/system/pdb.py | 0 .../ServerPython/python/system/pickle.py | 0 .../ServerPython/python/system/popen2.py | 0 .../ServerPython/python/system/posixpath.py | 0 .../ServerPython/python/system/pre.py | 0 .../ServerPython/python/system/profile.py | 0 .../ServerPython/python/system/pstats.py | 0 .../ServerPython/python/system/py_compile.py | 0 .../ServerPython/python/system/pyclbr.py | 0 .../ServerPython/python/system/random.py | 0 .../ServerPython/python/system/re.py | 0 .../python/system/regex_syntax.py | 0 .../ServerPython/python/system/repr.py | 0 .../ServerPython/python/system/shlex.py | 0 .../ServerPython/python/system/shutil.py | 0 .../ServerPython/python/system/site.py | 0 .../ServerPython/python/system/spark.py | 0 .../ServerPython/python/system/sre.py | 0 .../ServerPython/python/system/sre_compile.py | 0 .../python/system/sre_constants.py | 0 .../ServerPython/python/system/sre_parse.py | 0 .../ServerPython/python/system/stat.py | 0 .../ServerPython/python/system/statcache.py | 0 .../ServerPython/python/system/string.py | 0 .../ServerPython/python/system/symbol.py | 0 .../ServerPython/python/system/tabnanny.py | 0 .../ServerPython/python/system/token.py | 0 .../ServerPython/python/system/tokenize.py | 0 .../ServerPython/python/system/traceback.py | 0 .../ServerPython/python/system/types.py | 0 .../ServerPython/python/system/verify.py | 0 .../ServerPython/python/system/warnings.py | 0 .../ServerPython/python/system/weakref.py | 0 .../ServerPython/python/system/whrandom.py | 0 .../Plasma/Apps/CMakeLists.txt | 0 .../Plasma/Apps/plClient/CMakeLists.txt | 0 .../Plasma/Apps/plClient/pfAllCreatables.cpp | 0 .../Plasma/Apps/plClient/plAllCreatables.cpp | 0 .../Plasma/Apps/plClient/plClient.cpp | 0 .../Plasma/Apps/plClient/plClient.h | 0 .../Plasma/Apps/plClient/plClientCreatable.h | 0 .../Apps/plClient/plClientUpdateFormat.h | 0 .../Plasma/Apps/plClient/plSimStateMsg.h | 0 .../Plasma/Apps/plClient/pnAllCreatables.cpp | 0 .../Plasma/Apps/plClient/res/Dirt.ICO | Bin .../Plasma/Apps/plClient/res/Microphone.bmp | Bin .../Plasma/Apps/plClient/res/Speaker.bmp | Bin .../Plasma/Apps/plClient/res/banner.bmp | Bin .../Plasma/Apps/plClient/res/bitmap1.bmp | Bin .../Plasma/Apps/plClient/res/bitmap2.bmp | Bin .../Plasma/Apps/plClient/res/bitmap3.bmp | Bin .../Plasma/Apps/plClient/res/bmp00001.bmp | Bin .../Plasma/Apps/plClient/res/bmp00002.bmp | Bin .../Plasma/Apps/plClient/res/bmp00003.bmp | Bin .../Plasma/Apps/plClient/res/bmp00004.bmp | Bin .../Plasma/Apps/plClient/res/bmp00005.bmp | Bin .../Plasma/Apps/plClient/res/book.bmp | Bin .../Plasma/Apps/plClient/res/book_cli.bmp | Bin .../Plasma/Apps/plClient/res/book_hig.bmp | Bin .../Plasma/Apps/plClient/res/cnsl1.bin | 0 .../Apps/plClient/res/cursor_clicked.bmp | Bin .../Apps/plClient/res/cursor_disabled.bmp | Bin .../Plasma/Apps/plClient/res/cursor_down.bmp | Bin .../Plasma/Apps/plClient/res/cursor_grab.bmp | Bin .../Plasma/Apps/plClient/res/cursor_left.bmp | Bin .../Plasma/Apps/plClient/res/cursor_open.bmp | Bin .../Apps/plClient/res/cursor_poised.bmp | Bin .../Plasma/Apps/plClient/res/cursor_right.bmp | Bin .../Plasma/Apps/plClient/res/cursor_u.bmp | Bin .../Plasma/Apps/plClient/res/cursor_up.bmp | Bin .../Apps/plClient/res/cursor_upward.bmp | Bin .../Plasma/Apps/plClient/res/headspin.ico | Bin .../Apps/plClient/res/plClient.exe.manifest | 0 .../Plasma/Apps/plClient/res/plClient.rc | 0 .../Plasma/Apps/plClient/res/resource.h | 0 .../Apps/plClient/res/xLoading_Linking.01.jpg | Bin .../Apps/plClient/res/xLoading_Linking.02.jpg | Bin .../Apps/plClient/res/xLoading_Linking.03.jpg | Bin .../Apps/plClient/res/xLoading_Linking.04.jpg | Bin .../Apps/plClient/res/xLoading_Linking.05.jpg | Bin .../Apps/plClient/res/xLoading_Linking.06.jpg | Bin .../Apps/plClient/res/xLoading_Linking.07.jpg | Bin .../Apps/plClient/res/xLoading_Linking.08.jpg | Bin .../Apps/plClient/res/xLoading_Linking.09.jpg | Bin .../Apps/plClient/res/xLoading_Linking.10.jpg | Bin .../Apps/plClient/res/xLoading_Linking.11.jpg | Bin .../Apps/plClient/res/xLoading_Linking.12.jpg | Bin .../Apps/plClient/res/xLoading_Linking.13.jpg | Bin .../Apps/plClient/res/xLoading_Linking.14.jpg | Bin .../Apps/plClient/res/xLoading_Linking.15.jpg | Bin .../Apps/plClient/res/xLoading_Linking.16.jpg | Bin .../Apps/plClient/res/xLoading_Linking.17.jpg | Bin .../Apps/plClient/res/xLoading_Linking.18.jpg | Bin .../plClient/res/xLoading_Linking_Text.jpg | Bin .../plClient/res/xLoading_Updating_Text.jpg | Bin .../Plasma/Apps/plClient/winmain.cpp | 0 .../Plasma/Apps/plClientKey/DllMain.cpp | 0 .../Plasma/Apps/plClientKey/plClientKey.cpp | 0 .../Plasma/Apps/plClientKey/plClientKey.def | 0 .../Plasma/Apps/plClientKey/plClientKey.h | 0 .../Apps/plClientPatcher/CMakeLists.txt | 0 .../Plasma/Apps/plClientPatcher/Intern.h | 0 .../Plasma/Apps/plClientPatcher/Pch.h | 0 .../Plasma/Apps/plClientPatcher/UruPlayer.cpp | 0 .../Plasma/Apps/plClientPatcher/UruPlayer.h | 0 .../Apps/plClientPatcher/plLauncherCallback.h | 0 .../Plasma/Apps/plFileEncrypt/main.cpp | 0 .../Plasma/Apps/plFileSecure/main.cpp | 0 .../Plasma/Apps/plLogDecrypt/plLogDecrypt.cpp | 0 .../Plasma/Apps/plMD5/Intern.h | 0 .../Plasma/Apps/plMD5/Main.cpp | 0 .../Plasma/Apps/plMD5/Pch.h | 0 .../Apps/plPageInfo/plAllCreatables.cpp | 0 .../Plasma/Apps/plPageInfo/plPageInfo.cpp | 0 .../Plasma/Apps/plPageOptimizer/main.cpp | 0 .../Apps/plPageOptimizer/pfAllCreatables.cpp | 0 .../Apps/plPageOptimizer/plPageOptimizer.cpp | 0 .../Apps/plPageOptimizer/plPageOptimizer.h | 0 .../Plasma/Apps/plPlasmaInstaller/Dirt.ICO | Bin .../Plasma/Apps/plPlasmaInstaller/main.cpp | 0 .../Apps/plPlasmaInstaller/plInstallerReg.cpp | 0 .../Apps/plPlasmaInstaller/plInstallerReg.h | 0 .../plPlasmaInstaller/plPlasmaInstaller.cpp | 0 .../plPlasmaInstaller/plPlasmaInstaller.h | 0 .../plPlasmaInstaller/plPlasmaInstaller.rc | 0 .../plPlasmaInstaller/plSetPlasmaPath.cpp | 0 .../Apps/plPlasmaInstaller/plSetPlasmaPath.h | 0 .../Plasma/Apps/plPlasmaInstaller/plUnzip.cpp | 0 .../Plasma/Apps/plPlasmaInstaller/plUnzip.h | 0 .../Plasma/Apps/plPlasmaInstaller/resource.h | 0 .../Plasma/Apps/plPlasmaUpdate/Dirt.ICO | Bin .../Plasma/Apps/plPlasmaUpdate/main.cpp | 0 .../Apps/plPlasmaUpdate/plFileGrabber.cpp | 0 .../Apps/plPlasmaUpdate/plFileGrabber.h | 0 .../Plasma/Apps/plPlasmaUpdate/plManifest.cpp | 0 .../Plasma/Apps/plPlasmaUpdate/plManifest.h | 0 .../Apps/plPlasmaUpdate/plPlasmaServers.cpp | 0 .../Apps/plPlasmaUpdate/plPlasmaServers.h | 0 .../Apps/plPlasmaUpdate/plPlasmaUpdate.cpp | 0 .../Apps/plPlasmaUpdate/plPlasmaUpdate.h | 0 .../Apps/plPlasmaUpdate/plPlasmaUpdate.rc | 0 .../Plasma/Apps/plPlasmaUpdate/resource.h | 0 .../Plasma/Apps/plPythonPack/CMakeLists.txt | 0 .../Apps/plPythonPack/PythonInterface.cpp | 0 .../Apps/plPythonPack/PythonInterface.h | 0 .../Plasma/Apps/plPythonPack/main.cpp | 0 .../Plasma/Apps/plUruLauncher/CMakeLists.txt | 0 .../Plasma/Apps/plUruLauncher/Dirt.ICO | Bin .../Plasma/Apps/plUruLauncher/Intern.h | 0 .../Plasma/Apps/plUruLauncher/Main.cpp | 0 .../Plasma/Apps/plUruLauncher/Pch.h | 0 .../Plasma/Apps/plUruLauncher/SelfPatcher.cpp | 0 .../Plasma/Apps/plUruLauncher/banner.bmp | Bin .../Apps/plUruLauncher/plLauncherInfo.h | 0 .../Apps/plUruLauncher/plUruLauncher.rc | 0 .../Plasma/Apps/plUruLauncher/resource.h | 0 .../Sources => Sources}/Plasma/CMakeLists.txt | 0 .../Plasma/CoreLib/CMakeLists.txt | 0 .../Plasma/CoreLib/HS_POINT2.inc | 0 .../Plasma/CoreLib/HeadSpin.cpp | 0 .../Plasma/CoreLib/HeadSpin.h | 0 .../Plasma/CoreLib/hsBiExpander.h | 0 .../Plasma/CoreLib/hsBitVector.cpp | 0 .../Plasma/CoreLib/hsBitVector.h | 0 .../Plasma/CoreLib/hsBounds.cpp | 0 .../Plasma/CoreLib/hsBounds.h | 0 .../Plasma/CoreLib/hsColorRGBA.h | 0 .../Plasma/CoreLib/hsConfig.h | 0 .../Plasma/CoreLib/hsCritSect.cpp | 0 .../Plasma/CoreLib/hsCritSect.h | 0 .../Plasma/CoreLib/hsExceptionStack.cpp | 0 .../Plasma/CoreLib/hsExceptionStack.h | 0 .../Plasma/CoreLib/hsExceptions.h | 0 .../Plasma/CoreLib/hsFastMath.cpp | 0 .../Plasma/CoreLib/hsFastMath.h | 0 .../Plasma/CoreLib/hsFixedTypes.h | 0 .../Plasma/CoreLib/hsGeometry3.cpp | 0 .../Plasma/CoreLib/hsGeometry3.h | 0 .../Plasma/CoreLib/hsHashTable.h | 0 .../Plasma/CoreLib/hsLOD.h | 0 .../Plasma/CoreLib/hsMMIOStream.cpp | 0 .../Plasma/CoreLib/hsMMIOStream.h | 0 .../Plasma/CoreLib/hsMalloc.cpp | 0 .../Plasma/CoreLib/hsMalloc.h | 0 .../Plasma/CoreLib/hsMatrix33.cpp | 0 .../Plasma/CoreLib/hsMatrix33.h | 0 .../Plasma/CoreLib/hsMatrix44.cpp | 0 .../Plasma/CoreLib/hsMatrix44.h | 0 .../Plasma/CoreLib/hsMemory.cpp | 0 .../Plasma/CoreLib/hsMemory.h | 0 .../Plasma/CoreLib/hsPoint2.h | 0 .../Plasma/CoreLib/hsQuat.cpp | 0 .../Plasma/CoreLib/hsQuat.h | 0 .../Plasma/CoreLib/hsQueue.h | 0 .../Plasma/CoreLib/hsRefCnt.h | 0 .../Plasma/CoreLib/hsSTLStream.cpp | 0 .../Plasma/CoreLib/hsSTLStream.h | 0 .../Plasma/CoreLib/hsSafeRefCnt.cpp | 0 .../Plasma/CoreLib/hsSafeRefCnt.h | 0 .../Plasma/CoreLib/hsScalar.h | 0 .../Plasma/CoreLib/hsStlSortUtils.h | 0 .../Plasma/CoreLib/hsStlUtils.cpp | 0 .../Plasma/CoreLib/hsStlUtils.h | 0 .../Plasma/CoreLib/hsStream.cpp | 0 .../Plasma/CoreLib/hsStream.h | 0 .../Plasma/CoreLib/hsStringTokenizer.cpp | 0 .../Plasma/CoreLib/hsStringTokenizer.h | 0 .../Plasma/CoreLib/hsTempPointer.h | 0 .../Plasma/CoreLib/hsTemplates.cpp | 0 .../Plasma/CoreLib/hsTemplates.h | 0 .../Plasma/CoreLib/hsThread.cpp | 0 .../Plasma/CoreLib/hsThread.h | 0 .../Plasma/CoreLib/hsThread_Mac.cpp | 0 .../Plasma/CoreLib/hsThread_Unix.cpp | 0 .../Plasma/CoreLib/hsThread_Win.cpp | 0 .../Plasma/CoreLib/hsTypes.h | 0 .../Plasma/CoreLib/hsUtils.cpp | 0 .../Plasma/CoreLib/hsUtils.h | 0 .../Plasma/CoreLib/hsWide.cpp | 0 .../Plasma/CoreLib/hsWide.h | 0 .../Plasma/CoreLib/hsWindowHndl.h | 0 .../Plasma/CoreLib/hsWindows.h | 0 .../Plasma/CoreLib/notes.txt | 0 .../Plasma/CoreLib/pcSmallRect.cpp | 0 .../Plasma/CoreLib/pcSmallRect.h | 0 .../Plasma/CoreLib/plGeneric.cpp | 0 .../Plasma/CoreLib/plGeneric.h | 0 .../Plasma/CoreLib/plLoadMask.cpp | 0 .../Plasma/CoreLib/plLoadMask.h | 0 .../Plasma/CoreLib/plQuality.h | 0 .../Plasma/CoreLib/plRefCnt.h | 0 .../Plasma/CoreLib/plRenderLevel.h | 0 .../Plasma/CoreLib/plTweak.h | 0 .../Plasma/CoreLib/plViewTransform.cpp | 0 .../Plasma/CoreLib/plViewTransform.h | 0 .../Plasma/CoreLibExe/CMakeLists.txt | 0 .../Plasma/CoreLibExe/Intern.h | 0 .../Plasma/CoreLibExe/Pch.h | 0 .../Plasma/CoreLibExe/hsExeError.cpp | 0 .../Plasma/CoreLibExe/hsExeMalloc.cpp | 0 .../Plasma/FeatureLib/CMakeLists.txt | 0 .../Plasma/FeatureLib/inc/pfAllCreatables.h | 0 .../FeatureLib/pfAnimation/CMakeLists.txt | 0 .../pfAnimation/pfAnimationCreatable.h | 0 .../pfAnimation/pfObjectFlocker.cpp | 0 .../FeatureLib/pfAnimation/pfObjectFlocker.h | 0 .../pfAnimation/plAnimDebugList.cpp | 0 .../FeatureLib/pfAnimation/plAnimDebugList.h | 0 .../FeatureLib/pfAnimation/plBlower.cpp | 0 .../Plasma/FeatureLib/pfAnimation/plBlower.h | 0 .../pfAnimation/plFilterCoordInterface.cpp | 0 .../pfAnimation/plFilterCoordInterface.h | 0 .../FeatureLib/pfAnimation/plFollowMod.cpp | 0 .../FeatureLib/pfAnimation/plFollowMod.h | 0 .../pfAnimation/plLightModifier.cpp | 0 .../FeatureLib/pfAnimation/plLightModifier.h | 0 .../pfAnimation/plLineFollowMod.cpp | 0 .../FeatureLib/pfAnimation/plLineFollowMod.h | 0 .../pfAnimation/plRandomCommandMod.cpp | 0 .../pfAnimation/plRandomCommandMod.h | 0 .../FeatureLib/pfAnimation/plStereizer.cpp | 0 .../FeatureLib/pfAnimation/plStereizer.h | 0 .../pfAnimation/plViewFaceModifier.cpp | 0 .../pfAnimation/plViewFaceModifier.h | 0 .../Plasma/FeatureLib/pfAudio/CMakeLists.txt | 0 .../FeatureLib/pfAudio/pfAudioCreatable.h | 0 .../Plasma/FeatureLib/pfAudio/plListener.cpp | 0 .../Plasma/FeatureLib/pfAudio/plListener.h | 0 .../FeatureLib/pfAudio/plRandomSoundMod.cpp | 0 .../FeatureLib/pfAudio/plRandomSoundMod.h | 0 .../Plasma/FeatureLib/pfCCR/CMakeLists.txt | 0 .../Plasma/FeatureLib/pfCCR/plCCRCreatable.h | 0 .../Plasma/FeatureLib/pfCCR/plCCRMgr.cpp | 0 .../Plasma/FeatureLib/pfCCR/plCCRMgr.h | 0 .../Plasma/FeatureLib/pfCCR/plCCRVault.cpp | 0 .../Plasma/FeatureLib/pfCCR/plCCRVault.h | 0 .../Plasma/FeatureLib/pfCamera/CMakeLists.txt | 0 .../FeatureLib/pfCamera/pfCameraCreatable.h | 0 .../FeatureLib/pfCamera/pfCameraProxy.cpp | 0 .../FeatureLib/pfCamera/pfCameraProxy.h | 0 .../FeatureLib/pfCamera/plCameraBrain.cpp | 0 .../FeatureLib/pfCamera/plCameraBrain.h | 0 .../FeatureLib/pfCamera/plCameraModifier.cpp | 0 .../FeatureLib/pfCamera/plCameraModifier.h | 0 .../pfCamera/plInterestingModifier.cpp | 0 .../pfCamera/plInterestingModifier.h | 0 .../FeatureLib/pfCamera/plVirtualCamNeu.cpp | 0 .../FeatureLib/pfCamera/plVirtualCamNeu.h | 0 .../FeatureLib/pfCharacter/CMakeLists.txt | 0 .../pfCharacter/pfCharacterCreatable.h | 0 .../FeatureLib/pfCharacter/pfMarkerInfo.cpp | 0 .../FeatureLib/pfCharacter/pfMarkerInfo.h | 0 .../FeatureLib/pfCharacter/pfMarkerMgr.cpp | 0 .../FeatureLib/pfCharacter/pfMarkerMgr.h | 0 .../pfCharacter/plPlayerModifier.cpp | 0 .../FeatureLib/pfCharacter/plPlayerModifier.h | 0 .../FeatureLib/pfConditional/CMakeLists.txt | 0 .../pfConditional/plANDConditionalObject.cpp | 0 .../pfConditional/plANDConditionalObject.h | 0 .../plActivatorConditionalObject.cpp | 0 .../plActivatorConditionalObject.h | 0 .../plAnimationEventConditionalObject.cpp | 0 .../plAnimationEventConditionalObject.h | 0 .../plConditionalObjectCreatable.h | 0 .../plControlEventConditionalObject.cpp | 0 .../plControlEventConditionalObject.h | 0 .../plFacingConditionalObject.cpp | 0 .../pfConditional/plFacingConditionalObject.h | 0 .../plKeyPressConditionalObject.cpp | 0 .../plKeyPressConditionalObject.h | 0 .../plLocalPlayerInBoxConditionalObject.cpp | 0 .../plLocalPlayerInBoxConditionalObject.h | 0 ...lPlayerIntersectPlaneConditionalObject.cpp | 0 ...calPlayerIntersectPlaneConditionalObject.h | 0 .../pfConditional/plORConditionalObject.cpp | 0 .../pfConditional/plORConditionalObject.h | 0 .../plObjectInBoxConditionalObject.cpp | 0 .../plObjectInBoxConditionalObject.h | 0 ...lObjectIntersectPlaneConditionalObject.cpp | 0 .../plObjectIntersectPlaneConditionalObject.h | 0 .../plPickedConditionalObject.cpp | 0 .../pfConditional/plPickedConditionalObject.h | 0 .../FeatureLib/pfConsole/CMakeLists.txt | 0 .../pfConsole/pfAvatarConsoleCommands.cpp | 0 .../pfConsole/pfCCRConsoleCommands.cpp | 0 .../Plasma/FeatureLib/pfConsole/pfConsole.cpp | 0 .../Plasma/FeatureLib/pfConsole/pfConsole.h | 0 .../FeatureLib/pfConsole/pfConsoleCmd.cpp | 0 .../FeatureLib/pfConsole/pfConsoleCmd.h | 0 .../pfConsole/pfConsoleCommands.cpp | 0 .../pfConsole/pfConsoleCommandsNet.cpp | 0 .../FeatureLib/pfConsole/pfConsoleContext.cpp | 0 .../FeatureLib/pfConsole/pfConsoleContext.h | 0 .../FeatureLib/pfConsole/pfConsoleCreatable.h | 0 .../FeatureLib/pfConsole/pfConsoleDirSrc.cpp | 0 .../FeatureLib/pfConsole/pfConsoleDirSrc.h | 0 .../FeatureLib/pfConsole/pfConsoleEngine.cpp | 0 .../FeatureLib/pfConsole/pfConsoleEngine.h | 0 .../FeatureLib/pfConsole/pfDispatchLog.cpp | 0 .../FeatureLib/pfConsole/pfDispatchLog.h | 0 .../pfConsole/pfGameConsoleCommands.cpp | 0 .../Plasma/FeatureLib/pfCsrSrv/CMakeLists.txt | 0 .../Plasma/FeatureLib/pfCsrSrv/Pch.h | 0 .../Plasma/FeatureLib/pfCsrSrv/pfCsrSrv.cpp | 0 .../Plasma/FeatureLib/pfCsrSrv/pfCsrSrv.h | 0 .../FeatureLib/pfGameGUIMgr/CMakeLists.txt | 0 .../pfGameGUIMgr/pfGUIButtonMod.cpp | 0 .../FeatureLib/pfGameGUIMgr/pfGUIButtonMod.h | 0 .../pfGameGUIMgr/pfGUICheckBoxCtrl.cpp | 0 .../pfGameGUIMgr/pfGUICheckBoxCtrl.h | 0 .../pfGameGUIMgr/pfGUIClickMapCtrl.cpp | 0 .../pfGameGUIMgr/pfGUIClickMapCtrl.h | 0 .../pfGameGUIMgr/pfGUIControlHandlers.cpp | 0 .../pfGameGUIMgr/pfGUIControlHandlers.h | 0 .../pfGameGUIMgr/pfGUIControlMod.cpp | 0 .../FeatureLib/pfGameGUIMgr/pfGUIControlMod.h | 0 .../pfGameGUIMgr/pfGUICtrlGenerator.cpp | 0 .../pfGameGUIMgr/pfGUICtrlGenerator.h | 0 .../pfGameGUIMgr/pfGUIDialogHandlers.h | 0 .../pfGameGUIMgr/pfGUIDialogMod.cpp | 0 .../FeatureLib/pfGameGUIMgr/pfGUIDialogMod.h | 0 .../pfGameGUIMgr/pfGUIDialogNotifyProc.cpp | 0 .../pfGameGUIMgr/pfGUIDialogNotifyProc.h | 0 .../pfGameGUIMgr/pfGUIDragBarCtrl.cpp | 0 .../pfGameGUIMgr/pfGUIDragBarCtrl.h | 0 .../pfGameGUIMgr/pfGUIDraggableMod.cpp | 0 .../pfGameGUIMgr/pfGUIDraggableMod.h | 0 .../pfGameGUIMgr/pfGUIDynDisplayCtrl.cpp | 0 .../pfGameGUIMgr/pfGUIDynDisplayCtrl.h | 0 .../pfGameGUIMgr/pfGUIEditBoxMod.cpp | 0 .../FeatureLib/pfGameGUIMgr/pfGUIEditBoxMod.h | 0 .../FeatureLib/pfGameGUIMgr/pfGUIKnobCtrl.cpp | 0 .../FeatureLib/pfGameGUIMgr/pfGUIKnobCtrl.h | 0 .../pfGameGUIMgr/pfGUIListBoxMod.cpp | 0 .../FeatureLib/pfGameGUIMgr/pfGUIListBoxMod.h | 0 .../pfGameGUIMgr/pfGUIListElement.cpp | 0 .../pfGameGUIMgr/pfGUIListElement.h | 0 .../FeatureLib/pfGameGUIMgr/pfGUIMenuItem.cpp | 0 .../FeatureLib/pfGameGUIMgr/pfGUIMenuItem.h | 0 .../pfGameGUIMgr/pfGUIMultiLineEditCtrl.cpp | 0 .../pfGameGUIMgr/pfGUIMultiLineEditCtrl.h | 0 .../pfGameGUIMgr/pfGUIPopUpMenu.cpp | 0 .../FeatureLib/pfGameGUIMgr/pfGUIPopUpMenu.h | 0 .../pfGameGUIMgr/pfGUIProgressCtrl.cpp | 0 .../pfGameGUIMgr/pfGUIProgressCtrl.h | 0 .../pfGameGUIMgr/pfGUIRadioGroupCtrl.cpp | 0 .../pfGameGUIMgr/pfGUIRadioGroupCtrl.h | 0 .../FeatureLib/pfGameGUIMgr/pfGUITagDefs.cpp | 0 .../FeatureLib/pfGameGUIMgr/pfGUITagDefs.h | 0 .../pfGameGUIMgr/pfGUITextBoxMod.cpp | 0 .../FeatureLib/pfGameGUIMgr/pfGUITextBoxMod.h | 0 .../pfGameGUIMgr/pfGUIUpDownPairMod.cpp | 0 .../pfGameGUIMgr/pfGUIUpDownPairMod.h | 0 .../pfGameGUIMgr/pfGUIValueCtrl.cpp | 0 .../FeatureLib/pfGameGUIMgr/pfGUIValueCtrl.h | 0 .../FeatureLib/pfGameGUIMgr/pfGameGUIMgr.cpp | 0 .../FeatureLib/pfGameGUIMgr/pfGameGUIMgr.h | 0 .../pfGameGUIMgr/pfGameGUIMgrCreatable.h | 0 .../pfGameMgr/BlueSpiral/pfGmBlueSpiral.cpp | 0 .../pfGameMgr/BlueSpiral/pfGmBlueSpiral.h | 0 .../FeatureLib/pfGameMgr/CMakeLists.txt | 0 .../ClimbingWall/pfGmClimbingWall.cpp | 0 .../pfGameMgr/ClimbingWall/pfGmClimbingWall.h | 0 .../FeatureLib/pfGameMgr/Heek/pfGmHeek.cpp | 0 .../FeatureLib/pfGameMgr/Heek/pfGmHeek.h | 0 .../Plasma/FeatureLib/pfGameMgr/Intern.h | 0 .../pfGameMgr/Marker/pfGmMarker.cpp | 0 .../FeatureLib/pfGameMgr/Marker/pfGmMarker.h | 0 .../Plasma/FeatureLib/pfGameMgr/Pch.h | 0 .../pfGameMgr/TicTacToe/pfGmTicTacToe.cpp | 0 .../pfGameMgr/TicTacToe/pfGmTicTacToe.h | 0 .../pfGameMgr/VarSync/pfGmVarSync.cpp | 0 .../pfGameMgr/VarSync/pfGmVarSync.h | 0 .../Plasma/FeatureLib/pfGameMgr/pfGameMgr.cpp | 0 .../Plasma/FeatureLib/pfGameMgr/pfGameMgr.h | 0 .../pfGameMgr/pfGameMgrCreatables.h | 0 .../FeatureLib/pfGameScoreMgr/CMakeLists.txt | 0 .../pfGameScoreMgr/pfGameScoreMgr.cpp | 0 .../pfGameScoreMgr/pfGameScoreMgr.h | 0 .../FeatureLib/pfJournalBook/CMakeLists.txt | 0 .../pfJournalBook/pfJournalBook.cpp | 0 .../FeatureLib/pfJournalBook/pfJournalBook.h | 0 .../pfJournalBook/pfJournalBookCreatable.h | 0 .../Plasma/FeatureLib/pfKI/pfKI.cpp | 0 .../Plasma/FeatureLib/pfKI/pfKI.h | 0 .../Plasma/FeatureLib/pfKI/pfKICreatable.h | 0 .../FeatureLib/pfKI/pfPlayerBookMod.cpp | 0 .../Plasma/FeatureLib/pfKI/pfPlayerBookMod.h | 0 .../pfLocalizationMgr/CMakeLists.txt | 0 .../pfLocalizationDataMgr.cpp | 0 .../pfLocalizationMgr/pfLocalizationDataMgr.h | 0 .../pfLocalizationMgr/pfLocalizationMgr.cpp | 0 .../pfLocalizationMgr/pfLocalizationMgr.h | 0 .../pfLocalizationMgr/pfLocalizedString.cpp | 0 .../pfLocalizationMgr/pfLocalizedString.h | 0 .../FeatureLib/pfLoginDialog/CMakeLists.txt | 0 .../FeatureLib/pfLoginDialog/pfLoginDialog.rc | 0 .../pfLoginDialog/plLoginDialog.cpp | 0 .../FeatureLib/pfLoginDialog/plLoginDialog.h | 0 .../FeatureLib/pfLoginDialog/resource.h | 0 .../FeatureLib/pfMessage/CMakeLists.txt | 0 .../FeatureLib/pfMessage/pfBackdoorMsg.h | 0 .../FeatureLib/pfMessage/pfGUINotifyMsg.h | 0 .../FeatureLib/pfMessage/pfGameGUIMsg.h | 0 .../Plasma/FeatureLib/pfMessage/pfKIMsg.cpp | 0 .../Plasma/FeatureLib/pfMessage/pfKIMsg.h | 0 .../FeatureLib/pfMessage/pfMarkerMsg.cpp | 0 .../Plasma/FeatureLib/pfMessage/pfMarkerMsg.h | 0 .../FeatureLib/pfMessage/pfMessageCreatable.h | 0 .../FeatureLib/pfMessage/pfMovieEventMsg.cpp | 0 .../FeatureLib/pfMessage/pfMovieEventMsg.h | 0 .../pfMessage/plArmatureEffectMsg.cpp | 0 .../pfMessage/plArmatureEffectMsg.h | 0 .../FeatureLib/pfMessage/plClothingMsg.cpp | 0 .../FeatureLib/pfMessage/plClothingMsg.h | 0 .../Plasma/FeatureLib/pfPython/CMakeLists.txt | 0 .../Games/BlueSpiral/pyBlueSpiralGame.cpp | 0 .../Games/BlueSpiral/pyBlueSpiralGame.h | 0 .../Games/BlueSpiral/pyBlueSpiralGameGlue.cpp | 0 .../Games/BlueSpiral/pyBlueSpiralMsg.cpp | 0 .../Games/BlueSpiral/pyBlueSpiralMsg.h | 0 .../Games/BlueSpiral/pyBlueSpiralMsgGlue.cpp | 0 .../Games/ClimbingWall/pyClimbingWallGame.cpp | 0 .../Games/ClimbingWall/pyClimbingWallGame.h | 0 .../ClimbingWall/pyClimbingWallGameGlue.cpp | 0 .../Games/ClimbingWall/pyClimbingWallMsg.cpp | 0 .../Games/ClimbingWall/pyClimbingWallMsg.h | 0 .../ClimbingWall/pyClimbingWallMsgGlue.cpp | 0 .../pfPython/Games/Heek/pyHeekGame.cpp | 0 .../pfPython/Games/Heek/pyHeekGame.h | 0 .../pfPython/Games/Heek/pyHeekGameGlue.cpp | 0 .../pfPython/Games/Heek/pyHeekMsg.cpp | 0 .../pfPython/Games/Heek/pyHeekMsg.h | 0 .../pfPython/Games/Heek/pyHeekMsgGlue.cpp | 0 .../pfPython/Games/Marker/pyMarkerGame.cpp | 0 .../pfPython/Games/Marker/pyMarkerGame.h | 0 .../Games/Marker/pyMarkerGameGlue.cpp | 0 .../pfPython/Games/Marker/pyMarkerMsg.cpp | 0 .../pfPython/Games/Marker/pyMarkerMsg.h | 0 .../pfPython/Games/Marker/pyMarkerMsgGlue.cpp | 0 .../pfPython/Games/TicTacToe/pyTTTGame.cpp | 0 .../pfPython/Games/TicTacToe/pyTTTGame.h | 0 .../Games/TicTacToe/pyTTTGameGlue.cpp | 0 .../pfPython/Games/TicTacToe/pyTTTMsg.cpp | 0 .../pfPython/Games/TicTacToe/pyTTTMsg.h | 0 .../pfPython/Games/TicTacToe/pyTTTMsgGlue.cpp | 0 .../pfPython/Games/VarSync/pyVarSyncGame.cpp | 0 .../pfPython/Games/VarSync/pyVarSyncGame.h | 0 .../Games/VarSync/pyVarSyncGameGlue.cpp | 0 .../pfPython/Games/VarSync/pyVarSyncMsg.cpp | 0 .../pfPython/Games/VarSync/pyVarSyncMsg.h | 0 .../Games/VarSync/pyVarSyncMsgGlue.cpp | 0 .../FeatureLib/pfPython/Games/pyGameCli.cpp | 0 .../FeatureLib/pfPython/Games/pyGameCli.h | 0 .../pfPython/Games/pyGameCliGlue.cpp | 0 .../pfPython/Games/pyGameCliMsg.cpp | 0 .../FeatureLib/pfPython/Games/pyGameCliMsg.h | 0 .../pfPython/Games/pyGameCliMsgGlue.cpp | 0 .../pfPython/Games/pyGameMgrMsg.cpp | 0 .../FeatureLib/pfPython/Games/pyGameMgrMsg.h | 0 .../pfPython/Games/pyGameMgrMsgGlue.cpp | 0 .../pfPython/cyAccountManagement.cpp | 0 .../FeatureLib/pfPython/cyAccountManagement.h | 0 .../pfPython/cyAccountManagementGlue.cpp | 0 .../FeatureLib/pfPython/cyAnimation.cpp | 0 .../Plasma/FeatureLib/pfPython/cyAnimation.h | 0 .../FeatureLib/pfPython/cyAnimationGlue.cpp | 0 .../Plasma/FeatureLib/pfPython/cyAvatar.cpp | 0 .../Plasma/FeatureLib/pfPython/cyAvatar.h | 0 .../FeatureLib/pfPython/cyAvatarGlue.cpp | 0 .../Plasma/FeatureLib/pfPython/cyCamera.cpp | 0 .../Plasma/FeatureLib/pfPython/cyCamera.h | 0 .../FeatureLib/pfPython/cyCameraGlue.cpp | 0 .../Plasma/FeatureLib/pfPython/cyDraw.cpp | 0 .../Plasma/FeatureLib/pfPython/cyDraw.h | 0 .../Plasma/FeatureLib/pfPython/cyDrawGlue.cpp | 0 .../FeatureLib/pfPython/cyInputInterface.cpp | 0 .../FeatureLib/pfPython/cyInputInterface.h | 0 .../pfPython/cyInputInterfaceGlue.cpp | 0 .../Plasma/FeatureLib/pfPython/cyMisc.cpp | 0 .../Plasma/FeatureLib/pfPython/cyMisc.h | 0 .../Plasma/FeatureLib/pfPython/cyMiscGlue.cpp | 0 .../FeatureLib/pfPython/cyMiscGlue2.cpp | 0 .../FeatureLib/pfPython/cyMiscGlue3.cpp | 0 .../FeatureLib/pfPython/cyMiscGlue4.cpp | 0 .../FeatureLib/pfPython/cyParticleSys.cpp | 0 .../FeatureLib/pfPython/cyParticleSys.h | 0 .../FeatureLib/pfPython/cyParticleSysGlue.cpp | 0 .../Plasma/FeatureLib/pfPython/cyPhysics.cpp | 0 .../Plasma/FeatureLib/pfPython/cyPhysics.h | 0 .../FeatureLib/pfPython/cyPhysicsGlue.cpp | 0 .../FeatureLib/pfPython/cyPythonInterface.cpp | 0 .../FeatureLib/pfPython/cyPythonInterface.h | 0 .../FeatureLib/pfPython/pfPythonCreatable.h | 0 .../FeatureLib/pfPython/plPythonFileMod.cpp | 0 .../FeatureLib/pfPython/plPythonFileMod.h | 0 .../FeatureLib/pfPython/plPythonHelpers.h | 0 .../FeatureLib/pfPython/plPythonPack.cpp | 0 .../Plasma/FeatureLib/pfPython/plPythonPack.h | 0 .../FeatureLib/pfPython/plPythonParameter.h | 0 .../pfPython/plPythonSDLModifier.cpp | 0 .../FeatureLib/pfPython/plPythonSDLModifier.h | 0 .../pfPython/plPythonSDLModifierGlue.cpp | 0 .../FeatureLib/pfPython/pyAgeInfoStruct.cpp | 0 .../FeatureLib/pfPython/pyAgeInfoStruct.h | 0 .../pfPython/pyAgeInfoStructGlue.cpp | 0 .../FeatureLib/pfPython/pyAgeLinkStruct.cpp | 0 .../FeatureLib/pfPython/pyAgeLinkStruct.h | 0 .../pfPython/pyAgeLinkStructGlue.cpp | 0 .../Plasma/FeatureLib/pfPython/pyAgeVault.cpp | 0 .../Plasma/FeatureLib/pfPython/pyAgeVault.h | 0 .../FeatureLib/pfPython/pyAgeVaultGlue.cpp | 0 .../Plasma/FeatureLib/pfPython/pyAlarm.cpp | 0 .../Plasma/FeatureLib/pfPython/pyAlarm.h | 0 .../FeatureLib/pfPython/pyAudioControl.cpp | 0 .../FeatureLib/pfPython/pyAudioControl.h | 0 .../pfPython/pyAudioControlGlue.cpp | 0 .../Plasma/FeatureLib/pfPython/pyCCRMgr.cpp | 0 .../Plasma/FeatureLib/pfPython/pyCCRMgr.h | 0 .../FeatureLib/pfPython/pyCCRMgrGlue.cpp | 0 .../FeatureLib/pfPython/pyCCRMgrGlue2.cpp | 0 .../Plasma/FeatureLib/pfPython/pyCluster.cpp | 0 .../Plasma/FeatureLib/pfPython/pyCluster.h | 0 .../FeatureLib/pfPython/pyClusterGlue.cpp | 0 .../Plasma/FeatureLib/pfPython/pyColor.cpp | 0 .../Plasma/FeatureLib/pfPython/pyColor.h | 0 .../FeatureLib/pfPython/pyColorGlue.cpp | 0 .../FeatureLib/pfPython/pyCritterBrain.cpp | 0 .../FeatureLib/pfPython/pyCritterBrain.h | 0 .../pfPython/pyCritterBrainGlue.cpp | 0 .../FeatureLib/pfPython/pyDniCoordinates.cpp | 0 .../FeatureLib/pfPython/pyDniCoordinates.h | 0 .../pfPython/pyDniCoordinatesGlue.cpp | 0 .../FeatureLib/pfPython/pyDniInfoSource.cpp | 0 .../FeatureLib/pfPython/pyDniInfoSource.h | 0 .../pfPython/pyDniInfoSourceGlue.cpp | 0 .../FeatureLib/pfPython/pyDrawControl.cpp | 0 .../FeatureLib/pfPython/pyDrawControl.h | 0 .../FeatureLib/pfPython/pyDrawControlGlue.cpp | 0 .../FeatureLib/pfPython/pyDynamicText.cpp | 0 .../FeatureLib/pfPython/pyDynamicText.h | 0 .../FeatureLib/pfPython/pyDynamicTextGlue.cpp | 0 .../Plasma/FeatureLib/pfPython/pyEnum.cpp | 0 .../Plasma/FeatureLib/pfPython/pyEnum.h | 0 .../FeatureLib/pfPython/pyGUIControl.cpp | 0 .../Plasma/FeatureLib/pfPython/pyGUIControl.h | 0 .../pfPython/pyGUIControlButton.cpp | 0 .../FeatureLib/pfPython/pyGUIControlButton.h | 0 .../pfPython/pyGUIControlButtonGlue.cpp | 0 .../pfPython/pyGUIControlCheckBox.cpp | 0 .../pfPython/pyGUIControlCheckBox.h | 0 .../pfPython/pyGUIControlCheckBoxGlue.cpp | 0 .../pfPython/pyGUIControlClickMap.cpp | 0 .../pfPython/pyGUIControlClickMap.h | 0 .../pfPython/pyGUIControlClickMapGlue.cpp | 0 .../pfPython/pyGUIControlDragBar.cpp | 0 .../FeatureLib/pfPython/pyGUIControlDragBar.h | 0 .../pfPython/pyGUIControlDragBarGlue.cpp | 0 .../pfPython/pyGUIControlDraggable.cpp | 0 .../pfPython/pyGUIControlDraggable.h | 0 .../pfPython/pyGUIControlDraggableGlue.cpp | 0 .../pfPython/pyGUIControlDynamicText.cpp | 0 .../pfPython/pyGUIControlDynamicText.h | 0 .../pfPython/pyGUIControlDynamicTextGlue.cpp | 0 .../pfPython/pyGUIControlEditBox.cpp | 0 .../FeatureLib/pfPython/pyGUIControlEditBox.h | 0 .../pfPython/pyGUIControlEditBoxGlue.cpp | 0 .../FeatureLib/pfPython/pyGUIControlGlue.cpp | 0 .../pfPython/pyGUIControlListBox.cpp | 0 .../FeatureLib/pfPython/pyGUIControlListBox.h | 0 .../pfPython/pyGUIControlListBoxGlue.cpp | 0 .../pfPython/pyGUIControlMultiLineEdit.cpp | 0 .../pfPython/pyGUIControlMultiLineEdit.h | 0 .../pyGUIControlMultiLineEditGlue.cpp | 0 .../pfPython/pyGUIControlRadioGroup.cpp | 0 .../pfPython/pyGUIControlRadioGroup.h | 0 .../pfPython/pyGUIControlRadioGroupGlue.cpp | 0 .../pfPython/pyGUIControlTextBox.cpp | 0 .../FeatureLib/pfPython/pyGUIControlTextBox.h | 0 .../pfPython/pyGUIControlTextBoxGlue.cpp | 0 .../FeatureLib/pfPython/pyGUIControlValue.cpp | 0 .../FeatureLib/pfPython/pyGUIControlValue.h | 0 .../pfPython/pyGUIControlValueGlue.cpp | 0 .../FeatureLib/pfPython/pyGUIDialog.cpp | 0 .../Plasma/FeatureLib/pfPython/pyGUIDialog.h | 0 .../FeatureLib/pfPython/pyGUIDialogGlue.cpp | 0 .../FeatureLib/pfPython/pyGUIPopUpMenu.cpp | 0 .../FeatureLib/pfPython/pyGUIPopUpMenu.h | 0 .../pfPython/pyGUIPopUpMenuGlue.cpp | 0 .../Plasma/FeatureLib/pfPython/pyGUISkin.cpp | 0 .../Plasma/FeatureLib/pfPython/pyGUISkin.h | 0 .../FeatureLib/pfPython/pyGUISkinGlue.cpp | 0 .../FeatureLib/pfPython/pyGameScore.cpp | 0 .../Plasma/FeatureLib/pfPython/pyGameScore.h | 0 .../FeatureLib/pfPython/pyGameScoreGlue.cpp | 0 .../FeatureLib/pfPython/pyGeometry3.cpp | 0 .../Plasma/FeatureLib/pfPython/pyGeometry3.h | 0 .../FeatureLib/pfPython/pyGeometry3Glue.cpp | 0 .../FeatureLib/pfPython/pyGlueHelpers.h | 0 .../FeatureLib/pfPython/pyGrassShader.cpp | 0 .../FeatureLib/pfPython/pyGrassShader.h | 0 .../FeatureLib/pfPython/pyGrassShaderGlue.cpp | 0 .../Plasma/FeatureLib/pfPython/pyImage.cpp | 0 .../Plasma/FeatureLib/pfPython/pyImage.h | 0 .../FeatureLib/pfPython/pyImageGlue.cpp | 0 .../FeatureLib/pfPython/pyJournalBook.cpp | 0 .../FeatureLib/pfPython/pyJournalBook.h | 0 .../FeatureLib/pfPython/pyJournalBookGlue.cpp | 0 .../Plasma/FeatureLib/pfPython/pyKey.cpp | 0 .../Plasma/FeatureLib/pfPython/pyKey.h | 0 .../Plasma/FeatureLib/pfPython/pyKeyGlue.cpp | 0 .../Plasma/FeatureLib/pfPython/pyKeyMap.cpp | 0 .../Plasma/FeatureLib/pfPython/pyKeyMap.h | 0 .../FeatureLib/pfPython/pyKeyMapGlue.cpp | 0 .../FeatureLib/pfPython/pyMarkerMgr.cpp | 0 .../Plasma/FeatureLib/pfPython/pyMarkerMgr.h | 0 .../FeatureLib/pfPython/pyMarkerMgrGlue.cpp | 0 .../Plasma/FeatureLib/pfPython/pyMatrix44.cpp | 0 .../Plasma/FeatureLib/pfPython/pyMatrix44.h | 0 .../FeatureLib/pfPython/pyMatrix44Glue.cpp | 0 .../FeatureLib/pfPython/pyMoviePlayer.cpp | 0 .../FeatureLib/pfPython/pyMoviePlayer.h | 0 .../FeatureLib/pfPython/pyMoviePlayerGlue.cpp | 0 .../FeatureLib/pfPython/pyNetLinkingMgr.cpp | 0 .../FeatureLib/pfPython/pyNetLinkingMgr.h | 0 .../pfPython/pyNetLinkingMgrGlue.cpp | 0 .../pfPython/pyNetServerSessionInfo.cpp | 0 .../pfPython/pyNetServerSessionInfo.h | 0 .../pfPython/pyNetServerSessionInfoGlue.cpp | 0 .../Plasma/FeatureLib/pfPython/pyNotify.cpp | 0 .../Plasma/FeatureLib/pfPython/pyNotify.h | 0 .../FeatureLib/pfPython/pyNotifyGlue.cpp | 0 .../Plasma/FeatureLib/pfPython/pyPlayer.cpp | 0 .../Plasma/FeatureLib/pfPython/pyPlayer.h | 0 .../FeatureLib/pfPython/pyPlayerGlue.cpp | 0 .../Plasma/FeatureLib/pfPython/pySDL.cpp | 0 .../Plasma/FeatureLib/pfPython/pySDL.h | 0 .../Plasma/FeatureLib/pfPython/pySDLGlue.cpp | 0 .../FeatureLib/pfPython/pySceneObject.cpp | 0 .../FeatureLib/pfPython/pySceneObject.h | 0 .../FeatureLib/pfPython/pySceneObjectGlue.cpp | 0 .../Plasma/FeatureLib/pfPython/pyScoreMgr.cpp | 0 .../Plasma/FeatureLib/pfPython/pyScoreMgr.h | 0 .../FeatureLib/pfPython/pyScoreMgrGlue.cpp | 0 .../FeatureLib/pfPython/pySpawnPointInfo.cpp | 0 .../FeatureLib/pfPython/pySpawnPointInfo.h | 0 .../pfPython/pySpawnPointInfoGlue.cpp | 0 .../FeatureLib/pfPython/pyStatusLog.cpp | 0 .../Plasma/FeatureLib/pfPython/pyStatusLog.h | 0 .../FeatureLib/pfPython/pyStatusLogGlue.cpp | 0 .../Plasma/FeatureLib/pfPython/pyStream.cpp | 0 .../Plasma/FeatureLib/pfPython/pyStream.h | 0 .../FeatureLib/pfPython/pyStreamGlue.cpp | 0 .../pfPython/pySwimCurrentInterface.cpp | 0 .../pfPython/pySwimCurrentInterface.h | 0 .../pfPython/pySwimCurrentInterfaceGlue.cpp | 0 .../Plasma/FeatureLib/pfPython/pyVault.cpp | 0 .../Plasma/FeatureLib/pfPython/pyVault.h | 0 .../pfPython/pyVaultAgeInfoListNode.cpp | 0 .../pfPython/pyVaultAgeInfoListNode.h | 0 .../pfPython/pyVaultAgeInfoListNodeGlue.cpp | 0 .../pfPython/pyVaultAgeInfoNode.cpp | 0 .../FeatureLib/pfPython/pyVaultAgeInfoNode.h | 0 .../pfPython/pyVaultAgeInfoNodeGlue.cpp | 0 .../pfPython/pyVaultAgeLinkNode.cpp | 0 .../FeatureLib/pfPython/pyVaultAgeLinkNode.h | 0 .../pfPython/pyVaultAgeLinkNodeGlue.cpp | 0 .../pfPython/pyVaultChronicleNode.cpp | 0 .../pfPython/pyVaultChronicleNode.h | 0 .../pfPython/pyVaultChronicleNodeGlue.cpp | 0 .../FeatureLib/pfPython/pyVaultFolderNode.cpp | 0 .../FeatureLib/pfPython/pyVaultFolderNode.h | 0 .../pfPython/pyVaultFolderNodeGlue.cpp | 0 .../FeatureLib/pfPython/pyVaultGlue.cpp | 0 .../FeatureLib/pfPython/pyVaultImageNode.cpp | 0 .../FeatureLib/pfPython/pyVaultImageNode.h | 0 .../pfPython/pyVaultImageNodeGlue.cpp | 0 .../pfPython/pyVaultMarkerGameNode.cpp | 0 .../pfPython/pyVaultMarkerGameNode.h | 0 .../pfPython/pyVaultMarkerGameNodeGlue.cpp | 0 .../FeatureLib/pfPython/pyVaultNode.cpp | 0 .../Plasma/FeatureLib/pfPython/pyVaultNode.h | 0 .../FeatureLib/pfPython/pyVaultNodeGlue.cpp | 0 .../FeatureLib/pfPython/pyVaultNodeRef.cpp | 0 .../FeatureLib/pfPython/pyVaultNodeRef.h | 0 .../pfPython/pyVaultNodeRefGlue.cpp | 0 .../pfPython/pyVaultPlayerInfoListNode.cpp | 0 .../pfPython/pyVaultPlayerInfoListNode.h | 0 .../pyVaultPlayerInfoListNodeGlue.cpp | 0 .../pfPython/pyVaultPlayerInfoNode.cpp | 0 .../pfPython/pyVaultPlayerInfoNode.h | 0 .../pfPython/pyVaultPlayerInfoNodeGlue.cpp | 0 .../FeatureLib/pfPython/pyVaultPlayerNode.cpp | 0 .../FeatureLib/pfPython/pyVaultPlayerNode.h | 0 .../pfPython/pyVaultPlayerNodeGlue.cpp | 0 .../FeatureLib/pfPython/pyVaultSDLNode.cpp | 0 .../FeatureLib/pfPython/pyVaultSDLNode.h | 0 .../pfPython/pyVaultSDLNodeGlue.cpp | 0 .../FeatureLib/pfPython/pyVaultSystemNode.cpp | 0 .../FeatureLib/pfPython/pyVaultSystemNode.h | 0 .../pfPython/pyVaultSystemNodeGlue.cpp | 0 .../pfPython/pyVaultTextNoteNode.cpp | 0 .../FeatureLib/pfPython/pyVaultTextNoteNode.h | 0 .../pfPython/pyVaultTextNoteNodeGlue.cpp | 0 .../Plasma/FeatureLib/pfPython/pyWaveSet.cpp | 0 .../Plasma/FeatureLib/pfPython/pyWaveSet.h | 0 .../FeatureLib/pfPython/pyWaveSetGlue.cpp | 0 .../pfSecurePreloader/CMakeLists.txt | 0 .../pfSecurePreloader/pfSecurePreloader.cpp | 0 .../pfSecurePreloader/pfSecurePreloader.h | 0 .../pfSecurePreloaderCreatable.h | 0 .../FeatureLib/pfStackTrace/CMakeLists.txt | 0 .../Plasma/FeatureLib/pfStackTrace/pfArray.h | 0 .../FeatureLib/pfStackTrace/pfMapFile.cpp | 0 .../FeatureLib/pfStackTrace/pfMapFile.h | 0 .../pfStackTrace/pfMapFileEntry.cpp | 0 .../FeatureLib/pfStackTrace/pfMapFileEntry.h | 0 .../pfStackTrace/pfPrintStackTrace.cpp | 0 .../pfStackTrace/pfPrintStackTrace.h | 0 .../FeatureLib/pfStackTrace/pfStackTrace.cpp | 0 .../FeatureLib/pfStackTrace/pfStackTrace.h | 0 .../FeatureLib/pfStackTrace/pfTextFile.cpp | 0 .../FeatureLib/pfStackTrace/pfTextFile.h | 0 .../FeatureLib/pfSurface/CMakeLists.txt | 0 .../FeatureLib/pfSurface/pfSurfaceCreatable.h | 0 .../FeatureLib/pfSurface/plDistOpacityMod.cpp | 0 .../FeatureLib/pfSurface/plDistOpacityMod.h | 0 .../FeatureLib/pfSurface/plFadeOpacityLay.cpp | 0 .../FeatureLib/pfSurface/plFadeOpacityLay.h | 0 .../FeatureLib/pfSurface/plFadeOpacityMod.cpp | 0 .../FeatureLib/pfSurface/plFadeOpacityMod.h | 0 .../FeatureLib/pfSurface/plGrabCubeMap.cpp | 0 .../FeatureLib/pfSurface/plGrabCubeMap.h | 0 .../FeatureLib/pfSurface/plLayerAVI.cpp | 0 .../Plasma/FeatureLib/pfSurface/plLayerAVI.h | 0 .../FeatureLib/pfSurface/plLayerMovie.cpp | 0 .../FeatureLib/pfSurface/plLayerMovie.h | 0 .../Plasma/NucleusLib/CMakeLists.txt | 0 .../Plasma/NucleusLib/inc/CMakeLists.txt | 0 .../Plasma/NucleusLib/inc/hsGMatState.h | 0 .../Plasma/NucleusLib/inc/hsGMatState.inl | 0 .../Plasma/NucleusLib/inc/hsResMgr.h | 0 .../Plasma/NucleusLib/inc/hsTimer.h | 0 .../Plasma/NucleusLib/inc/plAudible.h | 0 .../Plasma/NucleusLib/inc/plCCRMgrBase.h | 0 .../NucleusLib/inc/plClassIndexMacros.h | 0 .../Plasma/NucleusLib/inc/plCreatableIndex.h | 0 .../NucleusLib/inc/plCreatableStrings.h | 0 .../Plasma/NucleusLib/inc/plDrawable.h | 0 .../plNetServerDatabaseStructClassIndexes.h | 0 .../Plasma/NucleusLib/inc/plPhysical.h | 0 .../Plasma/NucleusLib/inc/plPipeResReq.h | 0 .../Plasma/NucleusLib/inc/plPipeline.h | 0 .../Plasma/NucleusLib/inc/plProfile.h | 0 .../NucleusLib/inc/plProfileManager.cpp | 0 .../Plasma/NucleusLib/inc/plProfileManager.h | 0 .../Plasma/NucleusLib/inc/plRefFlags.h | 0 .../Plasma/NucleusLib/inc/plgDispatch.h | 0 .../Plasma/NucleusLib/inc/pnAllCreatables.h | 0 .../NucleusLib/inc/pnNucleusCreatables.h | 0 .../Plasma/NucleusLib/inc/pnSingletons.cpp | 0 .../NucleusLib/pnAddrInfo/CMakeLists.txt | 0 .../NucleusLib/pnAddrInfo/pnAddrInfo.cpp | 0 .../Plasma/NucleusLib/pnAddrInfo/pnAddrInfo.h | 0 .../NucleusLib/pnAsyncCore/CMakeLists.txt | 0 .../Plasma/NucleusLib/pnAsyncCore/Pch.h | 0 .../pnAsyncCore/Private/pnAcAllIncludes.h | 0 .../NucleusLib/pnAsyncCore/Private/pnAcCore.h | 0 .../NucleusLib/pnAsyncCore/Private/pnAcIo.h | 0 .../pnAsyncCore/Private/pnAcLog.cpp | 0 .../NucleusLib/pnAsyncCore/Private/pnAcLog.h | 0 .../pnAsyncCore/Private/pnAcThread.h | 0 .../pnAsyncCore/Private/pnAcTimer.h | 0 .../NucleusLib/pnAsyncCore/pnAsyncCore.h | 0 .../NucleusLib/pnAsyncCoreExe/CMakeLists.txt | 0 .../Plasma/NucleusLib/pnAsyncCoreExe/Pch.h | 0 .../pnAsyncCoreExe/Private/Nt/pnAceNt.cpp | 0 .../pnAsyncCoreExe/Private/Nt/pnAceNt.h | 0 .../pnAsyncCoreExe/Private/Nt/pnAceNtFile.cpp | 0 .../pnAsyncCoreExe/Private/Nt/pnAceNtInt.h | 0 .../Private/Nt/pnAceNtSocket.cpp | 0 .../Private/Nt/pnAceNtThread.cpp | 0 .../pnAsyncCoreExe/Private/Unix/pnAceUx.h | 0 .../pnAsyncCoreExe/Private/W9x/pnAceW9x.cpp | 0 .../pnAsyncCoreExe/Private/W9x/pnAceW9x.h | 0 .../Private/W9x/pnAceW9xFile.cpp | 0 .../pnAsyncCoreExe/Private/W9x/pnAceW9xInt.h | 0 .../Private/W9x/pnAceW9xSocket.cpp | 0 .../Private/W9x/pnAceW9xThread.cpp | 0 .../Private/Win32/pnAceW32Dns.cpp | 0 .../Private/Win32/pnAceW32Thread.cpp | 0 .../pnAsyncCoreExe/Private/pnAceInt.h | 0 .../NucleusLib/pnAsyncCoreExe/pnAceCore.cpp | 0 .../NucleusLib/pnAsyncCoreExe/pnAceIo.cpp | 0 .../NucleusLib/pnAsyncCoreExe/pnAceLog.cpp | 0 .../NucleusLib/pnAsyncCoreExe/pnAceThread.cpp | 0 .../NucleusLib/pnAsyncCoreExe/pnAceTimer.cpp | 0 .../Plasma/NucleusLib/pnCrash/CMakeLists.txt | 0 .../Plasma/NucleusLib/pnCrash/Pch.h | 0 .../Plasma/NucleusLib/pnCrash/pnCrash.bat | 0 .../Plasma/NucleusLib/pnCrash/pnCrash.cpp | 0 .../Plasma/NucleusLib/pnCrash/pnCrash.h | 0 .../Plasma/NucleusLib/pnCrash/pnCrash.py | 0 .../NucleusLib/pnCrashExe/CMakeLists.txt | 0 .../Plasma/NucleusLib/pnCrashExe/Pch.h | 0 .../NucleusLib/pnCrashExe/Win32/W32Int.h | 0 .../pnCrashExe/Win32/pnCreError.cpp | 0 .../NucleusLib/pnCrashExe/Win32/pnCreGui.cpp | 0 .../NucleusLib/pnCrashExe/Win32/pnCreMail.cpp | 0 .../pnCrashExe/Win32/pnCreTools.cpp | 0 .../Plasma/NucleusLib/pnCsrCli/CMakeLists.txt | 0 .../Plasma/NucleusLib/pnCsrCli/Pch.h | 0 .../Plasma/NucleusLib/pnCsrCli/pnCsrCli.cpp | 0 .../Plasma/NucleusLib/pnCsrCli/pnCsrCli.h | 0 .../Plasma/NucleusLib/pnCsrNet/CMakeLists.txt | 0 .../Plasma/NucleusLib/pnCsrNet/Pch.h | 0 .../Plasma/NucleusLib/pnCsrNet/pnCsrNet.cpp | 0 .../Plasma/NucleusLib/pnCsrNet/pnCsrNet.h | 0 .../NucleusLib/pnDispatch/CMakeLists.txt | 0 .../NucleusLib/pnDispatch/plDispatch.cpp | 0 .../Plasma/NucleusLib/pnDispatch/plDispatch.h | 0 .../pnDispatch/plDispatchLogBase.cpp | 0 .../NucleusLib/pnDispatch/plDispatchLogBase.h | 0 .../pnDispatch/pnDispatchCreatable.h | 0 .../NucleusLib/pnFactory/CMakeLists.txt | 0 .../Plasma/NucleusLib/pnFactory/plCreatable.h | 0 .../Plasma/NucleusLib/pnFactory/plCreator.h | 0 .../Plasma/NucleusLib/pnFactory/plFactory.cpp | 0 .../Plasma/NucleusLib/pnFactory/plFactory.h | 0 .../pnGameMgr/BlueSpiral/pnGmBlueSpiral.cpp | 0 .../pnGameMgr/BlueSpiral/pnGmBlueSpiral.h | 0 .../NucleusLib/pnGameMgr/CMakeLists.txt | 0 .../ClimbingWall/pnGmClimbingWall.cpp | 0 .../pnGameMgr/ClimbingWall/pnGmClimbingWall.h | 0 .../NucleusLib/pnGameMgr/Heek/pnGmHeek.cpp | 0 .../NucleusLib/pnGameMgr/Heek/pnGmHeek.h | 0 .../Plasma/NucleusLib/pnGameMgr/Intern.h | 0 .../pnGameMgr/Marker/pnGmMarker.cpp | 0 .../NucleusLib/pnGameMgr/Marker/pnGmMarker.h | 0 .../Plasma/NucleusLib/pnGameMgr/Pch.h | 0 .../pnGameMgr/TicTacToe/pnGmTicTacToe.cpp | 0 .../pnGameMgr/TicTacToe/pnGmTicTacToe.h | 0 .../pnGameMgr/VarSync/pnGmVarSync.cpp | 0 .../pnGameMgr/VarSync/pnGmVarSync.h | 0 .../Plasma/NucleusLib/pnGameMgr/pnGameMgr.cpp | 0 .../Plasma/NucleusLib/pnGameMgr/pnGameMgr.h | 0 .../Plasma/NucleusLib/pnIni/CMakeLists.txt | 0 .../Plasma/NucleusLib/pnIni/Intern.h | 0 .../Plasma/NucleusLib/pnIni/Pch.h | 0 .../pnIni/Private/pnIniAllIncludes.h | 0 .../NucleusLib/pnIni/Private/pnIniChange.h | 0 .../NucleusLib/pnIni/Private/pnIniCore.cpp | 0 .../NucleusLib/pnIni/Private/pnIniCore.h | 0 .../NucleusLib/pnIni/Private/pnIniSrv.cpp | 0 .../NucleusLib/pnIni/Private/pnIniSrv.h | 0 .../Plasma/NucleusLib/pnIni/pnIni.h | 0 .../Plasma/NucleusLib/pnIniExe/CMakeLists.txt | 0 .../Plasma/NucleusLib/pnIniExe/Pch.h | 0 .../pnIniExe/Private/Win32/pnW32IniChange.cpp | 0 .../NucleusLib/pnIniExe/Private/pnIniSrv.cpp | 0 .../NucleusLib/pnInputCore/CMakeLists.txt | 0 .../pnInputCore/plControlDefinition.h | 0 .../pnInputCore/plControlEventCodes.h | 0 .../NucleusLib/pnInputCore/plInputMap.cpp | 0 .../NucleusLib/pnInputCore/plInputMap.h | 0 .../Plasma/NucleusLib/pnInputCore/plKeyDef.h | 0 .../Plasma/NucleusLib/pnInputCore/plKeyMap.h | 0 .../Plasma/NucleusLib/pnInputCore/plOSMsg.h | 0 .../NucleusLib/pnKeyedObject/CMakeLists.txt | 0 .../pnKeyedObject/hsKeyedObject.cpp | 0 .../NucleusLib/pnKeyedObject/hsKeyedObject.h | 0 .../NucleusLib/pnKeyedObject/plFixedKey.cpp | 0 .../NucleusLib/pnKeyedObject/plFixedKey.h | 0 .../Plasma/NucleusLib/pnKeyedObject/plKey.cpp | 0 .../Plasma/NucleusLib/pnKeyedObject/plKey.h | 0 .../NucleusLib/pnKeyedObject/plKeyImp.cpp | 0 .../NucleusLib/pnKeyedObject/plKeyImp.h | 0 .../pnKeyedObject/plMsgForwarder.cpp | 0 .../NucleusLib/pnKeyedObject/plMsgForwarder.h | 0 .../NucleusLib/pnKeyedObject/plReceiver.h | 0 .../NucleusLib/pnKeyedObject/plTempKey.cpp | 0 .../NucleusLib/pnKeyedObject/plTempKey.h | 0 .../NucleusLib/pnKeyedObject/plUoid.cpp | 0 .../Plasma/NucleusLib/pnKeyedObject/plUoid.h | 0 .../pnKeyedObject/pnKeyedObjectCreatable.h | 0 .../Plasma/NucleusLib/pnMail/CMakeLists.txt | 0 .../Plasma/NucleusLib/pnMail/Pch.h | 0 .../Plasma/NucleusLib/pnMail/pnMail.cpp | 0 .../Plasma/NucleusLib/pnMail/pnMail.h | 0 .../NucleusLib/pnMessage/CMakeLists.txt | 0 .../Plasma/NucleusLib/pnMessage/plAttachMsg.h | 0 .../NucleusLib/pnMessage/plAudioSysMsg.h | 0 .../NucleusLib/pnMessage/plCameraMsg.cpp | 0 .../Plasma/NucleusLib/pnMessage/plCameraMsg.h | 0 .../NucleusLib/pnMessage/plClientMsg.cpp | 0 .../Plasma/NucleusLib/pnMessage/plClientMsg.h | 0 .../NucleusLib/pnMessage/plCmdIfaceModMsg.h | 0 .../NucleusLib/pnMessage/plCollisionMsg.h | 0 .../NucleusLib/pnMessage/plCorrectionMsg.h | 0 .../NucleusLib/pnMessage/plCursorChangeMsg.h | 0 .../NucleusLib/pnMessage/plDISpansMsg.h | 0 .../Plasma/NucleusLib/pnMessage/plEnableMsg.h | 0 .../NucleusLib/pnMessage/plEnvEffectMsg.cpp | 0 .../NucleusLib/pnMessage/plEnvEffectMsg.h | 0 .../NucleusLib/pnMessage/plEventCallbackMsg.h | 0 .../NucleusLib/pnMessage/plFakeOutMsg.h | 0 .../Plasma/NucleusLib/pnMessage/plIntRefMsg.h | 0 .../Plasma/NucleusLib/pnMessage/plMessage.cpp | 0 .../Plasma/NucleusLib/pnMessage/plMessage.h | 0 .../pnMessage/plMessageWithCallbacks.cpp | 0 .../pnMessage/plMessageWithCallbacks.h | 0 .../NucleusLib/pnMessage/plMultiModMsg.h | 0 .../NucleusLib/pnMessage/plNodeChangeMsg.cpp | 0 .../NucleusLib/pnMessage/plNodeChangeMsg.h | 0 .../NucleusLib/pnMessage/plNodeRefMsg.h | 0 .../NucleusLib/pnMessage/plNotifyMsg.cpp | 0 .../Plasma/NucleusLib/pnMessage/plNotifyMsg.h | 0 .../Plasma/NucleusLib/pnMessage/plObjRefMsg.h | 0 .../NucleusLib/pnMessage/plPipeResMakeMsg.h | 0 .../NucleusLib/pnMessage/plPlayerPageMsg.h | 0 .../NucleusLib/pnMessage/plProxyDrawMsg.cpp | 0 .../NucleusLib/pnMessage/plProxyDrawMsg.h | 0 .../Plasma/NucleusLib/pnMessage/plRefMsg.cpp | 0 .../Plasma/NucleusLib/pnMessage/plRefMsg.h | 0 .../pnMessage/plRemoteAvatarInfoMsg.h | 0 .../NucleusLib/pnMessage/plSDLModifierMsg.cpp | 0 .../NucleusLib/pnMessage/plSDLModifierMsg.h | 0 .../pnMessage/plSDLNotificationMsg.h | 0 .../NucleusLib/pnMessage/plSatisfiedMsg.h | 0 .../NucleusLib/pnMessage/plSelfDestructMsg.h | 0 .../NucleusLib/pnMessage/plServerReplyMsg.cpp | 0 .../NucleusLib/pnMessage/plServerReplyMsg.h | 0 .../NucleusLib/pnMessage/plSetNetGroupIDMsg.h | 0 .../NucleusLib/pnMessage/plSharedStateMsg.h | 0 .../NucleusLib/pnMessage/plSimulationMsg.cpp | 0 .../NucleusLib/pnMessage/plSimulationMsg.h | 0 .../pnMessage/plSimulationSynchMsg.h | 0 .../NucleusLib/pnMessage/plSingleModMsg.h | 0 .../NucleusLib/pnMessage/plSoundMsg.cpp | 0 .../Plasma/NucleusLib/pnMessage/plSoundMsg.h | 0 .../Plasma/NucleusLib/pnMessage/plTimeMsg.cpp | 0 .../Plasma/NucleusLib/pnMessage/plTimeMsg.h | 0 .../Plasma/NucleusLib/pnMessage/plWarpMsg.h | 0 .../NucleusLib/pnMessage/pnMessageCreatable.h | 0 .../NucleusLib/pnModifier/CMakeLists.txt | 0 .../pnModifier/plConditionalObject.cpp | 0 .../pnModifier/plConditionalObject.h | 0 .../NucleusLib/pnModifier/plLogicModBase.cpp | 0 .../NucleusLib/pnModifier/plLogicModBase.h | 0 .../NucleusLib/pnModifier/plModifier.cpp | 0 .../Plasma/NucleusLib/pnModifier/plModifier.h | 0 .../NucleusLib/pnModifier/plMultiModifier.cpp | 0 .../NucleusLib/pnModifier/plMultiModifier.h | 0 .../pnModifier/plSingleModifier.cpp | 0 .../NucleusLib/pnModifier/plSingleModifier.h | 0 .../pnModifier/pnModifierCreatable.h | 0 .../NucleusLib/pnNetBase/CMakeLists.txt | 0 .../Plasma/NucleusLib/pnNetBase/Intern.h | 0 .../Plasma/NucleusLib/pnNetBase/Pch.h | 0 .../NucleusLib/pnNetBase/Private/pnNbAges.cpp | 0 .../NucleusLib/pnNetBase/Private/pnNbAges.h | 0 .../pnNetBase/Private/pnNbAllIncludes.h | 0 .../pnNetBase/Private/pnNbEchoMsgs.h | 0 .../pnNetBase/Private/pnNbError.cpp | 0 .../NucleusLib/pnNetBase/Private/pnNbError.h | 0 .../pnNetBase/Private/pnNbProtocol.cpp | 0 .../pnNetBase/Private/pnNbProtocol.h | 0 .../NucleusLib/pnNetBase/Private/pnNbSrvs.cpp | 0 .../NucleusLib/pnNetBase/Private/pnNbSrvs.h | 0 .../NucleusLib/pnNetBase/pnNbAuthKey.hpp | 0 .../Plasma/NucleusLib/pnNetBase/pnNbConst.h | 0 .../NucleusLib/pnNetBase/pnNbCsrKey.hpp | 0 .../NucleusLib/pnNetBase/pnNbGameKey.hpp | 0 .../pnNetBase/pnNbGateKeeperKey.hpp | 0 .../Plasma/NucleusLib/pnNetBase/pnNetBase.h | 0 .../Plasma/NucleusLib/pnNetCli/CMakeLists.txt | 0 .../Plasma/NucleusLib/pnNetCli/Intern.h | 0 .../Plasma/NucleusLib/pnNetCli/Pch.h | 0 .../NucleusLib/pnNetCli/pnNcChannel.cpp | 0 .../Plasma/NucleusLib/pnNetCli/pnNcCli.cpp | 0 .../NucleusLib/pnNetCli/pnNcEncrypt.cpp | 0 .../Plasma/NucleusLib/pnNetCli/pnNcUtils.cpp | 0 .../Plasma/NucleusLib/pnNetCli/pnNetCli.h | 0 .../NucleusLib/pnNetCommon/CMakeLists.txt | 0 .../NucleusLib/pnNetCommon/plGenericVar.cpp | 0 .../NucleusLib/pnNetCommon/plGenericVar.h | 0 .../NucleusLib/pnNetCommon/plNetAddress.cpp | 0 .../NucleusLib/pnNetCommon/plNetAddress.h | 0 .../NucleusLib/pnNetCommon/plNetApp.cpp | 0 .../Plasma/NucleusLib/pnNetCommon/plNetApp.h | 0 .../NucleusLib/pnNetCommon/plNetCommonStats.h | 0 .../NucleusLib/pnNetCommon/plNetGroup.cpp | 0 .../NucleusLib/pnNetCommon/plNetGroup.h | 0 .../pnNetCommon/plNetResManager.cpp | 0 .../NucleusLib/pnNetCommon/plNetResManager.h | 0 .../NucleusLib/pnNetCommon/plNetServers.cpp | 0 .../NucleusLib/pnNetCommon/plNetServers.h | 0 .../pnNetCommon/plNetSharedState.cpp | 0 .../NucleusLib/pnNetCommon/plNetSharedState.h | 0 .../NucleusLib/pnNetCommon/plSDLTypes.cpp | 0 .../NucleusLib/pnNetCommon/plSDLTypes.h | 0 .../pnNetCommon/plSynchedObject.cpp | 0 .../NucleusLib/pnNetCommon/plSynchedObject.h | 0 .../NucleusLib/pnNetCommon/plSynchedValue.cpp | 0 .../NucleusLib/pnNetCommon/plSynchedValue.h | 0 .../NucleusLib/pnNetCommon/pnNetCommon.cpp | 0 .../NucleusLib/pnNetCommon/pnNetCommon.h | 0 .../pnNetCommon/pnNetCommonCreatable.h | 0 .../NucleusLib/pnNetDiag/CMakeLists.txt | 0 .../Plasma/NucleusLib/pnNetDiag/Intern.h | 0 .../Plasma/NucleusLib/pnNetDiag/Pch.h | 0 .../Plasma/NucleusLib/pnNetDiag/pnNdDns.cpp | 0 .../Plasma/NucleusLib/pnNetDiag/pnNdIcmp.cpp | 0 .../Plasma/NucleusLib/pnNetDiag/pnNdTcp.cpp | 0 .../Plasma/NucleusLib/pnNetDiag/pnNetDiag.cpp | 0 .../Plasma/NucleusLib/pnNetDiag/pnNetDiag.h | 0 .../Plasma/NucleusLib/pnNetDiag/pnNetSys.cpp | 0 .../Plasma/NucleusLib/pnNetLog/Intern.h | 0 .../Plasma/NucleusLib/pnNetLog/Pch.h | 0 .../Plasma/NucleusLib/pnNetLog/pnNetLog.h | 0 .../Plasma/NucleusLib/pnNetLog/pnNlApi.cpp | 0 .../Plasma/NucleusLib/pnNetLog/pnNlCli.cpp | 0 .../Plasma/NucleusLib/pnNetLog/pnNlSrv.cpp | 0 .../NucleusLib/pnNetProtocol/CMakeLists.txt | 0 .../Plasma/NucleusLib/pnNetProtocol/Intern.h | 0 .../Plasma/NucleusLib/pnNetProtocol/Pch.h | 0 .../Protocols/Cli2Auth/pnNpCli2Auth.cpp | 0 .../Private/Protocols/Cli2Auth/pnNpCli2Auth.h | 0 .../Private/Protocols/Cli2Csr/pnNpCli2Csr.cpp | 0 .../Private/Protocols/Cli2Csr/pnNpCli2Csr.h | 0 .../Protocols/Cli2File/pnNpCli2File.cpp | 0 .../Private/Protocols/Cli2File/pnNpCli2File.h | 0 .../Protocols/Cli2Game/pnNpCli2Game.cpp | 0 .../Private/Protocols/Cli2Game/pnNpCli2Game.h | 0 .../Cli2GateKeeper/pnNpCli2GateKeeper.cpp | 0 .../Cli2GateKeeper/pnNpCli2GateKeeper.h | 0 .../Private/Protocols/Srv2Db/pnNpSrv2Db.cpp | 0 .../Private/Protocols/Srv2Db/pnNpSrv2Db.h | 0 .../Private/Protocols/Srv2Log/pnNpSrv2Log.cpp | 0 .../Private/Protocols/Srv2Log/pnNpSrv2Log.h | 0 .../Private/Protocols/Srv2Mcp/pnNpSrv2Mcp.cpp | 0 .../Private/Protocols/Srv2Mcp/pnNpSrv2Mcp.h | 0 .../Protocols/Srv2Score/pnNpSrv2Score.cpp | 0 .../Protocols/Srv2Score/pnNpSrv2Score.h | 0 .../Protocols/Srv2State/pnNpSrv2State.cpp | 0 .../Protocols/Srv2State/pnNpSrv2State.h | 0 .../Protocols/Srv2Vault/pnNpSrv2Vault.cpp | 0 .../Protocols/Srv2Vault/pnNpSrv2Vault.h | 0 .../pnNetProtocol/Private/pnNpAllIncludes.h | 0 .../pnNetProtocol/Private/pnNpCommon.cpp | 0 .../pnNetProtocol/Private/pnNpCommon.h | 0 .../NucleusLib/pnNetProtocol/pnNetProtocol.h | 0 .../Plasma/NucleusLib/pnOraLib/Intern.h | 0 .../Plasma/NucleusLib/pnOraLib/Pch.h | 0 .../Plasma/NucleusLib/pnOraLib/pnOraLib.cpp | 0 .../Plasma/NucleusLib/pnOraLib/pnOraLib.h | 0 .../NucleusLib/pnProduct/CMakeLists.txt | 0 .../Plasma/NucleusLib/pnProduct/Pch.h | 0 .../pnProduct/Private/pnPrAllIncludes.h | 0 .../pnProduct/Private/pnPrBranchId.cpp | 0 .../pnProduct/Private/pnPrBranchId.h | 0 .../pnProduct/Private/pnPrBuildId.cpp | 0 .../pnProduct/Private/pnPrBuildId.h | 0 .../pnProduct/Private/pnPrBuildString.cpp | 0 .../pnProduct/Private/pnPrBuildString.h | 0 .../pnProduct/Private/pnPrBuildType.cpp | 0 .../pnProduct/Private/pnPrBuildType.h | 0 .../pnProduct/Private/pnPrProductId.cpp | 0 .../pnProduct/Private/pnPrProductId.h | 0 .../Plasma/NucleusLib/pnProduct/pnProduct.h | 0 .../NucleusLib/pnSceneObject/CMakeLists.txt | 0 .../pnSceneObject/plAudioInterface.cpp | 0 .../pnSceneObject/plAudioInterface.h | 0 .../pnSceneObject/plCoordinateInterface.cpp | 0 .../pnSceneObject/plCoordinateInterface.h | 0 .../pnSceneObject/plDrawInterface.cpp | 0 .../pnSceneObject/plDrawInterface.h | 0 .../pnSceneObject/plObjInterface.cpp | 0 .../NucleusLib/pnSceneObject/plObjInterface.h | 0 .../pnSceneObject/plSceneObject.cpp | 0 .../NucleusLib/pnSceneObject/plSceneObject.h | 0 .../pnSceneObject/plSimulationInterface.cpp | 0 .../pnSceneObject/plSimulationInterface.h | 0 .../pnSceneObject/pnSceneObjectCreatable.h | 0 .../NucleusLib/pnSimpleNet/CMakeLists.txt | 0 .../Plasma/NucleusLib/pnSimpleNet/Pch.h | 0 .../NucleusLib/pnSimpleNet/pnSimpleNet.cpp | 0 .../NucleusLib/pnSimpleNet/pnSimpleNet.h | 0 .../Plasma/NucleusLib/pnSqlLib/Intern.h | 0 .../Plasma/NucleusLib/pnSqlLib/Pch.h | 0 .../pnSqlLib/Private/pnSqlAllIncludes.h | 0 .../NucleusLib/pnSqlLib/Private/pnSqlConn.cpp | 0 .../NucleusLib/pnSqlLib/Private/pnSqlConn.h | 0 .../NucleusLib/pnSqlLib/Private/pnSqlUtil.cpp | 0 .../NucleusLib/pnSqlLib/Private/pnSqlUtil.h | 0 .../Plasma/NucleusLib/pnSqlLib/pnSqlLib.h | 0 .../Plasma/NucleusLib/pnTimer/CMakeLists.txt | 0 .../Plasma/NucleusLib/pnTimer/hsTimer.cpp | 0 .../NucleusLib/pnTimer/plTimedValue.cpp | 0 .../Plasma/NucleusLib/pnTimer/plTimedValue.h | 0 .../pnTimer/plTimerCallbackManager.cpp | 0 .../pnTimer/plTimerCallbackManager.h | 0 .../NucleusLib/pnTimer/pnBranchDate.cpp | 0 .../NucleusLib/pnTimer/pnBuildDates.cpp | 0 .../Plasma/NucleusLib/pnTimer/pnBuildDates.h | 0 .../NucleusLib/pnTimer/pnTimerCreatable.h | 0 .../Plasma/NucleusLib/pnUtils/CMakeLists.txt | 0 .../Plasma/NucleusLib/pnUtils/Intern.h | 0 .../Plasma/NucleusLib/pnUtils/Pch.h | 0 .../pnUtils/Private/Unix/pnUtUxStr.cpp | 0 .../pnUtils/Private/Unix/pnUtUxSync.cpp | 0 .../pnUtils/Private/Unix/pnUtUxUuid.cpp | 0 .../NucleusLib/pnUtils/Private/Win32/W32Int.h | 0 .../pnUtils/Private/Win32/pnUtW32Addr.cpp | 0 .../pnUtils/Private/Win32/pnUtW32Dll.cpp | 0 .../pnUtils/Private/Win32/pnUtW32Misc.cpp | 0 .../pnUtils/Private/Win32/pnUtW32Path.cpp | 0 .../pnUtils/Private/Win32/pnUtW32Str.cpp | 0 .../pnUtils/Private/Win32/pnUtW32Sync.cpp | 0 .../pnUtils/Private/Win32/pnUtW32Time.cpp | 0 .../pnUtils/Private/Win32/pnUtW32Uuid.cpp | 0 .../NucleusLib/pnUtils/Private/pnUtAddr.cpp | 0 .../NucleusLib/pnUtils/Private/pnUtAddr.h | 0 .../pnUtils/Private/pnUtAllIncludes.h | 0 .../NucleusLib/pnUtils/Private/pnUtArray.cpp | 0 .../NucleusLib/pnUtils/Private/pnUtArray.h | 0 .../NucleusLib/pnUtils/Private/pnUtBase64.cpp | 0 .../NucleusLib/pnUtils/Private/pnUtBase64.h | 0 .../NucleusLib/pnUtils/Private/pnUtBigNum.cpp | 0 .../NucleusLib/pnUtils/Private/pnUtBigNum.h | 0 .../NucleusLib/pnUtils/Private/pnUtCmd.cpp | 0 .../NucleusLib/pnUtils/Private/pnUtCmd.h | 0 .../NucleusLib/pnUtils/Private/pnUtCoreLib.h | 0 .../NucleusLib/pnUtils/Private/pnUtCrypt.cpp | 0 .../NucleusLib/pnUtils/Private/pnUtCrypt.h | 0 .../NucleusLib/pnUtils/Private/pnUtEndian.cpp | 0 .../NucleusLib/pnUtils/Private/pnUtEndian.h | 0 .../NucleusLib/pnUtils/Private/pnUtHash.cpp | 0 .../NucleusLib/pnUtils/Private/pnUtHash.h | 0 .../NucleusLib/pnUtils/Private/pnUtList.cpp | 0 .../NucleusLib/pnUtils/Private/pnUtList.h | 0 .../NucleusLib/pnUtils/Private/pnUtMath.cpp | 0 .../NucleusLib/pnUtils/Private/pnUtMath.h | 0 .../NucleusLib/pnUtils/Private/pnUtMisc.cpp | 0 .../NucleusLib/pnUtils/Private/pnUtMisc.h | 0 .../NucleusLib/pnUtils/Private/pnUtPath.cpp | 0 .../NucleusLib/pnUtils/Private/pnUtPath.h | 0 .../NucleusLib/pnUtils/Private/pnUtPragma.h | 0 .../NucleusLib/pnUtils/Private/pnUtPriQ.h | 0 .../NucleusLib/pnUtils/Private/pnUtRand.cpp | 0 .../NucleusLib/pnUtils/Private/pnUtRand.h | 0 .../NucleusLib/pnUtils/Private/pnUtRef.h | 0 .../NucleusLib/pnUtils/Private/pnUtSkipList.h | 0 .../NucleusLib/pnUtils/Private/pnUtSort.h | 0 .../pnUtils/Private/pnUtSpareList.cpp | 0 .../pnUtils/Private/pnUtSpareList.h | 0 .../NucleusLib/pnUtils/Private/pnUtStr.cpp | 0 .../NucleusLib/pnUtils/Private/pnUtStr.h | 0 .../NucleusLib/pnUtils/Private/pnUtSubst.cpp | 0 .../NucleusLib/pnUtils/Private/pnUtSubst.h | 0 .../NucleusLib/pnUtils/Private/pnUtSync.h | 0 .../NucleusLib/pnUtils/Private/pnUtTime.cpp | 0 .../NucleusLib/pnUtils/Private/pnUtTime.h | 0 .../NucleusLib/pnUtils/Private/pnUtTls.cpp | 0 .../NucleusLib/pnUtils/Private/pnUtTls.h | 0 .../NucleusLib/pnUtils/Private/pnUtTypes.h | 0 .../NucleusLib/pnUtils/Private/pnUtUuid.cpp | 0 .../NucleusLib/pnUtils/Private/pnUtUuid.h | 0 .../Plasma/NucleusLib/pnUtils/pnUtils.cpp | 0 .../Plasma/NucleusLib/pnUtils/pnUtils.h | 0 .../NucleusLib/pnUtilsExe/CMakeLists.txt | 0 .../Plasma/NucleusLib/pnUtilsExe/Intern.h | 0 .../Plasma/NucleusLib/pnUtilsExe/Pch.h | 0 .../pnUtilsExe/Private/Unix/pnUteUxTime.cpp | 0 .../pnUtilsExe/Private/Win32/pnUteW32Time.cpp | 0 .../pnUtilsExe/Private/pnUteTime.cpp | 0 .../pnUtilsExe/Private/pnUteTls.cpp | 0 .../Plasma/PubUtilLib/CMakeLists.txt | 0 .../Plasma/PubUtilLib/inc/plAllCreatables.h | 0 .../plAgeDescription/CMakeLists.txt | 0 .../plAgeDescription/plAgeDescription.cpp | 0 .../plAgeDescription/plAgeDescription.h | 0 .../plAgeDescription/plAgeManifest.cpp | 0 .../plAgeDescription/plAgeManifest.h | 0 .../PubUtilLib/plAgeLoader/CMakeLists.txt | 0 .../PubUtilLib/plAgeLoader/plAgeLoader.cpp | 0 .../PubUtilLib/plAgeLoader/plAgeLoader.h | 0 .../plAgeLoader/plAgeLoaderCreatable.h | 0 .../plAgeLoader/plAgeLoaderPaging.cpp | 0 .../plAgeLoader/plBackgroundDownloader.cpp | 0 .../plAgeLoader/plBackgroundDownloader.h | 0 .../PubUtilLib/plAgeLoader/plResPatcher.cpp | 0 .../PubUtilLib/plAgeLoader/plResPatcher.h | 0 .../PubUtilLib/plAudible/CMakeLists.txt | 0 .../PubUtilLib/plAudible/plAudibleCreatable.h | 0 .../PubUtilLib/plAudible/plAudibleNull.cpp | 0 .../PubUtilLib/plAudible/plAudibleNull.h | 0 .../PubUtilLib/plAudible/plWinAudible.cpp | 0 .../PubUtilLib/plAudible/plWinAudible.h | 0 .../plAudible/plWinAudibleProxy.cpp | 0 .../PubUtilLib/plAudible/plWinAudibleProxy.h | 0 .../Plasma/PubUtilLib/plAudio/CMakeLists.txt | 0 .../Plasma/PubUtilLib/plAudio/plAudioCaps.cpp | 0 .../Plasma/PubUtilLib/plAudio/plAudioCaps.h | 0 .../PubUtilLib/plAudio/plAudioCreatable.h | 0 .../plAudio/plAudioReaderCreatable.h | 0 .../PubUtilLib/plAudio/plAudioSystem.cpp | 0 .../Plasma/PubUtilLib/plAudio/plAudioSystem.h | 0 .../PubUtilLib/plAudio/plDSoundBuffer.cpp | 0 .../PubUtilLib/plAudio/plDSoundBuffer.h | 0 .../PubUtilLib/plAudio/plEAXEffects.cpp | 0 .../Plasma/PubUtilLib/plAudio/plEAXEffects.h | 0 .../PubUtilLib/plAudio/plEAXListenerMod.cpp | 0 .../PubUtilLib/plAudio/plEAXListenerMod.h | 0 .../Plasma/PubUtilLib/plAudio/plSound.cpp | 0 .../Plasma/PubUtilLib/plAudio/plSound.h | 0 .../PubUtilLib/plAudio/plSoundEvent.cpp | 0 .../Plasma/PubUtilLib/plAudio/plSoundEvent.h | 0 .../Plasma/PubUtilLib/plAudio/plVoiceChat.cpp | 0 .../Plasma/PubUtilLib/plAudio/plVoiceChat.h | 0 .../PubUtilLib/plAudio/plWAVClipBuffer.cpp | 0 .../PubUtilLib/plAudio/plWAVClipBuffer.h | 0 .../plAudio/plWin32GroupedSound.cpp | 0 .../PubUtilLib/plAudio/plWin32GroupedSound.h | 0 .../PubUtilLib/plAudio/plWin32Sound.cpp | 0 .../Plasma/PubUtilLib/plAudio/plWin32Sound.h | 0 .../PubUtilLib/plAudio/plWin32StaticSound.cpp | 0 .../PubUtilLib/plAudio/plWin32StaticSound.h | 0 .../plAudio/plWin32StreamingSound.cpp | 0 .../plAudio/plWin32StreamingSound.h | 0 .../PubUtilLib/plAudio/plWinMicLevel.cpp | 0 .../Plasma/PubUtilLib/plAudio/plWinMicLevel.h | 0 .../PubUtilLib/plAudioCore/CMakeLists.txt | 0 .../PubUtilLib/plAudioCore/plAudioCore.h | 0 .../plAudioCore/plAudioCoreCreatable.h | 0 .../plAudioCore/plAudioFileReader.cpp | 0 .../plAudioCore/plAudioFileReader.h | 0 .../plAudioCore/plBufferedFileReader.cpp | 0 .../plAudioCore/plBufferedFileReader.h | 0 .../plAudioCore/plFastWavReader.cpp | 0 .../PubUtilLib/plAudioCore/plFastWavReader.h | 0 .../PubUtilLib/plAudioCore/plOGGCodec.cpp | 0 .../PubUtilLib/plAudioCore/plOGGCodec.h | 0 .../PubUtilLib/plAudioCore/plSoundBuffer.cpp | 0 .../PubUtilLib/plAudioCore/plSoundBuffer.h | 0 .../plAudioCore/plSoundDeswizzler.cpp | 0 .../plAudioCore/plSoundDeswizzler.h | 0 .../PubUtilLib/plAudioCore/plWavFile.cpp | 0 .../Plasma/PubUtilLib/plAudioCore/plWavFile.h | 0 .../Plasma/PubUtilLib/plAvatar/CMakeLists.txt | 0 .../Plasma/PubUtilLib/plAvatar/plAGAnim.cpp | 0 .../Plasma/PubUtilLib/plAvatar/plAGAnim.h | 0 .../PubUtilLib/plAvatar/plAGAnimInstance.cpp | 0 .../PubUtilLib/plAvatar/plAGAnimInstance.h | 0 .../PubUtilLib/plAvatar/plAGApplicator.cpp | 0 .../PubUtilLib/plAvatar/plAGApplicator.h | 0 .../PubUtilLib/plAvatar/plAGChannel.cpp | 0 .../Plasma/PubUtilLib/plAvatar/plAGChannel.h | 0 .../PubUtilLib/plAvatar/plAGMasterMod.cpp | 0 .../PubUtilLib/plAvatar/plAGMasterMod.h | 0 .../plAvatar/plAGMasterSDLModifier.cpp | 0 .../plAvatar/plAGMasterSDLModifier.h | 0 .../PubUtilLib/plAvatar/plAGModifier.cpp | 0 .../Plasma/PubUtilLib/plAvatar/plAGModifier.h | 0 .../PubUtilLib/plAvatar/plAnimStage.cpp | 0 .../Plasma/PubUtilLib/plAvatar/plAnimStage.h | 0 .../PubUtilLib/plAvatar/plAntiGravAction.cpp | 0 .../PubUtilLib/plAvatar/plAntiGravAction.h | 0 .../PubUtilLib/plAvatar/plArmatureEffects.cpp | 0 .../PubUtilLib/plAvatar/plArmatureEffects.h | 0 .../PubUtilLib/plAvatar/plArmatureMod.cpp | 0 .../PubUtilLib/plAvatar/plArmatureMod.h | 0 .../PubUtilLib/plAvatar/plAvBehaviors.cpp | 0 .../PubUtilLib/plAvatar/plAvBehaviors.h | 0 .../Plasma/PubUtilLib/plAvatar/plAvBrain.cpp | 0 .../Plasma/PubUtilLib/plAvatar/plAvBrain.h | 0 .../PubUtilLib/plAvatar/plAvBrainClimb.cpp | 0 .../PubUtilLib/plAvatar/plAvBrainClimb.h | 0 .../PubUtilLib/plAvatar/plAvBrainCoop.cpp | 0 .../PubUtilLib/plAvatar/plAvBrainCoop.h | 0 .../PubUtilLib/plAvatar/plAvBrainCritter.cpp | 0 .../PubUtilLib/plAvatar/plAvBrainCritter.h | 0 .../PubUtilLib/plAvatar/plAvBrainDrive.cpp | 0 .../PubUtilLib/plAvatar/plAvBrainDrive.h | 0 .../PubUtilLib/plAvatar/plAvBrainGeneric.cpp | 0 .../PubUtilLib/plAvatar/plAvBrainGeneric.h | 0 .../PubUtilLib/plAvatar/plAvBrainHuman.cpp | 0 .../PubUtilLib/plAvatar/plAvBrainHuman.h | 0 .../PubUtilLib/plAvatar/plAvBrainPuppet.cpp | 0 .../PubUtilLib/plAvatar/plAvBrainPuppet.h | 0 .../plAvBrainRideAnimatedPhysical.cpp | 0 .../plAvatar/plAvBrainRideAnimatedPhysical.h | 0 .../plAvatar/plAvBrainStaticNPC.cpp | 0 .../PubUtilLib/plAvatar/plAvBrainSwim.cpp | 0 .../PubUtilLib/plAvatar/plAvBrainSwim.h | 0 .../PubUtilLib/plAvatar/plAvBrainUser.cpp | 0 .../PubUtilLib/plAvatar/plAvBrainUser.h | 0 .../plAvatar/plAvCallbackAction.cpp | 0 .../PubUtilLib/plAvatar/plAvCallbackAction.h | 0 .../Plasma/PubUtilLib/plAvatar/plAvDefs.h | 0 .../plAvatar/plAvLadderModifier.cpp | 0 .../PubUtilLib/plAvatar/plAvLadderModifier.h | 0 .../PubUtilLib/plAvatar/plAvMotorHuman.cpp | 0 .../PubUtilLib/plAvatar/plAvMotorHuman.h | 0 .../Plasma/PubUtilLib/plAvatar/plAvTask.cpp | 0 .../Plasma/PubUtilLib/plAvatar/plAvTask.h | 0 .../PubUtilLib/plAvatar/plAvTaskBrain.cpp | 0 .../PubUtilLib/plAvatar/plAvTaskBrain.h | 0 .../PubUtilLib/plAvatar/plAvTaskOrient.cpp | 0 .../PubUtilLib/plAvatar/plAvTaskOrient.h | 0 .../PubUtilLib/plAvatar/plAvTaskSeek.cpp | 0 .../Plasma/PubUtilLib/plAvatar/plAvTaskSeek.h | 0 .../PubUtilLib/plAvatar/plAvatarClothing.cpp | 0 .../PubUtilLib/plAvatar/plAvatarClothing.h | 0 .../PubUtilLib/plAvatar/plAvatarCreatable.h | 0 .../PubUtilLib/plAvatar/plAvatarMgr.cpp | 0 .../Plasma/PubUtilLib/plAvatar/plAvatarMgr.h | 0 .../plAvatar/plAvatarSDLModifier.cpp | 0 .../PubUtilLib/plAvatar/plAvatarSDLModifier.h | 0 .../PubUtilLib/plAvatar/plAvatarTasks.cpp | 0 .../PubUtilLib/plAvatar/plAvatarTasks.h | 0 .../PubUtilLib/plAvatar/plClothingLayout.h | 0 .../plAvatar/plClothingSDLModifier.cpp | 0 .../plAvatar/plClothingSDLModifier.h | 0 .../PubUtilLib/plAvatar/plCoopCoordinator.cpp | 0 .../PubUtilLib/plAvatar/plCoopCoordinator.h | 0 .../PubUtilLib/plAvatar/plCritterCommands.h | 0 .../PubUtilLib/plAvatar/plMatrixChannel.cpp | 0 .../PubUtilLib/plAvatar/plMatrixChannel.h | 0 .../plAvatar/plMultistageBehMod.cpp | 0 .../PubUtilLib/plAvatar/plMultistageBehMod.h | 0 .../PubUtilLib/plAvatar/plNPCSpawnMod.cpp | 0 .../PubUtilLib/plAvatar/plNPCSpawnMod.h | 0 .../PubUtilLib/plAvatar/plOneShotMod.cpp | 0 .../Plasma/PubUtilLib/plAvatar/plOneShotMod.h | 0 .../plAvatar/plPhysicalControllerCore.cpp | 0 .../plAvatar/plPhysicalControllerCore.h | 0 .../PubUtilLib/plAvatar/plPointChannel.cpp | 0 .../PubUtilLib/plAvatar/plPointChannel.h | 0 .../PubUtilLib/plAvatar/plPuppetBrainMsg.h | 0 .../PubUtilLib/plAvatar/plPuppetCommands.h | 0 .../PubUtilLib/plAvatar/plQuatChannel.cpp | 0 .../PubUtilLib/plAvatar/plQuatChannel.h | 0 .../PubUtilLib/plAvatar/plScalarChannel.cpp | 0 .../PubUtilLib/plAvatar/plScalarChannel.h | 0 .../PubUtilLib/plAvatar/plSeekPointMod.cpp | 0 .../PubUtilLib/plAvatar/plSeekPointMod.h | 0 .../PubUtilLib/plAvatar/plSittingModifier.cpp | 0 .../PubUtilLib/plAvatar/plSittingModifier.h | 0 .../PubUtilLib/plAvatar/plSwimRegion.cpp | 0 .../Plasma/PubUtilLib/plAvatar/plSwimRegion.h | 0 .../PubUtilLib/plCompression/CMakeLists.txt | 0 .../PubUtilLib/plCompression/plCompress.h | 0 .../plCompression/plZlibCompress.cpp | 0 .../PubUtilLib/plCompression/plZlibCompress.h | 0 .../PubUtilLib/plCompression/plZlibStream.cpp | 0 .../PubUtilLib/plCompression/plZlibStream.h | 0 .../PubUtilLib/plContainer/CMakeLists.txt | 0 .../PubUtilLib/plContainer/hsStringTable.cpp | 0 .../PubUtilLib/plContainer/hsStringTable.h | 0 .../PubUtilLib/plContainer/plConfigInfo.cpp | 0 .../PubUtilLib/plContainer/plConfigInfo.h | 0 .../plContainer/plConfigInfoLogging.cpp | 0 .../PubUtilLib/plContainer/plContainer.h | 0 .../plContainer/plKeysAndValues.cpp | 0 .../PubUtilLib/plContainer/plKeysAndValues.h | 0 .../plDeviceSelector/plDeviceSelector.cpp | 0 .../plDeviceSelector/plDeviceSelector.h | 0 .../PubUtilLib/plDrawable/CMakeLists.txt | 0 .../PubUtilLib/plDrawable/plAccMeshSmooth.cpp | 0 .../PubUtilLib/plDrawable/plAccMeshSmooth.h | 0 .../plDrawable/plAccessGeometry.cpp | 0 .../PubUtilLib/plDrawable/plAccessGeometry.h | 0 .../PubUtilLib/plDrawable/plAccessPartySpan.h | 0 .../plDrawable/plAccessSnapShot.cpp | 0 .../PubUtilLib/plDrawable/plAccessSnapShot.h | 0 .../PubUtilLib/plDrawable/plAccessSpan.h | 0 .../PubUtilLib/plDrawable/plAccessTriSpan.h | 0 .../PubUtilLib/plDrawable/plAccessVtxSpan.h | 0 .../plDrawable/plActivePrintShape.cpp | 0 .../plDrawable/plActivePrintShape.h | 0 .../Plasma/PubUtilLib/plDrawable/plAuxSpan.h | 0 .../PubUtilLib/plDrawable/plAvMeshSmooth.cpp | 0 .../PubUtilLib/plDrawable/plAvMeshSmooth.h | 0 .../PubUtilLib/plDrawable/plCluster.cpp | 0 .../Plasma/PubUtilLib/plDrawable/plCluster.h | 0 .../PubUtilLib/plDrawable/plClusterGroup.cpp | 0 .../PubUtilLib/plDrawable/plClusterGroup.h | 0 .../Plasma/PubUtilLib/plDrawable/plCutter.cpp | 0 .../Plasma/PubUtilLib/plDrawable/plCutter.h | 0 .../plDrawable/plDrawableCreatable.h | 0 .../plDrawable/plDrawableGenerator.cpp | 0 .../plDrawable/plDrawableGenerator.h | 0 .../PubUtilLib/plDrawable/plDrawableSpans.cpp | 0 .../PubUtilLib/plDrawable/plDrawableSpans.h | 0 .../plDrawable/plDrawableSpansExport.cpp | 0 .../PubUtilLib/plDrawable/plDynaBulletMgr.cpp | 0 .../PubUtilLib/plDrawable/plDynaBulletMgr.h | 0 .../PubUtilLib/plDrawable/plDynaDecal.cpp | 0 .../PubUtilLib/plDrawable/plDynaDecal.h | 0 .../PubUtilLib/plDrawable/plDynaDecalMgr.cpp | 0 .../PubUtilLib/plDrawable/plDynaDecalMgr.h | 0 .../PubUtilLib/plDrawable/plDynaFootMgr.cpp | 0 .../PubUtilLib/plDrawable/plDynaFootMgr.h | 0 .../PubUtilLib/plDrawable/plDynaPuddleMgr.cpp | 0 .../PubUtilLib/plDrawable/plDynaPuddleMgr.h | 0 .../PubUtilLib/plDrawable/plDynaRippleMgr.cpp | 0 .../PubUtilLib/plDrawable/plDynaRippleMgr.h | 0 .../plDrawable/plDynaRippleMgrVS.cpp | 0 .../PubUtilLib/plDrawable/plDynaRippleVSMgr.h | 0 .../plDrawable/plDynaTorpedoMgr.cpp | 0 .../PubUtilLib/plDrawable/plDynaTorpedoMgr.h | 0 .../plDrawable/plDynaTorpedoVSMgr.cpp | 0 .../plDrawable/plDynaTorpedoVSMgr.h | 0 .../PubUtilLib/plDrawable/plDynaWakeMgr.cpp | 0 .../PubUtilLib/plDrawable/plDynaWakeMgr.h | 0 .../plDrawable/plFixedWaterState7.cpp | 0 .../plDrawable/plFixedWaterState7.h | 0 .../PubUtilLib/plDrawable/plGeoSpanDice.cpp | 0 .../PubUtilLib/plDrawable/plGeoSpanDice.h | 0 .../PubUtilLib/plDrawable/plGeometrySpan.cpp | 0 .../PubUtilLib/plDrawable/plGeometrySpan.h | 0 .../plDrawable/plInstanceDrawInterface.cpp | 0 .../plDrawable/plInstanceDrawInterface.h | 0 .../plDrawable/plInterMeshSmooth.cpp | 0 .../PubUtilLib/plDrawable/plInterMeshSmooth.h | 0 .../PubUtilLib/plDrawable/plMorphArray.cpp | 0 .../PubUtilLib/plDrawable/plMorphArray.h | 0 .../PubUtilLib/plDrawable/plMorphDelta.cpp | 0 .../PubUtilLib/plDrawable/plMorphDelta.h | 0 .../PubUtilLib/plDrawable/plMorphSequence.cpp | 0 .../PubUtilLib/plDrawable/plMorphSequence.h | 0 .../plDrawable/plMorphSequenceSDLMod.cpp | 0 .../plDrawable/plMorphSequenceSDLMod.h | 0 .../plDrawable/plParticleFiller.cpp | 0 .../PubUtilLib/plDrawable/plParticleFiller.h | 0 .../PubUtilLib/plDrawable/plPrintShape.cpp | 0 .../PubUtilLib/plDrawable/plPrintShape.h | 0 .../PubUtilLib/plDrawable/plProxyGen.cpp | 0 .../Plasma/PubUtilLib/plDrawable/plProxyGen.h | 0 .../PubUtilLib/plDrawable/plRipVSConsts.h | 0 .../PubUtilLib/plDrawable/plSharedMesh.cpp | 0 .../PubUtilLib/plDrawable/plSharedMesh.h | 0 .../PubUtilLib/plDrawable/plSpaceTree.cpp | 0 .../PubUtilLib/plDrawable/plSpaceTree.h | 0 .../plDrawable/plSpaceTreeMaker.cpp | 0 .../PubUtilLib/plDrawable/plSpaceTreeMaker.h | 0 .../PubUtilLib/plDrawable/plSpanInstance.cpp | 0 .../PubUtilLib/plDrawable/plSpanInstance.h | 0 .../PubUtilLib/plDrawable/plSpanTemplate.cpp | 0 .../PubUtilLib/plDrawable/plSpanTemplate.h | 0 .../PubUtilLib/plDrawable/plSpanTypes.cpp | 0 .../PubUtilLib/plDrawable/plSpanTypes.h | 0 .../PubUtilLib/plDrawable/plTimedInterp.h | 0 .../PubUtilLib/plDrawable/plVisLOSMgr.cpp | 0 .../PubUtilLib/plDrawable/plVisLOSMgr.h | 0 .../PubUtilLib/plDrawable/plWaveSet7.cpp | 0 .../Plasma/PubUtilLib/plDrawable/plWaveSet7.h | 0 .../PubUtilLib/plDrawable/plWaveSetBase.cpp | 0 .../PubUtilLib/plDrawable/plWaveSetBase.h | 0 .../plDrawable/plWaveSetShaderConsts.h | 0 .../PubUtilLib/plEncryption/CMakeLists.txt | 0 .../PubUtilLib/plEncryption/plChecksum.cpp | 0 .../PubUtilLib/plEncryption/plChecksum.h | 0 .../Plasma/PubUtilLib/plFile/CMakeLists.txt | 0 .../Plasma/PubUtilLib/plFile/hsFiles.cpp | 0 .../Plasma/PubUtilLib/plFile/hsFiles.h | 0 .../Plasma/PubUtilLib/plFile/hsFiles_Mac.cpp | 0 .../Plasma/PubUtilLib/plFile/hsFiles_PS2.cpp | 0 .../Plasma/PubUtilLib/plFile/hsFiles_Unix.cpp | 0 .../Plasma/PubUtilLib/plFile/hsFiles_Win.cpp | 0 .../PubUtilLib/plFile/plBrowseFolder.cpp | 0 .../Plasma/PubUtilLib/plFile/plBrowseFolder.h | 0 .../PubUtilLib/plFile/plEncryptedStream.cpp | 0 .../PubUtilLib/plFile/plEncryptedStream.h | 0 .../Plasma/PubUtilLib/plFile/plFileUtils.cpp | 0 .../Plasma/PubUtilLib/plFile/plFileUtils.h | 0 .../PubUtilLib/plFile/plInitFileReader.cpp | 0 .../PubUtilLib/plFile/plInitFileReader.h | 0 .../PubUtilLib/plFile/plSecureStream.cpp | 0 .../Plasma/PubUtilLib/plFile/plSecureStream.h | 0 .../PubUtilLib/plFile/plStreamSource.cpp | 0 .../Plasma/PubUtilLib/plFile/plStreamSource.h | 0 .../Plasma/PubUtilLib/plGClip/placeholder.txt | 0 .../Plasma/PubUtilLib/plGImage/CMakeLists.txt | 0 .../Plasma/PubUtilLib/plGImage/HS_RECT.inc | 0 .../Plasma/PubUtilLib/plGImage/hsCodec.h | 0 .../PubUtilLib/plGImage/hsCodecManager.cpp | 0 .../PubUtilLib/plGImage/hsCodecManager.h | 0 .../PubUtilLib/plGImage/hsDXTDirectXCodec.cpp | 0 .../PubUtilLib/plGImage/hsDXTDirectXCodec.h | 0 .../plGImage/hsDXTSoftwareCodec.cpp | 0 .../PubUtilLib/plGImage/hsDXTSoftwareCodec.h | 0 .../Plasma/PubUtilLib/plGImage/hsRect.h | 0 .../Plasma/PubUtilLib/plGImage/notes.txt | 0 .../PubUtilLib/plGImage/plAVIWriter.cpp | 0 .../Plasma/PubUtilLib/plGImage/plAVIWriter.h | 0 .../Plasma/PubUtilLib/plGImage/plBitmap.cpp | 0 .../Plasma/PubUtilLib/plGImage/plBitmap.h | 0 .../PubUtilLib/plGImage/plBumpMapGen.cpp | 0 .../Plasma/PubUtilLib/plGImage/plBumpMapGen.h | 0 .../PubUtilLib/plGImage/plCubicEnvironmap.cpp | 0 .../PubUtilLib/plGImage/plCubicEnvironmap.h | 0 .../plGImage/plDynSurfaceWriter.cpp | 0 .../PubUtilLib/plGImage/plDynSurfaceWriter.h | 0 .../PubUtilLib/plGImage/plDynamicTextMap.cpp | 0 .../PubUtilLib/plGImage/plDynamicTextMap.h | 0 .../Plasma/PubUtilLib/plGImage/plFont.cpp | 0 .../Plasma/PubUtilLib/plGImage/plFont.h | 0 .../PubUtilLib/plGImage/plFontCache.cpp | 0 .../Plasma/PubUtilLib/plGImage/plFontCache.h | 0 .../PubUtilLib/plGImage/plGImageCreatable.h | 0 .../PubUtilLib/plGImage/plImageConvert.h | 0 .../PubUtilLib/plGImage/plLODMipmap.cpp | 0 .../Plasma/PubUtilLib/plGImage/plLODMipmap.h | 0 .../Plasma/PubUtilLib/plGImage/plMipmap.cpp | 0 .../Plasma/PubUtilLib/plGImage/plMipmap.h | 0 .../PubUtilLib/plGImage/plTGAWriter.cpp | 0 .../Plasma/PubUtilLib/plGImage/plTGAWriter.h | 0 .../PubUtilLib/plGImage/plWinFontCache.cpp | 0 .../PubUtilLib/plGImage/plWinFontCache.h | 0 .../Plasma/PubUtilLib/plGLight/CMakeLists.txt | 0 .../plGLight/plDirectShadowMaster.cpp | 0 .../plGLight/plDirectShadowMaster.h | 0 .../PubUtilLib/plGLight/plGLightCreatable.h | 0 .../PubUtilLib/plGLight/plLightInfo.cpp | 0 .../Plasma/PubUtilLib/plGLight/plLightInfo.h | 0 .../PubUtilLib/plGLight/plLightKonstants.h | 0 .../PubUtilLib/plGLight/plLightProxy.cpp | 0 .../Plasma/PubUtilLib/plGLight/plLightProxy.h | 0 .../PubUtilLib/plGLight/plLightSpace.cpp | 0 .../Plasma/PubUtilLib/plGLight/plLightSpace.h | 0 .../PubUtilLib/plGLight/plPerspDirSlave.cpp | 0 .../PubUtilLib/plGLight/plPerspDirSlave.h | 0 .../plGLight/plPointShadowMaster.cpp | 0 .../PubUtilLib/plGLight/plPointShadowMaster.h | 0 .../PubUtilLib/plGLight/plShadowCaster.cpp | 0 .../PubUtilLib/plGLight/plShadowCaster.h | 0 .../PubUtilLib/plGLight/plShadowMaster.cpp | 0 .../PubUtilLib/plGLight/plShadowMaster.h | 0 .../PubUtilLib/plGLight/plShadowSlave.cpp | 0 .../PubUtilLib/plGLight/plShadowSlave.h | 0 .../plGRenderProcs/hsGRenderProcs.cpp | 0 .../plGRenderProcs/hsGRenderProcs.h | 0 .../plGRenderProcs/hsSfxAngleFade.cpp | 0 .../plGRenderProcs/hsSfxAngleFade.h | 0 .../plGRenderProcs/hsSfxDistFade.cpp | 0 .../PubUtilLib/plGRenderProcs/hsSfxDistFade.h | 0 .../plGRenderProcs/hsSfxDistShade.cpp | 0 .../plGRenderProcs/hsSfxDistShade.h | 0 .../plGRenderProcs/hsSfxGlobalShade.cpp | 0 .../plGRenderProcs/hsSfxGlobalShade.h | 0 .../plGRenderProcs/hsSfxIntenseAlpha.cpp | 0 .../plGRenderProcs/hsSfxIntenseAlpha.h | 0 .../plGRenderProcs/hsSfxObjDistFade.cpp | 0 .../plGRenderProcs/hsSfxObjDistFade.h | 0 .../plGRenderProcs/hsSfxObjDistShade.cpp | 0 .../plGRenderProcs/hsSfxObjDistShade.h | 0 .../plGRenderProcs/plGRenderProcsCreatable.h | 0 .../PubUtilLib/plGeometry/hsOscillator.cpp | 0 .../PubUtilLib/plGeometry/hsOscillator.h | 0 .../PubUtilLib/plGeometry/hsPerterber.cpp | 0 .../PubUtilLib/plGeometry/hsPerterber.h | 0 .../plGeometry/plGeometryCreatable.h | 0 .../PubUtilLib/plInputCore/CMakeLists.txt | 0 .../plInputCore/plAvatarInputInterface.cpp | 0 .../plInputCore/plAvatarInputInterface.h | 0 .../PubUtilLib/plInputCore/plDInputDevice.cpp | 0 .../PubUtilLib/plInputCore/plDInputDevice.h | 0 .../plInputCore/plDebugInputInterface.cpp | 0 .../plInputCore/plDebugInputInterface.h | 0 .../plInputCore/plInputCoreCreatable.h | 0 .../PubUtilLib/plInputCore/plInputDevice.cpp | 0 .../PubUtilLib/plInputCore/plInputDevice.h | 0 .../plInputCore/plInputInterface.cpp | 0 .../PubUtilLib/plInputCore/plInputInterface.h | 0 .../plInputCore/plInputInterfaceMgr.cpp | 0 .../plInputCore/plInputInterfaceMgr.h | 0 .../PubUtilLib/plInputCore/plInputManager.cpp | 0 .../PubUtilLib/plInputCore/plInputManager.h | 0 .../plInputCore/plSceneInputInterface.cpp | 0 .../plInputCore/plSceneInputInterface.h | 0 .../plInputCore/plTelescopeInputInterface.cpp | 0 .../plInputCore/plTelescopeInputInterface.h | 0 .../Plasma/PubUtilLib/plInterp/CMakeLists.txt | 0 .../Plasma/PubUtilLib/plInterp/hsInterp.cpp | 0 .../Plasma/PubUtilLib/plInterp/hsInterp.h | 0 .../Plasma/PubUtilLib/plInterp/hsKeys.cpp | 0 .../Plasma/PubUtilLib/plInterp/hsKeys.h | 0 .../Plasma/PubUtilLib/plInterp/hsTimedValue.h | 0 .../PubUtilLib/plInterp/plATCEaseCurves.cpp | 0 .../PubUtilLib/plInterp/plAnimEaseTypes.h | 0 .../Plasma/PubUtilLib/plInterp/plAnimPath.cpp | 0 .../Plasma/PubUtilLib/plInterp/plAnimPath.h | 0 .../PubUtilLib/plInterp/plAnimTimeConvert.cpp | 0 .../PubUtilLib/plInterp/plAnimTimeConvert.h | 0 .../PubUtilLib/plInterp/plController.cpp | 0 .../Plasma/PubUtilLib/plInterp/plController.h | 0 .../PubUtilLib/plInterp/plInterpCreatable.h | 0 .../PubUtilLib/plInterp/plModulator.cpp | 0 .../Plasma/PubUtilLib/plInterp/plModulator.h | 0 .../PubUtilLib/plIntersect/CMakeLists.txt | 0 .../Plasma/PubUtilLib/plIntersect/notes.txt | 0 .../PubUtilLib/plIntersect/plClosest.cpp | 0 .../Plasma/PubUtilLib/plIntersect/plClosest.h | 0 .../PubUtilLib/plIntersect/plHardRegion.cpp | 0 .../PubUtilLib/plIntersect/plHardRegion.h | 0 .../plIntersect/plHardRegionPlanes.cpp | 0 .../plIntersect/plHardRegionPlanes.h | 0 .../plIntersect/plHardRegionTypes.cpp | 0 .../plIntersect/plHardRegionTypes.h | 0 .../plIntersect/plIntersectCreatable.h | 0 .../PubUtilLib/plIntersect/plRegionBase.h | 0 .../PubUtilLib/plIntersect/plSoftVolume.cpp | 0 .../PubUtilLib/plIntersect/plSoftVolume.h | 0 .../plIntersect/plSoftVolumeTypes.cpp | 0 .../plIntersect/plSoftVolumeTypes.h | 0 .../PubUtilLib/plIntersect/plVolumeIsect.cpp | 0 .../PubUtilLib/plIntersect/plVolumeIsect.h | 0 .../Plasma/PubUtilLib/plJPEG/CMakeLists.txt | 0 .../Plasma/PubUtilLib/plJPEG/plJPEG.cpp | 0 .../Plasma/PubUtilLib/plJPEG/plJPEG.h | 0 .../Plasma/PubUtilLib/plMath/CMakeLists.txt | 0 .../Plasma/PubUtilLib/plMath/hsNoiseFunc.cpp | 0 .../Plasma/PubUtilLib/plMath/hsNoiseFunc.h | 0 .../Plasma/PubUtilLib/plMath/hsRadixSort.cpp | 0 .../Plasma/PubUtilLib/plMath/hsRadixSort.h | 0 .../PubUtilLib/plMath/hsSearchVersion.h | 0 .../Plasma/PubUtilLib/plMath/plAvg.cpp | 0 .../Plasma/PubUtilLib/plMath/plAvg.h | 0 .../Plasma/PubUtilLib/plMath/plRandom.h | 0 .../Plasma/PubUtilLib/plMath/plTriUtils.cpp | 0 .../Plasma/PubUtilLib/plMath/plTriUtils.h | 0 .../PubUtilLib/plMessage/CMakeLists.txt | 0 .../Plasma/PubUtilLib/plMessage/plAIMsg.cpp | 0 .../Plasma/PubUtilLib/plMessage/plAIMsg.h | 0 .../plMessage/plAccountUpdateMsg.cpp | 0 .../PubUtilLib/plMessage/plAccountUpdateMsg.h | 0 .../PubUtilLib/plMessage/plActivatorMsg.h | 0 .../PubUtilLib/plMessage/plAgeLoadedMsg.h | 0 .../plMessage/plAngularVelocityMsg.h | 0 .../PubUtilLib/plMessage/plAnimCmdMsg.cpp | 0 .../PubUtilLib/plMessage/plAnimCmdMsg.h | 0 .../plMessage/plAnimationEventCallbackMsg.h | 0 .../plApplyAvatarCustomizationsMsg.h | 0 .../plApplyStoredAvatarSettingsMsg.h | 0 .../PubUtilLib/plMessage/plAvCoopMsg.cpp | 0 .../Plasma/PubUtilLib/plMessage/plAvCoopMsg.h | 0 .../PubUtilLib/plMessage/plAvatarFootMsg.cpp | 0 .../PubUtilLib/plMessage/plAvatarFootMsg.h | 0 .../PubUtilLib/plMessage/plAvatarMsg.cpp | 0 .../Plasma/PubUtilLib/plMessage/plAvatarMsg.h | 0 .../PubUtilLib/plMessage/plBulletMsg.cpp | 0 .../Plasma/PubUtilLib/plMessage/plBulletMsg.h | 0 .../plMessage/plCCRMessageCreatable.h | 0 .../Plasma/PubUtilLib/plMessage/plCCRMsg.cpp | 0 .../Plasma/PubUtilLib/plMessage/plCCRMsg.h | 0 .../plMessage/plCaptureRenderMsg.cpp | 0 .../PubUtilLib/plMessage/plCaptureRenderMsg.h | 0 .../PubUtilLib/plMessage/plClimbEventMsg.h | 0 .../PubUtilLib/plMessage/plClimbMsg.cpp | 0 .../Plasma/PubUtilLib/plMessage/plClimbMsg.h | 0 .../PubUtilLib/plMessage/plCollideMsg.cpp | 0 .../PubUtilLib/plMessage/plCollideMsg.h | 0 .../PubUtilLib/plMessage/plCondRefMsg.h | 0 .../plMessage/plConnectedToVaultMsg.h | 0 .../PubUtilLib/plMessage/plConsoleMsg.h | 0 .../plMessage/plDeviceRecreateMsg.h | 0 .../plMessage/plDynaDecalEnableMsg.cpp | 0 .../plMessage/plDynaDecalEnableMsg.h | 0 .../plMessage/plDynamicEnvMapMsg.cpp | 0 .../PubUtilLib/plMessage/plDynamicEnvMapMsg.h | 0 .../PubUtilLib/plMessage/plDynamicTextMsg.cpp | 0 .../PubUtilLib/plMessage/plDynamicTextMsg.h | 0 .../PubUtilLib/plMessage/plElementRefMsg.h | 0 .../PubUtilLib/plMessage/plEnvEffectMsg.h | 0 .../PubUtilLib/plMessage/plExcludeRegionMsg.h | 0 .../PubUtilLib/plMessage/plInputEventMsg.cpp | 0 .../PubUtilLib/plMessage/plInputEventMsg.h | 0 .../plMessage/plInputIfaceMgrMsg.cpp | 0 .../PubUtilLib/plMessage/plInputIfaceMgrMsg.h | 0 .../PubUtilLib/plMessage/plInterestingPing.h | 0 .../PubUtilLib/plMessage/plLOSHitMsg.cpp | 0 .../Plasma/PubUtilLib/plMessage/plLOSHitMsg.h | 0 .../PubUtilLib/plMessage/plLOSRequestMsg.cpp | 0 .../PubUtilLib/plMessage/plLOSRequestMsg.h | 0 .../PubUtilLib/plMessage/plLayRefMsg.cpp | 0 .../Plasma/PubUtilLib/plMessage/plLayRefMsg.h | 0 .../PubUtilLib/plMessage/plLightRefMsg.h | 0 .../plMessage/plLinearVelocityMsg.h | 0 .../PubUtilLib/plMessage/plLinkToAgeMsg.cpp | 0 .../PubUtilLib/plMessage/plLinkToAgeMsg.h | 0 .../PubUtilLib/plMessage/plListenerMsg.cpp | 0 .../PubUtilLib/plMessage/plListenerMsg.h | 0 .../PubUtilLib/plMessage/plLoadAgeMsg.cpp | 0 .../PubUtilLib/plMessage/plLoadAgeMsg.h | 0 .../PubUtilLib/plMessage/plLoadAvatarMsg.cpp | 0 .../PubUtilLib/plMessage/plLoadAvatarMsg.h | 0 .../PubUtilLib/plMessage/plLoadCloneMsg.cpp | 0 .../PubUtilLib/plMessage/plLoadCloneMsg.h | 0 .../Plasma/PubUtilLib/plMessage/plMatRefMsg.h | 0 .../plMessage/plMatrixUpdateMsg.cpp | 0 .../PubUtilLib/plMessage/plMatrixUpdateMsg.h | 0 .../PubUtilLib/plMessage/plMemberUpdateMsg.h | 0 .../PubUtilLib/plMessage/plMeshRefMsg.h | 0 .../PubUtilLib/plMessage/plMessageCreatable.h | 0 .../Plasma/PubUtilLib/plMessage/plMovieMsg.h | 0 .../PubUtilLib/plMessage/plMultistageMsg.cpp | 0 .../PubUtilLib/plMessage/plMultistageMsg.h | 0 .../PubUtilLib/plMessage/plNCAgeJoinerMsg.cpp | 0 .../PubUtilLib/plMessage/plNCAgeJoinerMsg.h | 0 .../plMessage/plNetClientMgrMsg.cpp | 0 .../PubUtilLib/plMessage/plNetClientMgrMsg.h | 0 .../PubUtilLib/plMessage/plNetCommMsgs.cpp | 0 .../PubUtilLib/plMessage/plNetCommMsgs.h | 0 .../PubUtilLib/plMessage/plNetOwnershipMsg.h | 0 .../plMessage/plNetVoiceListMsg.cpp | 0 .../PubUtilLib/plMessage/plNetVoiceListMsg.h | 0 .../PubUtilLib/plMessage/plNodeCleanupMsg.h | 0 .../plMessage/plOneShotCallbacks.cpp | 0 .../PubUtilLib/plMessage/plOneShotCallbacks.h | 0 .../PubUtilLib/plMessage/plOneShotMsg.cpp | 0 .../PubUtilLib/plMessage/plOneShotMsg.h | 0 .../plMessage/plParticleUpdateMsg.h | 0 .../Plasma/PubUtilLib/plMessage/plPickedMsg.h | 0 .../Plasma/PubUtilLib/plMessage/plPlayerMsg.h | 0 .../PubUtilLib/plMessage/plPreloaderMsg.h | 0 .../Plasma/PubUtilLib/plMessage/plRenderMsg.h | 0 .../plMessage/plRenderRequestMsg.cpp | 0 .../PubUtilLib/plMessage/plRenderRequestMsg.h | 0 .../plMessage/plReplaceGeometryMsg.h | 0 .../PubUtilLib/plMessage/plResMgrHelperMsg.h | 0 .../PubUtilLib/plMessage/plResponderMsg.h | 0 .../plMessage/plRideAnimatedPhysMsg.cpp | 0 .../plMessage/plRideAnimatedPhysMsg.h | 0 .../PubUtilLib/plMessage/plRippleShapeMsg.cpp | 0 .../PubUtilLib/plMessage/plRippleShapeMsg.h | 0 .../plMessage/plRoomLoadNotifyMsg.h | 0 .../PubUtilLib/plMessage/plShadowCastMsg.h | 0 .../plMessage/plSimInfluenceMsg.cpp | 0 .../PubUtilLib/plMessage/plSimInfluenceMsg.h | 0 .../PubUtilLib/plMessage/plSimStateMsg.cpp | 0 .../PubUtilLib/plMessage/plSimStateMsg.h | 0 .../PubUtilLib/plMessage/plSpawnModMsg.h | 0 .../PubUtilLib/plMessage/plSpawnRequestMsg.h | 0 .../Plasma/PubUtilLib/plMessage/plSwimMsg.cpp | 0 .../Plasma/PubUtilLib/plMessage/plSwimMsg.h | 0 .../PubUtilLib/plMessage/plSynchEnableMsg.cpp | 0 .../PubUtilLib/plMessage/plSynchEnableMsg.h | 0 .../PubUtilLib/plMessage/plTimerCallbackMsg.h | 0 .../PubUtilLib/plMessage/plTransitionMsg.cpp | 0 .../PubUtilLib/plMessage/plTransitionMsg.h | 0 .../PubUtilLib/plMessage/plTriggerMsg.h | 0 .../PubUtilLib/plMessage/plUniqueIdsMsg.h | 0 .../PubUtilLib/plMessage/plVaultNotifyMsg.cpp | 0 .../PubUtilLib/plMessage/plVaultNotifyMsg.h | 0 .../PubUtilLib/plModifier/CMakeLists.txt | 0 .../plModifier/plAnimEventModifier.cpp | 0 .../plModifier/plAnimEventModifier.h | 0 .../plAnimTimeConvertSDLModifier.cpp | 0 .../plModifier/plAnimTimeConvertSDLModifier.h | 0 .../plModifier/plAxisAnimModifier.cpp | 0 .../plModifier/plAxisAnimModifier.h | 0 .../plModifier/plCloneSpawnModifier.cpp | 0 .../plModifier/plCloneSpawnModifier.h | 0 .../plModifier/plDecalEnableMod.cpp | 0 .../PubUtilLib/plModifier/plDecalEnableMod.h | 0 .../PubUtilLib/plModifier/plDetectorLog.cpp | 0 .../PubUtilLib/plModifier/plDetectorLog.h | 0 .../plModifier/plExcludeRegionModifier.cpp | 0 .../plModifier/plExcludeRegionModifier.h | 0 .../plModifier/plGameMarkerModifier.cpp | 0 .../plModifier/plGameMarkerModifier.h | 0 .../PubUtilLib/plModifier/plImageLibMod.cpp | 0 .../PubUtilLib/plModifier/plImageLibMod.h | 0 .../plModifier/plInterfaceInfoModifier.cpp | 0 .../plModifier/plInterfaceInfoModifier.h | 0 .../plModifier/plLayerSDLModifier.cpp | 0 .../plModifier/plLayerSDLModifier.h | 0 .../PubUtilLib/plModifier/plLogicModifier.cpp | 0 .../PubUtilLib/plModifier/plLogicModifier.h | 0 .../plMaintainersMarkerModifier.cpp | 0 .../plModifier/plMaintainersMarkerModifier.h | 0 .../plModifier/plModifierCreatable.h | 0 .../plModifier/plResponderModifier.cpp | 0 .../plModifier/plResponderModifier.h | 0 .../plModifier/plResponderSDLModifier.cpp | 0 .../plModifier/plResponderSDLModifier.h | 0 .../PubUtilLib/plModifier/plSDLModifier.cpp | 0 .../PubUtilLib/plModifier/plSDLModifier.h | 0 .../plModifier/plSimpleModifier.cpp | 0 .../PubUtilLib/plModifier/plSimpleModifier.h | 0 .../plModifier/plSoundSDLModifier.cpp | 0 .../plModifier/plSoundSDLModifier.h | 0 .../PubUtilLib/plModifier/plSpawnModifier.cpp | 0 .../PubUtilLib/plModifier/plSpawnModifier.h | 0 .../PubUtilLib/plModifier/plTagModifier.cpp | 0 .../PubUtilLib/plModifier/plTagModifier.h | 0 .../PubUtilLib/plNetClient/CMakeLists.txt | 0 .../plNetClient/plLinkEffectsMgr.cpp | 0 .../PubUtilLib/plNetClient/plLinkEffectsMgr.h | 0 .../plNetClient/plNetCliAgeJoiner.cpp | 0 .../plNetClient/plNetCliAgeJoiner.h | 0 .../plNetClient/plNetCliAgeLeaver.cpp | 0 .../plNetClient/plNetCliAgeLeaver.h | 0 .../plNetClient/plNetClientCommInterface.cpp | 0 .../plNetClient/plNetClientCreatable.h | 0 .../plNetClient/plNetClientGroup.cpp | 0 .../PubUtilLib/plNetClient/plNetClientGroup.h | 0 .../PubUtilLib/plNetClient/plNetClientMgr.cpp | 0 .../PubUtilLib/plNetClient/plNetClientMgr.h | 0 .../plNetClient/plNetClientMgrLoad.cpp | 0 .../plNetClient/plNetClientMgrRecord.cpp | 0 .../plNetClient/plNetClientMgrSend.cpp | 0 .../plNetClient/plNetClientMgrShow.cpp | 0 .../plNetClient/plNetClientMgrTask.cpp | 0 .../plNetClient/plNetClientMgrVault.cpp | 0 .../plNetClient/plNetClientMgrVoice.cpp | 0 .../plNetClient/plNetClientMsgHandler.cpp | 0 .../plNetClient/plNetClientMsgHandler.h | 0 .../plNetClient/plNetClientMsgScreener.cpp | 0 .../plNetClient/plNetClientMsgScreener.h | 0 .../plNetClient/plNetClientStats.cpp | 0 .../PubUtilLib/plNetClient/plNetClientStats.h | 0 .../plNetClient/plNetClientVNodeMgr.cpp | 0 .../plNetClient/plNetClientVault.cpp | 0 .../PubUtilLib/plNetClient/plNetClientVault.h | 0 .../plNetClient/plNetLinkingMgr.cpp | 0 .../PubUtilLib/plNetClient/plNetLinkingMgr.h | 0 .../plNetClient/plNetObjectDebugger.cpp | 0 .../plNetClient/plNetObjectDebugger.h | 0 .../PubUtilLib/plNetClient/plNetVoiceList.cpp | 0 .../PubUtilLib/plNetClient/plNetVoiceList.h | 0 .../PubUtilLib/plNetClientComm/CMakeLists.txt | 0 .../plNetClientComm/plNetClientComm.cpp | 0 .../plNetClientComm/plNetClientComm.h | 0 .../plNetClientCommCreatable.h | 0 .../plNetClientComm/plNetClientCommTask.cpp | 0 .../plNetClientComm/plNetClientCommTask.h | 0 .../plNetClientRecorder/CMakeLists.txt | 0 .../plNetClientRecorder.cpp | 0 .../plNetClientRecorder/plNetClientRecorder.h | 0 .../plNetClientStatsRecorder.cpp | 0 .../plNetClientStreamRecorder.cpp | 0 .../PubUtilLib/plNetCommon/CMakeLists.txt | 0 .../PubUtilLib/plNetCommon/plClientGuid.cpp | 0 .../PubUtilLib/plNetCommon/plClientGuid.h | 0 .../PubUtilLib/plNetCommon/plNetCommon.cpp | 0 .../PubUtilLib/plNetCommon/plNetCommon.h | 0 .../plNetCommon/plNetCommonConstants.h | 0 .../plNetCommon/plNetCommonCreatable.h | 0 .../plNetCommon/plNetCommonHelpers.cpp | 0 .../plNetCommon/plNetCommonHelpers.h | 0 .../PubUtilLib/plNetCommon/plNetMember.cpp | 0 .../PubUtilLib/plNetCommon/plNetMember.h | 0 .../PubUtilLib/plNetCommon/plNetMsgHandler.h | 0 .../plNetCommon/plNetMsgScreener.cpp | 0 .../PubUtilLib/plNetCommon/plNetMsgScreener.h | 0 .../plNetCommon/plNetServerSessionInfo.cpp | 0 .../plNetCommon/plNetServerSessionInfo.h | 0 .../PubUtilLib/plNetCommon/plServerGuid.cpp | 0 .../PubUtilLib/plNetCommon/plServerGuid.h | 0 .../plNetCommon/plSpawnPointInfo.cpp | 0 .../PubUtilLib/plNetCommon/plSpawnPointInfo.h | 0 .../PubUtilLib/plNetGameLib/CMakeLists.txt | 0 .../Plasma/PubUtilLib/plNetGameLib/Intern.h | 0 .../Plasma/PubUtilLib/plNetGameLib/Pch.h | 0 .../plNetGameLib/Private/plNglAllIncludes.h | 0 .../plNetGameLib/Private/plNglAuth.cpp | 0 .../plNetGameLib/Private/plNglAuth.h | 0 .../plNetGameLib/Private/plNglCore.cpp | 0 .../plNetGameLib/Private/plNglCore.h | 0 .../plNetGameLib/Private/plNglCsr.cpp | 0 .../plNetGameLib/Private/plNglCsr.h | 0 .../plNetGameLib/Private/plNglFile.cpp | 0 .../plNetGameLib/Private/plNglFile.h | 0 .../plNetGameLib/Private/plNglGame.cpp | 0 .../plNetGameLib/Private/plNglGame.h | 0 .../plNetGameLib/Private/plNglGateKeeper.cpp | 0 .../plNetGameLib/Private/plNglGateKeeper.h | 0 .../plNetGameLib/Private/plNglMisc.cpp | 0 .../plNetGameLib/Private/plNglTrans.cpp | 0 .../PubUtilLib/plNetGameLib/plNetGameLib.h | 0 .../PubUtilLib/plNetMessage/CMakeLists.txt | 0 .../plNetMessage/plNetCommonMessage.h | 0 .../PubUtilLib/plNetMessage/plNetMessage.cpp | 0 .../PubUtilLib/plNetMessage/plNetMessage.h | 0 .../plNetMessage/plNetMessageCreatable.h | 0 .../plNetMessage/plNetMsgHelpers.cpp | 0 .../PubUtilLib/plNetMessage/plNetMsgHelpers.h | 0 .../PubUtilLib/plNetMessage/plNetMsgVersion.h | 0 .../PubUtilLib/plNetTransport/CMakeLists.txt | 0 .../plNetTransport/plNetTransport.cpp | 0 .../plNetTransport/plNetTransport.h | 0 .../plNetTransport/plNetTransportMember.cpp | 0 .../plNetTransport/plNetTransportMember.h | 0 .../plParticleSystem/CMakeLists.txt | 0 .../plParticleSystem/plBoundInterface.cpp | 0 .../plParticleSystem/plBoundInterface.h | 0 .../plParticleSystem/plConvexVolume.cpp | 0 .../plParticleSystem/plConvexVolume.h | 0 .../plParticleSystem/plEffectTargetInfo.h | 0 .../PubUtilLib/plParticleSystem/plParticle.h | 0 .../plParticleSystem/plParticleApplicator.cpp | 0 .../plParticleSystem/plParticleApplicator.h | 0 .../plParticleSystem/plParticleCreatable.h | 0 .../plParticleSystem/plParticleEffect.cpp | 0 .../plParticleSystem/plParticleEffect.h | 0 .../plParticleSystem/plParticleEmitter.cpp | 0 .../plParticleSystem/plParticleEmitter.h | 0 .../plParticleSystem/plParticleGenerator.cpp | 0 .../plParticleSystem/plParticleGenerator.h | 0 .../plParticleSystem/plParticleSDLMod.cpp | 0 .../plParticleSystem/plParticleSDLMod.h | 0 .../plParticleSystem/plParticleSystem.cpp | 0 .../plParticleSystem/plParticleSystem.h | 0 .../Plasma/PubUtilLib/plPhysX/CMakeLists.txt | 0 .../PubUtilLib/plPhysX/plLOSDispatch.cpp | 0 .../Plasma/PubUtilLib/plPhysX/plLOSDispatch.h | 0 .../Plasma/PubUtilLib/plPhysX/plPXConvert.cpp | 0 .../Plasma/PubUtilLib/plPhysX/plPXConvert.h | 0 .../PubUtilLib/plPhysX/plPXPhysical.cpp | 0 .../Plasma/PubUtilLib/plPhysX/plPXPhysical.h | 0 .../plPhysX/plPXPhysicalController.cpp | 0 .../plPhysX/plPXPhysicalController.h | 0 .../plPhysX/plPXPhysicalControllerCore.cpp | 0 .../plPhysX/plPXPhysicalControllerCore.h | 0 .../Plasma/PubUtilLib/plPhysX/plPXStream.h | 0 .../PubUtilLib/plPhysX/plPhysXCreatable.h | 0 .../PubUtilLib/plPhysX/plSimulationMgr.cpp | 0 .../PubUtilLib/plPhysX/plSimulationMgr.h | 0 .../PubUtilLib/plPhysical/CMakeLists.txt | 0 .../plPhysical/plCollisionDetector.cpp | 0 .../plPhysical/plCollisionDetector.h | 0 .../plPhysical/plDetectorModifier.h | 0 .../plPhysical/plEnvEffectDetector.cpp | 0 .../plPhysical/plEnvEffectDetector.h | 0 .../plPhysical/plPhysicalCreatable.h | 0 .../PubUtilLib/plPhysical/plPhysicalProxy.cpp | 0 .../PubUtilLib/plPhysical/plPhysicalProxy.h | 0 .../plPhysical/plPhysicalSDLModifier.cpp | 0 .../plPhysical/plPhysicalSDLModifier.h | 0 .../plPhysical/plPhysicalSndGroup.cpp | 0 .../plPhysical/plPhysicalSndGroup.h | 0 .../plPhysical/plPhysicsSoundMgr.cpp | 0 .../PubUtilLib/plPhysical/plPhysicsSoundMgr.h | 0 .../plPhysical/plPickingDetector.cpp | 0 .../PubUtilLib/plPhysical/plPickingDetector.h | 0 .../Plasma/PubUtilLib/plPhysical/plSimDefs.h | 0 .../plPhysical/plSittingModifier.cpp | 0 .../PubUtilLib/plPhysical/plSittingModifier.h | 0 .../PubUtilLib/plPipeline/CMakeLists.txt | 0 .../PubUtilLib/plPipeline/hsFogControl.h | 0 .../plPipeline/hsG3DDeviceSelector.cpp | 0 .../plPipeline/hsG3DDeviceSelector.h | 0 .../PubUtilLib/plPipeline/hsGColorizer.cpp | 0 .../PubUtilLib/plPipeline/hsGColorizer.h | 0 .../PubUtilLib/plPipeline/hsGDDrawDllLoad.cpp | 0 .../PubUtilLib/plPipeline/hsGDDrawDllLoad.h | 0 .../PubUtilLib/plPipeline/hsGDeviceRef.h | 0 .../PubUtilLib/plPipeline/hsGEnviron.cpp | 0 .../Plasma/PubUtilLib/plPipeline/hsGEnviron.h | 0 .../Plasma/PubUtilLib/plPipeline/hsWinRef.h | 0 .../PubUtilLib/plPipeline/plCaptureRender.cpp | 0 .../PubUtilLib/plPipeline/plCaptureRender.h | 0 .../plPipeline/plCubicRenderTarget.h | 0 .../plCubicRenderTargetModifier.cpp | 0 .../plPipeline/plCubicRenderTargetModifier.h | 0 .../PubUtilLib/plPipeline/plCullTree.cpp | 0 .../Plasma/PubUtilLib/plPipeline/plCullTree.h | 0 .../Plasma/PubUtilLib/plPipeline/plCuller.h | 0 .../PubUtilLib/plPipeline/plDTProgressMgr.cpp | 0 .../PubUtilLib/plPipeline/plDTProgressMgr.h | 0 .../PubUtilLib/plPipeline/plDXBufferRefs.h | 0 .../PubUtilLib/plPipeline/plDXDeviceRef.h | 0 .../PubUtilLib/plPipeline/plDXDeviceRefs.cpp | 0 .../PubUtilLib/plPipeline/plDXEnumerate.cpp | 0 .../PubUtilLib/plPipeline/plDXEnumerate.h | 0 .../PubUtilLib/plPipeline/plDXLightRef.h | 0 .../PubUtilLib/plPipeline/plDXPipeline.cpp | 0 .../PubUtilLib/plPipeline/plDXPipeline.h | 0 .../PubUtilLib/plPipeline/plDXPixelShader.cpp | 0 .../PubUtilLib/plPipeline/plDXPixelShader.h | 0 .../plPipeline/plDXRenderTargetRef.h | 0 .../PubUtilLib/plPipeline/plDXSettings.h | 0 .../PubUtilLib/plPipeline/plDXShader.cpp | 0 .../Plasma/PubUtilLib/plPipeline/plDXShader.h | 0 .../PubUtilLib/plPipeline/plDXTextFont.cpp | 0 .../PubUtilLib/plPipeline/plDXTextFont.h | 0 .../PubUtilLib/plPipeline/plDXTextureRef.h | 0 .../plPipeline/plDXVertexShader.cpp | 0 .../PubUtilLib/plPipeline/plDXVertexShader.h | 0 .../PubUtilLib/plPipeline/plDebugText.cpp | 0 .../PubUtilLib/plPipeline/plDebugText.h | 0 .../Plasma/PubUtilLib/plPipeline/plDrawPrim.h | 0 .../PubUtilLib/plPipeline/plDynamicEnvMap.cpp | 0 .../PubUtilLib/plPipeline/plDynamicEnvMap.h | 0 .../plPipeline/plFogEnvironment.cpp | 0 .../PubUtilLib/plPipeline/plFogEnvironment.h | 0 .../PubUtilLib/plPipeline/plGBufferGroup.cpp | 0 .../PubUtilLib/plPipeline/plGBufferGroup.h | 0 .../PubUtilLib/plPipeline/plPipeDebugFlags.h | 0 .../plPipeline/plPipelineCreatable.h | 0 .../PubUtilLib/plPipeline/plPipelineCreate.h | 0 .../Plasma/PubUtilLib/plPipeline/plPlates.cpp | 0 .../Plasma/PubUtilLib/plPipeline/plPlates.h | 0 .../PubUtilLib/plPipeline/plRenderTarget.cpp | 0 .../PubUtilLib/plPipeline/plRenderTarget.h | 0 .../plPipeline/plStatusLogDrawer.cpp | 0 .../PubUtilLib/plPipeline/plStatusLogDrawer.h | 0 .../Plasma/PubUtilLib/plPipeline/plStencil.h | 0 .../PubUtilLib/plPipeline/plTextFont.cpp | 0 .../Plasma/PubUtilLib/plPipeline/plTextFont.h | 0 .../PubUtilLib/plPipeline/plTextGenerator.cpp | 0 .../PubUtilLib/plPipeline/plTextGenerator.h | 0 .../PubUtilLib/plPipeline/plTransitionMgr.cpp | 0 .../PubUtilLib/plPipeline/plTransitionMgr.h | 0 .../PubUtilLib/plPipeline/plVertCoder.cpp | 0 .../PubUtilLib/plPipeline/plVertCoder.h | 0 .../PubUtilLib/plProgressMgr/CMakeLists.txt | 0 .../plProgressMgr/plProgressMgr.cpp | 0 .../PubUtilLib/plProgressMgr/plProgressMgr.h | 0 .../Plasma/PubUtilLib/plResMgr/CMakeLists.txt | 0 .../PubUtilLib/plResMgr/plBSDiffBuffer.cpp | 0 .../PubUtilLib/plResMgr/plBSDiffBuffer.h | 0 .../PubUtilLib/plResMgr/plDiffBuffer.cpp | 0 .../Plasma/PubUtilLib/plResMgr/plDiffBuffer.h | 0 .../PubUtilLib/plResMgr/plIndexFile.cpp | 0 .../Plasma/PubUtilLib/plResMgr/plIndexFile.h | 0 .../PubUtilLib/plResMgr/plKeyFinder.cpp | 0 .../Plasma/PubUtilLib/plResMgr/plKeyFinder.h | 0 .../Plasma/PubUtilLib/plResMgr/plLoc.cpp | 0 .../Plasma/PubUtilLib/plResMgr/plLoc.h | 0 .../PubUtilLib/plResMgr/plLocalization.cpp | 0 .../PubUtilLib/plResMgr/plLocalization.h | 0 .../Plasma/PubUtilLib/plResMgr/plPageInfo.cpp | 0 .../Plasma/PubUtilLib/plResMgr/plPageInfo.h | 0 .../PubUtilLib/plResMgr/plRegistryHelpers.cpp | 0 .../PubUtilLib/plResMgr/plRegistryHelpers.h | 0 .../PubUtilLib/plResMgr/plRegistryKeyList.cpp | 0 .../PubUtilLib/plResMgr/plRegistryKeyList.h | 0 .../PubUtilLib/plResMgr/plRegistryNode.cpp | 0 .../PubUtilLib/plResMgr/plRegistryNode.h | 0 .../PubUtilLib/plResMgr/plResManager.cpp | 0 .../Plasma/PubUtilLib/plResMgr/plResManager.h | 0 .../plResMgr/plResManagerHelper.cpp | 0 .../PubUtilLib/plResMgr/plResManagerHelper.h | 0 .../Plasma/PubUtilLib/plResMgr/plResMgr.cpp | 0 .../Plasma/PubUtilLib/plResMgr/plResMgr.h | 0 .../PubUtilLib/plResMgr/plResMgrCreatable.h | 0 .../PubUtilLib/plResMgr/plResMgrSettings.h | 0 .../Plasma/PubUtilLib/plResMgr/plVersion.cpp | 0 .../Plasma/PubUtilLib/plResMgr/plVersion.h | 0 .../Plasma/PubUtilLib/plSDL/CMakeLists.txt | 0 .../Plasma/PubUtilLib/plSDL/SDL/animation.sdl | 0 .../Plasma/PubUtilLib/plSDL/SDL/avatar.sdl | 0 .../PubUtilLib/plSDL/SDL/cloneMessage.sdl | 0 .../Plasma/PubUtilLib/plSDL/SDL/clothing.sdl | 0 .../Plasma/PubUtilLib/plSDL/SDL/morph.sdl | 0 .../Plasma/PubUtilLib/plSDL/SDL/particle.sdl | 0 .../Plasma/PubUtilLib/plSDL/SDL/physical.sdl | 0 .../Plasma/PubUtilLib/plSDL/SDL/responder.sdl | 0 .../Plasma/PubUtilLib/plSDL/SDL/sound.sdl | 0 .../Plasma/PubUtilLib/plSDL/SDL/xregion.sdl | 0 .../Plasma/PubUtilLib/plSDL/plSDL.h | 0 .../Plasma/PubUtilLib/plSDL/plSDLCreatable.h | 0 .../Plasma/PubUtilLib/plSDL/plSDLDescriptor.h | 0 .../Plasma/PubUtilLib/plSDL/plSDLMgr.cpp | 0 .../Plasma/PubUtilLib/plSDL/plSDLParser.cpp | 0 .../plSDL/plStateChangeNotifier.cpp | 0 .../PubUtilLib/plSDL/plStateDataRecord.cpp | 0 .../PubUtilLib/plSDL/plStateDescriptor.cpp | 0 .../PubUtilLib/plSDL/plStateVariable.cpp | 0 .../PubUtilLib/plSDL/plVarDescriptor.cpp | 0 .../PubUtilLib/plSDLBrowser/plSDLBrowser.rc | 0 .../plSDLBrowser/plSDLBrowserDlg.cpp | 0 .../PubUtilLib/plSDLBrowser/plSDLBrowserDlg.h | 0 .../plSDLBrowser/plSDLBrowserDlgHandlers.cpp | 0 .../Plasma/PubUtilLib/plSDLBrowser/resource.h | 0 .../Plasma/PubUtilLib/plScene/CMakeLists.txt | 0 .../Plasma/PubUtilLib/plScene/plCullPoly.cpp | 0 .../Plasma/PubUtilLib/plScene/plCullPoly.h | 0 .../Plasma/PubUtilLib/plScene/plOccTree.cpp | 0 .../Plasma/PubUtilLib/plScene/plOccTree.h | 0 .../Plasma/PubUtilLib/plScene/plOccluder.cpp | 0 .../Plasma/PubUtilLib/plScene/plOccluder.h | 0 .../PubUtilLib/plScene/plOccluderProxy.cpp | 0 .../PubUtilLib/plScene/plOccluderProxy.h | 0 .../PubUtilLib/plScene/plPageTreeMgr.cpp | 0 .../Plasma/PubUtilLib/plScene/plPageTreeMgr.h | 0 .../PubUtilLib/plScene/plPostEffectMod.cpp | 0 .../PubUtilLib/plScene/plPostEffectMod.h | 0 .../PubUtilLib/plScene/plRelevanceMgr.cpp | 0 .../PubUtilLib/plScene/plRelevanceMgr.h | 0 .../PubUtilLib/plScene/plRelevanceRegion.cpp | 0 .../PubUtilLib/plScene/plRelevanceRegion.h | 0 .../PubUtilLib/plScene/plRenderRequest.cpp | 0 .../PubUtilLib/plScene/plRenderRequest.h | 0 .../PubUtilLib/plScene/plSceneCreatable.h | 0 .../Plasma/PubUtilLib/plScene/plSceneNode.cpp | 0 .../Plasma/PubUtilLib/plScene/plSceneNode.h | 0 .../Plasma/PubUtilLib/plScene/plVisMgr.cpp | 0 .../Plasma/PubUtilLib/plScene/plVisMgr.h | 0 .../Plasma/PubUtilLib/plScene/plVisRegion.cpp | 0 .../Plasma/PubUtilLib/plScene/plVisRegion.h | 0 .../PubUtilLib/plSockets/CMakeLists.txt | 0 .../plSockets/plBufferedSocketReader.cpp | 0 .../plSockets/plBufferedSocketReader.h | 0 .../plSockets/plBufferedSocketWriter.cpp | 0 .../plSockets/plBufferedSocketWriter.h | 0 .../Plasma/PubUtilLib/plSockets/plFdSet.cpp | 0 .../Plasma/PubUtilLib/plSockets/plFdSet.h | 0 .../PubUtilLib/plSockets/plMemBuffer.cpp | 0 .../Plasma/PubUtilLib/plSockets/plMemBuffer.h | 0 .../Plasma/PubUtilLib/plSockets/plNet.cpp | 0 .../Plasma/PubUtilLib/plSockets/plNet.h | 0 .../plSockets/plOutgoingUdpSocket.cpp | 0 .../plSockets/plOutgoingUdpSocket.h | 0 .../PubUtilLib/plSockets/plRingBuffer.cpp | 0 .../PubUtilLib/plSockets/plRingBuffer.h | 0 .../Plasma/PubUtilLib/plSockets/plSocket.cpp | 0 .../Plasma/PubUtilLib/plSockets/plSocket.h | 0 .../plSockets/plTcpListenSocket.cpp | 0 .../PubUtilLib/plSockets/plTcpListenSocket.h | 0 .../PubUtilLib/plSockets/plTcpSocket.cpp | 0 .../Plasma/PubUtilLib/plSockets/plTcpSocket.h | 0 .../PubUtilLib/plStatGather/CMakeLists.txt | 0 .../PubUtilLib/plStatGather/plAutoProfile.cpp | 0 .../PubUtilLib/plStatGather/plAutoProfile.h | 0 .../plStatGather/plCalculatedProfiles.cpp | 0 .../plStatGather/plCalculatedProfiles.h | 0 .../plStatGather/plProfileManagerFull.cpp | 0 .../plStatGather/plProfileManagerFull.h | 0 .../plStatGather/plStatGatherCreatable.h | 0 .../PubUtilLib/plStatusLog/CMakeLists.txt | 0 .../plStatusLog/plEncryptLogLine.cpp | 0 .../PubUtilLib/plStatusLog/plEncryptLogLine.h | 0 .../PubUtilLib/plStatusLog/plLoggable.cpp | 0 .../PubUtilLib/plStatusLog/plLoggable.h | 0 .../PubUtilLib/plStatusLog/plStatusLog.cpp | 0 .../PubUtilLib/plStatusLog/plStatusLog.h | 0 .../PubUtilLib/plStreamLogger/CMakeLists.txt | 0 .../plStreamLogger/plStreamLogger.cpp | 0 .../plStreamLogger/plStreamLogger.h | 0 .../plStreamLogger/plStreamLoggerC.h | 0 .../PubUtilLib/plSurface/CMakeLists.txt | 0 .../plSurface/ShaderSrc/AssShader.zip | Bin .../plSurface/ShaderSrc/ps_BiasNormals.inl | 0 .../plSurface/ShaderSrc/ps_CaddAadd.inl | 0 .../plSurface/ShaderSrc/ps_CaddAbase.inl | 0 .../plSurface/ShaderSrc/ps_CaddAmult.inl | 0 .../plSurface/ShaderSrc/ps_CalphaAadd.inl | 0 .../plSurface/ShaderSrc/ps_CalphaAbase.inl | 0 .../plSurface/ShaderSrc/ps_CalphaAmult.inl | 0 .../plSurface/ShaderSrc/ps_CbaseAbase.inl | 0 .../plSurface/ShaderSrc/ps_CmultAadd.inl | 0 .../plSurface/ShaderSrc/ps_CmultAbase.inl | 0 .../plSurface/ShaderSrc/ps_CmultAmult.inl | 0 .../plSurface/ShaderSrc/ps_CompCosines.inl | 0 .../plSurface/ShaderSrc/ps_GrassShader.inl | 0 .../plSurface/ShaderSrc/ps_MoreCosines.inl | 0 .../plSurface/ShaderSrc/ps_ShoreLeave6.inl | 0 .../plSurface/ShaderSrc/ps_WaveDecEnv.inl | 0 .../plSurface/ShaderSrc/ps_WaveFixed.inl | 0 .../plSurface/ShaderSrc/ps_WaveGraph.inl | 0 .../plSurface/ShaderSrc/ps_WaveGrid.inl | 0 .../plSurface/ShaderSrc/ps_WaveRip.inl | 0 .../plSurface/ShaderSrc/vs_BiasNormals.inl | 0 .../plSurface/ShaderSrc/vs_CompCosines.inl | 0 .../plSurface/ShaderSrc/vs_GrassShader.inl | 0 .../plSurface/ShaderSrc/vs_ShoreLeave6.inl | 0 .../plSurface/ShaderSrc/vs_ShoreLeave7.inl | 0 .../plSurface/ShaderSrc/vs_WaveDec1Lay.inl | 0 .../plSurface/ShaderSrc/vs_WaveDec1Lay_7.inl | 0 .../plSurface/ShaderSrc/vs_WaveDec2Lay11.inl | 0 .../ShaderSrc/vs_WaveDec2Lay11_7.inl | 0 .../plSurface/ShaderSrc/vs_WaveDec2Lay12.inl | 0 .../ShaderSrc/vs_WaveDec2Lay12_7.inl | 0 .../plSurface/ShaderSrc/vs_WaveDecEnv.inl | 0 .../plSurface/ShaderSrc/vs_WaveDecEnv_7.inl | 0 .../plSurface/ShaderSrc/vs_WaveFixedFin6.inl | 0 .../plSurface/ShaderSrc/vs_WaveFixedFin7.inl | 0 .../plSurface/ShaderSrc/vs_WaveGraph2.inl | 0 .../plSurface/ShaderSrc/vs_WaveGridFin.inl | 0 .../plSurface/ShaderSrc/vs_WaveRip.inl | 0 .../plSurface/ShaderSrc/vs_WaveRip7.inl | 0 .../PubUtilLib/plSurface/hsGMaterial.cpp | 0 .../Plasma/PubUtilLib/plSurface/hsGMaterial.h | 0 .../PubUtilLib/plSurface/plGrassShaderMod.cpp | 0 .../PubUtilLib/plSurface/plGrassShaderMod.h | 0 .../Plasma/PubUtilLib/plSurface/plLayer.cpp | 0 .../Plasma/PubUtilLib/plSurface/plLayer.h | 0 .../PubUtilLib/plSurface/plLayerAnimation.cpp | 0 .../PubUtilLib/plSurface/plLayerAnimation.h | 0 .../PubUtilLib/plSurface/plLayerDepth.cpp | 0 .../PubUtilLib/plSurface/plLayerDepth.h | 0 .../PubUtilLib/plSurface/plLayerInterface.cpp | 0 .../PubUtilLib/plSurface/plLayerInterface.h | 0 .../PubUtilLib/plSurface/plLayerMultiply.cpp | 0 .../PubUtilLib/plSurface/plLayerMultiply.h | 0 .../Plasma/PubUtilLib/plSurface/plLayerOr.cpp | 0 .../Plasma/PubUtilLib/plSurface/plLayerOr.h | 0 .../plSurface/plLayerShadowBase.cpp | 0 .../PubUtilLib/plSurface/plLayerShadowBase.h | 0 .../PubUtilLib/plSurface/plLayerWrapper.cpp | 0 .../PubUtilLib/plSurface/plLayerWrapper.h | 0 .../Plasma/PubUtilLib/plSurface/plShader.cpp | 0 .../Plasma/PubUtilLib/plSurface/plShader.h | 0 .../PubUtilLib/plSurface/plShaderTable.cpp | 0 .../PubUtilLib/plSurface/plShaderTable.h | 0 .../PubUtilLib/plSurface/plSurfaceCreatable.h | 0 .../PubUtilLib/plSurface/ps_BiasNormals.h | 0 .../Plasma/PubUtilLib/plSurface/ps_CaddAAdd.h | 0 .../PubUtilLib/plSurface/ps_CaddAMult.h | 0 .../PubUtilLib/plSurface/ps_CaddAbase.h | 0 .../PubUtilLib/plSurface/ps_CalphaAMult.h | 0 .../PubUtilLib/plSurface/ps_CalphaAadd.h | 0 .../PubUtilLib/plSurface/ps_CalphaAbase.h | 0 .../PubUtilLib/plSurface/ps_CbaseAbase.h | 0 .../PubUtilLib/plSurface/ps_CmultAAdd.h | 0 .../PubUtilLib/plSurface/ps_CmultAMult.h | 0 .../PubUtilLib/plSurface/ps_CmultAbase.h | 0 .../PubUtilLib/plSurface/ps_CompCosines.h | 0 .../PubUtilLib/plSurface/ps_GrassShader.h | 0 .../PubUtilLib/plSurface/ps_MoreCosines.h | 0 .../PubUtilLib/plSurface/ps_ShoreLeave6.h | 0 .../PubUtilLib/plSurface/ps_WaveDecEnv.h | 0 .../PubUtilLib/plSurface/ps_WaveFixed.h | 0 .../PubUtilLib/plSurface/ps_WaveGraph.h | 0 .../Plasma/PubUtilLib/plSurface/ps_WaveGrid.h | 0 .../Plasma/PubUtilLib/plSurface/ps_WaveRip.h | 0 .../PubUtilLib/plSurface/vs_BiasNormals.h | 0 .../PubUtilLib/plSurface/vs_CompCosines.h | 0 .../PubUtilLib/plSurface/vs_GrassShader.h | 0 .../PubUtilLib/plSurface/vs_ShoreLeave6.h | 0 .../PubUtilLib/plSurface/vs_ShoreLeave7.h | 0 .../PubUtilLib/plSurface/vs_WaveDec1Lay.h | 0 .../PubUtilLib/plSurface/vs_WaveDec1Lay_7.h | 0 .../PubUtilLib/plSurface/vs_WaveDec2Lay11.h | 0 .../PubUtilLib/plSurface/vs_WaveDec2Lay11_7.h | 0 .../PubUtilLib/plSurface/vs_WaveDec2Lay12.h | 0 .../PubUtilLib/plSurface/vs_WaveDec2Lay12_7.h | 0 .../PubUtilLib/plSurface/vs_WaveDecEnv.h | 0 .../PubUtilLib/plSurface/vs_WaveDecEnv_7.h | 0 .../PubUtilLib/plSurface/vs_WaveFixedFin6.h | 0 .../PubUtilLib/plSurface/vs_WaveFixedFin7.h | 0 .../PubUtilLib/plSurface/vs_WaveGraph2.h | 0 .../PubUtilLib/plSurface/vs_WaveGridFin.h | 0 .../Plasma/PubUtilLib/plSurface/vs_WaveRip.h | 0 .../Plasma/PubUtilLib/plSurface/vs_WaveRip7.h | 0 .../PubUtilLib/plTransform/CMakeLists.txt | 0 .../PubUtilLib/plTransform/hsAffineParts.cpp | 0 .../PubUtilLib/plTransform/hsAffineParts.h | 0 .../Plasma/PubUtilLib/plTransform/hsEuler.cpp | 0 .../Plasma/PubUtilLib/plTransform/hsEuler.h | 0 .../PubUtilLib/plTransform/mat_decomp.cpp | 0 .../PubUtilLib/plTransform/mat_decomp.h | 0 .../Plasma/PubUtilLib/plTransform/notes.txt | 0 .../Plasma/PubUtilLib/plUUID/CMakeLists.txt | 0 .../Plasma/PubUtilLib/plUUID/plUUID.cpp | 0 .../Plasma/PubUtilLib/plUUID/plUUID.h | 0 .../Plasma/PubUtilLib/plUUID/plUUID_Unix.cpp | 0 .../Plasma/PubUtilLib/plUUID/plUUID_Win32.cpp | 0 .../PubUtilLib/plUnifiedTime/CMakeLists.txt | 0 .../plUnifiedTime/plClientUnifiedTime.cpp | 0 .../plUnifiedTime/plClientUnifiedTime.h | 0 .../PubUtilLib/plUnifiedTime/plTimeSpan.cpp | 0 .../PubUtilLib/plUnifiedTime/plTimeSpan.h | 0 .../plUnifiedTime/plUnifiedTime.cpp | 0 .../PubUtilLib/plUnifiedTime/plUnifiedTime.h | 0 .../plUnifiedTime/plUnifiedTimeCreatable.h | 0 .../Plasma/PubUtilLib/plVault/CMakeLists.txt | 0 .../Plasma/PubUtilLib/plVault/Intern.h | 0 .../Plasma/PubUtilLib/plVault/Pch.h | 0 .../PubUtilLib/plVault/plAgeInfoSource.h | 0 .../plVault/plDniCoordinateInfo.cpp | 0 .../PubUtilLib/plVault/plDniCoordinateInfo.h | 0 .../Plasma/PubUtilLib/plVault/plVault.cpp | 0 .../Plasma/PubUtilLib/plVault/plVault.h | 0 .../PubUtilLib/plVault/plVaultClientApi.cpp | 0 .../PubUtilLib/plVault/plVaultClientApi.h | 0 .../PubUtilLib/plVault/plVaultConstants.cpp | 0 .../PubUtilLib/plVault/plVaultConstants.h | 0 .../PubUtilLib/plVault/plVaultCreatable.h | 0 .../Plasma/PubUtilLib/plVault/plVaultNode.cpp | 0 .../Plasma/PubUtilLib/plVault/plVaultNode.h | 0 .../PubUtilLib/plVault/plVaultNodeAccess.cpp | 0 .../PubUtilLib/plVault/plVaultNodeAccess.h | 0 .../PubUtilLib/plWinStrBlock/strblock.c | 0 .../PubUtilLib/plWinStrBlock/strblock.h | 0 .../Plasma/PubUtilLib/plWndCtrls/basewnd.cpp | 0 .../Plasma/PubUtilLib/plWndCtrls/basewnd.h | 0 .../Plasma/PubUtilLib/plWndCtrls/plButton.h | 0 .../Plasma/PubUtilLib/plWndCtrls/plCheckBox.h | 0 .../Plasma/PubUtilLib/plWndCtrls/plComboBox.h | 0 .../Plasma/PubUtilLib/plWndCtrls/plControl.h | 0 .../Plasma/PubUtilLib/plWndCtrls/plDialog.h | 0 .../Plasma/PubUtilLib/plWndCtrls/plEdit.h | 0 .../Plasma/PubUtilLib/plWndCtrls/plLabel.h | 0 .../Plasma/PubUtilLib/plWndCtrls/plListBox.h | 0 .../PubUtilLib/plWndCtrls/plProgressBar.h | 0 .../PubUtilLib/plWndCtrls/plRadioButton.h | 0 .../PubUtilLib/plWndCtrls/plStatusBar.h | 0 .../Plasma/PubUtilLib/plWndCtrls/plTrackBar.h | 0 .../Plasma/PubUtilLib/plWndCtrls/plWindow.h | 0 .../PubUtilLib/plWndCtrls/plWndCtrls.cpp | 0 .../Plasma/PubUtilLib/plWndCtrls/plWndCtrls.h | 0 .../Plasma/PubUtilLib/plWndCtrls/webhost.cpp | 0 .../Plasma/PubUtilLib/plWndCtrls/webhost.h | 0 .../PythonLib/Cypython/PC/placeholder.txt | 0 .../Plasma/PythonLib/Cypython/placeholder.txt | 0 .../pyNetClientComm/PythonLib/placeholder.txt | 0 .../pyNetClientComm/pyNetClientComm.cpp | 0 .../pyNetClientComm/pyNetClientComm.h | 0 .../pyNetClientComm/pyNetClientCommGlue.cpp | 0 .../pyNetClientGame/pyNetClientGame.cpp | 0 .../pyNetClientGame/pyNetClientGame.h | 0 .../Plasma/PythonLib/pyPlasma/creatables.cpp | 0 .../Plasma/PythonLib/pyPlasma/dllmain.cpp | 0 .../Plasma/PythonLib/pyPlasma/pyPlasmaTest.py | 0 .../Plasma/PythonLib/pyPloticus/dllmain.cpp | 0 .../PythonLib/pyPloticus/pyPloticus.cpp | 0 .../Plasma/PythonLib/pyPloticus/pyPloticus.h | 0 .../Plasma/PythonLib/pyVault/pyVNodeMgr.cpp | 0 .../Plasma/PythonLib/pyVault/pyVNodeMgr.h | 0 .../PythonLib/pyVault/pyVNodeMgrGlue.cpp | 0 .../Tools/CheckFolderVar/CheckFolderVar.cpp | 0 .../Tools/MaxAss/ValdezInterface.h | 0 .../Tools/MaxComponent/BipedKiller.h | 0 .../Tools/MaxComponent/ComponentDummies.h | 0 .../Tools/MaxComponent/WavFileStructs.h | 0 .../Tools/MaxComponent/icon1.ico | Bin .../Tools/MaxComponent/pfGUISkinComp.cpp | 0 .../Tools/MaxComponent/pfGUISkinComp.h | 0 .../Tools/MaxComponent/plAGComponents.cpp | 0 .../MaxComponent/plActivatorBaseComponent.cpp | 0 .../MaxComponent/plActivatorBaseComponent.h | 0 .../MaxComponent/plActivatorComponent.cpp | 0 .../Tools/MaxComponent/plActivatorComponent.h | 0 .../Tools/MaxComponent/plAnimCompProc.cpp | 0 .../Tools/MaxComponent/plAnimCompProc.h | 0 .../Tools/MaxComponent/plAnimComponent.cpp | 0 .../Tools/MaxComponent/plAnimComponent.h | 0 .../MaxComponent/plAnimEventComponent.cpp | 0 .../Tools/MaxComponent/plAnimEventComponent.h | 0 .../Tools/MaxComponent/plAnimObjInterface.h | 0 .../Tools/MaxComponent/plAudioComponents.cpp | 0 .../Tools/MaxComponent/plAudioComponents.h | 0 .../Tools/MaxComponent/plAutoComponent.cpp | 0 .../Tools/MaxComponent/plAutoUIBase.cpp | 0 .../Tools/MaxComponent/plAutoUIBase.h | 0 .../Tools/MaxComponent/plAutoUIBlock.cpp | 0 .../Tools/MaxComponent/plAutoUIBlock.h | 0 .../Tools/MaxComponent/plAutoUIComp.cpp | 0 .../Tools/MaxComponent/plAutoUIComp.h | 0 .../Tools/MaxComponent/plAutoUIParams.cpp | 0 .../Tools/MaxComponent/plAutoUIParams.h | 0 .../Tools/MaxComponent/plAvatarComponent.cpp | 0 .../Tools/MaxComponent/plAvatarComponent.h | 0 .../MaxComponent/plBehavioralComponents.cpp | 0 .../MaxComponent/plBehavioralComponents.h | 0 .../Tools/MaxComponent/plBipedKiller.cpp | 0 .../Tools/MaxComponent/plBlowComponent.cpp | 0 .../Tools/MaxComponent/plBlowComponent.h | 0 .../Tools/MaxComponent/plCAnimParamBlock.cpp | 0 .../Tools/MaxComponent/plCAnimParamBlock.h | 0 .../Tools/MaxComponent/plCameraComponent.cpp | 0 .../Tools/MaxComponent/plCameraComponent.h | 0 .../Tools/MaxComponent/plCameraComponents.cpp | 0 .../Tools/MaxComponent/plCameraComponents.h | 0 .../MaxComponent/plClickDragComponent.cpp | 0 .../Tools/MaxComponent/plClickDragComponent.h | 0 .../MaxComponent/plClickableComponent.cpp | 0 .../Tools/MaxComponent/plClickableComponent.h | 0 .../Tools/MaxComponent/plClimbComponent.cpp | 0 .../Tools/MaxComponent/plClimbComponent.h | 0 .../MaxComponent/plClothingComponent.cpp | 0 .../Tools/MaxComponent/plClothingComponent.h | 0 .../Tools/MaxComponent/plClusterComponent.cpp | 0 .../Tools/MaxComponent/plClusterComponent.h | 0 .../Tools/MaxComponent/plComponent.cpp | 0 .../Tools/MaxComponent/plComponent.h | 0 .../Tools/MaxComponent/plComponent.rc | 0 .../Tools/MaxComponent/plComponentBase.cpp | 0 .../Tools/MaxComponent/plComponentBase.h | 0 .../Tools/MaxComponent/plComponentExt.h | 0 .../Tools/MaxComponent/plComponentMgr.cpp | 0 .../Tools/MaxComponent/plComponentMgr.h | 0 .../Tools/MaxComponent/plComponentProcBase.h | 0 .../Tools/MaxComponent/plComponentReg.h | 0 .../Tools/MaxComponent/plComponentTools.cpp | 0 .../Tools/MaxComponent/plComponentTools.h | 0 .../Tools/MaxComponent/plDicer.cpp | 0 .../Tools/MaxComponent/plDicer.h | 0 .../Tools/MaxComponent/plDistribComponent.cpp | 0 .../Tools/MaxComponent/plDistribComponent.h | 0 .../MaxComponent/plDistribComponent_old.cpp | 0 .../MaxComponent/plDistribComponent_old.h | 0 .../MaxComponent/plExcludeRegionComponent.cpp | 0 .../MaxComponent/plExcludeRegionComponent.h | 0 .../MaxComponent/plFlexibilityComponent.h | 0 .../MaxComponent/plFootPrintComponent.cpp | 0 .../MaxComponent/plFootstepComponent.cpp | 0 .../Tools/MaxComponent/plFootstepComponent.h | 0 .../Tools/MaxComponent/plGUICompClassIDs.h | 0 .../Tools/MaxComponent/plGUIComponents.cpp | 0 .../Tools/MaxComponent/plGUIComponents.h | 0 .../Tools/MaxComponent/plGrassComponent.cpp | 0 .../Tools/MaxComponent/plGrassComponent.h | 0 .../Tools/MaxComponent/plIgnoreComponent.cpp | 0 .../MaxComponent/plImpactGadgetComponent.cpp | 0 .../MaxComponent/plImpactGadgetComponent.h | 0 .../MaxComponent/plInventoryObjComponent.cpp | 0 .../MaxComponent/plInventoryObjComponent.h | 0 .../Tools/MaxComponent/plLODFadeComponent.cpp | 0 .../Tools/MaxComponent/plLODFadeComponent.h | 0 .../MaxComponent/plLightGrpComponent.cpp | 0 .../Tools/MaxComponent/plLightGrpComponent.h | 0 .../MaxComponent/plLightMapComponent.cpp | 0 .../Tools/MaxComponent/plLightMapComponent.h | 0 .../Tools/MaxComponent/plLineFollowComp.cpp | 0 .../Tools/MaxComponent/plMaxAnimUtils.cpp | 0 .../Tools/MaxComponent/plMaxAnimUtils.h | 0 .../Tools/MaxComponent/plMaxWaveUtils.cpp | 0 .../Tools/MaxComponent/plMaxWaveUtils.h | 0 .../Tools/MaxComponent/plMiscComponents.cpp | 0 .../Tools/MaxComponent/plMiscComponents.h | 0 .../Tools/MaxComponent/plMorphSeqComp.cpp | 0 .../MaxComponent/plMultistageBehComponent.cpp | 0 .../MaxComponent/plMultistageBehComponent.h | 0 .../Tools/MaxComponent/plMultistageStage.cpp | 0 .../Tools/MaxComponent/plMultistageStage.h | 0 .../Tools/MaxComponent/plNPCSpawnComp.cpp | 0 .../Tools/MaxComponent/plNPCSpawnComp.h | 0 .../MaxComponent/plNavigableComponents.cpp | 0 .../MaxComponent/plNavigableComponents.h | 0 .../Tools/MaxComponent/plNoteTrackDlgComp.cpp | 0 .../Tools/MaxComponent/plNoteTrackDlgComp.h | 0 .../Tools/MaxComponent/plNotetrackAnim.cpp | 0 .../Tools/MaxComponent/plNotetrackAnim.h | 0 .../Tools/MaxComponent/plNotetrackDlg.cpp | 0 .../Tools/MaxComponent/plNotetrackDlg.h | 0 .../MaxComponent/plObjectFlockerComponent.cpp | 0 .../MaxComponent/plObjectFlockerComponent.h | 0 .../Tools/MaxComponent/plOneShotComponent.cpp | 0 .../Tools/MaxComponent/plOneShotComponent.h | 0 .../MaxComponent/plParticleComponents.cpp | 0 .../Tools/MaxComponent/plParticleComponents.h | 0 .../plPhysConstraintComponents.cpp | 0 .../MaxComponent/plPhysicalComponents.cpp | 0 .../Tools/MaxComponent/plPhysicalComponents.h | 0 .../Tools/MaxComponent/plPhysicsGroups.h | 0 .../MaxComponent/plPickLocalizationDlg.cpp | 0 .../MaxComponent/plPickLocalizationDlg.h | 0 .../Tools/MaxComponent/plPickMaterialMap.cpp | 0 .../Tools/MaxComponent/plPickMaterialMap.h | 0 .../Tools/MaxComponent/plPickNode.cpp | 0 .../Tools/MaxComponent/plPickNode.h | 0 .../Tools/MaxComponent/plPickNodeBase.cpp | 0 .../Tools/MaxComponent/plPickNodeBase.h | 0 .../Tools/MaxComponent/plPickNodeComp.cpp | 0 .../MaxComponent/plPythonFileComponent.cpp | 0 .../MaxComponent/plPythonFileComponent.h | 0 .../Tools/MaxComponent/plRepComponent.cpp | 0 .../Tools/MaxComponent/plResponderAnim.cpp | 0 .../Tools/MaxComponent/plResponderAnim.h | 0 .../Tools/MaxComponent/plResponderCmd.h | 0 .../MaxComponent/plResponderComponent.cpp | 0 .../Tools/MaxComponent/plResponderComponent.h | 0 .../MaxComponent/plResponderComponentPriv.h | 0 .../Tools/MaxComponent/plResponderGetComp.cpp | 0 .../Tools/MaxComponent/plResponderGetComp.h | 0 .../Tools/MaxComponent/plResponderLink.cpp | 0 .../Tools/MaxComponent/plResponderLink.h | 0 .../Tools/MaxComponent/plResponderMtl.cpp | 0 .../Tools/MaxComponent/plResponderMtl.h | 0 .../Tools/MaxComponent/plResponderWait.cpp | 0 .../Tools/MaxComponent/plResponderWait.h | 0 .../Tools/MaxComponent/plSeekPoint.cpp | 0 .../Tools/MaxComponent/plShadowComponents.cpp | 0 .../Tools/MaxComponent/plShadowComponents.h | 0 .../Tools/MaxComponent/plSmoothComponent.cpp | 0 .../MaxComponent/plSoftVolumeComponent.cpp | 0 .../MaxComponent/plSoftVolumeComponent.h | 0 .../MaxComponent/plTemplateComponent.cpp | 0 .../Tools/MaxComponent/plTypesComponents.cpp | 0 .../MaxComponent/plVolumeGadgetComponent.cpp | 0 .../MaxComponent/plVolumeGadgetComponent.h | 0 .../Tools/MaxComponent/plWaterComponent.cpp | 0 .../Tools/MaxComponent/plWaterComponent.h | 0 .../Tools/MaxComponent/plXImposter.cpp | 0 .../Tools/MaxComponent/plXImposter.h | 0 .../Tools/MaxComponent/resource.h | 0 .../Tools/MaxComponent/zoomin1.ico | Bin .../Tools/MaxConvert/StringTokenizer.cpp | 0 .../Tools/MaxConvert/StringTokenizer.h | 0 .../Tools/MaxConvert/UserPropMgr.cpp | 0 .../Tools/MaxConvert/UserPropMgr.h | 0 .../Tools/MaxConvert/hsControlConverter.cpp | 0 .../Tools/MaxConvert/hsControlConverter.h | 0 .../Tools/MaxConvert/hsConverterUtils.cpp | 0 .../Tools/MaxConvert/hsConverterUtils.h | 0 .../Tools/MaxConvert/hsMaterialConverter.cpp | 0 .../Tools/MaxConvert/hsMaterialConverter.h | 0 .../Tools/MaxConvert/hsMaxLayerBase.h | 0 .../Tools/MaxConvert/hsVertexShader.cpp | 0 .../Tools/MaxConvert/hsVertexShader.h | 0 .../Tools/MaxConvert/plBitmapCreator.cpp | 0 .../Tools/MaxConvert/plBitmapCreator.h | 0 .../Tools/MaxConvert/plClusterUtil.cpp | 0 .../Tools/MaxConvert/plClusterUtil.h | 0 .../Tools/MaxConvert/plConvert.cpp | 0 .../Tools/MaxConvert/plConvert.h | 0 .../Tools/MaxConvert/plDistTree.cpp | 0 .../Tools/MaxConvert/plDistTree.h | 0 .../Tools/MaxConvert/plDistributor.cpp | 0 .../Tools/MaxConvert/plDistributor.h | 0 .../Tools/MaxConvert/plLayerConverter.cpp | 0 .../Tools/MaxConvert/plLayerConverter.h | 0 .../Tools/MaxConvert/plLightMapGen.cpp | 0 .../Tools/MaxConvert/plLightMapGen.h | 0 .../Tools/MaxConvert/plMaxLightContext.h | 0 .../Tools/MaxConvert/plMeshConverter.cpp | 0 .../Tools/MaxConvert/plMeshConverter.h | 0 .../MaxConvert/plRenderGlobalContext.cpp | 0 .../Tools/MaxConvert/plRenderGlobalContext.h | 0 .../Tools/MaxConvert/plRenderInstance.cpp | 0 .../Tools/MaxConvert/plRenderInstance.h | 0 .../Tools/MaxExport/SimpleExport.cpp | 0 .../Tools/MaxExport/SimpleExport.h | 0 .../Tools/MaxExport/plErrorMsg.cpp | 0 .../Tools/MaxExport/plErrorMsg.h | 0 .../Tools/MaxExport/plExportDlg.cpp | 0 .../Tools/MaxExport/plExportDlg.h | 0 .../Tools/MaxExport/plExportErrorMsg.cpp | 0 .../Tools/MaxExport/plExportErrorMsg.h | 0 .../Tools/MaxExport/plExportLogErrorMsg.cpp | 0 .../Tools/MaxExport/plExportLogErrorMsg.h | 0 .../Tools/MaxExport/plExportProgressBar.cpp | 0 .../Tools/MaxExport/plExportProgressBar.h | 0 .../Tools/MaxExport/plProgressBar.h | 0 .../Tools/MaxMain/GlobalUtility.cpp | 0 .../Tools/MaxMain/GlobalUtility.h | 0 .../Tools/MaxMain/MaxAllocDll.cpp | 0 .../Tools/MaxMain/MaxAllocDll.h | 0 .../Tools/MaxMain/SimpleExport.rc | 0 .../Tools/MaxMain/indexes.cpp | 0 .../Tools/MaxMain/main.cpp | 0 .../Tools/MaxMain/main.def | 0 .../Tools/MaxMain/plActionTableMgr.cpp | 0 .../Tools/MaxMain/plActionTableMgr.h | 0 .../Tools/MaxMain/plAgeDescInterface.cpp | 0 .../Tools/MaxMain/plAgeDescInterface.h | 0 .../Tools/MaxMain/plCommonObjLib.cpp | 0 .../Tools/MaxMain/plCommonObjLib.h | 0 .../Tools/MaxMain/plComponentDlg.cpp | 0 .../Tools/MaxMain/plComponentDlg.h | 0 .../Tools/MaxMain/plComponentPanel.cpp | 0 .../Tools/MaxMain/plComponentPanel.h | 0 .../Tools/MaxMain/plGetLocationDlg.cpp | 0 .../Tools/MaxMain/plGetLocationDlg.h | 0 .../Tools/MaxMain/plMaxAccelerators.cpp | 0 .../Tools/MaxMain/plMaxAccelerators.h | 0 .../Tools/MaxMain/plMaxCFGFile.cpp | 0 .../Tools/MaxMain/plMaxCFGFile.h | 0 .../Tools/MaxMain/plMaxMenu.cpp | 0 .../Tools/MaxMain/plMaxMenu.h | 0 .../Tools/MaxMain/plMaxMeshExtractor.cpp | 0 .../Tools/MaxMain/plMaxMeshExtractor.h | 0 .../Tools/MaxMain/plMaxNode.cpp | 0 .../Tools/MaxMain/plMaxNode.h | 0 .../Tools/MaxMain/plMaxNodeBase.cpp | 0 .../Tools/MaxMain/plMaxNodeBase.h | 0 .../Tools/MaxMain/plMaxNodeData.h | 0 .../Tools/MaxMain/plMaxUtils.cpp | 0 .../Tools/MaxMain/plMaxUtils.h | 0 .../Tools/MaxMain/plMtlCollector.cpp | 0 .../Tools/MaxMain/plMtlCollector.h | 0 .../Tools/MaxMain/plNodeLock.cpp | 0 .../Tools/MaxMain/plNodeLock.h | 0 .../Tools/MaxMain/plPhysXCooking.cpp | 0 .../Tools/MaxMain/plPhysXCooking.h | 0 .../Tools/MaxMain/plPhysicalProps.cpp | 0 .../Tools/MaxMain/plPhysicalProps.h | 0 .../Tools/MaxMain/plPlasmaRefMsgs.h | 0 .../Tools/MaxMain/plPluginResManager.cpp | 0 .../Tools/MaxMain/plPluginResManager.h | 0 .../Tools/MaxMain/plPythonMgr.cpp | 0 .../Tools/MaxMain/plPythonMgr.h | 0 .../Tools/MaxMain/plResCollector.cpp | 0 .../Tools/MaxMain/plResCollector.h | 0 .../Tools/MaxMain/plResetXform.cpp | 0 .../Tools/MaxMain/plResetXform.h | 0 .../Tools/MaxMain/plSaveSelected.cpp | 0 .../Tools/MaxMain/plSaveSelected.h | 0 .../Tools/MaxMain/plTextureExportLog.cpp | 0 .../Tools/MaxMain/plTextureExportLog.h | 0 .../Tools/MaxMain/plTextureSearch.cpp | 0 .../Tools/MaxMain/plTextureSearch.h | 0 .../Tools/MaxMain/resource.h | 0 .../Tools/MaxMtlUpdate/DllEntry.cpp | 0 .../Tools/MaxMtlUpdate/OldMat/hsMaxLayer.h | 0 .../MaxMtlUpdate/OldMat/hsMaxLayerBase.h | 0 .../Tools/MaxMtlUpdate/plMaterialUpdate.cpp | 0 .../Tools/MaxMtlUpdate/plMaterialUpdate.def | 0 .../Tools/MaxMtlUpdate/plMaterialUpdate.h | 0 .../Tools/MaxMtlUpdate/plMaterialUpdate.rc | 0 .../Tools/MaxMtlUpdate/resource.h | 0 .../Tools/MaxPlasmaLights/DLLEntry.cpp | 0 .../plRTLightBaseAnimDlgProc.h | 0 .../MaxPlasmaLights/plRTLightBaseAnimPBDec.h | 0 .../Tools/MaxPlasmaLights/plRTLights.rc | 0 .../Tools/MaxPlasmaLights/plRTObjLightDesc.h | 0 .../MaxPlasmaLights/plRTPlasmaLights.def | 0 .../MaxPlasmaLights/plRTProjDirLight.cpp | 0 .../Tools/MaxPlasmaLights/plRTProjDirLight.h | 0 .../plRTProjDirLightClassDesc.h | 0 .../MaxPlasmaLights/plRTProjDirLightPBDec.h | 0 .../MaxPlasmaLights/plRealTimeLightBase.cpp | 0 .../MaxPlasmaLights/plRealTimeLightBase.h | 0 .../MaxPlasmaLights/plRealTimeLights.cpp | 0 .../Tools/MaxPlasmaLights/plRealTimeLights.h | 0 .../MaxPlasmaLights/plRealTimeLightsPBDec.h | 0 .../Tools/MaxPlasmaLights/prim.h | 0 .../Tools/MaxPlasmaLights/resource.h | 0 .../Tools/MaxPlasmaLights/target.h | 0 .../Layers/plAngleAttenLayer.cpp | 0 .../MaxPlasmaMtls/Layers/plAngleAttenLayer.h | 0 .../Layers/plDynamicEnvLayer.cpp | 0 .../MaxPlasmaMtls/Layers/plDynamicEnvLayer.h | 0 .../Layers/plDynamicEnvLayerBitmapPB.cpp | 0 .../Layers/plDynamicTextLayer.cpp | 0 .../MaxPlasmaMtls/Layers/plDynamicTextLayer.h | 0 .../Layers/plDynamicTextLayerBitmapPB.cpp | 0 .../Tools/MaxPlasmaMtls/Layers/plLayerTex.cpp | 0 .../Tools/MaxPlasmaMtls/Layers/plLayerTex.h | 0 .../Layers/plLayerTexBasicPB.cpp | 0 .../MaxPlasmaMtls/Layers/plLayerTexBasicPB.h | 0 .../Layers/plLayerTexBitmapPB.cpp | 0 .../MaxPlasmaMtls/Layers/plLayerTexBitmapPB.h | 0 .../MaxPlasmaMtls/Layers/plMAXCameraLayer.cpp | 0 .../MaxPlasmaMtls/Layers/plMAXCameraLayer.h | 0 .../MaxPlasmaMtls/Layers/plPlasmaMAXLayer.cpp | 0 .../MaxPlasmaMtls/Layers/plPlasmaMAXLayer.h | 0 .../MaxPlasmaMtls/Layers/plStaticEnvLayer.cpp | 0 .../MaxPlasmaMtls/Layers/plStaticEnvLayer.h | 0 .../Layers/plStaticEnvLayerBitmapPB.cpp | 0 .../Layers/plStaticEnvLayerBitmapPB.h | 0 .../Materials/plAnimStealthConvert.cpp | 0 .../Materials/plAnimStealthNode.cpp | 0 .../Materials/plAnimStealthNode.h | 0 .../MaxPlasmaMtls/Materials/plBumpMtl.cpp | 0 .../Tools/MaxPlasmaMtls/Materials/plBumpMtl.h | 0 .../MaxPlasmaMtls/Materials/plBumpMtlAnimPB.h | 0 .../Materials/plBumpMtlAnimPBDec.h | 0 .../Materials/plBumpMtlBasicPB.h | 0 .../Materials/plBumpMtlBasicPBDec.h | 0 .../MaxPlasmaMtls/Materials/plClothingMtl.cpp | 0 .../MaxPlasmaMtls/Materials/plClothingMtl.h | 0 .../Materials/plClothingMtlPBDec.h | 0 .../Materials/plCompositeMtl.cpp | 0 .../MaxPlasmaMtls/Materials/plCompositeMtl.h | 0 .../Materials/plCompositeMtlDlg.cpp | 0 .../Materials/plCompositeMtlDlg.h | 0 .../Materials/plCompositeMtlPB.h | 0 .../Materials/plCompositeMtlPBDec.h | 0 .../MaxPlasmaMtls/Materials/plDecalMtl.cpp | 0 .../MaxPlasmaMtls/Materials/plDecalMtl.h | 0 .../MaxPlasmaMtls/Materials/plDecalMtlAdvPB.h | 0 .../Materials/plDecalMtlAdvPBDec.h | 0 .../Materials/plDecalMtlAnimPB.h | 0 .../Materials/plDecalMtlAnimPBDec.h | 0 .../Materials/plDecalMtlBasicPB.h | 0 .../Materials/plDecalMtlBasicPBDec.h | 0 .../Materials/plDecalMtlLayersPB.h | 0 .../Materials/plDecalMtlLayersPBDec.h | 0 .../Materials/plMultipassMtl.cpp | 0 .../MaxPlasmaMtls/Materials/plMultipassMtl.h | 0 .../Materials/plMultipassMtlDlg.cpp | 0 .../Materials/plMultipassMtlDlg.h | 0 .../Materials/plMultipassMtlPB.cpp | 0 .../Materials/plMultipassMtlPB.h | 0 .../Materials/plNoteTrackWatcher.cpp | 0 .../Materials/plNoteTrackWatcher.h | 0 .../MaxPlasmaMtls/Materials/plParticleMtl.cpp | 0 .../MaxPlasmaMtls/Materials/plParticleMtl.h | 0 .../Materials/plParticleMtlPBDec.h | 0 .../Materials/plPassAnimDlgProc.cpp | 0 .../Materials/plPassAnimDlgProc.h | 0 .../Materials/plPassBaseParamIDs.h | 0 .../MaxPlasmaMtls/Materials/plPassMtl.cpp | 0 .../Tools/MaxPlasmaMtls/Materials/plPassMtl.h | 0 .../MaxPlasmaMtls/Materials/plPassMtlAdvPB.h | 0 .../Materials/plPassMtlAdvPBDec.h | 0 .../MaxPlasmaMtls/Materials/plPassMtlAnimPB.h | 0 .../Materials/plPassMtlAnimPBDec.h | 0 .../MaxPlasmaMtls/Materials/plPassMtlBase.cpp | 0 .../MaxPlasmaMtls/Materials/plPassMtlBase.h | 0 .../Materials/plPassMtlBasicPB.h | 0 .../Materials/plPassMtlBasicPBDec.h | 0 .../Materials/plPassMtlLayersPB.h | 0 .../Materials/plPassMtlLayersPBDec.h | 0 .../Tools/MaxPlasmaMtls/MaxPlasmaMtls.rc | 0 .../Tools/MaxPlasmaMtls/Shaders.cpp | 0 .../Tools/MaxPlasmaMtls/Shaders.h | 0 .../Tools/MaxPlasmaMtls/plBMSampler.cpp | 0 .../Tools/MaxPlasmaMtls/plBMSampler.h | 0 .../Tools/MaxPlasmaMtls/plDetailCurveCtrl.cpp | 0 .../Tools/MaxPlasmaMtls/plDetailCurveCtrl.h | 0 .../Tools/MaxPlasmaMtls/plDrawCurve.cpp | 0 .../Tools/MaxPlasmaMtls/plMaterialRefMsg.h | 0 .../Tools/MaxPlasmaMtls/plMtlImport.cpp | 0 .../Tools/MaxPlasmaMtls/plMtlImport.h | 0 .../MaxPlasmaMtls/res/detailBgnd8bit.bmp | Bin .../Tools/MaxPlasmaMtls/res/dmtlbut.bmp | Bin .../Tools/MaxPlasmaMtls/res/dmtlmsk.bmp | Bin .../Tools/MaxPlasmaMtls/resource.h | 0 .../Tools/MaxSceneViewer/SceneSync.cpp | 0 .../Tools/MaxSceneViewer/SceneSync.h | 0 .../Tools/MaxSceneViewer/SceneViewer.cpp | 0 .../Tools/MaxSceneViewer/SceneViewer.h | 0 .../Tools/MaxSceneViewer/SceneWatcher.cpp | 0 .../Tools/MaxSceneViewer/SceneWatcher.h | 0 .../Tools/MaxSceneViewer/plKeyRefSort.cpp | 0 .../Tools/MaxSceneViewer/plKeyRefSort.h | 0 .../Tools/MaxSceneViewer/plMaxFileData.cpp | 0 .../Tools/MaxSceneViewer/plMaxFileData.h | 0 .../Tools/MaxSceneViewer/plPluginApp.cpp | 0 .../Tools/MaxSceneViewer/plPluginApp.h | 0 .../Tools/MaxSceneViewer/plPluginClient.cpp | 0 .../Tools/MaxSceneViewer/plPluginClient.h | 0 .../Tools/Migration/Migration.cpp | 0 .../Tools/Migration/Migration.h | 0 .../Tools/Migration/Migration.ico | Bin .../Tools/Migration/Migration.rc | 0 .../Tools/Migration/MigrationTask.cpp | 0 .../Tools/Migration/MigrationTask.h | 0 .../Tools/Migration/OptionalDialog.cpp | 0 .../Tools/Migration/OptionalDialog.h | 0 .../Tools/Migration/resource.h | 0 .../Tools/Migration/small.ico | Bin .../Tools/plDatMerger/plAllCreatables.cpp | 0 .../Tools/plDatMerger/plDatMerger.cpp | 0 .../Tools/plDatMerger/plRawKeyedObject.cpp | 0 .../Tools/plDatMerger/plRawKeyedObject.h | 0 .../Tools/plDatMerger/plRawPageAccessor.cpp | 0 .../Tools/plDatMerger/plRawPageAccessor.h | 0 .../Tools/plDatMerger/plRawResManager.cpp | 0 .../Tools/plDatMerger/plRawResManager.h | 0 .../plFontConverter/hsCodecManagerStub.cpp | 0 .../Tools/plFontConverter/plFontConverter.cpp | 0 .../plFontConverter/plFontConverterProc.cpp | 0 .../Tools/plFontConverter/plFontFreeType.cpp | 0 .../Tools/plFontConverter/plFontFreeType.h | 0 .../Tools/plFontConverter/res/icon1.ico | Bin .../plFontConverter/res/plFontConverter.rc | 0 .../Tools/plFontConverter/res/resource.h | 0 .../Tools/plResBrowser/plResBrowser.cpp | 0 .../Tools/plResBrowser/plResBrowser.dsp | 0 .../Tools/plResBrowser/plResBrowser.vcproj | 0 .../plResBrowser/plResBrowserWndProc.cpp | 0 .../Tools/plResBrowser/plResTreeView.cpp | 0 .../Tools/plResBrowser/plResTreeView.h | 0 .../Tools/plResBrowser/plWinRegistryTools.cpp | 0 .../Tools/plResBrowser/plWinRegistryTools.h | 0 .../Tools/plResBrowser/res/dataicon.ico | Bin .../Tools/plResBrowser/res/icon1.ico | Bin .../Tools/plResBrowser/res/icon2.ico | Bin .../Tools/plResBrowser/res/indexico.ico | Bin .../Tools/plResBrowser/res/mergedda.ico | Bin .../Tools/plResBrowser/res/mergedin.ico | Bin .../Tools/plResBrowser/res/plResBrowser.rc | 0 .../Tools/plResBrowser/res/resource.h | 0 build-allclient-solution.bat | 9 - clean-allclient-solution.bat | 12 - .../Plasma20/cmake => cmake}/FindBink.cmake | 0 .../cmake => cmake}/FindDirectX.cmake | 0 .../Plasma20/cmake => cmake}/FindOgg.cmake | 0 .../Plasma20/cmake => cmake}/FindPhysX.cmake | 0 .../Plasma20/cmake => cmake}/FindSpeex.cmake | 0 .../Plasma20/cmake => cmake}/FindVorbis.cmake | 0 4299 files changed, 299140 deletions(-) rename MOULOpenSourceClientPlugin/Plasma20/CMakeLists.txt => CMakeLists.txt (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Docs => Docs}/Distributor.doc (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Docs => Docs}/ReleaseNotes/ReleaseNotes.txt (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Docs => Docs}/Resource Manager.doc (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Docs => Docs}/sound cones.htm (100%) delete mode 100644 MOULOpenSourceClientPlugin/LICENSE.txt delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/Win32/Bink/placeholder.txt delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/Win32/DX9.0c/placeholder.txt delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/Win32/EAX/placeholder.txt delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/Win32/Expat/placeholder.txt delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/Win32/IJL/ijlnotes.htm delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/Win32/MAX7SDK/placeholder.txt delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/Win32/MySQL/ReadMe.txt delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/Win32/OpenAL 1.1 with EFX SDK/placeholder.txt delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/Win32/OpenSSL/placeholder.txt delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/Win32/PhysX/release_notes.html delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/Win32/PlatformSDK/ReadMe.txt delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/Win32/QTW/placeholder.txt delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/License.txt delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/README delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/bin/SciLexer.dll delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/bin/SciLexer.exp delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/bin/SciLexer.lib delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/bin/SciLexer.pdb delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/bin/Scintilla.dll delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/bin/Scintilla.exp delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/bin/Scintilla.lib delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/bin/Scintilla.pdb delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/doc/Design.html delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/doc/Icons.html delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/doc/Lexer.txt delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/doc/SciBreak.jpg delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/doc/SciCoding.html delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/doc/SciRest.jpg delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/doc/SciTEIco.png delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/doc/SciWord.jpg delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/doc/ScintillaDoc.html delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/doc/ScintillaDownload.html delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/doc/ScintillaHistory.html delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/doc/ScintillaRelated.html delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/doc/ScintillaToDo.html delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/doc/ScintillaUsage.html delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/doc/Steps.html delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/doc/index.html delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/include/Accessor.h delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/include/Face.py delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/include/HFacer.py delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/include/KeyWords.h delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/include/Platform.h delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/include/PropSet.h delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/include/SString.h delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/include/SciLexer.h delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/include/Scintilla.h delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/include/Scintilla.iface delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/include/ScintillaWidget.h delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/include/WindowAccessor.h delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/src/AutoComplete.cxx delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/src/AutoComplete.h delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/src/CallTip.cxx delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/src/CallTip.h delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/src/CellBuffer.cxx delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/src/CellBuffer.h delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/src/CharClassify.cxx delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/src/CharClassify.h delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/src/ContractionState.cxx delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/src/ContractionState.h delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/src/Document.cxx delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/src/Document.h delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/src/DocumentAccessor.cxx delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/src/DocumentAccessor.h delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/src/Editor.cxx delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/src/Editor.h delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/src/ExternalLexer.cxx delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/src/ExternalLexer.h delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/src/Indicator.cxx delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/src/Indicator.h delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/src/KeyMap.cxx delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/src/KeyMap.h delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/src/KeyWords.cxx delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/src/LexAPDL.cxx delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/src/LexAU3.cxx delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/src/LexAVE.cxx delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/src/LexAda.cxx delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/src/LexAsm.cxx delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/src/LexAsn1.cxx delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/src/LexBaan.cxx delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/src/LexBash.cxx delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/src/LexBasic.cxx delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/src/LexBullant.cxx delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/src/LexCLW.cxx delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/src/LexCPP.cxx delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/src/LexCSS.cxx delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/src/LexCaml.cxx delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/src/LexConf.cxx delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/src/LexCrontab.cxx delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/src/LexCsound.cxx delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/src/LexEScript.cxx delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/src/LexEiffel.cxx delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/src/LexErlang.cxx delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/src/LexFlagship.cxx delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/src/LexForth.cxx delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/src/LexFortran.cxx delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/src/LexGen.py delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/src/LexGui4Cli.cxx delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/src/LexHTML.cxx delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/src/LexHaskell.cxx delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/src/LexInno.cxx delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/src/LexKix.cxx delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/src/LexLisp.cxx delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/src/LexLout.cxx delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/src/LexLua.cxx delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/src/LexMMIXAL.cxx delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/src/LexMPT.cxx delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/src/LexMSSQL.cxx delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/src/LexMatlab.cxx delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/src/LexMetapost.cxx delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/src/LexNsis.cxx delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/src/LexOpal.cxx delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/src/LexOthers.cxx delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/src/LexPB.cxx delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/src/LexPOV.cxx delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/src/LexPS.cxx delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/src/LexPascal.cxx delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/src/LexPerl.cxx delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/src/LexPython.cxx delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/src/LexRebol.cxx delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/src/LexRuby.cxx delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/src/LexSQL.cxx delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/src/LexScriptol.cxx delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/src/LexSmalltalk.cxx delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/src/LexSpecman.cxx delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/src/LexSpice.cxx delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/src/LexTADS3.cxx delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/src/LexTCL.cxx delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/src/LexTeX.cxx delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/src/LexVB.cxx delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/src/LexVHDL.cxx delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/src/LexVerilog.cxx delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/src/LexYAML.cxx delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/src/LineMarker.cxx delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/src/LineMarker.h delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/src/PropSet.cxx delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/src/RESearch.cxx delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/src/RESearch.h delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/src/SVector.h delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/src/SciTE.properties delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/src/ScintillaBase.cxx delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/src/ScintillaBase.h delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/src/Style.cxx delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/src/Style.h delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/src/StyleContext.cxx delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/src/StyleContext.h delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/src/UniConversion.cxx delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/src/UniConversion.h delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/src/ViewStyle.cxx delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/src/ViewStyle.h delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/src/WindowAccessor.cxx delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/src/XPM.cxx delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/src/XPM.h delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/version.txt delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/win32/Margin.cur delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/win32/PlatWin.cxx delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/win32/PlatformRes.h delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/win32/SciTE.properties delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/win32/ScintRes.rc delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/win32/Scintilla.def delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/win32/ScintillaWin.cxx delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/win32/deps.mak delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/win32/makefile delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/win32/scintilla.mak delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/win32/scintilla_vc6.mak delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/Win32/UnicoWS/License.Txt delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/Win32/UnicoWS/redist.txt delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/Win32/UnicoWS/unicows.dll delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/Win32/UnicoWS/unicows.pdb delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/Win32/UnicoWS/unicows.sym delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/Win32/WMSDK/placeholder.txt delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/Win32/freetype-2.1.4/placeholder.txt delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/Win32/freetype-2/placeholder.txt delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/Win32/oggvorbis/placeholder.txt delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/Win32/speex-1.0.1/AUTHORS delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/Win32/speex-1.0.1/COPYING delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/Win32/speex-1.0.1/ChangeLog delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/Win32/speex-1.0.1/INSTALL delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/Win32/speex-1.0.1/Makefile.am delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/Win32/speex-1.0.1/Makefile.in delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/Win32/speex-1.0.1/NEWS delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/Win32/speex-1.0.1/README delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/Win32/speex-1.0.1/Speex.spec delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/Win32/speex-1.0.1/Speex.spec.in delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/Win32/speex-1.0.1/TODO delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/Win32/speex-1.0.1/acinclude.m4 delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/Win32/speex-1.0.1/aclocal.m4 delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/Win32/speex-1.0.1/config.guess delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/Win32/speex-1.0.1/config.sub delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/Win32/speex-1.0.1/configure delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/Win32/speex-1.0.1/configure.in delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/Win32/speex-1.0.1/doc/Makefile.am delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/Win32/speex-1.0.1/doc/Makefile.in delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/Win32/speex-1.0.1/doc/manual.pdf delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/Win32/speex-1.0.1/install-sh delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/Win32/speex-1.0.1/libspeex/Makefile.am delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/Win32/speex-1.0.1/libspeex/Makefile.in delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/Win32/speex-1.0.1/libspeex/bits.c delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/Win32/speex-1.0.1/libspeex/cb_search.c delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/Win32/speex-1.0.1/libspeex/cb_search.h delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/Win32/speex-1.0.1/libspeex/exc_10_16_table.c delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/Win32/speex-1.0.1/libspeex/exc_10_32_table.c delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/Win32/speex-1.0.1/libspeex/exc_20_32_table.c delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/Win32/speex-1.0.1/libspeex/exc_5_256_table.c delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/Win32/speex-1.0.1/libspeex/exc_5_64_table.c delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/Win32/speex-1.0.1/libspeex/exc_8_128_table.c delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/Win32/speex-1.0.1/libspeex/filters.c delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/Win32/speex-1.0.1/libspeex/filters.h delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/Win32/speex-1.0.1/libspeex/filters_sse.h delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/Win32/speex-1.0.1/libspeex/gain_table.c delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/Win32/speex-1.0.1/libspeex/gain_table_lbr.c delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/Win32/speex-1.0.1/libspeex/hexc_10_32_table.c delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/Win32/speex-1.0.1/libspeex/hexc_table.c delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/Win32/speex-1.0.1/libspeex/high_lsp_tables.c delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/Win32/speex-1.0.1/libspeex/lpc.c delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/Win32/speex-1.0.1/libspeex/lpc.h delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/Win32/speex-1.0.1/libspeex/lsp.c delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/Win32/speex-1.0.1/libspeex/lsp.h delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/Win32/speex-1.0.1/libspeex/lsp_tables_nb.c delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/Win32/speex-1.0.1/libspeex/ltp.c delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/Win32/speex-1.0.1/libspeex/ltp.h delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/Win32/speex-1.0.1/libspeex/ltp_sse.h delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/Win32/speex-1.0.1/libspeex/math_approx.c delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/Win32/speex-1.0.1/libspeex/math_approx.h delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/Win32/speex-1.0.1/libspeex/misc.c delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/Win32/speex-1.0.1/libspeex/misc.h delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/Win32/speex-1.0.1/libspeex/modes.c delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/Win32/speex-1.0.1/libspeex/modes.h delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/Win32/speex-1.0.1/libspeex/nb_celp.c delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/Win32/speex-1.0.1/libspeex/nb_celp.h delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/Win32/speex-1.0.1/libspeex/quant_lsp.c delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/Win32/speex-1.0.1/libspeex/quant_lsp.h delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/Win32/speex-1.0.1/libspeex/sb_celp.c delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/Win32/speex-1.0.1/libspeex/sb_celp.h delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/Win32/speex-1.0.1/libspeex/speex.h delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/Win32/speex-1.0.1/libspeex/speex_bits.h delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/Win32/speex-1.0.1/libspeex/speex_callbacks.c delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/Win32/speex-1.0.1/libspeex/speex_callbacks.h delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/Win32/speex-1.0.1/libspeex/speex_header.c delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/Win32/speex-1.0.1/libspeex/speex_header.h delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/Win32/speex-1.0.1/libspeex/speex_stereo.h delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/Win32/speex-1.0.1/libspeex/stack_alloc.h delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/Win32/speex-1.0.1/libspeex/stereo.c delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/Win32/speex-1.0.1/libspeex/testenc.c delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/Win32/speex-1.0.1/libspeex/testenc_uwb.c delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/Win32/speex-1.0.1/libspeex/testenc_wb.c delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/Win32/speex-1.0.1/libspeex/vbr.c delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/Win32/speex-1.0.1/libspeex/vbr.h delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/Win32/speex-1.0.1/libspeex/vq.c delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/Win32/speex-1.0.1/libspeex/vq.h delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/Win32/speex-1.0.1/ltmain.sh delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/Win32/speex-1.0.1/missing delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/Win32/speex-1.0.1/mkinstalldirs delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/Win32/speex-1.0.1/src/Makefile.am delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/Win32/speex-1.0.1/src/Makefile.in delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/Win32/speex-1.0.1/src/getopt.c delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/Win32/speex-1.0.1/src/getopt1.c delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/Win32/speex-1.0.1/src/getopt_win.h delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/Win32/speex-1.0.1/src/ogg.h delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/Win32/speex-1.0.1/src/os_types.h delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/Win32/speex-1.0.1/src/speexdec.1 delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/Win32/speex-1.0.1/src/speexdec.c delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/Win32/speex-1.0.1/src/speexenc.1 delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/Win32/speex-1.0.1/src/speexenc.c delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/Win32/speex-1.0.1/src/wav_io.c delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/Win32/speex-1.0.1/src/wav_io.h delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/Win32/speex-1.0.1/src/wave_out.c delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/Win32/speex-1.0.1/src/wave_out.h delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/Win32/speex-1.0.1/win32/Makefile.am delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/Win32/speex-1.0.1/win32/Makefile.in delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/Win32/speex-1.0.1/win32/libspeex/Debug/libspeex.lib delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/Win32/speex-1.0.1/win32/libspeex/Debug/vc70.pdb delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/Win32/speex-1.0.1/win32/libspeex/Makefile.am delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/Win32/speex-1.0.1/win32/libspeex/Makefile.in delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/Win32/speex-1.0.1/win32/libspeex/Release/libspeex.lib delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/Win32/speex-1.0.1/win32/libspeex/libspeex.dsp delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/Win32/speex-1.0.1/win32/libspeex/libspeex.dsw delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/Win32/speex-1.0.1/win32/libspeex/libspeex.opt delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/Win32/speex-1.0.1/win32/libspeex/libspeex.plg delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/Win32/speex-1.0.1/win32/libspeex/libspeex.sln delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/Win32/speex-1.0.1/win32/libspeex/libspeex.vcproj delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/Win32/speex-1.0.1/win32/speexdec/Makefile.am delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/Win32/speex-1.0.1/win32/speexdec/Makefile.in delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/Win32/speex-1.0.1/win32/speexdec/speexdec.dsp delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/Win32/speex-1.0.1/win32/speexdec/speexdec.dsw delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/Win32/speex-1.0.1/win32/speexdec/speexdec.opt delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/Win32/speex-1.0.1/win32/speexenc/Copy of ogg.h delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/Win32/speex-1.0.1/win32/speexenc/Makefile.am delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/Win32/speex-1.0.1/win32/speexenc/Makefile.in delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/Win32/speex-1.0.1/win32/speexenc/ogg.h delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/Win32/speex-1.0.1/win32/speexenc/speexenc.dsp delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/Win32/speex-1.0.1/win32/speexenc/speexenc.dsw delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/Win32/speex-1.0.1/win32/speexenc/speexenc.opt delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/Win32/speex-1.0.1/win32/speexenc/speexenc.plg delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/OCI11/placeholder.txt delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/expat-1.95.7/COPYING.txt delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/expat-1.95.7/Changes.txt delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/expat-1.95.7/Include/expat.h delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/expat-1.95.7/Libs/libexpat.dll delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/expat-1.95.7/Libs/libexpat.exp delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/expat-1.95.7/Libs/libexpat.lib delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/expat-1.95.7/Libs/libexpatw.dll delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/expat-1.95.7/Libs/libexpatw.exp delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/expat-1.95.7/Libs/libexpatw.lib delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/expat-1.95.7/README.txt delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/expat-1.95.7/Source/README.txt delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/expat-1.95.7/Source/expat.sln delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/expat-1.95.7/Source/lib/ascii.h delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/expat-1.95.7/Source/lib/asciitab.h delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/expat-1.95.7/Source/lib/expat.h delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/expat-1.95.7/Source/lib/expat.vcproj delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/expat-1.95.7/Source/lib/expat_static.vcproj delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/expat-1.95.7/Source/lib/expatw.vcproj delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/expat-1.95.7/Source/lib/expatw_static.vcproj delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/expat-1.95.7/Source/lib/expatw_static_xbox.vcproj delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/expat-1.95.7/Source/lib/iasciitab.h delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/expat-1.95.7/Source/lib/internal.h delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/expat-1.95.7/Source/lib/latin1tab.h delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/expat-1.95.7/Source/lib/libexpat.def delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/expat-1.95.7/Source/lib/libexpatw.def delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/expat-1.95.7/Source/lib/macconfig.h delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/expat-1.95.7/Source/lib/nametab.h delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/expat-1.95.7/Source/lib/utf8tab.h delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/expat-1.95.7/Source/lib/winconfig.h delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/expat-1.95.7/Source/lib/xmlparse.c delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/expat-1.95.7/Source/lib/xmlrole.c delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/expat-1.95.7/Source/lib/xmlrole.h delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/expat-1.95.7/Source/lib/xmltok.c delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/expat-1.95.7/Source/lib/xmltok.h delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/expat-1.95.7/Source/lib/xmltok_impl.c delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/expat-1.95.7/Source/lib/xmltok_impl.h delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/expat-1.95.7/Source/lib/xmltok_ns.c delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/expat-1.95.7/StaticLibs/Win32/libexpatwMT.lib delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/expat-1.95.7/StaticLibs/Xbox/libexpatwMT.lib delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/expat-1.95.7/StaticLibs/Xbox/vc70.pdb delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/jpeg-6b/placeholder.txt delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/jpeg-8c-rgba/Makefile.am delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/jpeg-8c-rgba/Makefile.in delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/jpeg-8c-rgba/README delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/jpeg-8c-rgba/README.CWE delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/jpeg-8c-rgba/aclocal.m4 delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/jpeg-8c-rgba/ansi2knr.1 delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/jpeg-8c-rgba/ansi2knr.c delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/jpeg-8c-rgba/cderror.h delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/jpeg-8c-rgba/cdjpeg.c delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/jpeg-8c-rgba/cdjpeg.h delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/jpeg-8c-rgba/change.log delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/jpeg-8c-rgba/cjpeg.1 delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/jpeg-8c-rgba/cjpeg.c delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/jpeg-8c-rgba/ckconfig.c delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/jpeg-8c-rgba/coderules.txt delete mode 100755 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/jpeg-8c-rgba/config.guess delete mode 100755 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/jpeg-8c-rgba/config.sub delete mode 100755 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/jpeg-8c-rgba/configure delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/jpeg-8c-rgba/configure.ac delete mode 100755 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/jpeg-8c-rgba/depcomp delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/jpeg-8c-rgba/djpeg.1 delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/jpeg-8c-rgba/djpeg.c delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/jpeg-8c-rgba/example.c delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/jpeg-8c-rgba/filelist.txt delete mode 100755 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/jpeg-8c-rgba/install-sh delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/jpeg-8c-rgba/install.txt delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/jpeg-8c-rgba/jaricom.c delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/jpeg-8c-rgba/jcapimin.c delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/jpeg-8c-rgba/jcapistd.c delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/jpeg-8c-rgba/jcarith.c delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/jpeg-8c-rgba/jccoefct.c delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/jpeg-8c-rgba/jccolor.c delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/jpeg-8c-rgba/jcdctmgr.c delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/jpeg-8c-rgba/jchuff.c delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/jpeg-8c-rgba/jcinit.c delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/jpeg-8c-rgba/jcmainct.c delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/jpeg-8c-rgba/jcmarker.c delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/jpeg-8c-rgba/jcmaster.c delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/jpeg-8c-rgba/jcomapi.c delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/jpeg-8c-rgba/jconfig.bcc delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/jpeg-8c-rgba/jconfig.cfg delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/jpeg-8c-rgba/jconfig.dj delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/jpeg-8c-rgba/jconfig.mac delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/jpeg-8c-rgba/jconfig.manx delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/jpeg-8c-rgba/jconfig.mc6 delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/jpeg-8c-rgba/jconfig.sas delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/jpeg-8c-rgba/jconfig.st delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/jpeg-8c-rgba/jconfig.txt delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/jpeg-8c-rgba/jconfig.vc delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/jpeg-8c-rgba/jconfig.vms delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/jpeg-8c-rgba/jconfig.wat delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/jpeg-8c-rgba/jcparam.c delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/jpeg-8c-rgba/jcprepct.c delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/jpeg-8c-rgba/jcsample.c delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/jpeg-8c-rgba/jctrans.c delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/jpeg-8c-rgba/jdapimin.c delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/jpeg-8c-rgba/jdapistd.c delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/jpeg-8c-rgba/jdarith.c delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/jpeg-8c-rgba/jdatadst.c delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/jpeg-8c-rgba/jdatasrc.c delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/jpeg-8c-rgba/jdcoefct.c delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/jpeg-8c-rgba/jdcolor.c delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/jpeg-8c-rgba/jdct.h delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/jpeg-8c-rgba/jddctmgr.c delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/jpeg-8c-rgba/jdhuff.c delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/jpeg-8c-rgba/jdinput.c delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/jpeg-8c-rgba/jdmainct.c delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/jpeg-8c-rgba/jdmarker.c delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/jpeg-8c-rgba/jdmaster.c delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/jpeg-8c-rgba/jdmerge.c delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/jpeg-8c-rgba/jdpostct.c delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/jpeg-8c-rgba/jdsample.c delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/jpeg-8c-rgba/jdtrans.c delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/jpeg-8c-rgba/jerror.c delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/jpeg-8c-rgba/jerror.h delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/jpeg-8c-rgba/jfdctflt.c delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/jpeg-8c-rgba/jfdctfst.c delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/jpeg-8c-rgba/jfdctint.c delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/jpeg-8c-rgba/jidctflt.c delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/jpeg-8c-rgba/jidctfst.c delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/jpeg-8c-rgba/jidctint.c delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/jpeg-8c-rgba/jinclude.h delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/jpeg-8c-rgba/jmemansi.c delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/jpeg-8c-rgba/jmemdos.c delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/jpeg-8c-rgba/jmemdosa.asm delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/jpeg-8c-rgba/jmemmac.c delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/jpeg-8c-rgba/jmemmgr.c delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/jpeg-8c-rgba/jmemname.c delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/jpeg-8c-rgba/jmemnobs.c delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/jpeg-8c-rgba/jmemsys.h delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/jpeg-8c-rgba/jmorecfg.h delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/jpeg-8c-rgba/jpegint.h delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/jpeg-8c-rgba/jpeglib.h delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/jpeg-8c-rgba/jpegtran.1 delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/jpeg-8c-rgba/jpegtran.c delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/jpeg-8c-rgba/jquant1.c delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/jpeg-8c-rgba/jquant2.c delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/jpeg-8c-rgba/jutils.c delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/jpeg-8c-rgba/jversion.h delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/jpeg-8c-rgba/libjpeg.map delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/jpeg-8c-rgba/libjpeg.txt delete mode 100755 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/jpeg-8c-rgba/ltmain.sh delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/jpeg-8c-rgba/makcjpeg.st delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/jpeg-8c-rgba/makdjpeg.st delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/jpeg-8c-rgba/makeadsw.vc6 delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/jpeg-8c-rgba/makeasln.v10 delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/jpeg-8c-rgba/makecdep.vc6 delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/jpeg-8c-rgba/makecdsp.vc6 delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/jpeg-8c-rgba/makecfil.v10 delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/jpeg-8c-rgba/makecmak.vc6 delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/jpeg-8c-rgba/makecvcx.v10 delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/jpeg-8c-rgba/makeddep.vc6 delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/jpeg-8c-rgba/makeddsp.vc6 delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/jpeg-8c-rgba/makedfil.v10 delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/jpeg-8c-rgba/makedmak.vc6 delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/jpeg-8c-rgba/makedvcx.v10 delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/jpeg-8c-rgba/makefile.ansi delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/jpeg-8c-rgba/makefile.bcc delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/jpeg-8c-rgba/makefile.dj delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/jpeg-8c-rgba/makefile.manx delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/jpeg-8c-rgba/makefile.mc6 delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/jpeg-8c-rgba/makefile.mms delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/jpeg-8c-rgba/makefile.sas delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/jpeg-8c-rgba/makefile.unix delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/jpeg-8c-rgba/makefile.vc delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/jpeg-8c-rgba/makefile.vms delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/jpeg-8c-rgba/makefile.wat delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/jpeg-8c-rgba/makejdep.vc6 delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/jpeg-8c-rgba/makejdsp.vc6 delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/jpeg-8c-rgba/makejdsw.vc6 delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/jpeg-8c-rgba/makejfil.v10 delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/jpeg-8c-rgba/makejmak.vc6 delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/jpeg-8c-rgba/makejsln.v10 delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/jpeg-8c-rgba/makejvcx.v10 delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/jpeg-8c-rgba/makeproj.mac delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/jpeg-8c-rgba/makerdep.vc6 delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/jpeg-8c-rgba/makerdsp.vc6 delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/jpeg-8c-rgba/makerfil.v10 delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/jpeg-8c-rgba/makermak.vc6 delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/jpeg-8c-rgba/makervcx.v10 delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/jpeg-8c-rgba/maketdep.vc6 delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/jpeg-8c-rgba/maketdsp.vc6 delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/jpeg-8c-rgba/maketfil.v10 delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/jpeg-8c-rgba/maketmak.vc6 delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/jpeg-8c-rgba/maketvcx.v10 delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/jpeg-8c-rgba/makewdep.vc6 delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/jpeg-8c-rgba/makewdsp.vc6 delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/jpeg-8c-rgba/makewfil.v10 delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/jpeg-8c-rgba/makewmak.vc6 delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/jpeg-8c-rgba/makewvcx.v10 delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/jpeg-8c-rgba/makljpeg.st delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/jpeg-8c-rgba/maktjpeg.st delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/jpeg-8c-rgba/makvms.opt delete mode 100755 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/jpeg-8c-rgba/missing delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/jpeg-8c-rgba/rdbmp.c delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/jpeg-8c-rgba/rdcolmap.c delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/jpeg-8c-rgba/rdgif.c delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/jpeg-8c-rgba/rdjpgcom.1 delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/jpeg-8c-rgba/rdjpgcom.c delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/jpeg-8c-rgba/rdppm.c delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/jpeg-8c-rgba/rdrle.c delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/jpeg-8c-rgba/rdswitch.c delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/jpeg-8c-rgba/rdtarga.c delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/jpeg-8c-rgba/structure.txt delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/jpeg-8c-rgba/testimg.bmp delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/jpeg-8c-rgba/testimg.jpg delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/jpeg-8c-rgba/testimg.ppm delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/jpeg-8c-rgba/testimgp.jpg delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/jpeg-8c-rgba/testorig.jpg delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/jpeg-8c-rgba/testprog.jpg delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/jpeg-8c-rgba/transupp.c delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/jpeg-8c-rgba/transupp.h delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/jpeg-8c-rgba/usage.txt delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/jpeg-8c-rgba/wizard.txt delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/jpeg-8c-rgba/wrbmp.c delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/jpeg-8c-rgba/wrgif.c delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/jpeg-8c-rgba/wrjpgcom.1 delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/jpeg-8c-rgba/wrjpgcom.c delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/jpeg-8c-rgba/wrppm.c delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/jpeg-8c-rgba/wrrle.c delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/jpeg-8c-rgba/wrtarga.c delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/png/ANNOUNCE delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/png/CHANGES delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/png/INSTALL delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/png/KNOWNBUG delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/png/LICENSE delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/png/Makefile delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/png/README delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/png/TODO delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/png/Y2KINFO delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/png/example.c delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/png/lib/libpng.lib delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/png/lib/libpng_dbg.lib delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/png/libpng.dsp delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/png/libpng.dsw delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/png/libpng.txt delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/png/png.c delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/png/png.h delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/png/pngasmrd.h delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/png/pngbar.jpg delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/png/pngbar.png delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/png/pngconf.h delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/png/pngerror.c delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/png/pnggccrd.c delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/png/pngget.c delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/png/pngmem.c delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/png/pngnow.png delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/png/pngpread.c delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/png/pngread.c delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/png/pngrio.c delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/png/pngrtran.c delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/png/pngrutil.c delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/png/pngset.c delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/png/pngtest.c delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/png/pngtest.dsp delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/png/pngtest.plg delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/png/pngtest.png delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/png/pngtrans.c delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/png/pngvcrd.c delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/png/pngwio.c delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/png/pngwrite.c delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/png/pngwtran.c delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/png/pngwutil.c delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/png/scripts/SCOPTIONS.ppc delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/png/scripts/descrip.mms delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/png/scripts/libpng.icc delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/png/scripts/makefile.acorn delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/png/scripts/makefile.aix delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/png/scripts/makefile.amiga delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/png/scripts/makefile.atari delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/png/scripts/makefile.bc32 delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/png/scripts/makefile.bd32 delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/png/scripts/makefile.beos delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/png/scripts/makefile.bor delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/png/scripts/makefile.cygwin delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/png/scripts/makefile.darwin delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/png/scripts/makefile.dec delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/png/scripts/makefile.dj2 delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/png/scripts/makefile.gcc delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/png/scripts/makefile.gcmmx delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/png/scripts/makefile.hpgcc delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/png/scripts/makefile.hpux delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/png/scripts/makefile.ibmc delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/png/scripts/makefile.intel delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/png/scripts/makefile.knr delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/png/scripts/makefile.linux delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/png/scripts/makefile.macosx delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/png/scripts/makefile.mips delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/png/scripts/makefile.msc delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/png/scripts/makefile.netbsd delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/png/scripts/makefile.os2 delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/png/scripts/makefile.sco delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/png/scripts/makefile.sggcc delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/png/scripts/makefile.sgi delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/png/scripts/makefile.so9 delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/png/scripts/makefile.solaris delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/png/scripts/makefile.std delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/png/scripts/makefile.sunos delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/png/scripts/makefile.tc3 delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/png/scripts/makefile.watcom delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/png/scripts/makevms.com delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/png/scripts/pngdef.pas delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/png/scripts/pngos2.def delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/png/scripts/smakefile.ppc delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/zlib/SRC/ChangeLog delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/zlib/SRC/FAQ delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/zlib/SRC/INDEX delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/zlib/SRC/Make_vms.com delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/zlib/SRC/Makefile delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/zlib/SRC/Makefile.in delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/zlib/SRC/Makefile.riscos delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/zlib/SRC/README delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/zlib/SRC/adler32.c delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/zlib/SRC/algorithm.txt delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/zlib/SRC/amiga/Makefile.pup delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/zlib/SRC/amiga/Makefile.sas delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/zlib/SRC/compress.c delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/zlib/SRC/configure delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/zlib/SRC/contrib/README.contrib delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/zlib/SRC/contrib/asm386/gvmat32.asm delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/zlib/SRC/contrib/asm386/gvmat32c.c delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/zlib/SRC/contrib/asm386/mkgvmt32.bat delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/zlib/SRC/contrib/asm386/zlibvc.def delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/zlib/SRC/contrib/asm386/zlibvc.dsp delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/zlib/SRC/contrib/asm386/zlibvc.dsw delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/zlib/SRC/contrib/asm586/README.586 delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/zlib/SRC/contrib/asm586/match.S delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/zlib/SRC/contrib/asm686/README.686 delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/zlib/SRC/contrib/asm686/match.S delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/zlib/SRC/contrib/delphi/zlib.mak delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/zlib/SRC/contrib/delphi/zlibdef.pas delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/zlib/SRC/contrib/delphi2/d_zlib.bpr delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/zlib/SRC/contrib/delphi2/d_zlib.cpp delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/zlib/SRC/contrib/delphi2/readme.txt delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/zlib/SRC/contrib/delphi2/zlib.bpg delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/zlib/SRC/contrib/delphi2/zlib.bpr delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/zlib/SRC/contrib/delphi2/zlib.cpp delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/zlib/SRC/contrib/delphi2/zlib.pas delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/zlib/SRC/contrib/delphi2/zlib32.bpr delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/zlib/SRC/contrib/delphi2/zlib32.cpp delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/zlib/SRC/contrib/iostream/test.cpp delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/zlib/SRC/contrib/iostream/zfstream.cpp delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/zlib/SRC/contrib/iostream/zfstream.h delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/zlib/SRC/contrib/iostream2/zstream.h delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/zlib/SRC/contrib/iostream2/zstream_test.cpp delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/zlib/SRC/contrib/minizip/ChangeLogUnzip delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/zlib/SRC/contrib/minizip/Makefile delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/zlib/SRC/contrib/minizip/miniunz.c delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/zlib/SRC/contrib/minizip/minizip.c delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/zlib/SRC/contrib/minizip/readme.txt delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/zlib/SRC/contrib/minizip/unzip.c delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/zlib/SRC/contrib/minizip/unzip.def delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/zlib/SRC/contrib/minizip/unzip.h delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/zlib/SRC/contrib/minizip/zip.c delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/zlib/SRC/contrib/minizip/zip.def delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/zlib/SRC/contrib/minizip/zip.h delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/zlib/SRC/contrib/minizip/zlibvc.def delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/zlib/SRC/contrib/minizip/zlibvc.dsp delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/zlib/SRC/contrib/minizip/zlibvc.dsw delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/zlib/SRC/contrib/untgz/Makefile delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/zlib/SRC/contrib/untgz/makefile.w32 delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/zlib/SRC/contrib/untgz/untgz.c delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/zlib/SRC/contrib/visual-basic.txt delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/zlib/SRC/crc32.c delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/zlib/SRC/deflate.c delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/zlib/SRC/deflate.h delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/zlib/SRC/descrip.mms delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/zlib/SRC/example.c delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/zlib/SRC/gzio.c delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/zlib/SRC/infblock.c delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/zlib/SRC/infblock.h delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/zlib/SRC/infcodes.c delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/zlib/SRC/infcodes.h delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/zlib/SRC/inffast.c delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/zlib/SRC/inffast.h delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/zlib/SRC/inffixed.h delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/zlib/SRC/inflate.c delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/zlib/SRC/inftrees.c delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/zlib/SRC/inftrees.h delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/zlib/SRC/infutil.c delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/zlib/SRC/infutil.h delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/zlib/SRC/maketree.c delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/zlib/SRC/minigzip.c delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/zlib/SRC/msdos/Makefile.b32 delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/zlib/SRC/msdos/Makefile.bor delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/zlib/SRC/msdos/Makefile.dj2 delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/zlib/SRC/msdos/Makefile.emx delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/zlib/SRC/msdos/Makefile.msc delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/zlib/SRC/msdos/Makefile.tc delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/zlib/SRC/msdos/Makefile.w32 delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/zlib/SRC/msdos/Makefile.wat delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/zlib/SRC/msdos/zlib.def delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/zlib/SRC/msdos/zlib.rc delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/zlib/SRC/nt/Makefile.emx delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/zlib/SRC/nt/Makefile.gcc delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/zlib/SRC/nt/Makefile.nt delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/zlib/SRC/nt/zlib.dnt delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/zlib/SRC/os2/Makefile.os2 delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/zlib/SRC/os2/zlib.def delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/zlib/SRC/trees.c delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/zlib/SRC/trees.h delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/zlib/SRC/uncompr.c delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/zlib/SRC/zconf.h delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/zlib/SRC/zlib.3 delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/zlib/SRC/zlib.h delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/zlib/SRC/zlib.html delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/zlib/SRC/zutil.c delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/zlib/SRC/zutil.h delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/zlib/ZLIB_VSS_MAKE/zlib.dsw delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/zlib/ZLIB_VSS_MAKE/zlib.opt delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/zlib/ZLIB_VSS_MAKE/zlib.sln delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/zlib/ZLIB_VSS_MAKE/zlib/zlib.dsp delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/zlib/ZLIB_VSS_MAKE/zlib/zlib.plg delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/zlib/ZLIB_VSS_MAKE/zlib/zlib.vcproj delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/zlib/inc/zconf.h delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/zlib/inc/zlib.h delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/zlib/lib/vc70.pdb delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/zlib/lib/zlib.lib delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/zlib/lib/zlib_srv.lib delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/zlib/lib/zlibd.lib delete mode 100644 MOULOpenSourceClientPlugin/StaticSDKs/XPlatform/zlib/lib/zlibd_srv.lib rename {MOULOpenSourceClientPlugin/Plasma20/MsDevProjects => MsDevProjects}/AllDlls/AllDlls.sln (100%) rename {MOULOpenSourceClientPlugin/Plasma20/MsDevProjects => MsDevProjects}/AllDlls/AllDlls.vcproj (100%) rename {MOULOpenSourceClientPlugin/Plasma20/MsDevProjects => MsDevProjects}/Plasma/Apps/AllClient/AllClient.sln (100%) rename {MOULOpenSourceClientPlugin/Plasma20/MsDevProjects => MsDevProjects}/Plasma/Apps/AllClient/AllClient.vcproj (100%) rename {MOULOpenSourceClientPlugin/Plasma20/MsDevProjects => MsDevProjects}/Plasma/Apps/plClient/plClient.vcproj (100%) rename {MOULOpenSourceClientPlugin/Plasma20/MsDevProjects => MsDevProjects}/Plasma/Apps/plClientKey/plClientKey.vcproj (100%) rename {MOULOpenSourceClientPlugin/Plasma20/MsDevProjects => MsDevProjects}/Plasma/Apps/plClientPatcher/plClientPatcher.vcproj (100%) rename {MOULOpenSourceClientPlugin/Plasma20/MsDevProjects => MsDevProjects}/Plasma/Apps/plFileEncrypt/plFileEncrypt.vcproj (100%) rename {MOULOpenSourceClientPlugin/Plasma20/MsDevProjects => MsDevProjects}/Plasma/Apps/plFileSecure/plFileSecure.vcproj (100%) rename {MOULOpenSourceClientPlugin/Plasma20/MsDevProjects => MsDevProjects}/Plasma/Apps/plLogDecrypt/plLogDecrypt.vcproj (100%) rename {MOULOpenSourceClientPlugin/Plasma20/MsDevProjects => MsDevProjects}/Plasma/Apps/plMD5/plMD5.vcproj (100%) rename {MOULOpenSourceClientPlugin/Plasma20/MsDevProjects => MsDevProjects}/Plasma/Apps/plPageInfo/plPageInfo.vcproj (100%) rename {MOULOpenSourceClientPlugin/Plasma20/MsDevProjects => MsDevProjects}/Plasma/Apps/plPageOptimizer/plPageOptimizer.vcproj (100%) rename {MOULOpenSourceClientPlugin/Plasma20/MsDevProjects => MsDevProjects}/Plasma/Apps/plPlasmaInstaller/plPlasmaInstaller.vcproj (100%) rename {MOULOpenSourceClientPlugin/Plasma20/MsDevProjects => MsDevProjects}/Plasma/Apps/plPlasmaUpdate/plPlasmaUpdate.vcproj (100%) rename {MOULOpenSourceClientPlugin/Plasma20/MsDevProjects => MsDevProjects}/Plasma/Apps/plPythonPack/plPythonPack.vcproj (100%) rename {MOULOpenSourceClientPlugin/Plasma20/MsDevProjects => MsDevProjects}/Plasma/Apps/plUruLauncher/plUruLauncher.vcproj (100%) rename {MOULOpenSourceClientPlugin/Plasma20/MsDevProjects => MsDevProjects}/Plasma/CoreLib/CoreLib.vcproj (100%) rename {MOULOpenSourceClientPlugin/Plasma20/MsDevProjects => MsDevProjects}/Plasma/CoreLibExe/CoreLibExe.vcproj (100%) rename {MOULOpenSourceClientPlugin/Plasma20/MsDevProjects => MsDevProjects}/Plasma/FeatureLib/FeatureLibInc/FeatureLibInc.vcproj (100%) rename {MOULOpenSourceClientPlugin/Plasma20/MsDevProjects => MsDevProjects}/Plasma/FeatureLib/pfAnimation/pfAnimation.vcproj (100%) rename {MOULOpenSourceClientPlugin/Plasma20/MsDevProjects => MsDevProjects}/Plasma/FeatureLib/pfAudio/pfAudio.vcproj (100%) rename {MOULOpenSourceClientPlugin/Plasma20/MsDevProjects => MsDevProjects}/Plasma/FeatureLib/pfCCR/pfCCR.vcproj (100%) rename {MOULOpenSourceClientPlugin/Plasma20/MsDevProjects => MsDevProjects}/Plasma/FeatureLib/pfCamera/pfCamera.vcproj (100%) rename {MOULOpenSourceClientPlugin/Plasma20/MsDevProjects => MsDevProjects}/Plasma/FeatureLib/pfCharacter/pfCharacter.vcproj (100%) rename {MOULOpenSourceClientPlugin/Plasma20/MsDevProjects => MsDevProjects}/Plasma/FeatureLib/pfConditional/pfConditional.vcproj (100%) rename {MOULOpenSourceClientPlugin/Plasma20/MsDevProjects => MsDevProjects}/Plasma/FeatureLib/pfConsole/pfConsole.vcproj (100%) rename {MOULOpenSourceClientPlugin/Plasma20/MsDevProjects => MsDevProjects}/Plasma/FeatureLib/pfCsrSrv/pfCsrSrv.vcproj (100%) rename {MOULOpenSourceClientPlugin/Plasma20/MsDevProjects => MsDevProjects}/Plasma/FeatureLib/pfGameGUIMgr/pfGameGUIMgr.vcproj (100%) rename {MOULOpenSourceClientPlugin/Plasma20/MsDevProjects => MsDevProjects}/Plasma/FeatureLib/pfGameMgr/pfGameMgr.vcproj (100%) rename {MOULOpenSourceClientPlugin/Plasma20/MsDevProjects => MsDevProjects}/Plasma/FeatureLib/pfGameScoreMgr/pfGameScoreMgr.vcproj (100%) rename {MOULOpenSourceClientPlugin/Plasma20/MsDevProjects => MsDevProjects}/Plasma/FeatureLib/pfJournalBook/pfJournalBook.vcproj (100%) rename {MOULOpenSourceClientPlugin/Plasma20/MsDevProjects => MsDevProjects}/Plasma/FeatureLib/pfKI/placeholder.txt (100%) rename {MOULOpenSourceClientPlugin/Plasma20/MsDevProjects => MsDevProjects}/Plasma/FeatureLib/pfLocalizationMgr/pfLocalizationMgr.vcproj (100%) rename {MOULOpenSourceClientPlugin/Plasma20/MsDevProjects => MsDevProjects}/Plasma/FeatureLib/pfLoginDialog/pfLoginDialog.vcproj (100%) rename {MOULOpenSourceClientPlugin/Plasma20/MsDevProjects => MsDevProjects}/Plasma/FeatureLib/pfMessage/pfMessage.vcproj (100%) rename {MOULOpenSourceClientPlugin/Plasma20/MsDevProjects => MsDevProjects}/Plasma/FeatureLib/pfPython/pfPython.vcproj (100%) rename {MOULOpenSourceClientPlugin/Plasma20/MsDevProjects => MsDevProjects}/Plasma/FeatureLib/pfSecurePreloader/pfSecurePreloader.vcproj (100%) rename {MOULOpenSourceClientPlugin/Plasma20/MsDevProjects => MsDevProjects}/Plasma/FeatureLib/pfStackTrace/pfStackTrace.vcproj (100%) rename {MOULOpenSourceClientPlugin/Plasma20/MsDevProjects => MsDevProjects}/Plasma/FeatureLib/pfSurface/pfSurface.vcproj (100%) rename {MOULOpenSourceClientPlugin/Plasma20/MsDevProjects => MsDevProjects}/Plasma/GameLib/PlasmaGame/GameLib/placeholder.txt (100%) rename {MOULOpenSourceClientPlugin/Plasma20/MsDevProjects => MsDevProjects}/Plasma/GameLib/PlasmaGame/placeholder.txt (100%) rename {MOULOpenSourceClientPlugin/Plasma20/MsDevProjects => MsDevProjects}/Plasma/GameLib/placeholder.txt (100%) rename {MOULOpenSourceClientPlugin/Plasma20/MsDevProjects => MsDevProjects}/Plasma/NucleusLib/pnAddrInfo/pnAddrInfo.vcproj (100%) rename {MOULOpenSourceClientPlugin/Plasma20/MsDevProjects => MsDevProjects}/Plasma/NucleusLib/pnAsyncCore/pnAsyncCore.vcproj (100%) rename {MOULOpenSourceClientPlugin/Plasma20/MsDevProjects => MsDevProjects}/Plasma/NucleusLib/pnAsyncCoreExe/pnAsyncCoreExe.vcproj (100%) rename {MOULOpenSourceClientPlugin/Plasma20/MsDevProjects => MsDevProjects}/Plasma/NucleusLib/pnCrash/pnCrash.vcproj (100%) rename {MOULOpenSourceClientPlugin/Plasma20/MsDevProjects => MsDevProjects}/Plasma/NucleusLib/pnCrashExe/pnCrashExe.vcproj (100%) rename {MOULOpenSourceClientPlugin/Plasma20/MsDevProjects => MsDevProjects}/Plasma/NucleusLib/pnCsrCli/pnCsrCli.vcproj (100%) rename {MOULOpenSourceClientPlugin/Plasma20/MsDevProjects => MsDevProjects}/Plasma/NucleusLib/pnCsrNet/pnCsrNet.vcproj (100%) rename {MOULOpenSourceClientPlugin/Plasma20/MsDevProjects => MsDevProjects}/Plasma/NucleusLib/pnDispatch/pnDispatch.vcproj (100%) rename {MOULOpenSourceClientPlugin/Plasma20/MsDevProjects => MsDevProjects}/Plasma/NucleusLib/pnFactory/pnFactory.vcproj (100%) rename {MOULOpenSourceClientPlugin/Plasma20/MsDevProjects => MsDevProjects}/Plasma/NucleusLib/pnGameMgr/pnGameMgr.vcproj (100%) rename {MOULOpenSourceClientPlugin/Plasma20/MsDevProjects => MsDevProjects}/Plasma/NucleusLib/pnIni/pnIni.vcproj (100%) rename {MOULOpenSourceClientPlugin/Plasma20/MsDevProjects => MsDevProjects}/Plasma/NucleusLib/pnIniExe/pnIniExe.vcproj (100%) rename {MOULOpenSourceClientPlugin/Plasma20/MsDevProjects => MsDevProjects}/Plasma/NucleusLib/pnInputCore/pnInputCore.vcproj (100%) rename {MOULOpenSourceClientPlugin/Plasma20/MsDevProjects => MsDevProjects}/Plasma/NucleusLib/pnKeyedObject/pnKeyedObject.vcproj (100%) rename {MOULOpenSourceClientPlugin/Plasma20/MsDevProjects => MsDevProjects}/Plasma/NucleusLib/pnMail/pnMail.vcproj (100%) rename {MOULOpenSourceClientPlugin/Plasma20/MsDevProjects => MsDevProjects}/Plasma/NucleusLib/pnMessage/pnMessage.vcproj (100%) rename {MOULOpenSourceClientPlugin/Plasma20/MsDevProjects => MsDevProjects}/Plasma/NucleusLib/pnModifier/pnModifier.vcproj (100%) rename {MOULOpenSourceClientPlugin/Plasma20/MsDevProjects => MsDevProjects}/Plasma/NucleusLib/pnNetBase/pnNetBase.vcproj (100%) rename {MOULOpenSourceClientPlugin/Plasma20/MsDevProjects => MsDevProjects}/Plasma/NucleusLib/pnNetCli/pnNetCli.vcproj (100%) rename {MOULOpenSourceClientPlugin/Plasma20/MsDevProjects => MsDevProjects}/Plasma/NucleusLib/pnNetCommon/pnNetCommon.vcproj (100%) rename {MOULOpenSourceClientPlugin/Plasma20/MsDevProjects => MsDevProjects}/Plasma/NucleusLib/pnNetDiag/pnNetDiag.vcproj (100%) rename {MOULOpenSourceClientPlugin/Plasma20/MsDevProjects => MsDevProjects}/Plasma/NucleusLib/pnNetLog/pnNetLog.vcproj (100%) rename {MOULOpenSourceClientPlugin/Plasma20/MsDevProjects => MsDevProjects}/Plasma/NucleusLib/pnNetProtocol/pnNetProtocol.vcproj (100%) rename {MOULOpenSourceClientPlugin/Plasma20/MsDevProjects => MsDevProjects}/Plasma/NucleusLib/pnNucleusInc/pnNucleusInc.vcproj (100%) rename {MOULOpenSourceClientPlugin/Plasma20/MsDevProjects => MsDevProjects}/Plasma/NucleusLib/pnOraLib/pnOraLib.vcproj (100%) rename {MOULOpenSourceClientPlugin/Plasma20/MsDevProjects => MsDevProjects}/Plasma/NucleusLib/pnProduct/pnProduct.vcproj (100%) rename {MOULOpenSourceClientPlugin/Plasma20/MsDevProjects => MsDevProjects}/Plasma/NucleusLib/pnSceneObject/pnSceneObject.vcproj (100%) rename {MOULOpenSourceClientPlugin/Plasma20/MsDevProjects => MsDevProjects}/Plasma/NucleusLib/pnSimpleNet/pnSimpleNet.vcproj (100%) rename {MOULOpenSourceClientPlugin/Plasma20/MsDevProjects => MsDevProjects}/Plasma/NucleusLib/pnSqlLib/pnSqlLib.vcproj (100%) rename {MOULOpenSourceClientPlugin/Plasma20/MsDevProjects => MsDevProjects}/Plasma/NucleusLib/pnSrvUtils/pnSrvUtils.vcproj (100%) rename {MOULOpenSourceClientPlugin/Plasma20/MsDevProjects => MsDevProjects}/Plasma/NucleusLib/pnSrvUtilsExe/pnSrvUtilsExe.vcproj (100%) rename {MOULOpenSourceClientPlugin/Plasma20/MsDevProjects => MsDevProjects}/Plasma/NucleusLib/pnTimer/pnTimer.vcproj (100%) rename {MOULOpenSourceClientPlugin/Plasma20/MsDevProjects => MsDevProjects}/Plasma/NucleusLib/pnUtils/pnUtils.vcproj (100%) rename {MOULOpenSourceClientPlugin/Plasma20/MsDevProjects => MsDevProjects}/Plasma/NucleusLib/pnUtilsExe/pnUtilsExe.vcproj (100%) rename {MOULOpenSourceClientPlugin/Plasma20/MsDevProjects => MsDevProjects}/Plasma/PubUtilLib/PubUtilInc/PubUtilInc.vcproj (100%) rename {MOULOpenSourceClientPlugin/Plasma20/MsDevProjects => MsDevProjects}/Plasma/PubUtilLib/plAgeDescription/plAgeDescription.vcproj (100%) rename {MOULOpenSourceClientPlugin/Plasma20/MsDevProjects => MsDevProjects}/Plasma/PubUtilLib/plAgeLoader/plAgeLoader.vcproj (100%) rename {MOULOpenSourceClientPlugin/Plasma20/MsDevProjects => MsDevProjects}/Plasma/PubUtilLib/plAudible/plAudible.vcproj (100%) rename {MOULOpenSourceClientPlugin/Plasma20/MsDevProjects => MsDevProjects}/Plasma/PubUtilLib/plAudio/plAudio.vcproj (100%) rename {MOULOpenSourceClientPlugin/Plasma20/MsDevProjects => MsDevProjects}/Plasma/PubUtilLib/plAudioCore/plAudioCore.vcproj (100%) rename {MOULOpenSourceClientPlugin/Plasma20/MsDevProjects => MsDevProjects}/Plasma/PubUtilLib/plAvatar/plAvatar.vcproj (100%) rename {MOULOpenSourceClientPlugin/Plasma20/MsDevProjects => MsDevProjects}/Plasma/PubUtilLib/plCompression/plCompression.vcproj (100%) rename {MOULOpenSourceClientPlugin/Plasma20/MsDevProjects => MsDevProjects}/Plasma/PubUtilLib/plConditionalObject/placeholder.txt (100%) rename {MOULOpenSourceClientPlugin/Plasma20/MsDevProjects => MsDevProjects}/Plasma/PubUtilLib/plContainer/plContainer.vcproj (100%) rename {MOULOpenSourceClientPlugin/Plasma20/MsDevProjects => MsDevProjects}/Plasma/PubUtilLib/plDeviceSelector/plDeviceSelector.vcproj (100%) rename {MOULOpenSourceClientPlugin/Plasma20/MsDevProjects => MsDevProjects}/Plasma/PubUtilLib/plDrawable/plDrawable.vcproj (100%) rename {MOULOpenSourceClientPlugin/Plasma20/MsDevProjects => MsDevProjects}/Plasma/PubUtilLib/plEncryption/plEncryption.vcproj (100%) rename {MOULOpenSourceClientPlugin/Plasma20/MsDevProjects => MsDevProjects}/Plasma/PubUtilLib/plFile/plFile.vcproj (100%) rename {MOULOpenSourceClientPlugin/Plasma20/MsDevProjects => MsDevProjects}/Plasma/PubUtilLib/plGClip/plGClip.vcproj (100%) rename {MOULOpenSourceClientPlugin/Plasma20/MsDevProjects => MsDevProjects}/Plasma/PubUtilLib/plGImage/plGImage.vcproj (100%) rename {MOULOpenSourceClientPlugin/Plasma20/MsDevProjects => MsDevProjects}/Plasma/PubUtilLib/plGLight/plGLight.vcproj (100%) rename {MOULOpenSourceClientPlugin/Plasma20/MsDevProjects => MsDevProjects}/Plasma/PubUtilLib/plGeometry/plGeometry.vcproj (100%) rename {MOULOpenSourceClientPlugin/Plasma20/MsDevProjects => MsDevProjects}/Plasma/PubUtilLib/plInputCore/plInputCore.vcproj (100%) rename {MOULOpenSourceClientPlugin/Plasma20/MsDevProjects => MsDevProjects}/Plasma/PubUtilLib/plInterp/plInterp.vcproj (100%) rename {MOULOpenSourceClientPlugin/Plasma20/MsDevProjects => MsDevProjects}/Plasma/PubUtilLib/plIntersect/plIntersect.vcproj (100%) rename {MOULOpenSourceClientPlugin/Plasma20/MsDevProjects => MsDevProjects}/Plasma/PubUtilLib/plJPEG/plJPEG.vcproj (100%) rename {MOULOpenSourceClientPlugin/Plasma20/MsDevProjects => MsDevProjects}/Plasma/PubUtilLib/plMath/plMath.vcproj (100%) rename {MOULOpenSourceClientPlugin/Plasma20/MsDevProjects => MsDevProjects}/Plasma/PubUtilLib/plMessage/plMessage.vcproj (100%) rename {MOULOpenSourceClientPlugin/Plasma20/MsDevProjects => MsDevProjects}/Plasma/PubUtilLib/plModifier/plModifier.vcproj (100%) rename {MOULOpenSourceClientPlugin/Plasma20/MsDevProjects => MsDevProjects}/Plasma/PubUtilLib/plNetClient/PlNetClient.vcproj (100%) rename {MOULOpenSourceClientPlugin/Plasma20/MsDevProjects => MsDevProjects}/Plasma/PubUtilLib/plNetClientComm/plNetClientComm.vcproj (100%) rename {MOULOpenSourceClientPlugin/Plasma20/MsDevProjects => MsDevProjects}/Plasma/PubUtilLib/plNetClientRecorder/plNetClientRecorder.vcproj (100%) rename {MOULOpenSourceClientPlugin/Plasma20/MsDevProjects => MsDevProjects}/Plasma/PubUtilLib/plNetCommon/plNetCommon.vcproj (100%) rename {MOULOpenSourceClientPlugin/Plasma20/MsDevProjects => MsDevProjects}/Plasma/PubUtilLib/plNetGameLib/plNetGameLib.vcproj (100%) rename {MOULOpenSourceClientPlugin/Plasma20/MsDevProjects => MsDevProjects}/Plasma/PubUtilLib/plNetMessage/plNetMessage.vcproj (100%) rename {MOULOpenSourceClientPlugin/Plasma20/MsDevProjects => MsDevProjects}/Plasma/PubUtilLib/plNetTransport/plNetTransport.vcproj (100%) rename {MOULOpenSourceClientPlugin/Plasma20/MsDevProjects => MsDevProjects}/Plasma/PubUtilLib/plParticleSystem/plParticleSystem.vcproj (100%) rename {MOULOpenSourceClientPlugin/Plasma20/MsDevProjects => MsDevProjects}/Plasma/PubUtilLib/plPhysX/plPhysX.vcproj (100%) rename {MOULOpenSourceClientPlugin/Plasma20/MsDevProjects => MsDevProjects}/Plasma/PubUtilLib/plPhysical/plPhysical.vcproj (100%) rename {MOULOpenSourceClientPlugin/Plasma20/MsDevProjects => MsDevProjects}/Plasma/PubUtilLib/plPipeline/plPipeline.vcproj (100%) rename {MOULOpenSourceClientPlugin/Plasma20/MsDevProjects => MsDevProjects}/Plasma/PubUtilLib/plProgressMgr/plProgressMgr.vcproj (100%) rename {MOULOpenSourceClientPlugin/Plasma20/MsDevProjects => MsDevProjects}/Plasma/PubUtilLib/plResMgr/plResMgr.vcproj (100%) rename {MOULOpenSourceClientPlugin/Plasma20/MsDevProjects => MsDevProjects}/Plasma/PubUtilLib/plSDL/plSDL.vcproj (100%) rename {MOULOpenSourceClientPlugin/Plasma20/MsDevProjects => MsDevProjects}/Plasma/PubUtilLib/plSDLBrowser/placeholder.txt (100%) rename {MOULOpenSourceClientPlugin/Plasma20/MsDevProjects => MsDevProjects}/Plasma/PubUtilLib/plScene/plScene.vcproj (100%) rename {MOULOpenSourceClientPlugin/Plasma20/MsDevProjects => MsDevProjects}/Plasma/PubUtilLib/plSockets/plSockets.vcproj (100%) rename {MOULOpenSourceClientPlugin/Plasma20/MsDevProjects => MsDevProjects}/Plasma/PubUtilLib/plStatGather/plStatGather.vcproj (100%) rename {MOULOpenSourceClientPlugin/Plasma20/MsDevProjects => MsDevProjects}/Plasma/PubUtilLib/plStatusLog/plStatusLog.vcproj (100%) rename {MOULOpenSourceClientPlugin/Plasma20/MsDevProjects => MsDevProjects}/Plasma/PubUtilLib/plStreamLogger/plStreamLogger.vcproj (100%) rename {MOULOpenSourceClientPlugin/Plasma20/MsDevProjects => MsDevProjects}/Plasma/PubUtilLib/plSurface/plSurface.vcproj (100%) rename {MOULOpenSourceClientPlugin/Plasma20/MsDevProjects => MsDevProjects}/Plasma/PubUtilLib/plTransform/plTransform.vcproj (100%) rename {MOULOpenSourceClientPlugin/Plasma20/MsDevProjects => MsDevProjects}/Plasma/PubUtilLib/plUUID/plUUID.vcproj (100%) rename {MOULOpenSourceClientPlugin/Plasma20/MsDevProjects => MsDevProjects}/Plasma/PubUtilLib/plUnifiedTime/plUnifiedTime.vcproj (100%) rename {MOULOpenSourceClientPlugin/Plasma20/MsDevProjects => MsDevProjects}/Plasma/PubUtilLib/plVault/plVault.vcproj (100%) rename {MOULOpenSourceClientPlugin/Plasma20/MsDevProjects => MsDevProjects}/Plasma/PubUtilLib/plWinStrBlock/plWinStrBlock.vcproj (100%) rename {MOULOpenSourceClientPlugin/Plasma20/MsDevProjects => MsDevProjects}/Plasma/PubUtilLib/plWndCtrls/plWndCtrls.vcproj (100%) rename {MOULOpenSourceClientPlugin/Plasma20/MsDevProjects => MsDevProjects}/Plasma/PythonLib/Cypython/placeholder.txt (100%) rename {MOULOpenSourceClientPlugin/Plasma20/MsDevProjects => MsDevProjects}/Plasma/PythonLib/pyNetClientComm/pyNetClientComm.vcproj (100%) rename {MOULOpenSourceClientPlugin/Plasma20/MsDevProjects => MsDevProjects}/Plasma/PythonLib/pyNetClientGame/placeholder.txt (100%) rename {MOULOpenSourceClientPlugin/Plasma20/MsDevProjects => MsDevProjects}/Plasma/PythonLib/pyPlasma/pyPlasma.vcproj (100%) rename {MOULOpenSourceClientPlugin/Plasma20/MsDevProjects => MsDevProjects}/Plasma/PythonLib/pyPloticus/pyPloticus.vcproj (100%) rename {MOULOpenSourceClientPlugin/Plasma20/MsDevProjects => MsDevProjects}/Plasma/PythonLib/pyVault/pyVault.vcproj (100%) rename {MOULOpenSourceClientPlugin/Plasma20/MsDevProjects => MsDevProjects}/Tools/CheckFolderVar/placeholder.txt (100%) rename {MOULOpenSourceClientPlugin/Plasma20/MsDevProjects => MsDevProjects}/Tools/MaxComponent/MaxComponent.vcproj (100%) rename {MOULOpenSourceClientPlugin/Plasma20/MsDevProjects => MsDevProjects}/Tools/MaxConvert/MaxConvert.vcproj (100%) rename {MOULOpenSourceClientPlugin/Plasma20/MsDevProjects => MsDevProjects}/Tools/MaxExport/MaxExport.vcproj (100%) rename {MOULOpenSourceClientPlugin/Plasma20/MsDevProjects => MsDevProjects}/Tools/MaxMain/MaxMain.vcproj (100%) rename {MOULOpenSourceClientPlugin/Plasma20/MsDevProjects => MsDevProjects}/Tools/MaxMtlUpdate/placeholder.txt (100%) rename {MOULOpenSourceClientPlugin/Plasma20/MsDevProjects => MsDevProjects}/Tools/MaxPlasmaLights/MaxPlasmaLights.vcproj (100%) rename {MOULOpenSourceClientPlugin/Plasma20/MsDevProjects => MsDevProjects}/Tools/MaxPlasmaMtls/MaxPlasmaMtls.vcproj (100%) rename {MOULOpenSourceClientPlugin/Plasma20/MsDevProjects => MsDevProjects}/Tools/MaxSceneViewer/MaxSceneViewer.vcproj (100%) rename {MOULOpenSourceClientPlugin/Plasma20/MsDevProjects => MsDevProjects}/Tools/plDatMerger/placeholder.txt (100%) rename {MOULOpenSourceClientPlugin/Plasma20/MsDevProjects => MsDevProjects}/Tools/plFontConverter/plFontConverter.vcproj (100%) rename {MOULOpenSourceClientPlugin/Plasma20/MsDevProjects => MsDevProjects}/Tools/plResBrowser/placeholder.txt (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/Win32/HawkVoice/lib/HawkVoiceDIstatic.lib (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/Win32/HawkVoice/src/BLOWFISH/Blowfish.001 (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/Win32/HawkVoice/src/BLOWFISH/Blowfish.dsp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/Win32/HawkVoice/src/BLOWFISH/COPYRIGHT (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/Win32/HawkVoice/src/BLOWFISH/INSTALL (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/Win32/HawkVoice/src/BLOWFISH/Makefile (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/Win32/HawkVoice/src/BLOWFISH/Makefile.ssl (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/Win32/HawkVoice/src/BLOWFISH/Makefile.uni (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/Win32/HawkVoice/src/BLOWFISH/README (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/Win32/HawkVoice/src/BLOWFISH/asm/bf586.pl (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/Win32/HawkVoice/src/BLOWFISH/asm/bx86-cpp.s (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/Win32/HawkVoice/src/BLOWFISH/asm/bx86unix.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/Win32/HawkVoice/src/BLOWFISH/asm/readme (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/Win32/HawkVoice/src/BLOWFISH/asm/win32.asm (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/Win32/HawkVoice/src/BLOWFISH/asm/x86ms.pl (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/Win32/HawkVoice/src/BLOWFISH/asm/x86unix.pl (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/Win32/HawkVoice/src/BLOWFISH/bf_cbc.c (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/Win32/HawkVoice/src/BLOWFISH/bf_cfb64.c (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/Win32/HawkVoice/src/BLOWFISH/bf_ecb.c (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/Win32/HawkVoice/src/BLOWFISH/bf_enc.c (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/Win32/HawkVoice/src/BLOWFISH/bf_locl.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/Win32/HawkVoice/src/BLOWFISH/bf_locl.org (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/Win32/HawkVoice/src/BLOWFISH/bf_ofb64.c (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/Win32/HawkVoice/src/BLOWFISH/bf_pi.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/Win32/HawkVoice/src/BLOWFISH/bf_skey.c (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/Win32/HawkVoice/src/BLOWFISH/blowfish.doc (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/Win32/HawkVoice/src/BLOWFISH/blowfish.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/Win32/HawkVoice/src/hvdi.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/Grammar/.cvsignore (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/Grammar/Grammar (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/LICENSE (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/Modules/.cvsignore (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/Modules/Setup.config.in (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/Modules/Setup.dist (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/Modules/_bsddb.c (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/Modules/_codecsmodule.c (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/Modules/_csv.c (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/Modules/_curses_panel.c (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/Modules/_cursesmodule.c (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/Modules/_hotshot.c (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/Modules/_localemodule.c (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/Modules/_randommodule.c (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/Modules/_sre.c (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/Modules/_ssl.c (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/Modules/_testcapimodule.c (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/Modules/_tkinter.c (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/Modules/_weakref.c (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/Modules/addrinfo.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/Modules/almodule.c (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/Modules/ar_beos (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/Modules/arraymodule.c (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/Modules/audioop.c (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/Modules/binascii.c (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/Modules/bsddbmodule.c (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/Modules/bz2module.c (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/Modules/cPickle.c (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/Modules/cStringIO.c (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/Modules/ccpython.cc (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/Modules/cdmodule.c (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/Modules/cgen.py (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/Modules/cgensupport.c (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/Modules/cgensupport.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/Modules/clmodule.c (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/Modules/cmathmodule.c (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/Modules/config.c.in (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/Modules/cryptmodule.c (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/Modules/cstubs (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/Modules/datetimemodule.c (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/Modules/dbmmodule.c (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/Modules/dlmodule.c (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/Modules/errnomodule.c (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/Modules/expat/Makefile.in (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/Modules/expat/ascii.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/Modules/expat/asciitab.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/Modules/expat/expat.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/Modules/expat/iasciitab.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/Modules/expat/internal.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/Modules/expat/latin1tab.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/Modules/expat/macconfig.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/Modules/expat/nametab.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/Modules/expat/utf8tab.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/Modules/expat/winconfig.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/Modules/expat/xmlparse.c (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/Modules/expat/xmlrole.c (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/Modules/expat/xmlrole.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/Modules/expat/xmltok.c (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/Modules/expat/xmltok.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/Modules/expat/xmltok_impl.c (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/Modules/expat/xmltok_impl.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/Modules/expat/xmltok_ns.c (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/Modules/fcntlmodule.c (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/Modules/flmodule.c (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/Modules/fmmodule.c (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/Modules/fpectlmodule.c (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/Modules/fpetestmodule.c (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/Modules/gc_weakref.txt (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/Modules/gcmodule.c (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/Modules/gdbmmodule.c (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/Modules/getaddrinfo.c (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/Modules/getbuildinfo.c (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/Modules/getnameinfo.c (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/Modules/getpath.c (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/Modules/glmodule.c (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/Modules/grpmodule.c (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/Modules/imageop.c (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/Modules/imgfile.c (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/Modules/itertoolsmodule.c (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/Modules/ld_so_aix (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/Modules/ld_so_beos (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/Modules/linuxaudiodev.c (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/Modules/main.c (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/Modules/makesetup (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/Modules/makexp_aix (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/Modules/mathmodule.c (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/Modules/md5.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/Modules/md5c.c (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/Modules/md5module.c (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/Modules/mmapmodule.c (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/Modules/mpzmodule.c (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/Modules/nismodule.c (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/Modules/operator.c (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/Modules/ossaudiodev.c (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/Modules/parsermodule.c (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/Modules/pcre-int.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/Modules/pcre.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/Modules/pcremodule.c (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/Modules/posixmodule.c (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/Modules/puremodule.c (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/Modules/pwdmodule.c (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/Modules/pyexpat.c (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/Modules/pypcre.c (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/Modules/python.c (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/Modules/readline.c (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/Modules/regexmodule.c (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/Modules/regexpr.c (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/Modules/regexpr.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/Modules/resource.c (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/Modules/rgbimgmodule.c (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/Modules/rotormodule.c (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/Modules/selectmodule.c (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/Modules/sgimodule.c (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/Modules/shamodule.c (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/Modules/signalmodule.c (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/Modules/socketmodule.c (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/Modules/socketmodule.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/Modules/sre.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/Modules/sre_constants.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/Modules/stropmodule.c (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/Modules/structmodule.c (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/Modules/sunaudiodev.c (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/Modules/svmodule.c (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/Modules/symtablemodule.c (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/Modules/syslogmodule.c (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/Modules/termios.c (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/Modules/testcapi_long.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/Modules/threadmodule.c (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/Modules/timemodule.c (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/Modules/timing.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/Modules/timingmodule.c (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/Modules/tkappinit.c (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/Modules/unicodedata.c (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/Modules/unicodedata_db.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/Modules/unicodename_db.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/Modules/xreadlinesmodule.c (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/Modules/xxmodule.c (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/Modules/xxsubtype.c (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/Modules/yuv.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/Modules/yuvconvert.c (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/Modules/zipimport.c (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/Modules/zlibmodule.c (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/Objects/.cvsignore (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/Objects/abstract.c (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/Objects/boolobject.c (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/Objects/bufferobject.c (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/Objects/cellobject.c (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/Objects/classobject.c (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/Objects/cobject.c (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/Objects/complexobject.c (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/Objects/descrobject.c (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/Objects/dictnotes.txt (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/Objects/dictobject.c (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/Objects/enumobject.c (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/Objects/fileobject.c (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/Objects/floatobject.c (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/Objects/frameobject.c (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/Objects/funcobject.c (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/Objects/intobject.c (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/Objects/iterobject.c (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/Objects/listobject.c (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/Objects/listsort.txt (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/Objects/longobject.c (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/Objects/methodobject.c (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/Objects/moduleobject.c (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/Objects/object.c (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/Objects/obmalloc.c (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/Objects/rangeobject.c (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/Objects/sliceobject.c (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/Objects/stringobject.c (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/Objects/structseq.c (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/Objects/tupleobject.c (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/Objects/typeobject.c (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/Objects/unicodectype.c (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/Objects/unicodeobject.c (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/Objects/unicodetype_db.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/Objects/weakrefobject.c (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/PC/.cvsignore (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/PC/PlasmaPack.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/PC/PlasmaPack.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/PC/WinMain.c (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/PC/_winreg.c (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/PC/bdist_wininst/.cvsignore (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/PC/bdist_wininst/PythonPowered.bmp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/PC/bdist_wininst/README.txt (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/PC/bdist_wininst/archive.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/PC/bdist_wininst/extract.c (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/PC/bdist_wininst/install.c (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/PC/bdist_wininst/install.rc (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/PC/bdist_wininst/resource.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/PC/bdist_wininst/wininst.dsp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/PC/bdist_wininst/wininst.dsw (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/PC/config.c (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/PC/dl_nt.c (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/PC/dllbase_nt.txt (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/PC/example_nt/.cvsignore (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/PC/example_nt/example.c (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/PC/example_nt/example.def (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/PC/example_nt/example.dsp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/PC/example_nt/example.dsw (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/PC/example_nt/readme.txt (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/PC/frozen_dllmain.c (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/PC/getpathp.c (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/PC/import_nt.c (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/PC/make_versioninfo.c (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/PC/msvcrtmodule.c (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/PC/os2emx/Makefile (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/PC/os2emx/README.os2emx (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/PC/os2emx/config.c (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/PC/os2emx/dlfcn.c (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/PC/os2emx/dlfcn.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/PC/os2emx/dllentry.c (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/PC/os2emx/getpathp.c (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/PC/os2emx/pyconfig.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/PC/os2emx/python23.def (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/PC/os2emx/pythonpm.c (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/PC/os2vacpp/_tkinter.def (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/PC/os2vacpp/config.c (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/PC/os2vacpp/getpathp.c (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/PC/os2vacpp/makefile (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/PC/os2vacpp/makefile.omk (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/PC/os2vacpp/pyconfig.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/PC/os2vacpp/python.def (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/PC/os2vacpp/readme.txt (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/PC/py.ico (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/PC/pyc.ico (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/PC/pycon.ico (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/PC/python.mk (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/PC/python_exe.rc (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/PC/python_nt.rc (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/PC/pythonnt_rc.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/PC/pythonnt_rc_d.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/PC/readme.txt (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/PC/testpy.py (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/PC/w9xpopen.c (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/PC/winsound.c (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/PCbuild/.cvsignore (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/PCbuild/BUILDno.txt (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/PCbuild/Uninstal.wse (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/PCbuild/_bsddb.dsp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/PCbuild/_csv.dsp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/PCbuild/_socket.dsp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/PCbuild/_sre.dsp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/PCbuild/_sre_static.vcproj (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/PCbuild/_ssl.dsp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/PCbuild/_ssl.mak (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/PCbuild/_symtable.dsp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/PCbuild/_testcapi.dsp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/PCbuild/_tkinter.dsp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/PCbuild/build_ssl.py (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/PCbuild/bz2.dsp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/PCbuild/datetime.dsp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/PCbuild/field3.py (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/PCbuild/installer.bmp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/PCbuild/mmap.dsp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/PCbuild/parser.dsp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/PCbuild/pcbuild.dsw (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/PCbuild/pyexpat.dsp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/PCbuild/python.dsp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/PCbuild/python.iss (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/PCbuild/python20.wse (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/PCbuild/pythoncore.dsp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/PCbuild/pythoncore.vcproj (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/PCbuild/pythoncore_dyn_server.vcproj (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/PCbuild/pythoncore_static.vcproj (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/PCbuild/pythonw.dsp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/PCbuild/readme.txt (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/PCbuild/rmpyc.py (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/PCbuild/rt.bat (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/PCbuild/select.dsp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/PCbuild/unicodedata.dsp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/PCbuild/w9xpopen.dsp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/PCbuild/winreg.dsp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/PCbuild/winsound.dsp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/PCbuild/zlib.dsp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/Parser/.cvsignore (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/Parser/acceler.c (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/Parser/bitset.c (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/Parser/firstsets.c (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/Parser/grammar.c (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/Parser/grammar.mak (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/Parser/grammar1.c (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/Parser/intrcheck.c (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/Parser/listnode.c (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/Parser/metagrammar.c (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/Parser/myreadline.c (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/Parser/node.c (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/Parser/parser.c (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/Parser/parser.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/Parser/parsetok.c (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/Parser/pgen.c (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/Parser/pgenmain.c (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/Parser/printgrammar.c (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/Parser/tokenizer.c (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/Parser/tokenizer.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/Parser/tokenizer_pgen.c (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/Python/.cvsignore (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/Python/atof.c (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/Python/bltinmodule.c (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/Python/ceval.c (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/Python/codecs.c (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/Python/compile.c (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/Python/dup2.c (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/Python/dynload_aix.c (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/Python/dynload_atheos.c (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/Python/dynload_beos.c (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/Python/dynload_dl.c (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/Python/dynload_hpux.c (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/Python/dynload_mac.c (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/Python/dynload_next.c (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/Python/dynload_os2.c (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/Python/dynload_shlib.c (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/Python/dynload_stub.c (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/Python/dynload_win.c (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/Python/errors.c (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/Python/exceptions.c (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/Python/fmod.c (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/Python/frozen.c (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/Python/frozenmain.c (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/Python/future.c (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/Python/getargs.c (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/Python/getcompiler.c (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/Python/getcopyright.c (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/Python/getcwd.c (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/Python/getmtime.c (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/Python/getopt.c (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/Python/getplatform.c (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/Python/getversion.c (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/Python/graminit.c (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/Python/hypot.c (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/Python/import.c (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/Python/import_pack.c (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/Python/importdl.c (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/Python/importdl.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/Python/mactoolboxglue.c (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/Python/marshal.c (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/Python/memmove.c (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/Python/modsupport.c (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/Python/mysnprintf.c (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/Python/mystrtoul.c (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/Python/pyfpe.c (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/Python/pystate.c (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/Python/pythonrun.c (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/Python/sigcheck.c (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/Python/strdup.c (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/Python/strerror.c (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/Python/strtod.c (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/Python/structmember.c (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/Python/symtable.c (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/Python/sysmodule.c (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/Python/thread.c (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/Python/thread_atheos.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/Python/thread_beos.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/Python/thread_cthread.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/Python/thread_foobar.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/Python/thread_lwp.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/Python/thread_nt.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/Python/thread_os2.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/Python/thread_pth.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/Python/thread_pthread.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/Python/thread_sgi.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/Python/thread_solaris.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/Python/thread_wince.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/Python/traceback.c (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/README (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/XboxBuild/_sre_static.vcproj (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/XboxBuild/pythoncore_static.vcproj (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/include/Python.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/include/abstract.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/include/bitset.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/include/boolobject.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/include/bufferobject.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/include/cStringIO.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/include/cellobject.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/include/ceval.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/include/classobject.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/include/cobject.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/include/codecs.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/include/compile.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/include/complexobject.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/include/datetime.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/include/descrobject.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/include/dictobject.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/include/enumobject.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/include/errcode.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/include/eval.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/include/fileobject.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/include/floatobject.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/include/frameobject.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/include/funcobject.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/include/graminit.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/include/grammar.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/include/import.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/include/intobject.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/include/intrcheck.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/include/iterobject.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/include/listobject.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/include/longintrepr.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/include/longobject.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/include/marshal.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/include/metagrammar.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/include/methodobject.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/include/modsupport.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/include/moduleobject.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/include/node.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/include/object.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/include/objimpl.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/include/opcode.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/include/osdefs.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/include/parsetok.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/include/patchlevel.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/include/pgen.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/include/pgenheaders.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/include/py_curses.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/include/pydebug.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/include/pyerrors.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/include/pyfpe.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/include/pygetopt.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/include/pymactoolbox.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/include/pymem.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/include/pyport.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/include/pystate.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/include/pythonrun.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/include/pythread.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/include/rangeobject.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/include/sliceobject.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/include/stringobject.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/include/structmember.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/include/structseq.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/include/symtable.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/include/sysmodule.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/include/token.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/include/traceback.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/include/tupleobject.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/include/ucnhash.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/include/unicodeobject.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/include/weakrefobject.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/pyconfig_dyn/pyconfig.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/SDKs => SDKs}/XPlatform/Cypython-2.3.3/pyconfig_static/pyconfig.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Scripts => Scripts}/Installer/LargeMOUL.nsi (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Scripts => Scripts}/Installer/MOUL.nsi (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Scripts => Scripts}/Installer/MOULInstaller.exe (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Scripts => Scripts}/Max/PlasmaExport.ms (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Scripts => Scripts}/Python/plasma/Plasma.py (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Scripts => Scripts}/Python/plasma/PlasmaConstants.py (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Scripts => Scripts}/Python/plasma/PlasmaControlKeys.py (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Scripts => Scripts}/Python/plasma/PlasmaGame.py (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Scripts => Scripts}/Python/plasma/PlasmaGameConstants.py (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Scripts => Scripts}/Python/plasma/PlasmaKITypes.py (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Scripts => Scripts}/Python/plasma/PlasmaNetConstants.py (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Scripts => Scripts}/Python/plasma/PlasmaTypes.py (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Scripts => Scripts}/Python/plasma/PlasmaVaultConstants.py (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Scripts => Scripts}/Python/plasma/glue.py (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Scripts => Scripts}/Python/plasma/pch.py (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Scripts => Scripts}/Python/plasma/ptWordFilter.py (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Scripts => Scripts}/Python/system/Bastion.py (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Scripts => Scripts}/Python/system/ConfigParser.py (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Scripts => Scripts}/Python/system/HTMLParser.py (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Scripts => Scripts}/Python/system/StringIO.py (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Scripts => Scripts}/Python/system/UserDict.py (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Scripts => Scripts}/Python/system/__future__.py (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Scripts => Scripts}/Python/system/ascii.py (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Scripts => Scripts}/Python/system/atexit.py (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Scripts => Scripts}/Python/system/bdb.py (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Scripts => Scripts}/Python/system/bisect.py (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Scripts => Scripts}/Python/system/calendar.py (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Scripts => Scripts}/Python/system/cmd.py (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Scripts => Scripts}/Python/system/codecs.py (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Scripts => Scripts}/Python/system/colorsys.py (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Scripts => Scripts}/Python/system/commands.py (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Scripts => Scripts}/Python/system/compileall.py (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Scripts => Scripts}/Python/system/copy.py (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Scripts => Scripts}/Python/system/copy_reg.py (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Scripts => Scripts}/Python/system/decompyle.py (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Scripts => Scripts}/Python/system/difflib.py (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Scripts => Scripts}/Python/system/dircache.py (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Scripts => Scripts}/Python/system/dis.py (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Scripts => Scripts}/Python/system/dospath.py (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Scripts => Scripts}/Python/system/encoding_utf_8.py (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Scripts => Scripts}/Python/system/encodings.py (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Scripts => Scripts}/Python/system/filecmp.py (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Scripts => Scripts}/Python/system/fileinput.py (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Scripts => Scripts}/Python/system/fnmatch.py (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Scripts => Scripts}/Python/system/fpformat.py (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Scripts => Scripts}/Python/system/getopt.py (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Scripts => Scripts}/Python/system/gettext.py (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Scripts => Scripts}/Python/system/glob.py (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Scripts => Scripts}/Python/system/ihooks.py (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Scripts => Scripts}/Python/system/imghdr.py (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Scripts => Scripts}/Python/system/imputil.py (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Scripts => Scripts}/Python/system/inspect.py (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Scripts => Scripts}/Python/system/keyword.py (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Scripts => Scripts}/Python/system/knee.py (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Scripts => Scripts}/Python/system/linecache.py (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Scripts => Scripts}/Python/system/locale.py (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Scripts => Scripts}/Python/system/markupbase.py (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Scripts => Scripts}/Python/system/mutex.py (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Scripts => Scripts}/Python/system/netrc.py (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Scripts => Scripts}/Python/system/ntpath.py (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Scripts => Scripts}/Python/system/opcode.py (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Scripts => Scripts}/Python/system/os.py (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Scripts => Scripts}/Python/system/pdb.py (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Scripts => Scripts}/Python/system/pickle.py (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Scripts => Scripts}/Python/system/popen2.py (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Scripts => Scripts}/Python/system/posixpath.py (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Scripts => Scripts}/Python/system/pre.py (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Scripts => Scripts}/Python/system/profile.py (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Scripts => Scripts}/Python/system/pstats.py (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Scripts => Scripts}/Python/system/py_compile.py (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Scripts => Scripts}/Python/system/pyclbr.py (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Scripts => Scripts}/Python/system/random.py (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Scripts => Scripts}/Python/system/re.py (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Scripts => Scripts}/Python/system/regex_syntax.py (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Scripts => Scripts}/Python/system/repr.py (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Scripts => Scripts}/Python/system/shlex.py (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Scripts => Scripts}/Python/system/shutil.py (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Scripts => Scripts}/Python/system/site.py (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Scripts => Scripts}/Python/system/spark.py (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Scripts => Scripts}/Python/system/sre.py (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Scripts => Scripts}/Python/system/sre_compile.py (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Scripts => Scripts}/Python/system/sre_constants.py (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Scripts => Scripts}/Python/system/sre_parse.py (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Scripts => Scripts}/Python/system/stat.py (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Scripts => Scripts}/Python/system/statcache.py (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Scripts => Scripts}/Python/system/string.py (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Scripts => Scripts}/Python/system/symbol.py (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Scripts => Scripts}/Python/system/tabnanny.py (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Scripts => Scripts}/Python/system/token.py (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Scripts => Scripts}/Python/system/tokenize.py (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Scripts => Scripts}/Python/system/traceback.py (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Scripts => Scripts}/Python/system/types.py (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Scripts => Scripts}/Python/system/verify.py (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Scripts => Scripts}/Python/system/warnings.py (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Scripts => Scripts}/Python/system/weakref.py (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Scripts => Scripts}/Python/system/webbrowser.py (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Scripts => Scripts}/Python/system/whrandom.py (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Scripts => Scripts}/ServerPython/python/Do_Not_Load_Neighborhood.py (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Scripts => Scripts}/ServerPython/python/Do_Not_Load_RestorationGuild.py (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Scripts => Scripts}/ServerPython/python/plasma/placeholder.txt (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Scripts => Scripts}/ServerPython/python/system/Bastion.py (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Scripts => Scripts}/ServerPython/python/system/ConfigParser.py (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Scripts => Scripts}/ServerPython/python/system/StringIO.py (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Scripts => Scripts}/ServerPython/python/system/__future__.py (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Scripts => Scripts}/ServerPython/python/system/_sre.pyd (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Scripts => Scripts}/ServerPython/python/system/_sre_d.pyd (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Scripts => Scripts}/ServerPython/python/system/atexit.py (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Scripts => Scripts}/ServerPython/python/system/bdb.py (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Scripts => Scripts}/ServerPython/python/system/bisect.py (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Scripts => Scripts}/ServerPython/python/system/calendar.py (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Scripts => Scripts}/ServerPython/python/system/cmd.py (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Scripts => Scripts}/ServerPython/python/system/codecs.py (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Scripts => Scripts}/ServerPython/python/system/colorsys.py (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Scripts => Scripts}/ServerPython/python/system/commands.py (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Scripts => Scripts}/ServerPython/python/system/compileall.py (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Scripts => Scripts}/ServerPython/python/system/copy.py (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Scripts => Scripts}/ServerPython/python/system/copy_reg.py (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Scripts => Scripts}/ServerPython/python/system/decompyle.py (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Scripts => Scripts}/ServerPython/python/system/difflib.py (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Scripts => Scripts}/ServerPython/python/system/dircache.py (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Scripts => Scripts}/ServerPython/python/system/dis.py (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Scripts => Scripts}/ServerPython/python/system/dospath.py (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Scripts => Scripts}/ServerPython/python/system/filecmp.py (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Scripts => Scripts}/ServerPython/python/system/fileinput.py (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Scripts => Scripts}/ServerPython/python/system/fnmatch.py (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Scripts => Scripts}/ServerPython/python/system/fpformat.py (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Scripts => Scripts}/ServerPython/python/system/getopt.py (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Scripts => Scripts}/ServerPython/python/system/gettext.py (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Scripts => Scripts}/ServerPython/python/system/glob.py (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Scripts => Scripts}/ServerPython/python/system/ihooks.py (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Scripts => Scripts}/ServerPython/python/system/imghdr.py (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Scripts => Scripts}/ServerPython/python/system/imputil.py (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Scripts => Scripts}/ServerPython/python/system/inspect.py (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Scripts => Scripts}/ServerPython/python/system/keyword.py (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Scripts => Scripts}/ServerPython/python/system/knee.py (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Scripts => Scripts}/ServerPython/python/system/linecache.py (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Scripts => Scripts}/ServerPython/python/system/locale.py (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Scripts => Scripts}/ServerPython/python/system/mutex.py (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Scripts => Scripts}/ServerPython/python/system/netrc.py (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Scripts => Scripts}/ServerPython/python/system/ntpath.py (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Scripts => Scripts}/ServerPython/python/system/os.py (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Scripts => Scripts}/ServerPython/python/system/pdb.py (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Scripts => Scripts}/ServerPython/python/system/pickle.py (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Scripts => Scripts}/ServerPython/python/system/popen2.py (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Scripts => Scripts}/ServerPython/python/system/posixpath.py (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Scripts => Scripts}/ServerPython/python/system/pre.py (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Scripts => Scripts}/ServerPython/python/system/profile.py (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Scripts => Scripts}/ServerPython/python/system/pstats.py (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Scripts => Scripts}/ServerPython/python/system/py_compile.py (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Scripts => Scripts}/ServerPython/python/system/pyclbr.py (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Scripts => Scripts}/ServerPython/python/system/random.py (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Scripts => Scripts}/ServerPython/python/system/re.py (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Scripts => Scripts}/ServerPython/python/system/regex_syntax.py (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Scripts => Scripts}/ServerPython/python/system/repr.py (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Scripts => Scripts}/ServerPython/python/system/shlex.py (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Scripts => Scripts}/ServerPython/python/system/shutil.py (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Scripts => Scripts}/ServerPython/python/system/site.py (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Scripts => Scripts}/ServerPython/python/system/spark.py (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Scripts => Scripts}/ServerPython/python/system/sre.py (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Scripts => Scripts}/ServerPython/python/system/sre_compile.py (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Scripts => Scripts}/ServerPython/python/system/sre_constants.py (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Scripts => Scripts}/ServerPython/python/system/sre_parse.py (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Scripts => Scripts}/ServerPython/python/system/stat.py (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Scripts => Scripts}/ServerPython/python/system/statcache.py (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Scripts => Scripts}/ServerPython/python/system/string.py (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Scripts => Scripts}/ServerPython/python/system/symbol.py (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Scripts => Scripts}/ServerPython/python/system/tabnanny.py (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Scripts => Scripts}/ServerPython/python/system/token.py (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Scripts => Scripts}/ServerPython/python/system/tokenize.py (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Scripts => Scripts}/ServerPython/python/system/traceback.py (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Scripts => Scripts}/ServerPython/python/system/types.py (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Scripts => Scripts}/ServerPython/python/system/verify.py (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Scripts => Scripts}/ServerPython/python/system/warnings.py (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Scripts => Scripts}/ServerPython/python/system/weakref.py (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Scripts => Scripts}/ServerPython/python/system/whrandom.py (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/Apps/CMakeLists.txt (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/Apps/plClient/CMakeLists.txt (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/Apps/plClient/pfAllCreatables.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/Apps/plClient/plAllCreatables.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/Apps/plClient/plClient.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/Apps/plClient/plClient.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/Apps/plClient/plClientCreatable.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/Apps/plClient/plClientUpdateFormat.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/Apps/plClient/plSimStateMsg.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/Apps/plClient/pnAllCreatables.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/Apps/plClient/res/Dirt.ICO (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/Apps/plClient/res/Microphone.bmp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/Apps/plClient/res/Speaker.bmp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/Apps/plClient/res/banner.bmp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/Apps/plClient/res/bitmap1.bmp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/Apps/plClient/res/bitmap2.bmp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/Apps/plClient/res/bitmap3.bmp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/Apps/plClient/res/bmp00001.bmp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/Apps/plClient/res/bmp00002.bmp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/Apps/plClient/res/bmp00003.bmp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/Apps/plClient/res/bmp00004.bmp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/Apps/plClient/res/bmp00005.bmp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/Apps/plClient/res/book.bmp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/Apps/plClient/res/book_cli.bmp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/Apps/plClient/res/book_hig.bmp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/Apps/plClient/res/cnsl1.bin (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/Apps/plClient/res/cursor_clicked.bmp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/Apps/plClient/res/cursor_disabled.bmp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/Apps/plClient/res/cursor_down.bmp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/Apps/plClient/res/cursor_grab.bmp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/Apps/plClient/res/cursor_left.bmp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/Apps/plClient/res/cursor_open.bmp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/Apps/plClient/res/cursor_poised.bmp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/Apps/plClient/res/cursor_right.bmp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/Apps/plClient/res/cursor_u.bmp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/Apps/plClient/res/cursor_up.bmp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/Apps/plClient/res/cursor_upward.bmp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/Apps/plClient/res/headspin.ico (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/Apps/plClient/res/plClient.exe.manifest (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/Apps/plClient/res/plClient.rc (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/Apps/plClient/res/resource.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/Apps/plClient/res/xLoading_Linking.01.jpg (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/Apps/plClient/res/xLoading_Linking.02.jpg (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/Apps/plClient/res/xLoading_Linking.03.jpg (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/Apps/plClient/res/xLoading_Linking.04.jpg (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/Apps/plClient/res/xLoading_Linking.05.jpg (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/Apps/plClient/res/xLoading_Linking.06.jpg (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/Apps/plClient/res/xLoading_Linking.07.jpg (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/Apps/plClient/res/xLoading_Linking.08.jpg (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/Apps/plClient/res/xLoading_Linking.09.jpg (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/Apps/plClient/res/xLoading_Linking.10.jpg (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/Apps/plClient/res/xLoading_Linking.11.jpg (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/Apps/plClient/res/xLoading_Linking.12.jpg (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/Apps/plClient/res/xLoading_Linking.13.jpg (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/Apps/plClient/res/xLoading_Linking.14.jpg (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/Apps/plClient/res/xLoading_Linking.15.jpg (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/Apps/plClient/res/xLoading_Linking.16.jpg (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/Apps/plClient/res/xLoading_Linking.17.jpg (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/Apps/plClient/res/xLoading_Linking.18.jpg (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/Apps/plClient/res/xLoading_Linking_Text.jpg (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/Apps/plClient/res/xLoading_Updating_Text.jpg (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/Apps/plClient/winmain.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/Apps/plClientKey/DllMain.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/Apps/plClientKey/plClientKey.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/Apps/plClientKey/plClientKey.def (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/Apps/plClientKey/plClientKey.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/Apps/plClientPatcher/CMakeLists.txt (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/Apps/plClientPatcher/Intern.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/Apps/plClientPatcher/Pch.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/Apps/plClientPatcher/UruPlayer.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/Apps/plClientPatcher/UruPlayer.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/Apps/plClientPatcher/plLauncherCallback.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/Apps/plFileEncrypt/main.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/Apps/plFileSecure/main.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/Apps/plLogDecrypt/plLogDecrypt.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/Apps/plMD5/Intern.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/Apps/plMD5/Main.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/Apps/plMD5/Pch.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/Apps/plPageInfo/plAllCreatables.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/Apps/plPageInfo/plPageInfo.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/Apps/plPageOptimizer/main.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/Apps/plPageOptimizer/pfAllCreatables.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/Apps/plPageOptimizer/plPageOptimizer.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/Apps/plPageOptimizer/plPageOptimizer.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/Apps/plPlasmaInstaller/Dirt.ICO (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/Apps/plPlasmaInstaller/main.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/Apps/plPlasmaInstaller/plInstallerReg.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/Apps/plPlasmaInstaller/plInstallerReg.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/Apps/plPlasmaInstaller/plPlasmaInstaller.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/Apps/plPlasmaInstaller/plPlasmaInstaller.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/Apps/plPlasmaInstaller/plPlasmaInstaller.rc (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/Apps/plPlasmaInstaller/plSetPlasmaPath.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/Apps/plPlasmaInstaller/plSetPlasmaPath.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/Apps/plPlasmaInstaller/plUnzip.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/Apps/plPlasmaInstaller/plUnzip.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/Apps/plPlasmaInstaller/resource.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/Apps/plPlasmaUpdate/Dirt.ICO (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/Apps/plPlasmaUpdate/main.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/Apps/plPlasmaUpdate/plFileGrabber.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/Apps/plPlasmaUpdate/plFileGrabber.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/Apps/plPlasmaUpdate/plManifest.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/Apps/plPlasmaUpdate/plManifest.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/Apps/plPlasmaUpdate/plPlasmaServers.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/Apps/plPlasmaUpdate/plPlasmaServers.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/Apps/plPlasmaUpdate/plPlasmaUpdate.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/Apps/plPlasmaUpdate/plPlasmaUpdate.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/Apps/plPlasmaUpdate/plPlasmaUpdate.rc (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/Apps/plPlasmaUpdate/resource.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/Apps/plPythonPack/CMakeLists.txt (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/Apps/plPythonPack/PythonInterface.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/Apps/plPythonPack/PythonInterface.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/Apps/plPythonPack/main.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/Apps/plUruLauncher/CMakeLists.txt (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/Apps/plUruLauncher/Dirt.ICO (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/Apps/plUruLauncher/Intern.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/Apps/plUruLauncher/Main.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/Apps/plUruLauncher/Pch.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/Apps/plUruLauncher/SelfPatcher.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/Apps/plUruLauncher/banner.bmp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/Apps/plUruLauncher/plLauncherInfo.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/Apps/plUruLauncher/plUruLauncher.rc (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/Apps/plUruLauncher/resource.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/CMakeLists.txt (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/CoreLib/CMakeLists.txt (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/CoreLib/HS_POINT2.inc (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/CoreLib/HeadSpin.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/CoreLib/HeadSpin.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/CoreLib/hsBiExpander.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/CoreLib/hsBitVector.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/CoreLib/hsBitVector.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/CoreLib/hsBounds.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/CoreLib/hsBounds.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/CoreLib/hsColorRGBA.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/CoreLib/hsConfig.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/CoreLib/hsCritSect.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/CoreLib/hsCritSect.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/CoreLib/hsExceptionStack.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/CoreLib/hsExceptionStack.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/CoreLib/hsExceptions.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/CoreLib/hsFastMath.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/CoreLib/hsFastMath.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/CoreLib/hsFixedTypes.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/CoreLib/hsGeometry3.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/CoreLib/hsGeometry3.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/CoreLib/hsHashTable.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/CoreLib/hsLOD.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/CoreLib/hsMMIOStream.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/CoreLib/hsMMIOStream.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/CoreLib/hsMalloc.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/CoreLib/hsMalloc.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/CoreLib/hsMatrix33.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/CoreLib/hsMatrix33.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/CoreLib/hsMatrix44.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/CoreLib/hsMatrix44.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/CoreLib/hsMemory.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/CoreLib/hsMemory.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/CoreLib/hsPoint2.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/CoreLib/hsQuat.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/CoreLib/hsQuat.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/CoreLib/hsQueue.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/CoreLib/hsRefCnt.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/CoreLib/hsSTLStream.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/CoreLib/hsSTLStream.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/CoreLib/hsSafeRefCnt.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/CoreLib/hsSafeRefCnt.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/CoreLib/hsScalar.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/CoreLib/hsStlSortUtils.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/CoreLib/hsStlUtils.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/CoreLib/hsStlUtils.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/CoreLib/hsStream.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/CoreLib/hsStream.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/CoreLib/hsStringTokenizer.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/CoreLib/hsStringTokenizer.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/CoreLib/hsTempPointer.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/CoreLib/hsTemplates.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/CoreLib/hsTemplates.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/CoreLib/hsThread.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/CoreLib/hsThread.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/CoreLib/hsThread_Mac.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/CoreLib/hsThread_Unix.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/CoreLib/hsThread_Win.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/CoreLib/hsTypes.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/CoreLib/hsUtils.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/CoreLib/hsUtils.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/CoreLib/hsWide.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/CoreLib/hsWide.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/CoreLib/hsWindowHndl.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/CoreLib/hsWindows.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/CoreLib/notes.txt (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/CoreLib/pcSmallRect.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/CoreLib/pcSmallRect.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/CoreLib/plGeneric.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/CoreLib/plGeneric.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/CoreLib/plLoadMask.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/CoreLib/plLoadMask.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/CoreLib/plQuality.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/CoreLib/plRefCnt.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/CoreLib/plRenderLevel.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/CoreLib/plTweak.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/CoreLib/plViewTransform.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/CoreLib/plViewTransform.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/CoreLibExe/CMakeLists.txt (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/CoreLibExe/Intern.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/CoreLibExe/Pch.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/CoreLibExe/hsExeError.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/CoreLibExe/hsExeMalloc.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/CMakeLists.txt (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/inc/pfAllCreatables.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfAnimation/CMakeLists.txt (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfAnimation/pfAnimationCreatable.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfAnimation/pfObjectFlocker.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfAnimation/pfObjectFlocker.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfAnimation/plAnimDebugList.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfAnimation/plAnimDebugList.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfAnimation/plBlower.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfAnimation/plBlower.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfAnimation/plFilterCoordInterface.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfAnimation/plFilterCoordInterface.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfAnimation/plFollowMod.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfAnimation/plFollowMod.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfAnimation/plLightModifier.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfAnimation/plLightModifier.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfAnimation/plLineFollowMod.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfAnimation/plLineFollowMod.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfAnimation/plRandomCommandMod.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfAnimation/plRandomCommandMod.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfAnimation/plStereizer.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfAnimation/plStereizer.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfAnimation/plViewFaceModifier.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfAnimation/plViewFaceModifier.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfAudio/CMakeLists.txt (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfAudio/pfAudioCreatable.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfAudio/plListener.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfAudio/plListener.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfAudio/plRandomSoundMod.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfAudio/plRandomSoundMod.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfCCR/CMakeLists.txt (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfCCR/plCCRCreatable.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfCCR/plCCRMgr.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfCCR/plCCRMgr.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfCCR/plCCRVault.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfCCR/plCCRVault.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfCamera/CMakeLists.txt (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfCamera/pfCameraCreatable.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfCamera/pfCameraProxy.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfCamera/pfCameraProxy.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfCamera/plCameraBrain.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfCamera/plCameraBrain.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfCamera/plCameraModifier.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfCamera/plCameraModifier.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfCamera/plInterestingModifier.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfCamera/plInterestingModifier.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfCamera/plVirtualCamNeu.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfCamera/plVirtualCamNeu.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfCharacter/CMakeLists.txt (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfCharacter/pfCharacterCreatable.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfCharacter/pfMarkerInfo.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfCharacter/pfMarkerInfo.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfCharacter/pfMarkerMgr.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfCharacter/pfMarkerMgr.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfCharacter/plPlayerModifier.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfCharacter/plPlayerModifier.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfConditional/CMakeLists.txt (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfConditional/plANDConditionalObject.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfConditional/plANDConditionalObject.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfConditional/plActivatorConditionalObject.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfConditional/plActivatorConditionalObject.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfConditional/plAnimationEventConditionalObject.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfConditional/plAnimationEventConditionalObject.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfConditional/plConditionalObjectCreatable.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfConditional/plControlEventConditionalObject.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfConditional/plControlEventConditionalObject.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfConditional/plFacingConditionalObject.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfConditional/plFacingConditionalObject.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfConditional/plKeyPressConditionalObject.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfConditional/plKeyPressConditionalObject.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfConditional/plLocalPlayerInBoxConditionalObject.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfConditional/plLocalPlayerInBoxConditionalObject.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfConditional/plLocalPlayerIntersectPlaneConditionalObject.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfConditional/plLocalPlayerIntersectPlaneConditionalObject.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfConditional/plORConditionalObject.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfConditional/plORConditionalObject.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfConditional/plObjectInBoxConditionalObject.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfConditional/plObjectInBoxConditionalObject.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfConditional/plObjectIntersectPlaneConditionalObject.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfConditional/plObjectIntersectPlaneConditionalObject.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfConditional/plPickedConditionalObject.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfConditional/plPickedConditionalObject.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfConsole/CMakeLists.txt (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfConsole/pfAvatarConsoleCommands.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfConsole/pfCCRConsoleCommands.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfConsole/pfConsole.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfConsole/pfConsole.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfConsole/pfConsoleCmd.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfConsole/pfConsoleCmd.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfConsole/pfConsoleCommands.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfConsole/pfConsoleCommandsNet.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfConsole/pfConsoleContext.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfConsole/pfConsoleContext.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfConsole/pfConsoleCreatable.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfConsole/pfConsoleDirSrc.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfConsole/pfConsoleDirSrc.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfConsole/pfConsoleEngine.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfConsole/pfConsoleEngine.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfConsole/pfDispatchLog.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfConsole/pfDispatchLog.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfConsole/pfGameConsoleCommands.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfCsrSrv/CMakeLists.txt (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfCsrSrv/Pch.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfCsrSrv/pfCsrSrv.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfCsrSrv/pfCsrSrv.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfGameGUIMgr/CMakeLists.txt (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfGameGUIMgr/pfGUIButtonMod.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfGameGUIMgr/pfGUIButtonMod.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfGameGUIMgr/pfGUICheckBoxCtrl.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfGameGUIMgr/pfGUICheckBoxCtrl.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfGameGUIMgr/pfGUIClickMapCtrl.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfGameGUIMgr/pfGUIClickMapCtrl.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfGameGUIMgr/pfGUIControlHandlers.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfGameGUIMgr/pfGUIControlHandlers.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfGameGUIMgr/pfGUIControlMod.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfGameGUIMgr/pfGUIControlMod.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfGameGUIMgr/pfGUICtrlGenerator.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfGameGUIMgr/pfGUICtrlGenerator.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfGameGUIMgr/pfGUIDialogHandlers.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfGameGUIMgr/pfGUIDialogMod.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfGameGUIMgr/pfGUIDialogMod.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfGameGUIMgr/pfGUIDialogNotifyProc.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfGameGUIMgr/pfGUIDialogNotifyProc.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfGameGUIMgr/pfGUIDragBarCtrl.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfGameGUIMgr/pfGUIDragBarCtrl.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfGameGUIMgr/pfGUIDraggableMod.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfGameGUIMgr/pfGUIDraggableMod.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfGameGUIMgr/pfGUIDynDisplayCtrl.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfGameGUIMgr/pfGUIDynDisplayCtrl.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfGameGUIMgr/pfGUIEditBoxMod.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfGameGUIMgr/pfGUIEditBoxMod.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfGameGUIMgr/pfGUIKnobCtrl.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfGameGUIMgr/pfGUIKnobCtrl.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfGameGUIMgr/pfGUIListBoxMod.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfGameGUIMgr/pfGUIListBoxMod.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfGameGUIMgr/pfGUIListElement.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfGameGUIMgr/pfGUIListElement.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfGameGUIMgr/pfGUIMenuItem.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfGameGUIMgr/pfGUIMenuItem.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfGameGUIMgr/pfGUIMultiLineEditCtrl.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfGameGUIMgr/pfGUIMultiLineEditCtrl.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfGameGUIMgr/pfGUIPopUpMenu.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfGameGUIMgr/pfGUIPopUpMenu.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfGameGUIMgr/pfGUIProgressCtrl.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfGameGUIMgr/pfGUIProgressCtrl.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfGameGUIMgr/pfGUIRadioGroupCtrl.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfGameGUIMgr/pfGUIRadioGroupCtrl.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfGameGUIMgr/pfGUITagDefs.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfGameGUIMgr/pfGUITagDefs.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfGameGUIMgr/pfGUITextBoxMod.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfGameGUIMgr/pfGUITextBoxMod.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfGameGUIMgr/pfGUIUpDownPairMod.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfGameGUIMgr/pfGUIUpDownPairMod.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfGameGUIMgr/pfGUIValueCtrl.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfGameGUIMgr/pfGUIValueCtrl.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfGameGUIMgr/pfGameGUIMgr.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfGameGUIMgr/pfGameGUIMgr.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfGameGUIMgr/pfGameGUIMgrCreatable.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfGameMgr/BlueSpiral/pfGmBlueSpiral.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfGameMgr/BlueSpiral/pfGmBlueSpiral.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfGameMgr/CMakeLists.txt (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfGameMgr/ClimbingWall/pfGmClimbingWall.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfGameMgr/ClimbingWall/pfGmClimbingWall.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfGameMgr/Heek/pfGmHeek.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfGameMgr/Heek/pfGmHeek.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfGameMgr/Intern.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfGameMgr/Marker/pfGmMarker.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfGameMgr/Marker/pfGmMarker.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfGameMgr/Pch.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfGameMgr/TicTacToe/pfGmTicTacToe.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfGameMgr/TicTacToe/pfGmTicTacToe.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfGameMgr/VarSync/pfGmVarSync.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfGameMgr/VarSync/pfGmVarSync.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfGameMgr/pfGameMgr.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfGameMgr/pfGameMgr.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfGameMgr/pfGameMgrCreatables.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfGameScoreMgr/CMakeLists.txt (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfGameScoreMgr/pfGameScoreMgr.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfGameScoreMgr/pfGameScoreMgr.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfJournalBook/CMakeLists.txt (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfJournalBook/pfJournalBook.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfJournalBook/pfJournalBook.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfJournalBook/pfJournalBookCreatable.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfKI/pfKI.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfKI/pfKI.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfKI/pfKICreatable.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfKI/pfPlayerBookMod.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfKI/pfPlayerBookMod.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfLocalizationMgr/CMakeLists.txt (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfLocalizationMgr/pfLocalizationDataMgr.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfLocalizationMgr/pfLocalizationDataMgr.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfLocalizationMgr/pfLocalizationMgr.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfLocalizationMgr/pfLocalizationMgr.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfLocalizationMgr/pfLocalizedString.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfLocalizationMgr/pfLocalizedString.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfLoginDialog/CMakeLists.txt (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfLoginDialog/pfLoginDialog.rc (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfLoginDialog/plLoginDialog.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfLoginDialog/plLoginDialog.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfLoginDialog/resource.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfMessage/CMakeLists.txt (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfMessage/pfBackdoorMsg.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfMessage/pfGUINotifyMsg.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfMessage/pfGameGUIMsg.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfMessage/pfKIMsg.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfMessage/pfKIMsg.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfMessage/pfMarkerMsg.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfMessage/pfMarkerMsg.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfMessage/pfMessageCreatable.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfMessage/pfMovieEventMsg.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfMessage/pfMovieEventMsg.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfMessage/plArmatureEffectMsg.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfMessage/plArmatureEffectMsg.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfMessage/plClothingMsg.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfMessage/plClothingMsg.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfPython/CMakeLists.txt (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfPython/Games/BlueSpiral/pyBlueSpiralGame.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfPython/Games/BlueSpiral/pyBlueSpiralGame.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfPython/Games/BlueSpiral/pyBlueSpiralGameGlue.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfPython/Games/BlueSpiral/pyBlueSpiralMsg.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfPython/Games/BlueSpiral/pyBlueSpiralMsg.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfPython/Games/BlueSpiral/pyBlueSpiralMsgGlue.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfPython/Games/ClimbingWall/pyClimbingWallGame.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfPython/Games/ClimbingWall/pyClimbingWallGame.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfPython/Games/ClimbingWall/pyClimbingWallGameGlue.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfPython/Games/ClimbingWall/pyClimbingWallMsg.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfPython/Games/ClimbingWall/pyClimbingWallMsg.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfPython/Games/ClimbingWall/pyClimbingWallMsgGlue.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfPython/Games/Heek/pyHeekGame.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfPython/Games/Heek/pyHeekGame.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfPython/Games/Heek/pyHeekGameGlue.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfPython/Games/Heek/pyHeekMsg.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfPython/Games/Heek/pyHeekMsg.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfPython/Games/Heek/pyHeekMsgGlue.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfPython/Games/Marker/pyMarkerGame.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfPython/Games/Marker/pyMarkerGame.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfPython/Games/Marker/pyMarkerGameGlue.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfPython/Games/Marker/pyMarkerMsg.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfPython/Games/Marker/pyMarkerMsg.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfPython/Games/Marker/pyMarkerMsgGlue.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfPython/Games/TicTacToe/pyTTTGame.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfPython/Games/TicTacToe/pyTTTGame.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfPython/Games/TicTacToe/pyTTTGameGlue.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfPython/Games/TicTacToe/pyTTTMsg.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfPython/Games/TicTacToe/pyTTTMsg.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfPython/Games/TicTacToe/pyTTTMsgGlue.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfPython/Games/VarSync/pyVarSyncGame.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfPython/Games/VarSync/pyVarSyncGame.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfPython/Games/VarSync/pyVarSyncGameGlue.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfPython/Games/VarSync/pyVarSyncMsg.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfPython/Games/VarSync/pyVarSyncMsg.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfPython/Games/VarSync/pyVarSyncMsgGlue.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfPython/Games/pyGameCli.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfPython/Games/pyGameCli.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfPython/Games/pyGameCliGlue.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfPython/Games/pyGameCliMsg.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfPython/Games/pyGameCliMsg.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfPython/Games/pyGameCliMsgGlue.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfPython/Games/pyGameMgrMsg.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfPython/Games/pyGameMgrMsg.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfPython/Games/pyGameMgrMsgGlue.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfPython/cyAccountManagement.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfPython/cyAccountManagement.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfPython/cyAccountManagementGlue.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfPython/cyAnimation.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfPython/cyAnimation.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfPython/cyAnimationGlue.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfPython/cyAvatar.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfPython/cyAvatar.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfPython/cyAvatarGlue.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfPython/cyCamera.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfPython/cyCamera.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfPython/cyCameraGlue.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfPython/cyDraw.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfPython/cyDraw.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfPython/cyDrawGlue.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfPython/cyInputInterface.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfPython/cyInputInterface.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfPython/cyInputInterfaceGlue.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfPython/cyMisc.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfPython/cyMisc.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfPython/cyMiscGlue.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfPython/cyMiscGlue2.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfPython/cyMiscGlue3.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfPython/cyMiscGlue4.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfPython/cyParticleSys.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfPython/cyParticleSys.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfPython/cyParticleSysGlue.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfPython/cyPhysics.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfPython/cyPhysics.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfPython/cyPhysicsGlue.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfPython/cyPythonInterface.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfPython/cyPythonInterface.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfPython/pfPythonCreatable.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfPython/plPythonFileMod.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfPython/plPythonFileMod.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfPython/plPythonHelpers.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfPython/plPythonPack.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfPython/plPythonPack.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfPython/plPythonParameter.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfPython/plPythonSDLModifier.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfPython/plPythonSDLModifier.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfPython/plPythonSDLModifierGlue.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfPython/pyAgeInfoStruct.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfPython/pyAgeInfoStruct.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfPython/pyAgeInfoStructGlue.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfPython/pyAgeLinkStruct.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfPython/pyAgeLinkStruct.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfPython/pyAgeLinkStructGlue.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfPython/pyAgeVault.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfPython/pyAgeVault.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfPython/pyAgeVaultGlue.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfPython/pyAlarm.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfPython/pyAlarm.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfPython/pyAudioControl.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfPython/pyAudioControl.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfPython/pyAudioControlGlue.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfPython/pyCCRMgr.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfPython/pyCCRMgr.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfPython/pyCCRMgrGlue.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfPython/pyCCRMgrGlue2.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfPython/pyCluster.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfPython/pyCluster.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfPython/pyClusterGlue.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfPython/pyColor.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfPython/pyColor.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfPython/pyColorGlue.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfPython/pyCritterBrain.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfPython/pyCritterBrain.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfPython/pyCritterBrainGlue.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfPython/pyDniCoordinates.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfPython/pyDniCoordinates.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfPython/pyDniCoordinatesGlue.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfPython/pyDniInfoSource.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfPython/pyDniInfoSource.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfPython/pyDniInfoSourceGlue.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfPython/pyDrawControl.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfPython/pyDrawControl.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfPython/pyDrawControlGlue.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfPython/pyDynamicText.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfPython/pyDynamicText.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfPython/pyDynamicTextGlue.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfPython/pyEnum.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfPython/pyEnum.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfPython/pyGUIControl.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfPython/pyGUIControl.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfPython/pyGUIControlButton.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfPython/pyGUIControlButton.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfPython/pyGUIControlButtonGlue.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfPython/pyGUIControlCheckBox.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfPython/pyGUIControlCheckBox.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfPython/pyGUIControlCheckBoxGlue.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfPython/pyGUIControlClickMap.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfPython/pyGUIControlClickMap.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfPython/pyGUIControlClickMapGlue.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfPython/pyGUIControlDragBar.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfPython/pyGUIControlDragBar.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfPython/pyGUIControlDragBarGlue.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfPython/pyGUIControlDraggable.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfPython/pyGUIControlDraggable.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfPython/pyGUIControlDraggableGlue.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfPython/pyGUIControlDynamicText.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfPython/pyGUIControlDynamicText.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfPython/pyGUIControlDynamicTextGlue.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfPython/pyGUIControlEditBox.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfPython/pyGUIControlEditBox.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfPython/pyGUIControlEditBoxGlue.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfPython/pyGUIControlGlue.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfPython/pyGUIControlListBox.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfPython/pyGUIControlListBox.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfPython/pyGUIControlListBoxGlue.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfPython/pyGUIControlMultiLineEdit.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfPython/pyGUIControlMultiLineEdit.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfPython/pyGUIControlMultiLineEditGlue.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfPython/pyGUIControlRadioGroup.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfPython/pyGUIControlRadioGroup.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfPython/pyGUIControlRadioGroupGlue.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfPython/pyGUIControlTextBox.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfPython/pyGUIControlTextBox.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfPython/pyGUIControlTextBoxGlue.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfPython/pyGUIControlValue.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfPython/pyGUIControlValue.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfPython/pyGUIControlValueGlue.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfPython/pyGUIDialog.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfPython/pyGUIDialog.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfPython/pyGUIDialogGlue.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfPython/pyGUIPopUpMenu.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfPython/pyGUIPopUpMenu.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfPython/pyGUIPopUpMenuGlue.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfPython/pyGUISkin.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfPython/pyGUISkin.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfPython/pyGUISkinGlue.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfPython/pyGameScore.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfPython/pyGameScore.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfPython/pyGameScoreGlue.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfPython/pyGeometry3.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfPython/pyGeometry3.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfPython/pyGeometry3Glue.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfPython/pyGlueHelpers.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfPython/pyGrassShader.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfPython/pyGrassShader.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfPython/pyGrassShaderGlue.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfPython/pyImage.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfPython/pyImage.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfPython/pyImageGlue.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfPython/pyJournalBook.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfPython/pyJournalBook.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfPython/pyJournalBookGlue.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfPython/pyKey.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfPython/pyKey.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfPython/pyKeyGlue.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfPython/pyKeyMap.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfPython/pyKeyMap.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfPython/pyKeyMapGlue.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfPython/pyMarkerMgr.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfPython/pyMarkerMgr.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfPython/pyMarkerMgrGlue.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfPython/pyMatrix44.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfPython/pyMatrix44.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfPython/pyMatrix44Glue.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfPython/pyMoviePlayer.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfPython/pyMoviePlayer.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfPython/pyMoviePlayerGlue.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfPython/pyNetLinkingMgr.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfPython/pyNetLinkingMgr.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfPython/pyNetLinkingMgrGlue.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfPython/pyNetServerSessionInfo.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfPython/pyNetServerSessionInfo.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfPython/pyNetServerSessionInfoGlue.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfPython/pyNotify.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfPython/pyNotify.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfPython/pyNotifyGlue.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfPython/pyPlayer.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfPython/pyPlayer.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfPython/pyPlayerGlue.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfPython/pySDL.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfPython/pySDL.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfPython/pySDLGlue.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfPython/pySceneObject.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfPython/pySceneObject.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfPython/pySceneObjectGlue.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfPython/pyScoreMgr.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfPython/pyScoreMgr.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfPython/pyScoreMgrGlue.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfPython/pySpawnPointInfo.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfPython/pySpawnPointInfo.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfPython/pySpawnPointInfoGlue.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfPython/pyStatusLog.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfPython/pyStatusLog.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfPython/pyStatusLogGlue.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfPython/pyStream.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfPython/pyStream.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfPython/pyStreamGlue.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfPython/pySwimCurrentInterface.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfPython/pySwimCurrentInterface.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfPython/pySwimCurrentInterfaceGlue.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfPython/pyVault.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfPython/pyVault.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfPython/pyVaultAgeInfoListNode.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfPython/pyVaultAgeInfoListNode.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfPython/pyVaultAgeInfoListNodeGlue.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfPython/pyVaultAgeInfoNode.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfPython/pyVaultAgeInfoNode.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfPython/pyVaultAgeInfoNodeGlue.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfPython/pyVaultAgeLinkNode.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfPython/pyVaultAgeLinkNode.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfPython/pyVaultAgeLinkNodeGlue.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfPython/pyVaultChronicleNode.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfPython/pyVaultChronicleNode.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfPython/pyVaultChronicleNodeGlue.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfPython/pyVaultFolderNode.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfPython/pyVaultFolderNode.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfPython/pyVaultFolderNodeGlue.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfPython/pyVaultGlue.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfPython/pyVaultImageNode.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfPython/pyVaultImageNode.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfPython/pyVaultImageNodeGlue.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfPython/pyVaultMarkerGameNode.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfPython/pyVaultMarkerGameNode.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfPython/pyVaultMarkerGameNodeGlue.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfPython/pyVaultNode.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfPython/pyVaultNode.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfPython/pyVaultNodeGlue.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfPython/pyVaultNodeRef.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfPython/pyVaultNodeRef.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfPython/pyVaultNodeRefGlue.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfPython/pyVaultPlayerInfoListNode.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfPython/pyVaultPlayerInfoListNode.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfPython/pyVaultPlayerInfoListNodeGlue.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfPython/pyVaultPlayerInfoNode.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfPython/pyVaultPlayerInfoNode.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfPython/pyVaultPlayerInfoNodeGlue.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfPython/pyVaultPlayerNode.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfPython/pyVaultPlayerNode.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfPython/pyVaultPlayerNodeGlue.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfPython/pyVaultSDLNode.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfPython/pyVaultSDLNode.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfPython/pyVaultSDLNodeGlue.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfPython/pyVaultSystemNode.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfPython/pyVaultSystemNode.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfPython/pyVaultSystemNodeGlue.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfPython/pyVaultTextNoteNode.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfPython/pyVaultTextNoteNode.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfPython/pyVaultTextNoteNodeGlue.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfPython/pyWaveSet.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfPython/pyWaveSet.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfPython/pyWaveSetGlue.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfSecurePreloader/CMakeLists.txt (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfSecurePreloader/pfSecurePreloader.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfSecurePreloader/pfSecurePreloader.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfSecurePreloader/pfSecurePreloaderCreatable.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfStackTrace/CMakeLists.txt (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfStackTrace/pfArray.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfStackTrace/pfMapFile.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfStackTrace/pfMapFile.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfStackTrace/pfMapFileEntry.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfStackTrace/pfMapFileEntry.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfStackTrace/pfPrintStackTrace.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfStackTrace/pfPrintStackTrace.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfStackTrace/pfStackTrace.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfStackTrace/pfStackTrace.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfStackTrace/pfTextFile.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfStackTrace/pfTextFile.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfSurface/CMakeLists.txt (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfSurface/pfSurfaceCreatable.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfSurface/plDistOpacityMod.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfSurface/plDistOpacityMod.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfSurface/plFadeOpacityLay.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfSurface/plFadeOpacityLay.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfSurface/plFadeOpacityMod.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfSurface/plFadeOpacityMod.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfSurface/plGrabCubeMap.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfSurface/plGrabCubeMap.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfSurface/plLayerAVI.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfSurface/plLayerAVI.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfSurface/plLayerMovie.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/FeatureLib/pfSurface/plLayerMovie.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/CMakeLists.txt (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/inc/CMakeLists.txt (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/inc/hsGMatState.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/inc/hsGMatState.inl (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/inc/hsResMgr.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/inc/hsTimer.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/inc/plAudible.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/inc/plCCRMgrBase.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/inc/plClassIndexMacros.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/inc/plCreatableIndex.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/inc/plCreatableStrings.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/inc/plDrawable.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/inc/plNetServerDatabaseStructClassIndexes.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/inc/plPhysical.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/inc/plPipeResReq.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/inc/plPipeline.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/inc/plProfile.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/inc/plProfileManager.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/inc/plProfileManager.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/inc/plRefFlags.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/inc/plgDispatch.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/inc/pnAllCreatables.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/inc/pnNucleusCreatables.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/inc/pnSingletons.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnAddrInfo/CMakeLists.txt (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnAddrInfo/pnAddrInfo.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnAddrInfo/pnAddrInfo.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnAsyncCore/CMakeLists.txt (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnAsyncCore/Pch.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnAsyncCore/Private/pnAcAllIncludes.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnAsyncCore/Private/pnAcCore.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnAsyncCore/Private/pnAcIo.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnAsyncCore/Private/pnAcLog.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnAsyncCore/Private/pnAcLog.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnAsyncCore/Private/pnAcThread.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnAsyncCore/Private/pnAcTimer.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnAsyncCore/pnAsyncCore.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnAsyncCoreExe/CMakeLists.txt (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnAsyncCoreExe/Pch.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnAsyncCoreExe/Private/Nt/pnAceNt.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnAsyncCoreExe/Private/Nt/pnAceNt.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnAsyncCoreExe/Private/Nt/pnAceNtFile.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnAsyncCoreExe/Private/Nt/pnAceNtInt.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnAsyncCoreExe/Private/Nt/pnAceNtSocket.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnAsyncCoreExe/Private/Nt/pnAceNtThread.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnAsyncCoreExe/Private/Unix/pnAceUx.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnAsyncCoreExe/Private/W9x/pnAceW9x.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnAsyncCoreExe/Private/W9x/pnAceW9x.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnAsyncCoreExe/Private/W9x/pnAceW9xFile.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnAsyncCoreExe/Private/W9x/pnAceW9xInt.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnAsyncCoreExe/Private/W9x/pnAceW9xSocket.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnAsyncCoreExe/Private/W9x/pnAceW9xThread.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnAsyncCoreExe/Private/Win32/pnAceW32Dns.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnAsyncCoreExe/Private/Win32/pnAceW32Thread.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnAsyncCoreExe/Private/pnAceInt.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnAsyncCoreExe/pnAceCore.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnAsyncCoreExe/pnAceIo.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnAsyncCoreExe/pnAceLog.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnAsyncCoreExe/pnAceThread.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnAsyncCoreExe/pnAceTimer.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnCrash/CMakeLists.txt (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnCrash/Pch.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnCrash/pnCrash.bat (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnCrash/pnCrash.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnCrash/pnCrash.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnCrash/pnCrash.py (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnCrashExe/CMakeLists.txt (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnCrashExe/Pch.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnCrashExe/Win32/W32Int.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnCrashExe/Win32/pnCreError.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnCrashExe/Win32/pnCreGui.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnCrashExe/Win32/pnCreMail.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnCrashExe/Win32/pnCreTools.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnCsrCli/CMakeLists.txt (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnCsrCli/Pch.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnCsrCli/pnCsrCli.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnCsrCli/pnCsrCli.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnCsrNet/CMakeLists.txt (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnCsrNet/Pch.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnCsrNet/pnCsrNet.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnCsrNet/pnCsrNet.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnDispatch/CMakeLists.txt (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnDispatch/plDispatch.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnDispatch/plDispatch.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnDispatch/plDispatchLogBase.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnDispatch/plDispatchLogBase.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnDispatch/pnDispatchCreatable.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnFactory/CMakeLists.txt (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnFactory/plCreatable.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnFactory/plCreator.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnFactory/plFactory.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnFactory/plFactory.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnGameMgr/BlueSpiral/pnGmBlueSpiral.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnGameMgr/BlueSpiral/pnGmBlueSpiral.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnGameMgr/CMakeLists.txt (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnGameMgr/ClimbingWall/pnGmClimbingWall.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnGameMgr/ClimbingWall/pnGmClimbingWall.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnGameMgr/Heek/pnGmHeek.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnGameMgr/Heek/pnGmHeek.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnGameMgr/Intern.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnGameMgr/Marker/pnGmMarker.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnGameMgr/Marker/pnGmMarker.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnGameMgr/Pch.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnGameMgr/TicTacToe/pnGmTicTacToe.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnGameMgr/TicTacToe/pnGmTicTacToe.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnGameMgr/VarSync/pnGmVarSync.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnGameMgr/VarSync/pnGmVarSync.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnGameMgr/pnGameMgr.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnGameMgr/pnGameMgr.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnIni/CMakeLists.txt (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnIni/Intern.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnIni/Pch.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnIni/Private/pnIniAllIncludes.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnIni/Private/pnIniChange.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnIni/Private/pnIniCore.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnIni/Private/pnIniCore.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnIni/Private/pnIniSrv.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnIni/Private/pnIniSrv.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnIni/pnIni.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnIniExe/CMakeLists.txt (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnIniExe/Pch.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnIniExe/Private/Win32/pnW32IniChange.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnIniExe/Private/pnIniSrv.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnInputCore/CMakeLists.txt (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnInputCore/plControlDefinition.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnInputCore/plControlEventCodes.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnInputCore/plInputMap.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnInputCore/plInputMap.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnInputCore/plKeyDef.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnInputCore/plKeyMap.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnInputCore/plOSMsg.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnKeyedObject/CMakeLists.txt (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnKeyedObject/hsKeyedObject.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnKeyedObject/hsKeyedObject.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnKeyedObject/plFixedKey.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnKeyedObject/plFixedKey.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnKeyedObject/plKey.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnKeyedObject/plKey.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnKeyedObject/plKeyImp.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnKeyedObject/plKeyImp.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnKeyedObject/plMsgForwarder.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnKeyedObject/plMsgForwarder.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnKeyedObject/plReceiver.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnKeyedObject/plTempKey.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnKeyedObject/plTempKey.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnKeyedObject/plUoid.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnKeyedObject/plUoid.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnKeyedObject/pnKeyedObjectCreatable.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnMail/CMakeLists.txt (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnMail/Pch.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnMail/pnMail.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnMail/pnMail.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnMessage/CMakeLists.txt (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnMessage/plAttachMsg.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnMessage/plAudioSysMsg.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnMessage/plCameraMsg.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnMessage/plCameraMsg.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnMessage/plClientMsg.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnMessage/plClientMsg.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnMessage/plCmdIfaceModMsg.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnMessage/plCollisionMsg.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnMessage/plCorrectionMsg.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnMessage/plCursorChangeMsg.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnMessage/plDISpansMsg.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnMessage/plEnableMsg.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnMessage/plEnvEffectMsg.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnMessage/plEnvEffectMsg.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnMessage/plEventCallbackMsg.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnMessage/plFakeOutMsg.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnMessage/plIntRefMsg.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnMessage/plMessage.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnMessage/plMessage.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnMessage/plMessageWithCallbacks.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnMessage/plMessageWithCallbacks.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnMessage/plMultiModMsg.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnMessage/plNodeChangeMsg.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnMessage/plNodeChangeMsg.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnMessage/plNodeRefMsg.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnMessage/plNotifyMsg.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnMessage/plNotifyMsg.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnMessage/plObjRefMsg.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnMessage/plPipeResMakeMsg.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnMessage/plPlayerPageMsg.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnMessage/plProxyDrawMsg.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnMessage/plProxyDrawMsg.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnMessage/plRefMsg.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnMessage/plRefMsg.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnMessage/plRemoteAvatarInfoMsg.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnMessage/plSDLModifierMsg.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnMessage/plSDLModifierMsg.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnMessage/plSDLNotificationMsg.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnMessage/plSatisfiedMsg.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnMessage/plSelfDestructMsg.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnMessage/plServerReplyMsg.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnMessage/plServerReplyMsg.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnMessage/plSetNetGroupIDMsg.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnMessage/plSharedStateMsg.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnMessage/plSimulationMsg.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnMessage/plSimulationMsg.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnMessage/plSimulationSynchMsg.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnMessage/plSingleModMsg.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnMessage/plSoundMsg.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnMessage/plSoundMsg.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnMessage/plTimeMsg.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnMessage/plTimeMsg.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnMessage/plWarpMsg.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnMessage/pnMessageCreatable.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnModifier/CMakeLists.txt (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnModifier/plConditionalObject.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnModifier/plConditionalObject.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnModifier/plLogicModBase.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnModifier/plLogicModBase.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnModifier/plModifier.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnModifier/plModifier.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnModifier/plMultiModifier.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnModifier/plMultiModifier.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnModifier/plSingleModifier.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnModifier/plSingleModifier.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnModifier/pnModifierCreatable.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnNetBase/CMakeLists.txt (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnNetBase/Intern.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnNetBase/Pch.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnNetBase/Private/pnNbAges.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnNetBase/Private/pnNbAges.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnNetBase/Private/pnNbAllIncludes.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnNetBase/Private/pnNbEchoMsgs.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnNetBase/Private/pnNbError.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnNetBase/Private/pnNbError.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnNetBase/Private/pnNbProtocol.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnNetBase/Private/pnNbProtocol.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnNetBase/Private/pnNbSrvs.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnNetBase/Private/pnNbSrvs.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnNetBase/pnNbAuthKey.hpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnNetBase/pnNbConst.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnNetBase/pnNbCsrKey.hpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnNetBase/pnNbGameKey.hpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnNetBase/pnNbGateKeeperKey.hpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnNetBase/pnNetBase.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnNetCli/CMakeLists.txt (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnNetCli/Intern.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnNetCli/Pch.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnNetCli/pnNcChannel.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnNetCli/pnNcCli.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnNetCli/pnNcEncrypt.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnNetCli/pnNcUtils.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnNetCli/pnNetCli.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnNetCommon/CMakeLists.txt (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnNetCommon/plGenericVar.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnNetCommon/plGenericVar.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnNetCommon/plNetAddress.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnNetCommon/plNetAddress.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnNetCommon/plNetApp.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnNetCommon/plNetApp.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnNetCommon/plNetCommonStats.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnNetCommon/plNetGroup.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnNetCommon/plNetGroup.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnNetCommon/plNetResManager.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnNetCommon/plNetResManager.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnNetCommon/plNetServers.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnNetCommon/plNetServers.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnNetCommon/plNetSharedState.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnNetCommon/plNetSharedState.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnNetCommon/plSDLTypes.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnNetCommon/plSDLTypes.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnNetCommon/plSynchedObject.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnNetCommon/plSynchedObject.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnNetCommon/plSynchedValue.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnNetCommon/plSynchedValue.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnNetCommon/pnNetCommon.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnNetCommon/pnNetCommon.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnNetCommon/pnNetCommonCreatable.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnNetDiag/CMakeLists.txt (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnNetDiag/Intern.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnNetDiag/Pch.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnNetDiag/pnNdDns.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnNetDiag/pnNdIcmp.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnNetDiag/pnNdTcp.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnNetDiag/pnNetDiag.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnNetDiag/pnNetDiag.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnNetDiag/pnNetSys.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnNetLog/Intern.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnNetLog/Pch.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnNetLog/pnNetLog.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnNetLog/pnNlApi.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnNetLog/pnNlCli.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnNetLog/pnNlSrv.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnNetProtocol/CMakeLists.txt (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnNetProtocol/Intern.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnNetProtocol/Pch.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnNetProtocol/Private/Protocols/Cli2Auth/pnNpCli2Auth.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnNetProtocol/Private/Protocols/Cli2Auth/pnNpCli2Auth.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnNetProtocol/Private/Protocols/Cli2Csr/pnNpCli2Csr.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnNetProtocol/Private/Protocols/Cli2Csr/pnNpCli2Csr.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnNetProtocol/Private/Protocols/Cli2File/pnNpCli2File.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnNetProtocol/Private/Protocols/Cli2File/pnNpCli2File.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnNetProtocol/Private/Protocols/Cli2Game/pnNpCli2Game.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnNetProtocol/Private/Protocols/Cli2Game/pnNpCli2Game.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnNetProtocol/Private/Protocols/Cli2GateKeeper/pnNpCli2GateKeeper.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnNetProtocol/Private/Protocols/Cli2GateKeeper/pnNpCli2GateKeeper.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnNetProtocol/Private/Protocols/Srv2Db/pnNpSrv2Db.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnNetProtocol/Private/Protocols/Srv2Db/pnNpSrv2Db.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnNetProtocol/Private/Protocols/Srv2Log/pnNpSrv2Log.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnNetProtocol/Private/Protocols/Srv2Log/pnNpSrv2Log.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnNetProtocol/Private/Protocols/Srv2Mcp/pnNpSrv2Mcp.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnNetProtocol/Private/Protocols/Srv2Mcp/pnNpSrv2Mcp.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnNetProtocol/Private/Protocols/Srv2Score/pnNpSrv2Score.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnNetProtocol/Private/Protocols/Srv2Score/pnNpSrv2Score.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnNetProtocol/Private/Protocols/Srv2State/pnNpSrv2State.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnNetProtocol/Private/Protocols/Srv2State/pnNpSrv2State.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnNetProtocol/Private/Protocols/Srv2Vault/pnNpSrv2Vault.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnNetProtocol/Private/Protocols/Srv2Vault/pnNpSrv2Vault.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnNetProtocol/Private/pnNpAllIncludes.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnNetProtocol/Private/pnNpCommon.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnNetProtocol/Private/pnNpCommon.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnNetProtocol/pnNetProtocol.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnOraLib/Intern.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnOraLib/Pch.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnOraLib/pnOraLib.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnOraLib/pnOraLib.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnProduct/CMakeLists.txt (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnProduct/Pch.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnProduct/Private/pnPrAllIncludes.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnProduct/Private/pnPrBranchId.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnProduct/Private/pnPrBranchId.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnProduct/Private/pnPrBuildId.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnProduct/Private/pnPrBuildId.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnProduct/Private/pnPrBuildString.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnProduct/Private/pnPrBuildString.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnProduct/Private/pnPrBuildType.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnProduct/Private/pnPrBuildType.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnProduct/Private/pnPrProductId.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnProduct/Private/pnPrProductId.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnProduct/pnProduct.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnSceneObject/CMakeLists.txt (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnSceneObject/plAudioInterface.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnSceneObject/plAudioInterface.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnSceneObject/plCoordinateInterface.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnSceneObject/plCoordinateInterface.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnSceneObject/plDrawInterface.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnSceneObject/plDrawInterface.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnSceneObject/plObjInterface.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnSceneObject/plObjInterface.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnSceneObject/plSceneObject.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnSceneObject/plSceneObject.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnSceneObject/plSimulationInterface.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnSceneObject/plSimulationInterface.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnSceneObject/pnSceneObjectCreatable.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnSimpleNet/CMakeLists.txt (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnSimpleNet/Pch.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnSimpleNet/pnSimpleNet.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnSimpleNet/pnSimpleNet.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnSqlLib/Intern.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnSqlLib/Pch.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnSqlLib/Private/pnSqlAllIncludes.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnSqlLib/Private/pnSqlConn.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnSqlLib/Private/pnSqlConn.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnSqlLib/Private/pnSqlUtil.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnSqlLib/Private/pnSqlUtil.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnSqlLib/pnSqlLib.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnTimer/CMakeLists.txt (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnTimer/hsTimer.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnTimer/plTimedValue.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnTimer/plTimedValue.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnTimer/plTimerCallbackManager.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnTimer/plTimerCallbackManager.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnTimer/pnBranchDate.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnTimer/pnBuildDates.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnTimer/pnBuildDates.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnTimer/pnTimerCreatable.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnUtils/CMakeLists.txt (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnUtils/Intern.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnUtils/Pch.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnUtils/Private/Unix/pnUtUxStr.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnUtils/Private/Unix/pnUtUxSync.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnUtils/Private/Unix/pnUtUxUuid.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnUtils/Private/Win32/W32Int.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnUtils/Private/Win32/pnUtW32Addr.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnUtils/Private/Win32/pnUtW32Dll.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnUtils/Private/Win32/pnUtW32Misc.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnUtils/Private/Win32/pnUtW32Path.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnUtils/Private/Win32/pnUtW32Str.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnUtils/Private/Win32/pnUtW32Sync.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnUtils/Private/Win32/pnUtW32Time.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnUtils/Private/Win32/pnUtW32Uuid.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnUtils/Private/pnUtAddr.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnUtils/Private/pnUtAddr.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnUtils/Private/pnUtAllIncludes.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnUtils/Private/pnUtArray.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnUtils/Private/pnUtArray.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnUtils/Private/pnUtBase64.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnUtils/Private/pnUtBase64.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnUtils/Private/pnUtBigNum.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnUtils/Private/pnUtBigNum.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnUtils/Private/pnUtCmd.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnUtils/Private/pnUtCmd.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnUtils/Private/pnUtCoreLib.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnUtils/Private/pnUtCrypt.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnUtils/Private/pnUtCrypt.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnUtils/Private/pnUtEndian.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnUtils/Private/pnUtEndian.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnUtils/Private/pnUtHash.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnUtils/Private/pnUtHash.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnUtils/Private/pnUtList.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnUtils/Private/pnUtList.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnUtils/Private/pnUtMath.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnUtils/Private/pnUtMath.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnUtils/Private/pnUtMisc.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnUtils/Private/pnUtMisc.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnUtils/Private/pnUtPath.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnUtils/Private/pnUtPath.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnUtils/Private/pnUtPragma.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnUtils/Private/pnUtPriQ.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnUtils/Private/pnUtRand.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnUtils/Private/pnUtRand.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnUtils/Private/pnUtRef.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnUtils/Private/pnUtSkipList.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnUtils/Private/pnUtSort.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnUtils/Private/pnUtSpareList.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnUtils/Private/pnUtSpareList.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnUtils/Private/pnUtStr.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnUtils/Private/pnUtStr.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnUtils/Private/pnUtSubst.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnUtils/Private/pnUtSubst.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnUtils/Private/pnUtSync.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnUtils/Private/pnUtTime.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnUtils/Private/pnUtTime.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnUtils/Private/pnUtTls.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnUtils/Private/pnUtTls.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnUtils/Private/pnUtTypes.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnUtils/Private/pnUtUuid.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnUtils/Private/pnUtUuid.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnUtils/pnUtils.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnUtils/pnUtils.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnUtilsExe/CMakeLists.txt (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnUtilsExe/Intern.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnUtilsExe/Pch.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnUtilsExe/Private/Unix/pnUteUxTime.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnUtilsExe/Private/Win32/pnUteW32Time.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnUtilsExe/Private/pnUteTime.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/NucleusLib/pnUtilsExe/Private/pnUteTls.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/CMakeLists.txt (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/inc/plAllCreatables.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plAgeDescription/CMakeLists.txt (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plAgeDescription/plAgeDescription.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plAgeDescription/plAgeDescription.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plAgeDescription/plAgeManifest.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plAgeDescription/plAgeManifest.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plAgeLoader/CMakeLists.txt (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plAgeLoader/plAgeLoader.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plAgeLoader/plAgeLoader.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plAgeLoader/plAgeLoaderCreatable.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plAgeLoader/plAgeLoaderPaging.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plAgeLoader/plBackgroundDownloader.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plAgeLoader/plBackgroundDownloader.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plAgeLoader/plResPatcher.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plAgeLoader/plResPatcher.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plAudible/CMakeLists.txt (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plAudible/plAudibleCreatable.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plAudible/plAudibleNull.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plAudible/plAudibleNull.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plAudible/plWinAudible.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plAudible/plWinAudible.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plAudible/plWinAudibleProxy.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plAudible/plWinAudibleProxy.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plAudio/CMakeLists.txt (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plAudio/plAudioCaps.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plAudio/plAudioCaps.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plAudio/plAudioCreatable.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plAudio/plAudioReaderCreatable.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plAudio/plAudioSystem.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plAudio/plAudioSystem.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plAudio/plDSoundBuffer.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plAudio/plDSoundBuffer.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plAudio/plEAXEffects.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plAudio/plEAXEffects.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plAudio/plEAXListenerMod.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plAudio/plEAXListenerMod.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plAudio/plSound.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plAudio/plSound.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plAudio/plSoundEvent.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plAudio/plSoundEvent.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plAudio/plVoiceChat.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plAudio/plVoiceChat.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plAudio/plWAVClipBuffer.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plAudio/plWAVClipBuffer.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plAudio/plWin32GroupedSound.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plAudio/plWin32GroupedSound.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plAudio/plWin32Sound.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plAudio/plWin32Sound.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plAudio/plWin32StaticSound.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plAudio/plWin32StaticSound.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plAudio/plWin32StreamingSound.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plAudio/plWin32StreamingSound.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plAudio/plWinMicLevel.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plAudio/plWinMicLevel.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plAudioCore/CMakeLists.txt (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plAudioCore/plAudioCore.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plAudioCore/plAudioCoreCreatable.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plAudioCore/plAudioFileReader.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plAudioCore/plAudioFileReader.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plAudioCore/plBufferedFileReader.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plAudioCore/plBufferedFileReader.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plAudioCore/plFastWavReader.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plAudioCore/plFastWavReader.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plAudioCore/plOGGCodec.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plAudioCore/plOGGCodec.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plAudioCore/plSoundBuffer.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plAudioCore/plSoundBuffer.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plAudioCore/plSoundDeswizzler.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plAudioCore/plSoundDeswizzler.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plAudioCore/plWavFile.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plAudioCore/plWavFile.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plAvatar/CMakeLists.txt (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plAvatar/plAGAnim.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plAvatar/plAGAnim.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plAvatar/plAGAnimInstance.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plAvatar/plAGAnimInstance.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plAvatar/plAGApplicator.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plAvatar/plAGApplicator.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plAvatar/plAGChannel.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plAvatar/plAGChannel.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plAvatar/plAGMasterMod.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plAvatar/plAGMasterMod.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plAvatar/plAGMasterSDLModifier.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plAvatar/plAGMasterSDLModifier.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plAvatar/plAGModifier.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plAvatar/plAGModifier.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plAvatar/plAnimStage.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plAvatar/plAnimStage.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plAvatar/plAntiGravAction.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plAvatar/plAntiGravAction.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plAvatar/plArmatureEffects.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plAvatar/plArmatureEffects.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plAvatar/plArmatureMod.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plAvatar/plArmatureMod.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plAvatar/plAvBehaviors.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plAvatar/plAvBehaviors.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plAvatar/plAvBrain.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plAvatar/plAvBrain.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plAvatar/plAvBrainClimb.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plAvatar/plAvBrainClimb.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plAvatar/plAvBrainCoop.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plAvatar/plAvBrainCoop.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plAvatar/plAvBrainCritter.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plAvatar/plAvBrainCritter.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plAvatar/plAvBrainDrive.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plAvatar/plAvBrainDrive.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plAvatar/plAvBrainGeneric.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plAvatar/plAvBrainGeneric.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plAvatar/plAvBrainHuman.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plAvatar/plAvBrainHuman.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plAvatar/plAvBrainPuppet.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plAvatar/plAvBrainPuppet.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plAvatar/plAvBrainRideAnimatedPhysical.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plAvatar/plAvBrainRideAnimatedPhysical.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plAvatar/plAvBrainStaticNPC.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plAvatar/plAvBrainSwim.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plAvatar/plAvBrainSwim.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plAvatar/plAvBrainUser.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plAvatar/plAvBrainUser.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plAvatar/plAvCallbackAction.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plAvatar/plAvCallbackAction.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plAvatar/plAvDefs.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plAvatar/plAvLadderModifier.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plAvatar/plAvLadderModifier.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plAvatar/plAvMotorHuman.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plAvatar/plAvMotorHuman.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plAvatar/plAvTask.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plAvatar/plAvTask.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plAvatar/plAvTaskBrain.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plAvatar/plAvTaskBrain.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plAvatar/plAvTaskOrient.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plAvatar/plAvTaskOrient.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plAvatar/plAvTaskSeek.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plAvatar/plAvTaskSeek.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plAvatar/plAvatarClothing.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plAvatar/plAvatarClothing.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plAvatar/plAvatarCreatable.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plAvatar/plAvatarMgr.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plAvatar/plAvatarMgr.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plAvatar/plAvatarSDLModifier.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plAvatar/plAvatarSDLModifier.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plAvatar/plAvatarTasks.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plAvatar/plAvatarTasks.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plAvatar/plClothingLayout.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plAvatar/plClothingSDLModifier.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plAvatar/plClothingSDLModifier.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plAvatar/plCoopCoordinator.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plAvatar/plCoopCoordinator.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plAvatar/plCritterCommands.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plAvatar/plMatrixChannel.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plAvatar/plMatrixChannel.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plAvatar/plMultistageBehMod.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plAvatar/plMultistageBehMod.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plAvatar/plNPCSpawnMod.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plAvatar/plNPCSpawnMod.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plAvatar/plOneShotMod.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plAvatar/plOneShotMod.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plAvatar/plPhysicalControllerCore.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plAvatar/plPhysicalControllerCore.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plAvatar/plPointChannel.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plAvatar/plPointChannel.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plAvatar/plPuppetBrainMsg.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plAvatar/plPuppetCommands.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plAvatar/plQuatChannel.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plAvatar/plQuatChannel.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plAvatar/plScalarChannel.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plAvatar/plScalarChannel.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plAvatar/plSeekPointMod.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plAvatar/plSeekPointMod.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plAvatar/plSittingModifier.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plAvatar/plSittingModifier.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plAvatar/plSwimRegion.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plAvatar/plSwimRegion.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plCompression/CMakeLists.txt (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plCompression/plCompress.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plCompression/plZlibCompress.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plCompression/plZlibCompress.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plCompression/plZlibStream.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plCompression/plZlibStream.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plContainer/CMakeLists.txt (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plContainer/hsStringTable.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plContainer/hsStringTable.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plContainer/plConfigInfo.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plContainer/plConfigInfo.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plContainer/plConfigInfoLogging.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plContainer/plContainer.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plContainer/plKeysAndValues.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plContainer/plKeysAndValues.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plDeviceSelector/plDeviceSelector.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plDeviceSelector/plDeviceSelector.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plDrawable/CMakeLists.txt (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plDrawable/plAccMeshSmooth.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plDrawable/plAccMeshSmooth.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plDrawable/plAccessGeometry.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plDrawable/plAccessGeometry.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plDrawable/plAccessPartySpan.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plDrawable/plAccessSnapShot.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plDrawable/plAccessSnapShot.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plDrawable/plAccessSpan.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plDrawable/plAccessTriSpan.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plDrawable/plAccessVtxSpan.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plDrawable/plActivePrintShape.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plDrawable/plActivePrintShape.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plDrawable/plAuxSpan.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plDrawable/plAvMeshSmooth.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plDrawable/plAvMeshSmooth.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plDrawable/plCluster.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plDrawable/plCluster.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plDrawable/plClusterGroup.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plDrawable/plClusterGroup.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plDrawable/plCutter.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plDrawable/plCutter.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plDrawable/plDrawableCreatable.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plDrawable/plDrawableGenerator.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plDrawable/plDrawableGenerator.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plDrawable/plDrawableSpans.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plDrawable/plDrawableSpans.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plDrawable/plDrawableSpansExport.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plDrawable/plDynaBulletMgr.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plDrawable/plDynaBulletMgr.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plDrawable/plDynaDecal.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plDrawable/plDynaDecal.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plDrawable/plDynaDecalMgr.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plDrawable/plDynaDecalMgr.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plDrawable/plDynaFootMgr.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plDrawable/plDynaFootMgr.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plDrawable/plDynaPuddleMgr.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plDrawable/plDynaPuddleMgr.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plDrawable/plDynaRippleMgr.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plDrawable/plDynaRippleMgr.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plDrawable/plDynaRippleMgrVS.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plDrawable/plDynaRippleVSMgr.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plDrawable/plDynaTorpedoMgr.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plDrawable/plDynaTorpedoMgr.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plDrawable/plDynaTorpedoVSMgr.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plDrawable/plDynaTorpedoVSMgr.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plDrawable/plDynaWakeMgr.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plDrawable/plDynaWakeMgr.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plDrawable/plFixedWaterState7.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plDrawable/plFixedWaterState7.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plDrawable/plGeoSpanDice.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plDrawable/plGeoSpanDice.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plDrawable/plGeometrySpan.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plDrawable/plGeometrySpan.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plDrawable/plInstanceDrawInterface.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plDrawable/plInstanceDrawInterface.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plDrawable/plInterMeshSmooth.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plDrawable/plInterMeshSmooth.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plDrawable/plMorphArray.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plDrawable/plMorphArray.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plDrawable/plMorphDelta.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plDrawable/plMorphDelta.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plDrawable/plMorphSequence.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plDrawable/plMorphSequence.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plDrawable/plMorphSequenceSDLMod.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plDrawable/plMorphSequenceSDLMod.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plDrawable/plParticleFiller.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plDrawable/plParticleFiller.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plDrawable/plPrintShape.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plDrawable/plPrintShape.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plDrawable/plProxyGen.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plDrawable/plProxyGen.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plDrawable/plRipVSConsts.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plDrawable/plSharedMesh.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plDrawable/plSharedMesh.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plDrawable/plSpaceTree.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plDrawable/plSpaceTree.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plDrawable/plSpaceTreeMaker.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plDrawable/plSpaceTreeMaker.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plDrawable/plSpanInstance.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plDrawable/plSpanInstance.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plDrawable/plSpanTemplate.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plDrawable/plSpanTemplate.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plDrawable/plSpanTypes.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plDrawable/plSpanTypes.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plDrawable/plTimedInterp.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plDrawable/plVisLOSMgr.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plDrawable/plVisLOSMgr.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plDrawable/plWaveSet7.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plDrawable/plWaveSet7.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plDrawable/plWaveSetBase.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plDrawable/plWaveSetBase.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plDrawable/plWaveSetShaderConsts.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plEncryption/CMakeLists.txt (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plEncryption/plChecksum.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plEncryption/plChecksum.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plFile/CMakeLists.txt (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plFile/hsFiles.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plFile/hsFiles.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plFile/hsFiles_Mac.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plFile/hsFiles_PS2.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plFile/hsFiles_Unix.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plFile/hsFiles_Win.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plFile/plBrowseFolder.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plFile/plBrowseFolder.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plFile/plEncryptedStream.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plFile/plEncryptedStream.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plFile/plFileUtils.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plFile/plFileUtils.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plFile/plInitFileReader.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plFile/plInitFileReader.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plFile/plSecureStream.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plFile/plSecureStream.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plFile/plStreamSource.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plFile/plStreamSource.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plGClip/placeholder.txt (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plGImage/CMakeLists.txt (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plGImage/HS_RECT.inc (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plGImage/hsCodec.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plGImage/hsCodecManager.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plGImage/hsCodecManager.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plGImage/hsDXTDirectXCodec.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plGImage/hsDXTDirectXCodec.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plGImage/hsDXTSoftwareCodec.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plGImage/hsDXTSoftwareCodec.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plGImage/hsRect.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plGImage/notes.txt (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plGImage/plAVIWriter.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plGImage/plAVIWriter.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plGImage/plBitmap.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plGImage/plBitmap.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plGImage/plBumpMapGen.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plGImage/plBumpMapGen.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plGImage/plCubicEnvironmap.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plGImage/plCubicEnvironmap.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plGImage/plDynSurfaceWriter.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plGImage/plDynSurfaceWriter.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plGImage/plDynamicTextMap.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plGImage/plDynamicTextMap.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plGImage/plFont.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plGImage/plFont.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plGImage/plFontCache.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plGImage/plFontCache.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plGImage/plGImageCreatable.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plGImage/plImageConvert.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plGImage/plLODMipmap.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plGImage/plLODMipmap.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plGImage/plMipmap.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plGImage/plMipmap.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plGImage/plTGAWriter.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plGImage/plTGAWriter.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plGImage/plWinFontCache.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plGImage/plWinFontCache.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plGLight/CMakeLists.txt (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plGLight/plDirectShadowMaster.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plGLight/plDirectShadowMaster.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plGLight/plGLightCreatable.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plGLight/plLightInfo.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plGLight/plLightInfo.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plGLight/plLightKonstants.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plGLight/plLightProxy.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plGLight/plLightProxy.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plGLight/plLightSpace.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plGLight/plLightSpace.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plGLight/plPerspDirSlave.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plGLight/plPerspDirSlave.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plGLight/plPointShadowMaster.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plGLight/plPointShadowMaster.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plGLight/plShadowCaster.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plGLight/plShadowCaster.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plGLight/plShadowMaster.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plGLight/plShadowMaster.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plGLight/plShadowSlave.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plGLight/plShadowSlave.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plGRenderProcs/hsGRenderProcs.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plGRenderProcs/hsGRenderProcs.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plGRenderProcs/hsSfxAngleFade.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plGRenderProcs/hsSfxAngleFade.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plGRenderProcs/hsSfxDistFade.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plGRenderProcs/hsSfxDistFade.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plGRenderProcs/hsSfxDistShade.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plGRenderProcs/hsSfxDistShade.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plGRenderProcs/hsSfxGlobalShade.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plGRenderProcs/hsSfxGlobalShade.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plGRenderProcs/hsSfxIntenseAlpha.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plGRenderProcs/hsSfxIntenseAlpha.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plGRenderProcs/hsSfxObjDistFade.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plGRenderProcs/hsSfxObjDistFade.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plGRenderProcs/hsSfxObjDistShade.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plGRenderProcs/hsSfxObjDistShade.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plGRenderProcs/plGRenderProcsCreatable.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plGeometry/hsOscillator.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plGeometry/hsOscillator.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plGeometry/hsPerterber.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plGeometry/hsPerterber.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plGeometry/plGeometryCreatable.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plInputCore/CMakeLists.txt (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plInputCore/plAvatarInputInterface.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plInputCore/plAvatarInputInterface.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plInputCore/plDInputDevice.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plInputCore/plDInputDevice.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plInputCore/plDebugInputInterface.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plInputCore/plDebugInputInterface.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plInputCore/plInputCoreCreatable.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plInputCore/plInputDevice.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plInputCore/plInputDevice.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plInputCore/plInputInterface.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plInputCore/plInputInterface.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plInputCore/plInputInterfaceMgr.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plInputCore/plInputInterfaceMgr.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plInputCore/plInputManager.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plInputCore/plInputManager.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plInputCore/plSceneInputInterface.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plInputCore/plSceneInputInterface.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plInputCore/plTelescopeInputInterface.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plInputCore/plTelescopeInputInterface.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plInterp/CMakeLists.txt (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plInterp/hsInterp.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plInterp/hsInterp.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plInterp/hsKeys.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plInterp/hsKeys.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plInterp/hsTimedValue.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plInterp/plATCEaseCurves.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plInterp/plAnimEaseTypes.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plInterp/plAnimPath.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plInterp/plAnimPath.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plInterp/plAnimTimeConvert.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plInterp/plAnimTimeConvert.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plInterp/plController.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plInterp/plController.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plInterp/plInterpCreatable.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plInterp/plModulator.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plInterp/plModulator.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plIntersect/CMakeLists.txt (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plIntersect/notes.txt (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plIntersect/plClosest.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plIntersect/plClosest.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plIntersect/plHardRegion.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plIntersect/plHardRegion.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plIntersect/plHardRegionPlanes.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plIntersect/plHardRegionPlanes.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plIntersect/plHardRegionTypes.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plIntersect/plHardRegionTypes.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plIntersect/plIntersectCreatable.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plIntersect/plRegionBase.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plIntersect/plSoftVolume.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plIntersect/plSoftVolume.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plIntersect/plSoftVolumeTypes.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plIntersect/plSoftVolumeTypes.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plIntersect/plVolumeIsect.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plIntersect/plVolumeIsect.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plJPEG/CMakeLists.txt (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plJPEG/plJPEG.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plJPEG/plJPEG.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plMath/CMakeLists.txt (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plMath/hsNoiseFunc.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plMath/hsNoiseFunc.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plMath/hsRadixSort.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plMath/hsRadixSort.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plMath/hsSearchVersion.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plMath/plAvg.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plMath/plAvg.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plMath/plRandom.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plMath/plTriUtils.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plMath/plTriUtils.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plMessage/CMakeLists.txt (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plMessage/plAIMsg.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plMessage/plAIMsg.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plMessage/plAccountUpdateMsg.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plMessage/plAccountUpdateMsg.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plMessage/plActivatorMsg.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plMessage/plAgeLoadedMsg.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plMessage/plAngularVelocityMsg.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plMessage/plAnimCmdMsg.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plMessage/plAnimCmdMsg.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plMessage/plAnimationEventCallbackMsg.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plMessage/plApplyAvatarCustomizationsMsg.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plMessage/plApplyStoredAvatarSettingsMsg.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plMessage/plAvCoopMsg.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plMessage/plAvCoopMsg.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plMessage/plAvatarFootMsg.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plMessage/plAvatarFootMsg.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plMessage/plAvatarMsg.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plMessage/plAvatarMsg.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plMessage/plBulletMsg.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plMessage/plBulletMsg.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plMessage/plCCRMessageCreatable.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plMessage/plCCRMsg.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plMessage/plCCRMsg.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plMessage/plCaptureRenderMsg.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plMessage/plCaptureRenderMsg.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plMessage/plClimbEventMsg.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plMessage/plClimbMsg.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plMessage/plClimbMsg.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plMessage/plCollideMsg.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plMessage/plCollideMsg.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plMessage/plCondRefMsg.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plMessage/plConnectedToVaultMsg.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plMessage/plConsoleMsg.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plMessage/plDeviceRecreateMsg.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plMessage/plDynaDecalEnableMsg.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plMessage/plDynaDecalEnableMsg.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plMessage/plDynamicEnvMapMsg.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plMessage/plDynamicEnvMapMsg.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plMessage/plDynamicTextMsg.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plMessage/plDynamicTextMsg.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plMessage/plElementRefMsg.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plMessage/plEnvEffectMsg.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plMessage/plExcludeRegionMsg.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plMessage/plInputEventMsg.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plMessage/plInputEventMsg.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plMessage/plInputIfaceMgrMsg.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plMessage/plInputIfaceMgrMsg.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plMessage/plInterestingPing.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plMessage/plLOSHitMsg.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plMessage/plLOSHitMsg.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plMessage/plLOSRequestMsg.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plMessage/plLOSRequestMsg.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plMessage/plLayRefMsg.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plMessage/plLayRefMsg.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plMessage/plLightRefMsg.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plMessage/plLinearVelocityMsg.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plMessage/plLinkToAgeMsg.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plMessage/plLinkToAgeMsg.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plMessage/plListenerMsg.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plMessage/plListenerMsg.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plMessage/plLoadAgeMsg.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plMessage/plLoadAgeMsg.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plMessage/plLoadAvatarMsg.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plMessage/plLoadAvatarMsg.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plMessage/plLoadCloneMsg.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plMessage/plLoadCloneMsg.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plMessage/plMatRefMsg.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plMessage/plMatrixUpdateMsg.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plMessage/plMatrixUpdateMsg.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plMessage/plMemberUpdateMsg.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plMessage/plMeshRefMsg.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plMessage/plMessageCreatable.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plMessage/plMovieMsg.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plMessage/plMultistageMsg.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plMessage/plMultistageMsg.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plMessage/plNCAgeJoinerMsg.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plMessage/plNCAgeJoinerMsg.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plMessage/plNetClientMgrMsg.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plMessage/plNetClientMgrMsg.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plMessage/plNetCommMsgs.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plMessage/plNetCommMsgs.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plMessage/plNetOwnershipMsg.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plMessage/plNetVoiceListMsg.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plMessage/plNetVoiceListMsg.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plMessage/plNodeCleanupMsg.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plMessage/plOneShotCallbacks.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plMessage/plOneShotCallbacks.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plMessage/plOneShotMsg.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plMessage/plOneShotMsg.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plMessage/plParticleUpdateMsg.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plMessage/plPickedMsg.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plMessage/plPlayerMsg.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plMessage/plPreloaderMsg.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plMessage/plRenderMsg.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plMessage/plRenderRequestMsg.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plMessage/plRenderRequestMsg.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plMessage/plReplaceGeometryMsg.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plMessage/plResMgrHelperMsg.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plMessage/plResponderMsg.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plMessage/plRideAnimatedPhysMsg.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plMessage/plRideAnimatedPhysMsg.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plMessage/plRippleShapeMsg.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plMessage/plRippleShapeMsg.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plMessage/plRoomLoadNotifyMsg.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plMessage/plShadowCastMsg.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plMessage/plSimInfluenceMsg.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plMessage/plSimInfluenceMsg.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plMessage/plSimStateMsg.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plMessage/plSimStateMsg.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plMessage/plSpawnModMsg.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plMessage/plSpawnRequestMsg.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plMessage/plSwimMsg.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plMessage/plSwimMsg.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plMessage/plSynchEnableMsg.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plMessage/plSynchEnableMsg.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plMessage/plTimerCallbackMsg.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plMessage/plTransitionMsg.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plMessage/plTransitionMsg.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plMessage/plTriggerMsg.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plMessage/plUniqueIdsMsg.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plMessage/plVaultNotifyMsg.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plMessage/plVaultNotifyMsg.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plModifier/CMakeLists.txt (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plModifier/plAnimEventModifier.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plModifier/plAnimEventModifier.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plModifier/plAnimTimeConvertSDLModifier.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plModifier/plAnimTimeConvertSDLModifier.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plModifier/plAxisAnimModifier.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plModifier/plAxisAnimModifier.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plModifier/plCloneSpawnModifier.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plModifier/plCloneSpawnModifier.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plModifier/plDecalEnableMod.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plModifier/plDecalEnableMod.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plModifier/plDetectorLog.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plModifier/plDetectorLog.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plModifier/plExcludeRegionModifier.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plModifier/plExcludeRegionModifier.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plModifier/plGameMarkerModifier.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plModifier/plGameMarkerModifier.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plModifier/plImageLibMod.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plModifier/plImageLibMod.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plModifier/plInterfaceInfoModifier.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plModifier/plInterfaceInfoModifier.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plModifier/plLayerSDLModifier.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plModifier/plLayerSDLModifier.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plModifier/plLogicModifier.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plModifier/plLogicModifier.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plModifier/plMaintainersMarkerModifier.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plModifier/plMaintainersMarkerModifier.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plModifier/plModifierCreatable.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plModifier/plResponderModifier.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plModifier/plResponderModifier.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plModifier/plResponderSDLModifier.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plModifier/plResponderSDLModifier.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plModifier/plSDLModifier.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plModifier/plSDLModifier.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plModifier/plSimpleModifier.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plModifier/plSimpleModifier.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plModifier/plSoundSDLModifier.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plModifier/plSoundSDLModifier.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plModifier/plSpawnModifier.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plModifier/plSpawnModifier.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plModifier/plTagModifier.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plModifier/plTagModifier.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plNetClient/CMakeLists.txt (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plNetClient/plLinkEffectsMgr.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plNetClient/plLinkEffectsMgr.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plNetClient/plNetCliAgeJoiner.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plNetClient/plNetCliAgeJoiner.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plNetClient/plNetCliAgeLeaver.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plNetClient/plNetCliAgeLeaver.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plNetClient/plNetClientCommInterface.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plNetClient/plNetClientCreatable.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plNetClient/plNetClientGroup.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plNetClient/plNetClientGroup.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plNetClient/plNetClientMgr.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plNetClient/plNetClientMgr.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plNetClient/plNetClientMgrLoad.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plNetClient/plNetClientMgrRecord.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plNetClient/plNetClientMgrSend.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plNetClient/plNetClientMgrShow.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plNetClient/plNetClientMgrTask.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plNetClient/plNetClientMgrVault.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plNetClient/plNetClientMgrVoice.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plNetClient/plNetClientMsgHandler.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plNetClient/plNetClientMsgHandler.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plNetClient/plNetClientMsgScreener.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plNetClient/plNetClientMsgScreener.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plNetClient/plNetClientStats.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plNetClient/plNetClientStats.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plNetClient/plNetClientVNodeMgr.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plNetClient/plNetClientVault.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plNetClient/plNetClientVault.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plNetClient/plNetLinkingMgr.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plNetClient/plNetLinkingMgr.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plNetClient/plNetObjectDebugger.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plNetClient/plNetObjectDebugger.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plNetClient/plNetVoiceList.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plNetClient/plNetVoiceList.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plNetClientComm/CMakeLists.txt (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plNetClientComm/plNetClientComm.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plNetClientComm/plNetClientComm.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plNetClientComm/plNetClientCommCreatable.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plNetClientComm/plNetClientCommTask.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plNetClientComm/plNetClientCommTask.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plNetClientRecorder/CMakeLists.txt (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plNetClientRecorder/plNetClientRecorder.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plNetClientRecorder/plNetClientRecorder.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plNetClientRecorder/plNetClientStatsRecorder.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plNetClientRecorder/plNetClientStreamRecorder.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plNetCommon/CMakeLists.txt (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plNetCommon/plClientGuid.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plNetCommon/plClientGuid.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plNetCommon/plNetCommon.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plNetCommon/plNetCommon.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plNetCommon/plNetCommonConstants.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plNetCommon/plNetCommonCreatable.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plNetCommon/plNetCommonHelpers.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plNetCommon/plNetCommonHelpers.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plNetCommon/plNetMember.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plNetCommon/plNetMember.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plNetCommon/plNetMsgHandler.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plNetCommon/plNetMsgScreener.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plNetCommon/plNetMsgScreener.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plNetCommon/plNetServerSessionInfo.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plNetCommon/plNetServerSessionInfo.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plNetCommon/plServerGuid.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plNetCommon/plServerGuid.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plNetCommon/plSpawnPointInfo.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plNetCommon/plSpawnPointInfo.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plNetGameLib/CMakeLists.txt (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plNetGameLib/Intern.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plNetGameLib/Pch.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plNetGameLib/Private/plNglAllIncludes.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plNetGameLib/Private/plNglAuth.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plNetGameLib/Private/plNglAuth.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plNetGameLib/Private/plNglCore.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plNetGameLib/Private/plNglCore.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plNetGameLib/Private/plNglCsr.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plNetGameLib/Private/plNglCsr.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plNetGameLib/Private/plNglFile.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plNetGameLib/Private/plNglFile.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plNetGameLib/Private/plNglGame.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plNetGameLib/Private/plNglGame.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plNetGameLib/Private/plNglGateKeeper.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plNetGameLib/Private/plNglGateKeeper.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plNetGameLib/Private/plNglMisc.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plNetGameLib/Private/plNglTrans.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plNetGameLib/plNetGameLib.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plNetMessage/CMakeLists.txt (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plNetMessage/plNetCommonMessage.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plNetMessage/plNetMessage.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plNetMessage/plNetMessage.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plNetMessage/plNetMessageCreatable.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plNetMessage/plNetMsgHelpers.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plNetMessage/plNetMsgHelpers.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plNetMessage/plNetMsgVersion.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plNetTransport/CMakeLists.txt (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plNetTransport/plNetTransport.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plNetTransport/plNetTransport.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plNetTransport/plNetTransportMember.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plNetTransport/plNetTransportMember.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plParticleSystem/CMakeLists.txt (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plParticleSystem/plBoundInterface.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plParticleSystem/plBoundInterface.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plParticleSystem/plConvexVolume.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plParticleSystem/plConvexVolume.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plParticleSystem/plEffectTargetInfo.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plParticleSystem/plParticle.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plParticleSystem/plParticleApplicator.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plParticleSystem/plParticleApplicator.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plParticleSystem/plParticleCreatable.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plParticleSystem/plParticleEffect.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plParticleSystem/plParticleEffect.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plParticleSystem/plParticleEmitter.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plParticleSystem/plParticleEmitter.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plParticleSystem/plParticleGenerator.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plParticleSystem/plParticleGenerator.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plParticleSystem/plParticleSDLMod.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plParticleSystem/plParticleSDLMod.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plParticleSystem/plParticleSystem.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plParticleSystem/plParticleSystem.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plPhysX/CMakeLists.txt (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plPhysX/plLOSDispatch.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plPhysX/plLOSDispatch.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plPhysX/plPXConvert.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plPhysX/plPXConvert.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plPhysX/plPXPhysical.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plPhysX/plPXPhysical.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plPhysX/plPXPhysicalController.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plPhysX/plPXPhysicalController.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plPhysX/plPXPhysicalControllerCore.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plPhysX/plPXPhysicalControllerCore.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plPhysX/plPXStream.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plPhysX/plPhysXCreatable.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plPhysX/plSimulationMgr.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plPhysX/plSimulationMgr.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plPhysical/CMakeLists.txt (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plPhysical/plCollisionDetector.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plPhysical/plCollisionDetector.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plPhysical/plDetectorModifier.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plPhysical/plEnvEffectDetector.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plPhysical/plEnvEffectDetector.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plPhysical/plPhysicalCreatable.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plPhysical/plPhysicalProxy.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plPhysical/plPhysicalProxy.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plPhysical/plPhysicalSDLModifier.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plPhysical/plPhysicalSDLModifier.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plPhysical/plPhysicalSndGroup.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plPhysical/plPhysicalSndGroup.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plPhysical/plPhysicsSoundMgr.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plPhysical/plPhysicsSoundMgr.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plPhysical/plPickingDetector.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plPhysical/plPickingDetector.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plPhysical/plSimDefs.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plPhysical/plSittingModifier.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plPhysical/plSittingModifier.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plPipeline/CMakeLists.txt (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plPipeline/hsFogControl.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plPipeline/hsG3DDeviceSelector.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plPipeline/hsG3DDeviceSelector.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plPipeline/hsGColorizer.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plPipeline/hsGColorizer.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plPipeline/hsGDDrawDllLoad.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plPipeline/hsGDDrawDllLoad.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plPipeline/hsGDeviceRef.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plPipeline/hsGEnviron.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plPipeline/hsGEnviron.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plPipeline/hsWinRef.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plPipeline/plCaptureRender.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plPipeline/plCaptureRender.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plPipeline/plCubicRenderTarget.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plPipeline/plCubicRenderTargetModifier.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plPipeline/plCubicRenderTargetModifier.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plPipeline/plCullTree.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plPipeline/plCullTree.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plPipeline/plCuller.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plPipeline/plDTProgressMgr.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plPipeline/plDTProgressMgr.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plPipeline/plDXBufferRefs.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plPipeline/plDXDeviceRef.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plPipeline/plDXDeviceRefs.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plPipeline/plDXEnumerate.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plPipeline/plDXEnumerate.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plPipeline/plDXLightRef.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plPipeline/plDXPipeline.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plPipeline/plDXPipeline.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plPipeline/plDXPixelShader.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plPipeline/plDXPixelShader.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plPipeline/plDXRenderTargetRef.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plPipeline/plDXSettings.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plPipeline/plDXShader.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plPipeline/plDXShader.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plPipeline/plDXTextFont.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plPipeline/plDXTextFont.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plPipeline/plDXTextureRef.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plPipeline/plDXVertexShader.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plPipeline/plDXVertexShader.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plPipeline/plDebugText.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plPipeline/plDebugText.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plPipeline/plDrawPrim.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plPipeline/plDynamicEnvMap.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plPipeline/plDynamicEnvMap.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plPipeline/plFogEnvironment.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plPipeline/plFogEnvironment.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plPipeline/plGBufferGroup.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plPipeline/plGBufferGroup.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plPipeline/plPipeDebugFlags.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plPipeline/plPipelineCreatable.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plPipeline/plPipelineCreate.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plPipeline/plPlates.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plPipeline/plPlates.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plPipeline/plRenderTarget.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plPipeline/plRenderTarget.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plPipeline/plStatusLogDrawer.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plPipeline/plStatusLogDrawer.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plPipeline/plStencil.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plPipeline/plTextFont.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plPipeline/plTextFont.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plPipeline/plTextGenerator.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plPipeline/plTextGenerator.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plPipeline/plTransitionMgr.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plPipeline/plTransitionMgr.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plPipeline/plVertCoder.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plPipeline/plVertCoder.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plProgressMgr/CMakeLists.txt (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plProgressMgr/plProgressMgr.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plProgressMgr/plProgressMgr.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plResMgr/CMakeLists.txt (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plResMgr/plBSDiffBuffer.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plResMgr/plBSDiffBuffer.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plResMgr/plDiffBuffer.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plResMgr/plDiffBuffer.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plResMgr/plIndexFile.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plResMgr/plIndexFile.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plResMgr/plKeyFinder.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plResMgr/plKeyFinder.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plResMgr/plLoc.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plResMgr/plLoc.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plResMgr/plLocalization.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plResMgr/plLocalization.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plResMgr/plPageInfo.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plResMgr/plPageInfo.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plResMgr/plRegistryHelpers.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plResMgr/plRegistryHelpers.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plResMgr/plRegistryKeyList.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plResMgr/plRegistryKeyList.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plResMgr/plRegistryNode.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plResMgr/plRegistryNode.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plResMgr/plResManager.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plResMgr/plResManager.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plResMgr/plResManagerHelper.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plResMgr/plResManagerHelper.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plResMgr/plResMgr.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plResMgr/plResMgr.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plResMgr/plResMgrCreatable.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plResMgr/plResMgrSettings.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plResMgr/plVersion.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plResMgr/plVersion.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plSDL/CMakeLists.txt (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plSDL/SDL/animation.sdl (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plSDL/SDL/avatar.sdl (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plSDL/SDL/cloneMessage.sdl (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plSDL/SDL/clothing.sdl (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plSDL/SDL/morph.sdl (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plSDL/SDL/particle.sdl (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plSDL/SDL/physical.sdl (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plSDL/SDL/responder.sdl (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plSDL/SDL/sound.sdl (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plSDL/SDL/xregion.sdl (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plSDL/plSDL.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plSDL/plSDLCreatable.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plSDL/plSDLDescriptor.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plSDL/plSDLMgr.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plSDL/plSDLParser.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plSDL/plStateChangeNotifier.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plSDL/plStateDataRecord.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plSDL/plStateDescriptor.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plSDL/plStateVariable.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plSDL/plVarDescriptor.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plSDLBrowser/plSDLBrowser.rc (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plSDLBrowser/plSDLBrowserDlg.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plSDLBrowser/plSDLBrowserDlg.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plSDLBrowser/plSDLBrowserDlgHandlers.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plSDLBrowser/resource.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plScene/CMakeLists.txt (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plScene/plCullPoly.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plScene/plCullPoly.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plScene/plOccTree.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plScene/plOccTree.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plScene/plOccluder.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plScene/plOccluder.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plScene/plOccluderProxy.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plScene/plOccluderProxy.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plScene/plPageTreeMgr.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plScene/plPageTreeMgr.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plScene/plPostEffectMod.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plScene/plPostEffectMod.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plScene/plRelevanceMgr.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plScene/plRelevanceMgr.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plScene/plRelevanceRegion.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plScene/plRelevanceRegion.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plScene/plRenderRequest.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plScene/plRenderRequest.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plScene/plSceneCreatable.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plScene/plSceneNode.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plScene/plSceneNode.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plScene/plVisMgr.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plScene/plVisMgr.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plScene/plVisRegion.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plScene/plVisRegion.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plSockets/CMakeLists.txt (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plSockets/plBufferedSocketReader.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plSockets/plBufferedSocketReader.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plSockets/plBufferedSocketWriter.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plSockets/plBufferedSocketWriter.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plSockets/plFdSet.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plSockets/plFdSet.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plSockets/plMemBuffer.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plSockets/plMemBuffer.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plSockets/plNet.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plSockets/plNet.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plSockets/plOutgoingUdpSocket.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plSockets/plOutgoingUdpSocket.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plSockets/plRingBuffer.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plSockets/plRingBuffer.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plSockets/plSocket.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plSockets/plSocket.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plSockets/plTcpListenSocket.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plSockets/plTcpListenSocket.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plSockets/plTcpSocket.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plSockets/plTcpSocket.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plStatGather/CMakeLists.txt (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plStatGather/plAutoProfile.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plStatGather/plAutoProfile.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plStatGather/plCalculatedProfiles.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plStatGather/plCalculatedProfiles.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plStatGather/plProfileManagerFull.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plStatGather/plProfileManagerFull.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plStatGather/plStatGatherCreatable.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plStatusLog/CMakeLists.txt (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plStatusLog/plEncryptLogLine.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plStatusLog/plEncryptLogLine.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plStatusLog/plLoggable.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plStatusLog/plLoggable.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plStatusLog/plStatusLog.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plStatusLog/plStatusLog.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plStreamLogger/CMakeLists.txt (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plStreamLogger/plStreamLogger.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plStreamLogger/plStreamLogger.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plStreamLogger/plStreamLoggerC.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plSurface/CMakeLists.txt (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plSurface/ShaderSrc/AssShader.zip (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plSurface/ShaderSrc/ps_BiasNormals.inl (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plSurface/ShaderSrc/ps_CaddAadd.inl (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plSurface/ShaderSrc/ps_CaddAbase.inl (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plSurface/ShaderSrc/ps_CaddAmult.inl (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plSurface/ShaderSrc/ps_CalphaAadd.inl (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plSurface/ShaderSrc/ps_CalphaAbase.inl (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plSurface/ShaderSrc/ps_CalphaAmult.inl (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plSurface/ShaderSrc/ps_CbaseAbase.inl (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plSurface/ShaderSrc/ps_CmultAadd.inl (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plSurface/ShaderSrc/ps_CmultAbase.inl (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plSurface/ShaderSrc/ps_CmultAmult.inl (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plSurface/ShaderSrc/ps_CompCosines.inl (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plSurface/ShaderSrc/ps_GrassShader.inl (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plSurface/ShaderSrc/ps_MoreCosines.inl (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plSurface/ShaderSrc/ps_ShoreLeave6.inl (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plSurface/ShaderSrc/ps_WaveDecEnv.inl (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plSurface/ShaderSrc/ps_WaveFixed.inl (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plSurface/ShaderSrc/ps_WaveGraph.inl (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plSurface/ShaderSrc/ps_WaveGrid.inl (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plSurface/ShaderSrc/ps_WaveRip.inl (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plSurface/ShaderSrc/vs_BiasNormals.inl (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plSurface/ShaderSrc/vs_CompCosines.inl (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plSurface/ShaderSrc/vs_GrassShader.inl (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plSurface/ShaderSrc/vs_ShoreLeave6.inl (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plSurface/ShaderSrc/vs_ShoreLeave7.inl (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plSurface/ShaderSrc/vs_WaveDec1Lay.inl (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plSurface/ShaderSrc/vs_WaveDec1Lay_7.inl (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plSurface/ShaderSrc/vs_WaveDec2Lay11.inl (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plSurface/ShaderSrc/vs_WaveDec2Lay11_7.inl (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plSurface/ShaderSrc/vs_WaveDec2Lay12.inl (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plSurface/ShaderSrc/vs_WaveDec2Lay12_7.inl (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plSurface/ShaderSrc/vs_WaveDecEnv.inl (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plSurface/ShaderSrc/vs_WaveDecEnv_7.inl (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plSurface/ShaderSrc/vs_WaveFixedFin6.inl (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plSurface/ShaderSrc/vs_WaveFixedFin7.inl (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plSurface/ShaderSrc/vs_WaveGraph2.inl (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plSurface/ShaderSrc/vs_WaveGridFin.inl (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plSurface/ShaderSrc/vs_WaveRip.inl (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plSurface/ShaderSrc/vs_WaveRip7.inl (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plSurface/hsGMaterial.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plSurface/hsGMaterial.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plSurface/plGrassShaderMod.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plSurface/plGrassShaderMod.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plSurface/plLayer.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plSurface/plLayer.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plSurface/plLayerAnimation.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plSurface/plLayerAnimation.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plSurface/plLayerDepth.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plSurface/plLayerDepth.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plSurface/plLayerInterface.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plSurface/plLayerInterface.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plSurface/plLayerMultiply.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plSurface/plLayerMultiply.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plSurface/plLayerOr.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plSurface/plLayerOr.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plSurface/plLayerShadowBase.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plSurface/plLayerShadowBase.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plSurface/plLayerWrapper.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plSurface/plLayerWrapper.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plSurface/plShader.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plSurface/plShader.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plSurface/plShaderTable.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plSurface/plShaderTable.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plSurface/plSurfaceCreatable.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plSurface/ps_BiasNormals.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plSurface/ps_CaddAAdd.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plSurface/ps_CaddAMult.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plSurface/ps_CaddAbase.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plSurface/ps_CalphaAMult.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plSurface/ps_CalphaAadd.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plSurface/ps_CalphaAbase.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plSurface/ps_CbaseAbase.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plSurface/ps_CmultAAdd.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plSurface/ps_CmultAMult.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plSurface/ps_CmultAbase.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plSurface/ps_CompCosines.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plSurface/ps_GrassShader.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plSurface/ps_MoreCosines.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plSurface/ps_ShoreLeave6.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plSurface/ps_WaveDecEnv.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plSurface/ps_WaveFixed.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plSurface/ps_WaveGraph.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plSurface/ps_WaveGrid.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plSurface/ps_WaveRip.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plSurface/vs_BiasNormals.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plSurface/vs_CompCosines.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plSurface/vs_GrassShader.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plSurface/vs_ShoreLeave6.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plSurface/vs_ShoreLeave7.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plSurface/vs_WaveDec1Lay.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plSurface/vs_WaveDec1Lay_7.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plSurface/vs_WaveDec2Lay11.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plSurface/vs_WaveDec2Lay11_7.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plSurface/vs_WaveDec2Lay12.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plSurface/vs_WaveDec2Lay12_7.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plSurface/vs_WaveDecEnv.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plSurface/vs_WaveDecEnv_7.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plSurface/vs_WaveFixedFin6.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plSurface/vs_WaveFixedFin7.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plSurface/vs_WaveGraph2.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plSurface/vs_WaveGridFin.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plSurface/vs_WaveRip.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plSurface/vs_WaveRip7.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plTransform/CMakeLists.txt (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plTransform/hsAffineParts.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plTransform/hsAffineParts.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plTransform/hsEuler.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plTransform/hsEuler.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plTransform/mat_decomp.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plTransform/mat_decomp.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plTransform/notes.txt (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plUUID/CMakeLists.txt (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plUUID/plUUID.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plUUID/plUUID.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plUUID/plUUID_Unix.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plUUID/plUUID_Win32.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plUnifiedTime/CMakeLists.txt (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plUnifiedTime/plClientUnifiedTime.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plUnifiedTime/plClientUnifiedTime.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plUnifiedTime/plTimeSpan.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plUnifiedTime/plTimeSpan.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plUnifiedTime/plUnifiedTime.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plUnifiedTime/plUnifiedTime.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plUnifiedTime/plUnifiedTimeCreatable.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plVault/CMakeLists.txt (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plVault/Intern.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plVault/Pch.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plVault/plAgeInfoSource.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plVault/plDniCoordinateInfo.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plVault/plDniCoordinateInfo.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plVault/plVault.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plVault/plVault.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plVault/plVaultClientApi.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plVault/plVaultClientApi.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plVault/plVaultConstants.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plVault/plVaultConstants.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plVault/plVaultCreatable.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plVault/plVaultNode.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plVault/plVaultNode.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plVault/plVaultNodeAccess.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plVault/plVaultNodeAccess.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plWinStrBlock/strblock.c (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plWinStrBlock/strblock.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plWndCtrls/basewnd.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plWndCtrls/basewnd.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plWndCtrls/plButton.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plWndCtrls/plCheckBox.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plWndCtrls/plComboBox.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plWndCtrls/plControl.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plWndCtrls/plDialog.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plWndCtrls/plEdit.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plWndCtrls/plLabel.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plWndCtrls/plListBox.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plWndCtrls/plProgressBar.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plWndCtrls/plRadioButton.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plWndCtrls/plStatusBar.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plWndCtrls/plTrackBar.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plWndCtrls/plWindow.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plWndCtrls/plWndCtrls.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plWndCtrls/plWndCtrls.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plWndCtrls/webhost.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PubUtilLib/plWndCtrls/webhost.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PythonLib/Cypython/PC/placeholder.txt (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PythonLib/Cypython/placeholder.txt (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PythonLib/pyNetClientComm/PythonLib/placeholder.txt (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PythonLib/pyNetClientComm/pyNetClientComm.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PythonLib/pyNetClientComm/pyNetClientComm.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PythonLib/pyNetClientComm/pyNetClientCommGlue.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PythonLib/pyNetClientGame/pyNetClientGame.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PythonLib/pyNetClientGame/pyNetClientGame.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PythonLib/pyPlasma/creatables.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PythonLib/pyPlasma/dllmain.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PythonLib/pyPlasma/pyPlasmaTest.py (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PythonLib/pyPloticus/dllmain.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PythonLib/pyPloticus/pyPloticus.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PythonLib/pyPloticus/pyPloticus.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PythonLib/pyVault/pyVNodeMgr.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PythonLib/pyVault/pyVNodeMgr.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Plasma/PythonLib/pyVault/pyVNodeMgrGlue.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/CheckFolderVar/CheckFolderVar.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxAss/ValdezInterface.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxComponent/BipedKiller.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxComponent/ComponentDummies.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxComponent/WavFileStructs.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxComponent/icon1.ico (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxComponent/pfGUISkinComp.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxComponent/pfGUISkinComp.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxComponent/plAGComponents.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxComponent/plActivatorBaseComponent.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxComponent/plActivatorBaseComponent.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxComponent/plActivatorComponent.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxComponent/plActivatorComponent.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxComponent/plAnimCompProc.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxComponent/plAnimCompProc.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxComponent/plAnimComponent.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxComponent/plAnimComponent.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxComponent/plAnimEventComponent.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxComponent/plAnimEventComponent.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxComponent/plAnimObjInterface.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxComponent/plAudioComponents.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxComponent/plAudioComponents.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxComponent/plAutoComponent.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxComponent/plAutoUIBase.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxComponent/plAutoUIBase.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxComponent/plAutoUIBlock.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxComponent/plAutoUIBlock.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxComponent/plAutoUIComp.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxComponent/plAutoUIComp.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxComponent/plAutoUIParams.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxComponent/plAutoUIParams.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxComponent/plAvatarComponent.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxComponent/plAvatarComponent.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxComponent/plBehavioralComponents.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxComponent/plBehavioralComponents.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxComponent/plBipedKiller.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxComponent/plBlowComponent.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxComponent/plBlowComponent.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxComponent/plCAnimParamBlock.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxComponent/plCAnimParamBlock.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxComponent/plCameraComponent.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxComponent/plCameraComponent.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxComponent/plCameraComponents.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxComponent/plCameraComponents.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxComponent/plClickDragComponent.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxComponent/plClickDragComponent.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxComponent/plClickableComponent.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxComponent/plClickableComponent.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxComponent/plClimbComponent.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxComponent/plClimbComponent.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxComponent/plClothingComponent.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxComponent/plClothingComponent.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxComponent/plClusterComponent.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxComponent/plClusterComponent.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxComponent/plComponent.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxComponent/plComponent.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxComponent/plComponent.rc (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxComponent/plComponentBase.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxComponent/plComponentBase.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxComponent/plComponentExt.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxComponent/plComponentMgr.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxComponent/plComponentMgr.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxComponent/plComponentProcBase.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxComponent/plComponentReg.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxComponent/plComponentTools.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxComponent/plComponentTools.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxComponent/plDicer.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxComponent/plDicer.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxComponent/plDistribComponent.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxComponent/plDistribComponent.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxComponent/plDistribComponent_old.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxComponent/plDistribComponent_old.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxComponent/plExcludeRegionComponent.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxComponent/plExcludeRegionComponent.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxComponent/plFlexibilityComponent.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxComponent/plFootPrintComponent.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxComponent/plFootstepComponent.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxComponent/plFootstepComponent.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxComponent/plGUICompClassIDs.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxComponent/plGUIComponents.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxComponent/plGUIComponents.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxComponent/plGrassComponent.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxComponent/plGrassComponent.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxComponent/plIgnoreComponent.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxComponent/plImpactGadgetComponent.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxComponent/plImpactGadgetComponent.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxComponent/plInventoryObjComponent.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxComponent/plInventoryObjComponent.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxComponent/plLODFadeComponent.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxComponent/plLODFadeComponent.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxComponent/plLightGrpComponent.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxComponent/plLightGrpComponent.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxComponent/plLightMapComponent.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxComponent/plLightMapComponent.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxComponent/plLineFollowComp.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxComponent/plMaxAnimUtils.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxComponent/plMaxAnimUtils.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxComponent/plMaxWaveUtils.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxComponent/plMaxWaveUtils.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxComponent/plMiscComponents.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxComponent/plMiscComponents.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxComponent/plMorphSeqComp.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxComponent/plMultistageBehComponent.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxComponent/plMultistageBehComponent.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxComponent/plMultistageStage.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxComponent/plMultistageStage.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxComponent/plNPCSpawnComp.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxComponent/plNPCSpawnComp.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxComponent/plNavigableComponents.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxComponent/plNavigableComponents.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxComponent/plNoteTrackDlgComp.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxComponent/plNoteTrackDlgComp.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxComponent/plNotetrackAnim.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxComponent/plNotetrackAnim.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxComponent/plNotetrackDlg.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxComponent/plNotetrackDlg.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxComponent/plObjectFlockerComponent.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxComponent/plObjectFlockerComponent.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxComponent/plOneShotComponent.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxComponent/plOneShotComponent.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxComponent/plParticleComponents.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxComponent/plParticleComponents.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxComponent/plPhysConstraintComponents.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxComponent/plPhysicalComponents.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxComponent/plPhysicalComponents.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxComponent/plPhysicsGroups.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxComponent/plPickLocalizationDlg.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxComponent/plPickLocalizationDlg.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxComponent/plPickMaterialMap.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxComponent/plPickMaterialMap.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxComponent/plPickNode.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxComponent/plPickNode.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxComponent/plPickNodeBase.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxComponent/plPickNodeBase.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxComponent/plPickNodeComp.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxComponent/plPythonFileComponent.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxComponent/plPythonFileComponent.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxComponent/plRepComponent.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxComponent/plResponderAnim.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxComponent/plResponderAnim.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxComponent/plResponderCmd.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxComponent/plResponderComponent.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxComponent/plResponderComponent.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxComponent/plResponderComponentPriv.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxComponent/plResponderGetComp.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxComponent/plResponderGetComp.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxComponent/plResponderLink.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxComponent/plResponderLink.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxComponent/plResponderMtl.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxComponent/plResponderMtl.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxComponent/plResponderWait.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxComponent/plResponderWait.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxComponent/plSeekPoint.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxComponent/plShadowComponents.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxComponent/plShadowComponents.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxComponent/plSmoothComponent.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxComponent/plSoftVolumeComponent.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxComponent/plSoftVolumeComponent.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxComponent/plTemplateComponent.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxComponent/plTypesComponents.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxComponent/plVolumeGadgetComponent.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxComponent/plVolumeGadgetComponent.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxComponent/plWaterComponent.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxComponent/plWaterComponent.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxComponent/plXImposter.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxComponent/plXImposter.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxComponent/resource.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxComponent/zoomin1.ico (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxConvert/StringTokenizer.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxConvert/StringTokenizer.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxConvert/UserPropMgr.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxConvert/UserPropMgr.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxConvert/hsControlConverter.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxConvert/hsControlConverter.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxConvert/hsConverterUtils.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxConvert/hsConverterUtils.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxConvert/hsMaterialConverter.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxConvert/hsMaterialConverter.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxConvert/hsMaxLayerBase.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxConvert/hsVertexShader.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxConvert/hsVertexShader.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxConvert/plBitmapCreator.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxConvert/plBitmapCreator.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxConvert/plClusterUtil.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxConvert/plClusterUtil.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxConvert/plConvert.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxConvert/plConvert.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxConvert/plDistTree.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxConvert/plDistTree.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxConvert/plDistributor.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxConvert/plDistributor.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxConvert/plLayerConverter.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxConvert/plLayerConverter.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxConvert/plLightMapGen.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxConvert/plLightMapGen.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxConvert/plMaxLightContext.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxConvert/plMeshConverter.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxConvert/plMeshConverter.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxConvert/plRenderGlobalContext.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxConvert/plRenderGlobalContext.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxConvert/plRenderInstance.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxConvert/plRenderInstance.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxExport/SimpleExport.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxExport/SimpleExport.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxExport/plErrorMsg.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxExport/plErrorMsg.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxExport/plExportDlg.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxExport/plExportDlg.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxExport/plExportErrorMsg.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxExport/plExportErrorMsg.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxExport/plExportLogErrorMsg.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxExport/plExportLogErrorMsg.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxExport/plExportProgressBar.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxExport/plExportProgressBar.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxExport/plProgressBar.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxMain/GlobalUtility.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxMain/GlobalUtility.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxMain/MaxAllocDll.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxMain/MaxAllocDll.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxMain/SimpleExport.rc (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxMain/indexes.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxMain/main.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxMain/main.def (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxMain/plActionTableMgr.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxMain/plActionTableMgr.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxMain/plAgeDescInterface.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxMain/plAgeDescInterface.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxMain/plCommonObjLib.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxMain/plCommonObjLib.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxMain/plComponentDlg.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxMain/plComponentDlg.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxMain/plComponentPanel.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxMain/plComponentPanel.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxMain/plGetLocationDlg.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxMain/plGetLocationDlg.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxMain/plMaxAccelerators.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxMain/plMaxAccelerators.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxMain/plMaxCFGFile.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxMain/plMaxCFGFile.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxMain/plMaxMenu.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxMain/plMaxMenu.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxMain/plMaxMeshExtractor.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxMain/plMaxMeshExtractor.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxMain/plMaxNode.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxMain/plMaxNode.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxMain/plMaxNodeBase.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxMain/plMaxNodeBase.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxMain/plMaxNodeData.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxMain/plMaxUtils.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxMain/plMaxUtils.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxMain/plMtlCollector.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxMain/plMtlCollector.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxMain/plNodeLock.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxMain/plNodeLock.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxMain/plPhysXCooking.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxMain/plPhysXCooking.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxMain/plPhysicalProps.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxMain/plPhysicalProps.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxMain/plPlasmaRefMsgs.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxMain/plPluginResManager.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxMain/plPluginResManager.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxMain/plPythonMgr.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxMain/plPythonMgr.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxMain/plResCollector.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxMain/plResCollector.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxMain/plResetXform.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxMain/plResetXform.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxMain/plSaveSelected.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxMain/plSaveSelected.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxMain/plTextureExportLog.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxMain/plTextureExportLog.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxMain/plTextureSearch.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxMain/plTextureSearch.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxMain/resource.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxMtlUpdate/DllEntry.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxMtlUpdate/OldMat/hsMaxLayer.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxMtlUpdate/OldMat/hsMaxLayerBase.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxMtlUpdate/plMaterialUpdate.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxMtlUpdate/plMaterialUpdate.def (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxMtlUpdate/plMaterialUpdate.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxMtlUpdate/plMaterialUpdate.rc (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxMtlUpdate/resource.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxPlasmaLights/DLLEntry.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxPlasmaLights/plRTLightBaseAnimDlgProc.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxPlasmaLights/plRTLightBaseAnimPBDec.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxPlasmaLights/plRTLights.rc (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxPlasmaLights/plRTObjLightDesc.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxPlasmaLights/plRTPlasmaLights.def (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxPlasmaLights/plRTProjDirLight.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxPlasmaLights/plRTProjDirLight.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxPlasmaLights/plRTProjDirLightClassDesc.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxPlasmaLights/plRTProjDirLightPBDec.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxPlasmaLights/plRealTimeLightBase.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxPlasmaLights/plRealTimeLightBase.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxPlasmaLights/plRealTimeLights.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxPlasmaLights/plRealTimeLights.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxPlasmaLights/plRealTimeLightsPBDec.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxPlasmaLights/prim.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxPlasmaLights/resource.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxPlasmaLights/target.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxPlasmaMtls/Layers/plAngleAttenLayer.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxPlasmaMtls/Layers/plAngleAttenLayer.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxPlasmaMtls/Layers/plDynamicEnvLayer.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxPlasmaMtls/Layers/plDynamicEnvLayer.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxPlasmaMtls/Layers/plDynamicEnvLayerBitmapPB.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxPlasmaMtls/Layers/plDynamicTextLayer.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxPlasmaMtls/Layers/plDynamicTextLayer.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxPlasmaMtls/Layers/plDynamicTextLayerBitmapPB.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxPlasmaMtls/Layers/plLayerTex.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxPlasmaMtls/Layers/plLayerTex.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxPlasmaMtls/Layers/plLayerTexBasicPB.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxPlasmaMtls/Layers/plLayerTexBasicPB.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxPlasmaMtls/Layers/plLayerTexBitmapPB.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxPlasmaMtls/Layers/plLayerTexBitmapPB.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxPlasmaMtls/Layers/plMAXCameraLayer.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxPlasmaMtls/Layers/plMAXCameraLayer.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxPlasmaMtls/Layers/plPlasmaMAXLayer.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxPlasmaMtls/Layers/plPlasmaMAXLayer.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxPlasmaMtls/Layers/plStaticEnvLayer.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxPlasmaMtls/Layers/plStaticEnvLayer.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxPlasmaMtls/Layers/plStaticEnvLayerBitmapPB.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxPlasmaMtls/Layers/plStaticEnvLayerBitmapPB.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxPlasmaMtls/Materials/plAnimStealthConvert.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxPlasmaMtls/Materials/plAnimStealthNode.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxPlasmaMtls/Materials/plAnimStealthNode.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxPlasmaMtls/Materials/plBumpMtl.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxPlasmaMtls/Materials/plBumpMtl.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxPlasmaMtls/Materials/plBumpMtlAnimPB.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxPlasmaMtls/Materials/plBumpMtlAnimPBDec.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxPlasmaMtls/Materials/plBumpMtlBasicPB.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxPlasmaMtls/Materials/plBumpMtlBasicPBDec.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxPlasmaMtls/Materials/plClothingMtl.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxPlasmaMtls/Materials/plClothingMtl.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxPlasmaMtls/Materials/plClothingMtlPBDec.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxPlasmaMtls/Materials/plCompositeMtl.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxPlasmaMtls/Materials/plCompositeMtl.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxPlasmaMtls/Materials/plCompositeMtlDlg.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxPlasmaMtls/Materials/plCompositeMtlDlg.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxPlasmaMtls/Materials/plCompositeMtlPB.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxPlasmaMtls/Materials/plCompositeMtlPBDec.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxPlasmaMtls/Materials/plDecalMtl.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxPlasmaMtls/Materials/plDecalMtl.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxPlasmaMtls/Materials/plDecalMtlAdvPB.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxPlasmaMtls/Materials/plDecalMtlAdvPBDec.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxPlasmaMtls/Materials/plDecalMtlAnimPB.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxPlasmaMtls/Materials/plDecalMtlAnimPBDec.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxPlasmaMtls/Materials/plDecalMtlBasicPB.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxPlasmaMtls/Materials/plDecalMtlBasicPBDec.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxPlasmaMtls/Materials/plDecalMtlLayersPB.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxPlasmaMtls/Materials/plDecalMtlLayersPBDec.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxPlasmaMtls/Materials/plMultipassMtl.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxPlasmaMtls/Materials/plMultipassMtl.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxPlasmaMtls/Materials/plMultipassMtlDlg.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxPlasmaMtls/Materials/plMultipassMtlDlg.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxPlasmaMtls/Materials/plMultipassMtlPB.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxPlasmaMtls/Materials/plMultipassMtlPB.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxPlasmaMtls/Materials/plNoteTrackWatcher.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxPlasmaMtls/Materials/plNoteTrackWatcher.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxPlasmaMtls/Materials/plParticleMtl.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxPlasmaMtls/Materials/plParticleMtl.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxPlasmaMtls/Materials/plParticleMtlPBDec.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxPlasmaMtls/Materials/plPassAnimDlgProc.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxPlasmaMtls/Materials/plPassAnimDlgProc.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxPlasmaMtls/Materials/plPassBaseParamIDs.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxPlasmaMtls/Materials/plPassMtl.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxPlasmaMtls/Materials/plPassMtl.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxPlasmaMtls/Materials/plPassMtlAdvPB.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxPlasmaMtls/Materials/plPassMtlAdvPBDec.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxPlasmaMtls/Materials/plPassMtlAnimPB.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxPlasmaMtls/Materials/plPassMtlAnimPBDec.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxPlasmaMtls/Materials/plPassMtlBase.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxPlasmaMtls/Materials/plPassMtlBase.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxPlasmaMtls/Materials/plPassMtlBasicPB.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxPlasmaMtls/Materials/plPassMtlBasicPBDec.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxPlasmaMtls/Materials/plPassMtlLayersPB.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxPlasmaMtls/Materials/plPassMtlLayersPBDec.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxPlasmaMtls/MaxPlasmaMtls.rc (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxPlasmaMtls/Shaders.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxPlasmaMtls/Shaders.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxPlasmaMtls/plBMSampler.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxPlasmaMtls/plBMSampler.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxPlasmaMtls/plDetailCurveCtrl.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxPlasmaMtls/plDetailCurveCtrl.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxPlasmaMtls/plDrawCurve.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxPlasmaMtls/plMaterialRefMsg.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxPlasmaMtls/plMtlImport.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxPlasmaMtls/plMtlImport.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxPlasmaMtls/res/detailBgnd8bit.bmp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxPlasmaMtls/res/dmtlbut.bmp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxPlasmaMtls/res/dmtlmsk.bmp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxPlasmaMtls/resource.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxSceneViewer/SceneSync.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxSceneViewer/SceneSync.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxSceneViewer/SceneViewer.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxSceneViewer/SceneViewer.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxSceneViewer/SceneWatcher.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxSceneViewer/SceneWatcher.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxSceneViewer/plKeyRefSort.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxSceneViewer/plKeyRefSort.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxSceneViewer/plMaxFileData.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxSceneViewer/plMaxFileData.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxSceneViewer/plPluginApp.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxSceneViewer/plPluginApp.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxSceneViewer/plPluginClient.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/MaxSceneViewer/plPluginClient.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/Migration/Migration.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/Migration/Migration.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/Migration/Migration.ico (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/Migration/Migration.rc (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/Migration/MigrationTask.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/Migration/MigrationTask.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/Migration/OptionalDialog.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/Migration/OptionalDialog.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/Migration/resource.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/Migration/small.ico (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/plDatMerger/plAllCreatables.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/plDatMerger/plDatMerger.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/plDatMerger/plRawKeyedObject.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/plDatMerger/plRawKeyedObject.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/plDatMerger/plRawPageAccessor.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/plDatMerger/plRawPageAccessor.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/plDatMerger/plRawResManager.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/plDatMerger/plRawResManager.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/plFontConverter/hsCodecManagerStub.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/plFontConverter/plFontConverter.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/plFontConverter/plFontConverterProc.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/plFontConverter/plFontFreeType.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/plFontConverter/plFontFreeType.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/plFontConverter/res/icon1.ico (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/plFontConverter/res/plFontConverter.rc (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/plFontConverter/res/resource.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/plResBrowser/plResBrowser.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/plResBrowser/plResBrowser.dsp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/plResBrowser/plResBrowser.vcproj (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/plResBrowser/plResBrowserWndProc.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/plResBrowser/plResTreeView.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/plResBrowser/plResTreeView.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/plResBrowser/plWinRegistryTools.cpp (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/plResBrowser/plWinRegistryTools.h (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/plResBrowser/res/dataicon.ico (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/plResBrowser/res/icon1.ico (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/plResBrowser/res/icon2.ico (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/plResBrowser/res/indexico.ico (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/plResBrowser/res/mergedda.ico (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/plResBrowser/res/mergedin.ico (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/plResBrowser/res/plResBrowser.rc (100%) rename {MOULOpenSourceClientPlugin/Plasma20/Sources => Sources}/Tools/plResBrowser/res/resource.h (100%) delete mode 100644 build-allclient-solution.bat delete mode 100644 clean-allclient-solution.bat rename {MOULOpenSourceClientPlugin/Plasma20/cmake => cmake}/FindBink.cmake (100%) rename {MOULOpenSourceClientPlugin/Plasma20/cmake => cmake}/FindDirectX.cmake (100%) rename {MOULOpenSourceClientPlugin/Plasma20/cmake => cmake}/FindOgg.cmake (100%) rename {MOULOpenSourceClientPlugin/Plasma20/cmake => cmake}/FindPhysX.cmake (100%) rename {MOULOpenSourceClientPlugin/Plasma20/cmake => cmake}/FindSpeex.cmake (100%) rename {MOULOpenSourceClientPlugin/Plasma20/cmake => cmake}/FindVorbis.cmake (100%) diff --git a/MOULOpenSourceClientPlugin/Plasma20/CMakeLists.txt b/CMakeLists.txt similarity index 100% rename from MOULOpenSourceClientPlugin/Plasma20/CMakeLists.txt rename to CMakeLists.txt diff --git a/MOULOpenSourceClientPlugin/Plasma20/Docs/Distributor.doc b/Docs/Distributor.doc similarity index 100% rename from MOULOpenSourceClientPlugin/Plasma20/Docs/Distributor.doc rename to Docs/Distributor.doc diff --git a/MOULOpenSourceClientPlugin/Plasma20/Docs/ReleaseNotes/ReleaseNotes.txt b/Docs/ReleaseNotes/ReleaseNotes.txt similarity index 100% rename from MOULOpenSourceClientPlugin/Plasma20/Docs/ReleaseNotes/ReleaseNotes.txt rename to Docs/ReleaseNotes/ReleaseNotes.txt diff --git a/MOULOpenSourceClientPlugin/Plasma20/Docs/Resource Manager.doc b/Docs/Resource Manager.doc similarity index 100% rename from MOULOpenSourceClientPlugin/Plasma20/Docs/Resource Manager.doc rename to Docs/Resource Manager.doc diff --git a/MOULOpenSourceClientPlugin/Plasma20/Docs/sound cones.htm b/Docs/sound cones.htm similarity index 100% rename from MOULOpenSourceClientPlugin/Plasma20/Docs/sound cones.htm rename to Docs/sound cones.htm diff --git a/MOULOpenSourceClientPlugin/LICENSE.txt b/MOULOpenSourceClientPlugin/LICENSE.txt deleted file mode 100644 index 92bc3d8d..00000000 --- a/MOULOpenSourceClientPlugin/LICENSE.txt +++ /dev/null @@ -1,622 +0,0 @@ - GNU GENERAL PUBLIC LICENSE - Version 3, 29 June 2007 - - Copyright (C) 2007 Free Software Foundation, Inc. - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - Preamble - - The GNU General Public License is a free, copyleft license for -software and other kinds of works. - - The licenses for most software and other practical works are designed -to take away your freedom to share and change the works. By contrast, -the GNU General Public License is intended to guarantee your freedom to -share and change all versions of a program--to make sure it remains free -software for all its users. We, the Free Software Foundation, use the -GNU General Public License for most of our software; it applies also to -any other work released this way by its authors. You can apply it to -your programs, too. - - When we speak of free software, we are referring to freedom, not -price. Our General Public Licenses are designed to make sure that you -have the freedom to distribute copies of free software (and charge for -them if you wish), that you receive source code or can get it if you -want it, that you can change the software or use pieces of it in new -free programs, and that you know you can do these things. - - To protect your rights, we need to prevent others from denying you -these rights or asking you to surrender the rights. Therefore, you have -certain responsibilities if you distribute copies of the software, or if -you modify it: responsibilities to respect the freedom of others. - - For example, if you distribute copies of such a program, whether -gratis or for a fee, you must pass on to the recipients the same -freedoms that you received. You must make sure that they, too, receive -or can get the source code. And you must show them these terms so they -know their rights. - - Developers that use the GNU GPL protect your rights with two steps: -(1) assert copyright on the software, and (2) offer you this License -giving you legal permission to copy, distribute and/or modify it. - - For the developers' and authors' protection, the GPL clearly explains -that there is no warranty for this free software. For both users' and -authors' sake, the GPL requires that modified versions be marked as -changed, so that their problems will not be attributed erroneously to -authors of previous versions. - - Some devices are designed to deny users access to install or run -modified versions of the software inside them, although the manufacturer -can do so. This is fundamentally incompatible with the aim of -protecting users' freedom to change the software. The systematic -pattern of such abuse occurs in the area of products for individuals to -use, which is precisely where it is most unacceptable. Therefore, we -have designed this version of the GPL to prohibit the practice for those -products. If such problems arise substantially in other domains, we -stand ready to extend this provision to those domains in future versions -of the GPL, as needed to protect the freedom of users. - - Finally, every program is threatened constantly by software patents. -States should not allow patents to restrict development and use of -software on general-purpose computers, but in those that do, we wish to -avoid the special danger that patents applied to a free program could -make it effectively proprietary. To prevent this, the GPL assures that -patents cannot be used to render the program non-free. - - The precise terms and conditions for copying, distribution and -modification follow. - - TERMS AND CONDITIONS - - 0. Definitions. - - "This License" refers to version 3 of the GNU General Public License. - - "Copyright" also means copyright-like laws that apply to other kinds of -works, such as semiconductor masks. - - "The Program" refers to any copyrightable work licensed under this -License. Each licensee is addressed as "you". "Licensees" and -"recipients" may be individuals or organizations. - - To "modify" a work means to copy from or adapt all or part of the work -in a fashion requiring copyright permission, other than the making of an -exact copy. The resulting work is called a "modified version" of the -earlier work or a work "based on" the earlier work. - - A "covered work" means either the unmodified Program or a work based -on the Program. - - To "propagate" a work means to do anything with it that, without -permission, would make you directly or secondarily liable for -infringement under applicable copyright law, except executing it on a -computer or modifying a private copy. Propagation includes copying, -distribution (with or without modification), making available to the -public, and in some countries other activities as well. - - To "convey" a work means any kind of propagation that enables other -parties to make or receive copies. Mere interaction with a user through -a computer network, with no transfer of a copy, is not conveying. - - An interactive user interface displays "Appropriate Legal Notices" -to the extent that it includes a convenient and prominently visible -feature that (1) displays an appropriate copyright notice, and (2) -tells the user that there is no warranty for the work (except to the -extent that warranties are provided), that licensees may convey the -work under this License, and how to view a copy of this License. If -the interface presents a list of user commands or options, such as a -menu, a prominent item in the list meets this criterion. - - 1. Source Code. - - The "source code" for a work means the preferred form of the work -for making modifications to it. "Object code" means any non-source -form of a work. - - A "Standard Interface" means an interface that either is an official -standard defined by a recognized standards body, or, in the case of -interfaces specified for a particular programming language, one that -is widely used among developers working in that language. - - The "System Libraries" of an executable work include anything, other -than the work as a whole, that (a) is included in the normal form of -packaging a Major Component, but which is not part of that Major -Component, and (b) serves only to enable use of the work with that -Major Component, or to implement a Standard Interface for which an -implementation is available to the public in source code form. A -"Major Component", in this context, means a major essential component -(kernel, window system, and so on) of the specific operating system -(if any) on which the executable work runs, or a compiler used to -produce the work, or an object code interpreter used to run it. - - The "Corresponding Source" for a work in object code form means all -the source code needed to generate, install, and (for an executable -work) run the object code and to modify the work, including scripts to -control those activities. However, it does not include the work's -System Libraries, or general-purpose tools or generally available free -programs which are used unmodified in performing those activities but -which are not part of the work. For example, Corresponding Source -includes interface definition files associated with source files for -the work, and the source code for shared libraries and dynamically -linked subprograms that the work is specifically designed to require, -such as by intimate data communication or control flow between those -subprograms and other parts of the work. - - The Corresponding Source need not include anything that users -can regenerate automatically from other parts of the Corresponding -Source. - - The Corresponding Source for a work in source code form is that -same work. - - 2. Basic Permissions. - - All rights granted under this License are granted for the term of -copyright on the Program, and are irrevocable provided the stated -conditions are met. This License explicitly affirms your unlimited -permission to run the unmodified Program. The output from running a -covered work is covered by this License only if the output, given its -content, constitutes a covered work. This License acknowledges your -rights of fair use or other equivalent, as provided by copyright law. - - You may make, run and propagate covered works that you do not -convey, without conditions so long as your license otherwise remains -in force. You may convey covered works to others for the sole purpose -of having them make modifications exclusively for you, or provide you -with facilities for running those works, provided that you comply with -the terms of this License in conveying all material for which you do -not control copyright. Those thus making or running the covered works -for you must do so exclusively on your behalf, under your direction -and control, on terms that prohibit them from making any copies of -your copyrighted material outside their relationship with you. - - Conveying under any other circumstances is permitted solely under -the conditions stated below. Sublicensing is not allowed; section 10 -makes it unnecessary. - - 3. Protecting Users' Legal Rights From Anti-Circumvention Law. - - No covered work shall be deemed part of an effective technological -measure under any applicable law fulfilling obligations under article -11 of the WIPO copyright treaty adopted on 20 December 1996, or -similar laws prohibiting or restricting circumvention of such -measures. - - When you convey a covered work, you waive any legal power to forbid -circumvention of technological measures to the extent such circumvention -is effected by exercising rights under this License with respect to -the covered work, and you disclaim any intention to limit operation or -modification of the work as a means of enforcing, against the work's -users, your or third parties' legal rights to forbid circumvention of -technological measures. - - 4. Conveying Verbatim Copies. - - You may convey verbatim copies of the Program's source code as you -receive it, in any medium, provided that you conspicuously and -appropriately publish on each copy an appropriate copyright notice; -keep intact all notices stating that this License and any -non-permissive terms added in accord with section 7 apply to the code; -keep intact all notices of the absence of any warranty; and give all -recipients a copy of this License along with the Program. - - You may charge any price or no price for each copy that you convey, -and you may offer support or warranty protection for a fee. - - 5. Conveying Modified Source Versions. - - You may convey a work based on the Program, or the modifications to -produce it from the Program, in the form of source code under the -terms of section 4, provided that you also meet all of these conditions: - - a) The work must carry prominent notices stating that you modified - it, and giving a relevant date. - - b) The work must carry prominent notices stating that it is - released under this License and any conditions added under section - 7. This requirement modifies the requirement in section 4 to - "keep intact all notices". - - c) You must license the entire work, as a whole, under this - License to anyone who comes into possession of a copy. This - License will therefore apply, along with any applicable section 7 - additional terms, to the whole of the work, and all its parts, - regardless of how they are packaged. This License gives no - permission to license the work in any other way, but it does not - invalidate such permission if you have separately received it. - - d) If the work has interactive user interfaces, each must display - Appropriate Legal Notices; however, if the Program has interactive - interfaces that do not display Appropriate Legal Notices, your - work need not make them do so. - - A compilation of a covered work with other separate and independent -works, which are not by their nature extensions of the covered work, -and which are not combined with it such as to form a larger program, -in or on a volume of a storage or distribution medium, is called an -"aggregate" if the compilation and its resulting copyright are not -used to limit the access or legal rights of the compilation's users -beyond what the individual works permit. Inclusion of a covered work -in an aggregate does not cause this License to apply to the other -parts of the aggregate. - - 6. Conveying Non-Source Forms. - - You may convey a covered work in object code form under the terms -of sections 4 and 5, provided that you also convey the -machine-readable Corresponding Source under the terms of this License, -in one of these ways: - - a) Convey the object code in, or embodied in, a physical product - (including a physical distribution medium), accompanied by the - Corresponding Source fixed on a durable physical medium - customarily used for software interchange. - - b) Convey the object code in, or embodied in, a physical product - (including a physical distribution medium), accompanied by a - written offer, valid for at least three years and valid for as - long as you offer spare parts or customer support for that product - model, to give anyone who possesses the object code either (1) a - copy of the Corresponding Source for all the software in the - product that is covered by this License, on a durable physical - medium customarily used for software interchange, for a price no - more than your reasonable cost of physically performing this - conveying of source, or (2) access to copy the - Corresponding Source from a network server at no charge. - - c) Convey individual copies of the object code with a copy of the - written offer to provide the Corresponding Source. This - alternative is allowed only occasionally and noncommercially, and - only if you received the object code with such an offer, in accord - with subsection 6b. - - d) Convey the object code by offering access from a designated - place (gratis or for a charge), and offer equivalent access to the - Corresponding Source in the same way through the same place at no - further charge. You need not require recipients to copy the - Corresponding Source along with the object code. If the place to - copy the object code is a network server, the Corresponding Source - may be on a different server (operated by you or a third party) - that supports equivalent copying facilities, provided you maintain - clear directions next to the object code saying where to find the - Corresponding Source. Regardless of what server hosts the - Corresponding Source, you remain obligated to ensure that it is - available for as long as needed to satisfy these requirements. - - e) Convey the object code using peer-to-peer transmission, provided - you inform other peers where the object code and Corresponding - Source of the work are being offered to the general public at no - charge under subsection 6d. - - A separable portion of the object code, whose source code is excluded -from the Corresponding Source as a System Library, need not be -included in conveying the object code work. - - A "User Product" is either (1) a "consumer product", which means any -tangible personal property which is normally used for personal, family, -or household purposes, or (2) anything designed or sold for incorporation -into a dwelling. In determining whether a product is a consumer product, -doubtful cases shall be resolved in favor of coverage. For a particular -product received by a particular user, "normally used" refers to a -typical or common use of that class of product, regardless of the status -of the particular user or of the way in which the particular user -actually uses, or expects or is expected to use, the product. A product -is a consumer product regardless of whether the product has substantial -commercial, industrial or non-consumer uses, unless such uses represent -the only significant mode of use of the product. - - "Installation Information" for a User Product means any methods, -procedures, authorization keys, or other information required to install -and execute modified versions of a covered work in that User Product from -a modified version of its Corresponding Source. The information must -suffice to ensure that the continued functioning of the modified object -code is in no case prevented or interfered with solely because -modification has been made. - - If you convey an object code work under this section in, or with, or -specifically for use in, a User Product, and the conveying occurs as -part of a transaction in which the right of possession and use of the -User Product is transferred to the recipient in perpetuity or for a -fixed term (regardless of how the transaction is characterized), the -Corresponding Source conveyed under this section must be accompanied -by the Installation Information. But this requirement does not apply -if neither you nor any third party retains the ability to install -modified object code on the User Product (for example, the work has -been installed in ROM). - - The requirement to provide Installation Information does not include a -requirement to continue to provide support service, warranty, or updates -for a work that has been modified or installed by the recipient, or for -the User Product in which it has been modified or installed. Access to a -network may be denied when the modification itself materially and -adversely affects the operation of the network or violates the rules and -protocols for communication across the network. - - Corresponding Source conveyed, and Installation Information provided, -in accord with this section must be in a format that is publicly -documented (and with an implementation available to the public in -source code form), and must require no special password or key for -unpacking, reading or copying. - - 7. Additional Terms. - - "Additional permissions" are terms that supplement the terms of this -License by making exceptions from one or more of its conditions. -Additional permissions that are applicable to the entire Program shall -be treated as though they were included in this License, to the extent -that they are valid under applicable law. If additional permissions -apply only to part of the Program, that part may be used separately -under those permissions, but the entire Program remains governed by -this License without regard to the additional permissions. - - When you convey a copy of a covered work, you may at your option -remove any additional permissions from that copy, or from any part of -it. (Additional permissions may be written to require their own -removal in certain cases when you modify the work.) You may place -additional permissions on material, added by you to a covered work, -for which you have or can give appropriate copyright permission. - - Notwithstanding any other provision of this License, for material you -add to a covered work, you may (if authorized by the copyright holders of -that material) supplement the terms of this License with terms: - - a) Disclaiming warranty or limiting liability differently from the - terms of sections 15 and 16 of this License; or - - b) Requiring preservation of specified reasonable legal notices or - author attributions in that material or in the Appropriate Legal - Notices displayed by works containing it; or - - c) Prohibiting misrepresentation of the origin of that material, or - requiring that modified versions of such material be marked in - reasonable ways as different from the original version; or - - d) Limiting the use for publicity purposes of names of licensors or - authors of the material; or - - e) Declining to grant rights under trademark law for use of some - trade names, trademarks, or service marks; or - - f) Requiring indemnification of licensors and authors of that - material by anyone who conveys the material (or modified versions of - it) with contractual assumptions of liability to the recipient, for - any liability that these contractual assumptions directly impose on - those licensors and authors. - - All other non-permissive additional terms are considered "further -restrictions" within the meaning of section 10. If the Program as you -received it, or any part of it, contains a notice stating that it is -governed by this License along with a term that is a further -restriction, you may remove that term. If a license document contains -a further restriction but permits relicensing or conveying under this -License, you may add to a covered work material governed by the terms -of that license document, provided that the further restriction does -not survive such relicensing or conveying. - - If you add terms to a covered work in accord with this section, you -must place, in the relevant source files, a statement of the -additional terms that apply to those files, or a notice indicating -where to find the applicable terms. - - Additional terms, permissive or non-permissive, may be stated in the -form of a separately written license, or stated as exceptions; -the above requirements apply either way. - - 8. Termination. - - You may not propagate or modify a covered work except as expressly -provided under this License. Any attempt otherwise to propagate or -modify it is void, and will automatically terminate your rights under -this License (including any patent licenses granted under the third -paragraph of section 11). - - However, if you cease all violation of this License, then your -license from a particular copyright holder is reinstated (a) -provisionally, unless and until the copyright holder explicitly and -finally terminates your license, and (b) permanently, if the copyright -holder fails to notify you of the violation by some reasonable means -prior to 60 days after the cessation. - - Moreover, your license from a particular copyright holder is -reinstated permanently if the copyright holder notifies you of the -violation by some reasonable means, this is the first time you have -received notice of violation of this License (for any work) from that -copyright holder, and you cure the violation prior to 30 days after -your receipt of the notice. - - Termination of your rights under this section does not terminate the -licenses of parties who have received copies or rights from you under -this License. If your rights have been terminated and not permanently -reinstated, you do not qualify to receive new licenses for the same -material under section 10. - - 9. Acceptance Not Required for Having Copies. - - You are not required to accept this License in order to receive or -run a copy of the Program. Ancillary propagation of a covered work -occurring solely as a consequence of using peer-to-peer transmission -to receive a copy likewise does not require acceptance. However, -nothing other than this License grants you permission to propagate or -modify any covered work. These actions infringe copyright if you do -not accept this License. Therefore, by modifying or propagating a -covered work, you indicate your acceptance of this License to do so. - - 10. Automatic Licensing of Downstream Recipients. - - Each time you convey a covered work, the recipient automatically -receives a license from the original licensors, to run, modify and -propagate that work, subject to this License. You are not responsible -for enforcing compliance by third parties with this License. - - An "entity transaction" is a transaction transferring control of an -organization, or substantially all assets of one, or subdividing an -organization, or merging organizations. If propagation of a covered -work results from an entity transaction, each party to that -transaction who receives a copy of the work also receives whatever -licenses to the work the party's predecessor in interest had or could -give under the previous paragraph, plus a right to possession of the -Corresponding Source of the work from the predecessor in interest, if -the predecessor has it or can get it with reasonable efforts. - - You may not impose any further restrictions on the exercise of the -rights granted or affirmed under this License. For example, you may -not impose a license fee, royalty, or other charge for exercise of -rights granted under this License, and you may not initiate litigation -(including a cross-claim or counterclaim in a lawsuit) alleging that -any patent claim is infringed by making, using, selling, offering for -sale, or importing the Program or any portion of it. - - 11. Patents. - - A "contributor" is a copyright holder who authorizes use under this -License of the Program or a work on which the Program is based. The -work thus licensed is called the contributor's "contributor version". - - A contributor's "essential patent claims" are all patent claims -owned or controlled by the contributor, whether already acquired or -hereafter acquired, that would be infringed by some manner, permitted -by this License, of making, using, or selling its contributor version, -but do not include claims that would be infringed only as a -consequence of further modification of the contributor version. For -purposes of this definition, "control" includes the right to grant -patent sublicenses in a manner consistent with the requirements of -this License. - - Each contributor grants you a non-exclusive, worldwide, royalty-free -patent license under the contributor's essential patent claims, to -make, use, sell, offer for sale, import and otherwise run, modify and -propagate the contents of its contributor version. - - In the following three paragraphs, a "patent license" is any express -agreement or commitment, however denominated, not to enforce a patent -(such as an express permission to practice a patent or covenant not to -sue for patent infringement). To "grant" such a patent license to a -party means to make such an agreement or commitment not to enforce a -patent against the party. - - If you convey a covered work, knowingly relying on a patent license, -and the Corresponding Source of the work is not available for anyone -to copy, free of charge and under the terms of this License, through a -publicly available network server or other readily accessible means, -then you must either (1) cause the Corresponding Source to be so -available, or (2) arrange to deprive yourself of the benefit of the -patent license for this particular work, or (3) arrange, in a manner -consistent with the requirements of this License, to extend the patent -license to downstream recipients. "Knowingly relying" means you have -actual knowledge that, but for the patent license, your conveying the -covered work in a country, or your recipient's use of the covered work -in a country, would infringe one or more identifiable patents in that -country that you have reason to believe are valid. - - If, pursuant to or in connection with a single transaction or -arrangement, you convey, or propagate by procuring conveyance of, a -covered work, and grant a patent license to some of the parties -receiving the covered work authorizing them to use, propagate, modify -or convey a specific copy of the covered work, then the patent license -you grant is automatically extended to all recipients of the covered -work and works based on it. - - A patent license is "discriminatory" if it does not include within -the scope of its coverage, prohibits the exercise of, or is -conditioned on the non-exercise of one or more of the rights that are -specifically granted under this License. You may not convey a covered -work if you are a party to an arrangement with a third party that is -in the business of distributing software, under which you make payment -to the third party based on the extent of your activity of conveying -the work, and under which the third party grants, to any of the -parties who would receive the covered work from you, a discriminatory -patent license (a) in connection with copies of the covered work -conveyed by you (or copies made from those copies), or (b) primarily -for and in connection with specific products or compilations that -contain the covered work, unless you entered into that arrangement, -or that patent license was granted, prior to 28 March 2007. - - Nothing in this License shall be construed as excluding or limiting -any implied license or other defenses to infringement that may -otherwise be available to you under applicable patent law. - - 12. No Surrender of Others' Freedom. - - If conditions are imposed on you (whether by court order, agreement or -otherwise) that contradict the conditions of this License, they do not -excuse you from the conditions of this License. If you cannot convey a -covered work so as to satisfy simultaneously your obligations under this -License and any other pertinent obligations, then as a consequence you may -not convey it at all. For example, if you agree to terms that obligate you -to collect a royalty for further conveying from those to whom you convey -the Program, the only way you could satisfy both those terms and this -License would be to refrain entirely from conveying the Program. - - 13. Use with the GNU Affero General Public License. - - Notwithstanding any other provision of this License, you have -permission to link or combine any covered work with a work licensed -under version 3 of the GNU Affero General Public License into a single -combined work, and to convey the resulting work. The terms of this -License will continue to apply to the part which is the covered work, -but the special requirements of the GNU Affero General Public License, -section 13, concerning interaction through a network will apply to the -combination as such. - - 14. Revised Versions of this License. - - The Free Software Foundation may publish revised and/or new versions of -the GNU General Public License from time to time. Such new versions will -be similar in spirit to the present version, but may differ in detail to -address new problems or concerns. - - Each version is given a distinguishing version number. If the -Program specifies that a certain numbered version of the GNU General -Public License "or any later version" applies to it, you have the -option of following the terms and conditions either of that numbered -version or of any later version published by the Free Software -Foundation. If the Program does not specify a version number of the -GNU General Public License, you may choose any version ever published -by the Free Software Foundation. - - If the Program specifies that a proxy can decide which future -versions of the GNU General Public License can be used, that proxy's -public statement of acceptance of a version permanently authorizes you -to choose that version for the Program. - - Later license versions may give you additional or different -permissions. However, no additional obligations are imposed on any -author or copyright holder as a result of your choosing to follow a -later version. - - 15. Disclaimer of Warranty. - - THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY -APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT -HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY -OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, -THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM -IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF -ALL NECESSARY SERVICING, REPAIR OR CORRECTION. - - 16. Limitation of Liability. - - IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING -WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS -THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY -GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE -USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF -DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD -PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), -EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF -SUCH DAMAGES. - - 17. Interpretation of Sections 15 and 16. - - If the disclaimer of warranty and limitation of liability provided -above cannot be given local legal effect according to their terms, -reviewing courts shall apply local law that most closely approximates -an absolute waiver of all civil liability in connection with the -Program, unless a warranty or assumption of liability accompanies a -copy of the Program in return for a fee. - - END OF TERMS AND CONDITIONS - diff --git a/MOULOpenSourceClientPlugin/StaticSDKs/Win32/Bink/placeholder.txt b/MOULOpenSourceClientPlugin/StaticSDKs/Win32/Bink/placeholder.txt deleted file mode 100644 index 87c03db2..00000000 --- a/MOULOpenSourceClientPlugin/StaticSDKs/Win32/Bink/placeholder.txt +++ /dev/null @@ -1 +0,0 @@ -What do you see? An empty folder. \ No newline at end of file diff --git a/MOULOpenSourceClientPlugin/StaticSDKs/Win32/DX9.0c/placeholder.txt b/MOULOpenSourceClientPlugin/StaticSDKs/Win32/DX9.0c/placeholder.txt deleted file mode 100644 index 87c03db2..00000000 --- a/MOULOpenSourceClientPlugin/StaticSDKs/Win32/DX9.0c/placeholder.txt +++ /dev/null @@ -1 +0,0 @@ -What do you see? An empty folder. \ No newline at end of file diff --git a/MOULOpenSourceClientPlugin/StaticSDKs/Win32/EAX/placeholder.txt b/MOULOpenSourceClientPlugin/StaticSDKs/Win32/EAX/placeholder.txt deleted file mode 100644 index 87c03db2..00000000 --- a/MOULOpenSourceClientPlugin/StaticSDKs/Win32/EAX/placeholder.txt +++ /dev/null @@ -1 +0,0 @@ -What do you see? An empty folder. \ No newline at end of file diff --git a/MOULOpenSourceClientPlugin/StaticSDKs/Win32/Expat/placeholder.txt b/MOULOpenSourceClientPlugin/StaticSDKs/Win32/Expat/placeholder.txt deleted file mode 100644 index 87c03db2..00000000 --- a/MOULOpenSourceClientPlugin/StaticSDKs/Win32/Expat/placeholder.txt +++ /dev/null @@ -1 +0,0 @@ -What do you see? An empty folder. \ No newline at end of file diff --git a/MOULOpenSourceClientPlugin/StaticSDKs/Win32/IJL/ijlnotes.htm b/MOULOpenSourceClientPlugin/StaticSDKs/Win32/IJL/ijlnotes.htm deleted file mode 100644 index ff3557b8..00000000 --- a/MOULOpenSourceClientPlugin/StaticSDKs/Win32/IJL/ijlnotes.htm +++ /dev/null @@ -1,157 +0,0 @@ - - - - -Intel® JPEG Library Release Notes - - - -

Intel® JPEG Library v1.51

- -

Product Release Notes

-

Contents

-

Intel® JPEG  Library 1.51
-System Requirements
-Compiler Support
-License Definitions
-Installation
-Library Use
-What's New in Version 1.51
-History
-Known Limitations in Version 1.51
-Technical Support and Feedback
-

- -

Intel® JPEG Library 1.51

-

The Intel® JPEG Library (IJL) is a software library for application developers that provides high performance JPEG encoding and decoding of full color and grayscale still -images.

-

The IJL was designed for use on Intel® architecture platforms and has been tuned for speed and efficient memory usage. Additionally, the IJL was developed to take advantage of MMX™, -Streaming SIMD Extensions (SSE), and SSE-2 technology if -present.

-

The IJL provides an easy-to-use programming interface without sacrificing low-level JPEG control to advanced developers. The IJL also includes a substantial amount of functionality that is not included in the ISO JPEG standard. This added functionality is typically necessary when working with JPEG images, and includes pre-processing and post-processing options like sampling and color space conversions.

-

Additional information on this software as well as other libraries is -available at the Intel Performance -Libraries web site.
-

-

System Requirements

- -

The Intel JPEG Library requires the following software and hardware:

-

Recommended hardware: A Pentium® II,  Pentium III, or Pentium 4 processor-based PC with memory appropriate to the image sizes needed.

-

Software Requirements: Microsoft* Windows* 95, 98, ME*, 2000, or Microsoft Windows NT* 3.51 or 4.0.

-

Compiler Support

-

Intel® C++ Compiler, Borland* C++ 5, or Microsoft* Visual C++* 4.2 or -later. Other compatible compilers have not been tested extensively but might work.

-

License Definitions

- -

Please see the license file ijllic.htm -for the license definitions and restrictions on the library.

-

Installation

- -

You can install the IJL package by downloading and running the appropriate self-extracting installation files from the Web site. -Check the Intel JPEG -Library site for updates, when available.

-

Library Use

To get started using the library, the following steps are required:

- - - -

What’s New in the Intel JPEG Library Version 1.51

- -

New Features:

- - -

Fixed Bugs:

- - -

History

-

New in Version 1.5:

- - -

Bugs fixed in 1.5: 

- -

New in Version 1.1:

- - - -

Known Limitations In Version 1.51

- - - -

Technical Support and Feedback

-

All interactive support for the Intel JPEG Library is handled through the Intel® Performance -Libraries section of the Intel® Premier Support web-based support system. In order to access support for this product, you will need an account on Intel Premier Support. Register for an account at the Intel Premier Support Registration Page. 
-Once you have an account, you can login to the Intel Premier Support Web site. 

-If you have forgotten your password, please contact quad.support@intel.com. If you have questions pertaining to the -auto accounts registration process, please contact pto.quad@intel.com. For all support questions, please submit an issue at -https://premier.intel.com/.

-To submit an issue via the Intel Premier Support website: -

-

-Contact us with your suggestions or problem reports using your Intel Premier Support account. A technical support engineer will respond within one (1) Intel business day. -

- -

Intel, the Intel logo, and Pentium are -registered trademarks of Intel Corporation.
-MMX is a trademark of Intel Corporation.
-*Other names and brands may be claimed as the property of others.

-

Copyright 2001, Intel Corporation, All Rights Reserved.

-
- - - diff --git a/MOULOpenSourceClientPlugin/StaticSDKs/Win32/MAX7SDK/placeholder.txt b/MOULOpenSourceClientPlugin/StaticSDKs/Win32/MAX7SDK/placeholder.txt deleted file mode 100644 index 87c03db2..00000000 --- a/MOULOpenSourceClientPlugin/StaticSDKs/Win32/MAX7SDK/placeholder.txt +++ /dev/null @@ -1 +0,0 @@ -What do you see? An empty folder. \ No newline at end of file diff --git a/MOULOpenSourceClientPlugin/StaticSDKs/Win32/MySQL/ReadMe.txt b/MOULOpenSourceClientPlugin/StaticSDKs/Win32/MySQL/ReadMe.txt deleted file mode 100644 index 065f42ce..00000000 --- a/MOULOpenSourceClientPlugin/StaticSDKs/Win32/MySQL/ReadMe.txt +++ /dev/null @@ -1 +0,0 @@ -Not sure this is needed. It was probably for the original servers (before MOUL). diff --git a/MOULOpenSourceClientPlugin/StaticSDKs/Win32/OpenAL 1.1 with EFX SDK/placeholder.txt b/MOULOpenSourceClientPlugin/StaticSDKs/Win32/OpenAL 1.1 with EFX SDK/placeholder.txt deleted file mode 100644 index 87c03db2..00000000 --- a/MOULOpenSourceClientPlugin/StaticSDKs/Win32/OpenAL 1.1 with EFX SDK/placeholder.txt +++ /dev/null @@ -1 +0,0 @@ -What do you see? An empty folder. \ No newline at end of file diff --git a/MOULOpenSourceClientPlugin/StaticSDKs/Win32/OpenSSL/placeholder.txt b/MOULOpenSourceClientPlugin/StaticSDKs/Win32/OpenSSL/placeholder.txt deleted file mode 100644 index 87c03db2..00000000 --- a/MOULOpenSourceClientPlugin/StaticSDKs/Win32/OpenSSL/placeholder.txt +++ /dev/null @@ -1 +0,0 @@ -What do you see? An empty folder. \ No newline at end of file diff --git a/MOULOpenSourceClientPlugin/StaticSDKs/Win32/PhysX/release_notes.html b/MOULOpenSourceClientPlugin/StaticSDKs/Win32/PhysX/release_notes.html deleted file mode 100644 index fe04e6cd..00000000 --- a/MOULOpenSourceClientPlugin/StaticSDKs/Win32/PhysX/release_notes.html +++ /dev/null @@ -1,1042 +0,0 @@ - - - - Release Notes - AGEIA PhysX SDK 2.6 - - - -
-

-
-

Release Notes - AGEIA PhysX SDK 2.6.0

-

28th September 2006

-

 

-

What's New In AGEIA PhysX 2.6

-
-

Hardware/Software Rigid Bodies

-
    -
  • There is a new joint projection mode, NX_JPM_LINEAR_MINDIST, that uses only - linear projection for improved performance.
  • -
  • A new stack overflow protection scheme is in place, where too-large stack allocations are replaced by heap allocations when needed. If heap allocations are suddenly causing a slowdown, the threshold for this fallback can be set using NxFoundationSDK::setAllocaThreshold().
  • -
  • Fixed: Raycasts missing on the exact boundary of a heightfield.
  • -
  • Fixed: Filtering does not work correctly with HSM.
  • -
  • Fixed (SW): DistanceJoint will not work properly when attachment points coincide in worldspace.
  • -
  • Fixed: No contacts generated in Capsule-Capsule collision when capsule segments intersect.
  • -
  • Fixed: No contacts generated in capsule-convex collision when capsule penetrates convex.
  • -
  • Fixed: CCD collision response in FW scenes.
  • -
-

Hardware Fluids

-
    -
  • Fluid collision improvements including support for a - collision distance between fluid particles and rigid - body geometry which is maintained during the - simulation - (NxFluidDesc::collisionDistanceMutliplier).
  • -
  • A new method, NxScene::cookFluidMeshHotspot, allows - for preparing static mesh, height field and convex - shapes for fluid collision, preventing on-the-fly - cooking.
  • -
  • More information about particles including particle - flags, IDs and notifications for particle - creations/deletions.
  • -
  • New runtime switches for degrading simulation - fidelity on heavy system load.
  • -
  • Fluids emitters are now attached to shapes not actors.
  • -
-

Hardware/Software Cloth

-
    -
  • Cloth metal - a combination of deformable cloth and - nondeformable rigid body, useful for sheet metal and - similar objects. This mode can be activated by - attaching a piece of cloth to a rigid body via the - NxCloth::attachToCore method.
  • -
  • Cloth self collision is now implemented and can be activated by means of - NxClothFlag::NX_CLF_SELFCOLLISION.
  • -
-

Hardware Scene Manager(HSM)

-
    -
  • The HSM now uses Compartments, allowing the utilization of multiple PhysX cards - in future versions.
  • -
  • The interface of the HSM has been completely revised.
  • -
-

Performance

-
    -
  • The performance of some scenes with many kinematic actors and/or a lot of broadphase activity has been improved.
  • -
  • Fluid collision performance improved, especially for dynamic convex shapes.
  • -
-

Serialization

-
    -
  • A new serialization library has been introduced called NxuStream
  • -
  • This is a source code library with an easy to use interface.
  • -
  • SampleAssetExport and SampleSceneExport demonstrate how to use this library.
  • -
  • It is now possible to serialize to and from an XML file format, as a high speed binary file, and in COLLADA 1.4.1 physics.
  • -
-

Documentation

-
    -
  • Many small corrections and fixes for the user guide and API - reference.
  • -
  • Information in the User's Guide pertaining to hardware has been concentrated in one place.
  • -
  • User guide documentation for: -
      -
    • Compartments
    • -
    • Training programs
    • -
    • Cloth Metal
    • -
    -
  • -
-

Installer

-
    -
  • The client installers have been replaced by a single client installer. This installer is based on the MSI/WISE installer which was distributed in the past. There is no longer an NSIS based installer.
  • -
-
-

Supported Platforms

-
-

Runtime

-
    -
  • Software Runtime for Microsoft Windows XP (32bit and 64bit - editions; Pentium III / Athlon XP and higher only)
  • -
  • Software Runtime for Microsoft Windows Vista (32bit - edition; Pentium III / Athlon XP and higher only)
  • -
  • AGEIA PhysX Hardware Runtime for Microsoft Windows XP - (32bit and 64bit editions)
  • -
  • AGEIA PhysX Hardware Runtime for Microsoft Windows Vista - (32bit and 64bit editions)
  • -
  • Microsoft XBox360
  • -
  • Sony Play Station 3 (provided by Sony)
  • -
  • Software Runtime for SuSE Enterprise Linux 10.0 (alpha release; 32bit and 64bit - editions; Pentium III / Athlon XP and higher only)
  • -
  • Software Runtime for Red Hat Enterprise Linux WS 4.0 (alpha release; 32bit and 64bit - editions; Pentium III / Athlon XP and higher only)
  • - -
-

Development

-
    -
  • Microsoft Windows XP
  • -
  • Microsoft Visual Studio .NET 2003
  • -
  • Microsoft Visual Studio .NET 2005
  • -
  • Microsoft XBox360 development tools
  • -
  • Sony Playstation 3 development tools
  • -
  • SuSE Enterprise Linux 10.0 (alpha release)
  • -
  • Red Hat Enterprise Linux 4.0 WS (alpha release)
    -
  • -
-
-


- -Known Issues And Limitations

-
-

Hardware/Software Rigid Bodies

-
    -
  • Objects may not get woken if they lose contact but their bounds still overlap.
  • -
  • Objects may have difficulty falling asleep if they have alternating bounds overlaps with non sleeping bodies.
  • -
  • Joint projection may cause instability in the D6 joint.
  • -
  • joints may pull off each other when the mass relationship is not properly set up
  • -
  • joints' behavior may differ when actors are in very small size.
  • -
-

Hardware Fluids

-
    -
  • Dynamic fluid - mesh shape collision isn't supported anymore.
  • -
  • Dynamic convex shapes are limited to 64 planes for - fluid collision. If a convex consists of more than 64 - planes, only the first 64 planes are taken into consideration for - collision. If this is the case it may happen that particles collide - with the axis aligned bounding box of the convex shape.
  • -
  • If fluid particles are located more than - 32768*NxFluidDesc::kernelRadiusMultiplier/NxFluidDesc::restParticlesPerMeter - units far from the world origin, collision and SPH computations will fail. -
  • -
  • If particles get trapped between two dynamic rigid - bodies, they jitter within the penetration depth of - the rigid bodies.
  • -
  • Switching from no-particle-interaction mode to mixed mode or even sph mode can cause instabilities in the simulation.
  • -
  • Fluids have a limit on the packet number. It's 1024.
  • -
  • Max 4096 new Particles per time step can be added by the function of NxFluid::addParticles().
  • -
  • 16 Mbytes are reserved on the PPUs external memory - for cooked static collision geometry for fluids. If - this is exceeded during runtime collision geometry is - dropped and a debug message - "Hardware heap ran out of memory" is generated. The call - NxScene::cookFluidMeshHotspot can't cause this, since - it only cooks data and doesn't transfer the data to - the PPUs external memory yet.
  • -
  • If more than 8192 static triangles are located in the range - of a fluid packet, triangles will be dropped. - A debug message is generated in this case. -
  • -
-

Hardware/Software Cloth

-
    -
  • A self-collision enabled cloth can still intersect itself due to high relative - velocities of cloth particles, small cloth thickness, multiple collisions with - other objects or user interaction.
  • -
  • Untangling is not yet supported.
  • -
  • Collision handling between different pieces of cloth is not yet supported.
  • -
  • Supported core bodies for cloth metal are boxes, - spheres, capsules and compounds of spheres.
  • -
  • The metal deformation is penetration based. This - means that if the rigid body solver leaves a big - penetration, the result looks more dramatic. Thus, in - some range, the deformation is not predictable. - However, the cloth is moved towards the colliding - body by the penetrationDepth parameter at an impact - so the penetration just varies around this value.
  • -
  • Attaching a low density actor to cloth in NX_CLOTH_ATTACHMENT_TWOWAY mode can cause unstable simulation.
  • -
  • When the density of object collision with cloth is too high, the objects can easily penetrate cloth, even in very low speed.
  • -
  • In some cases a cloth can slip through a concave corner or a valley edge during mesh or terrain collisions. (Workaround: Increase the cloth's thickness or bending stiffness)
  • -
-

Hardware Scene Manager(HSM)

-
    -
  • dynamic triangle meshes are not supported anymore.
  • -
  • Objects in compartments are not visualized.
  • -
  • Hardware objects from different hardware compartments do not interact (i.e., cloth and rigid).
  • -
-

Serialization

-
    -
  • COLLADA does not retain all of the physics data in our SDK. It will not retain heightfields, wheel shapes, CCD information, cloth, fluids, or a number of other items that are not in the COLLADA 1.4.1 specification. -
  • -
-

Installers

-
    -
  • The AGEIA PhysX SDK must be installed to run samples as they - rely on DLLs contained within the main SDK installer.
  • -
-

Windows Device Driver

-
    -
  • No known issues.
  • -
-

Tools

-
    -
  • There is currently no support for content creation tools in the Linux SDK release.
  • -
-
- -

Release Notes - AGEIA PhysX SDK -2.5.1

- -

17th August 2006

- -

 

- -

What's New In AGEIA PhysX 2.5.1

- -
-

General

-
    -
  • The NxPhysicsSDK object is now reference counted, and - thus all NxCreatePhysicsSDK()/NxCreatePhysicsSDKWithID() - calls should be matched with an NxReleasePhysicsSDK() - call.
  • -
-

Hardware/Software Rigid Bodies

-
    -
  • The following HW Rigid Body optimizations have been - introduced.
      -
    • Improved mesh cooking
    • -
    • Optimized narrow phase collision detection
    • -
    • Optimized broad phase collision detection
    • -
    • Optimized dynamics solver
    • -
    -

    These optimizations are expected to improve - performance with no significant change to the - behavior of the simulation.

    -
  • -
-

Windows Device Driver

-
    -
  • Microsoft Windows XP 32bit and 64bit now supported. - Allows for 32bit software which use AGEIA PhysX - hardware to run on Microsoft Windows XP 64bit.
  • -
-
- -

Supported Platforms

- -
-

Runtime

-
    -
  • Software Runtime for Microsoft Windows XP (32bit and 64bit - editions)
  • -
  • Software Runtime for Microsoft Windows Vista (32bit - edition)
  • -
  • AGEIA PhysX Hardware Runtime for Microsoft Windows XP - (32bit and 64bit editions)
  • -
  • AGEIA PhysX Hardware Runtime for Microsoft Windows Vista - (32bit edition)
  • -
  • Microsoft XBox360
  • -
  • Sony Play Station 3 (provided by Sony)
    -
  • -
-

Development

-
    -
  • Microsoft Windows XP
  • -
  • Microsoft Visual Studio .NET 2003
  • -
  • Microsoft XBox360 development tools (August 2006 XDK - v3529)
  • -
  • Sony Playstation 3 development tools
  • -
-
- -

- -


-Known Issues And Limitations

- -


-Below is a list of new issues and limitations; this is an -addition to the list from 2.5.0.

- -
-

Windows Device Driver

-
    -
  • Since the AGEIA PhysX Properties Control Panel Applet - is a 32-bit DLL, it does not appear in the Control - Panel automatically under 64-bit Windows. The user - must enable 32-bit Control Panel icons for it to - appear.
  • -
-

Hardware/Software Rigid Bodies

-
    -
  • If shapes are added to an actor containing a single - triangle mesh shape in a HW scene, collisions with - the triangle mesh shape will no longer work. The - problem lies in the transition from single shape - actor to a compound, which means that compound actors - can be created with triangle mesh shapes either by - specifying all shapes directly in the descriptor, or - by making sure that the triangle mesh is never the - only shape in the actor.
  • -
-
- -

Release Notes - AGEIA PhysX SDK 2.5.0

-

30th June 2006

-

 

-

What's New In AGEIA PhysX 2.5

-
-

Hardware/Software Rigid Bodies

-
    -
  • Sweep API - Allows swept shape queries against a scene.
  • -
  • Active Transform Notification - Provides a list of actors which - have been updated.
  • -
  • Sleep Events - Provides a notification when an actor wakes up or - goes to sleep.
  • -
  • Kinetic Energy Based Sleeping - An improved criteria for - deciding if an actor should sleep. This is now the default.
  • -
  • Reduced overhead for sleeping actors.
  • -
  • Contact Modification - A callback is provided which allows the - user to modify contacts between the near phase and solver.
  • -
  • Fine grained threading is now enabled on the PC - parallel near - phase and solver.
  • -
  • Version Controlled Cooking - Cooking is now versioned along with - the runtime.
  • -
  • New/Delete has been cleaned up in many places and all calls - should now go through the user supplied memory allocator.
  • -
  • Adaptive force improvements - The adaptive force optimization is - now only applied to groups of objects which are in contact with a - static object, for example a stack resting on the floor.
  • -
  • The ratio property of a pulley joint is a force ratio rather - than a distance ratio.
  • -
  • The gear ratio of joints take into account the inertial - properties of the bodies involved. This affects the way forces are - propagated.
  • -
  • All joint types and collision primitives have software fall - backs in hardware scenes.
  • -
  • Full contact callbacks and modifiable contacts available in HW - scenes, but with substantial performance overhead.
  • -
  • Up to 64K shapes, 64K bodies, and 64K D6 joints may be created - in hardware scenes (but note the limitation below concerning active - object counts.)
  • -
-

Hardware Fluids

-
    -
  • Fluid surfaces allow triangle meshes surfaces to be generated - for fluids on the PPU. Basic fluid surface feature set includes: -
      -
    • Depth smoothing
    • -
    • Multiple fluid surfaces associated with fluids
      -
    • -
    • User defined particles supported
    • -
    -
  • -
  • Two Way Interaction - Fluids can now exert a force on a rigid - body.
  • -
  • NX_FF_ENABLED flag added - This allows simulation to be enabled - and disabled for fluids. By default the flag is set. When turning the - flag off (on NxFluid), the next fluid step is not carried out. - Particles are not copied to the user buffers
  • -
  • NX_SF_FLUID_DRAIN_INVERTED - Removed for performance reasons. - There are workarounds to get the same effect.
  • -
-

Hardware/Software Cloth

-
    -
  • Basic feature set: -
      -
    • stretching and bending resistance
    • -
    • two way rigid body interaction
    • -
    • attachments
    • -
    • damping and friction
    • -
    • tearing
    • -
    • pressure
    • -
    -
  • -
-

Hardware Scene Manager(HSM)

-
    -
  • Two way hardware rigid body and cloth interaction.
  • -
  • Two way fluid and rigid body interaction.
  • -
  • One way managed rigid body versus primary scene rigid body - interaction, including:
  • -
  • Software material table mirrored to the managed scenes.
  • -
  • Software static meshes are paged to managed scenes.
  • -
  • Group based filtering mirrored to the managed scenes.
  • -
  • Ray cast results include query performed against managed scenes.
  • -
-

Performance

-
    -
  • Sleeping objects are much faster, not consuming any CPU in 2.5
  • -
  • New friction model in 2.5 is somewhat faster, showing up in - stacking scenarios
  • -
  • Anisotropic friction, per-triangle materials and terrain height - fields run somewhat slower than in 2.4
  • -
  • All joint types but the D6 run somewhat slower in 2.5
  • -
  • Hardware rigid body scenes consume more CPU cycles than in 2.4
  • -
  • Running a scene on multiple threads now consumes memory - proportional to the number of threads concurrently within the SDK - rather than the number of threads which have entered the SDK since - creation.
  • -
  • Xbox 360 Optimization: -
      -
    • VMX128 rigid body constraint - solver.
    • -
    • VMX128 cloth solver.
    • -
    • VMX128 optimizations to box-box, - convex-mesh and convex-convex collision detection.
    • -
    • VMX128 midphase optimization for sphere-mesh, capsule-mesh, - OBB-mesh
    • -
    • VMX128 some small optimization for CCD.
      -
    • -
    -
  • -
  • PlayStation3 PPU only version significantly faster due to changes in Vector library.
  • -
-

Rocket

-
    -
  • Updated interface using menu items in addition to onscreen - buttons.
  • -
  • Support for Cloth
  • -
  • Support for Fluids
  • -
  • Support for NxUStream
  • -
  • (For details, see the Rocket documentation included in the Tools - Installer)
  • -
-

Installers

-
    -
  • With the high/low level split in the SDK, the source code - installer will not contain sources for low level components
  • -
  • 2.5.0 includes a tools installer. For beta and beyond, it will - include Rocket, a 3DStudio Max plugin and a Maya plugin.
  • -
  • Tool developers can now specify the version of cooking they want - to use.
  • -
  • Applications no longer need to include the PhysXLoader (that is - now in the System32 folder)
  • -
-

Documentation

-
    -
  • Many small corrections and fixes for the user guide and API - reference.
  • -
  • User guide and API reference documentation for: -
      -
    • Fluid surfaces
    • -
    • Contact modification callback
    • -
    • Sweep tests
    • -
    • Active transform notification
    • -
    • Sleep events
    • -
    • Hardware scene manager
      -
    • -
    • Cloth tearing and pressure
      -
    • -
    • Mesh auto paging
      -
    • -
    -
  • -
  • Updates to the tutorials and samples pages.
  • -
-

Windows Device Driver

-
    -
  • Support for PCIExpress Cards
  • -
-
-

Supported Platforms

-
-

Runtime

-
    -
  • Software Runtime for Microsoft Windows XP (32bit editions)
  • -
  • AGEIA PhysX Hardware Runtime for Microsoft Windows XP (32bit - editions)
  • -
  • Microsoft XBox360
  • -
  • Sony Play Station 3 (provided by Sony)
    -
  • -
-

Development

-
    -
  • Microsoft Windows XP
  • -
  • Microsoft Visual Studio .NET 2003
  • -
  • Microsoft Visual Studio .NET 2005 (not supported, project files - only)
    -
  • -
  • Microsoft XBox360 development tools
  • -
  • Sony Playstation 3 development tools
    -
  • -
-
-


- -Known Issues And Limitations

-
-

Hardware/Software Rigid Bodies

-
    -
  • Joint types other than D6, spherical and revolute are partially - simulated in software.
  • -
  • For HW D6 joints, Only angular orientation drive & linear - position drive are supported, i.e. slerp drive & velocity - drive are not supported.
  • -
  • Wheel shape and joint parameters may need tweaking due to solver - changes.
  • -
  • Spherical and revolute joint behavior may differ from 2.4.
  • -
  • All joint break limits are specified as a maximum impulse and - might need to be adjusted.
  • -
  • User break notification now reports an impulse which is clamped - to the break impulse.
  • -
  • The friction model has changed. It should now be somewhat - stiffer. In addition friction is applied as soon as a contact is - created.
  • -
  • Mesh-Mesh collision detection is always performed in software(in - particular PMaps).
  • -
  • Mesh based height field collisions and height field collisions - are performed in software.
  • -
  • Wheel shapes are simulated in software.
  • -
  • Mesh and height field collisions are performed in software if - the mesh/height field has multiple materials defined.
  • -
  • Anisotropic friction is partially performed in software.
  • -
  • User contact reports and contact modification have quite a large - performance hit.
  • -
  • The result of sweep tests which are initially penetrating is - currently undefined.
  • -
  • Only boxes and capsules are supported by the sweep API as swept - objects. (spheres are emulated as capsules of zero length).
  • -
  • Sweep tests against planes, wheel shapes, and height fields are - not supported.
  • -
  • All sweep tests are synchronous(NX_SF_ASYNC is not supported).
  • -
  • Trigger shapes do not take part in CCD (Continuous Collision - Detection).
  • -
  • The methods isSleeping() and isGroupSleeping() now return the - same value.
  • -
  • Contact forces are not reported unless NX_NOTIFY_FORCES is set
  • -
  • Scene statistics no longer report the number and maximum number - of contacts, axis constraints or solver bodies
  • -
  • Hardware rigid body scenes support at most 4K active bodies. The - following additional restrictions are expected to be removed or - significantly alleviated during beta: at most 8K active shapes (shapes - whose pose is linked to active bodies), 4K active joints, and 4K - software fall back constraints. Note: these are counts for active - objects, sleeping objects are not included in the limits.
    -
  • -
  • The hardware broad phase supports at most 4080 actors. Broad - phase runs in hardware only if the NX_SF_RESTRICTED_SCENE flag is set - on the scene. Otherwise broad phase runs in software even in hardware - scenes, and there are no size restrictions.
  • -
  • Joint pose projection is not hardware accelerated
  • -
  • Hardware convexes are limited to 32 vertices and 32 faces. Convexes will fallback - to software above these limits.
  • -
-

Hardware Fluids

-
    -
  • Maximum of 32767 particles per fluid.
  • -
  • Only limited fluid surface depth smoothing is supported in - hardware with filter size = 3.
  • -
  • Silhouette smoothing for fluid surfaces is not supported in - hardware.
  • -
  • Fluid surface resolution is limited to no more than 256x256, so - in the initial state, if the resolution is beyond the limitation, - NxImplicitScreenMeshDesc::isValid() will give an assert error. But if - this resolution is changed during application program running, it will - be automatically clamped to the maximum value.
  • -
  • Quadtree hierarchy mesh is not supported in hardware for fluid - surfaces.
    -
  • -
  • Two way interaction may be unstable with resting - particle-RB-contacts.
  • -
  • If the fluid hits packets which contain a high triangle density, - fluid mesh cooking on the host might become the bottleneck. However - there is logic to prevent detailed cooking when the load is too high. - Also cooking is now taking place in a separate thread, which removes - frame rate hick ups.
  • -
-

Hardware/Software Cloth
-

-
    -
  • Convexes up to 120 planes
  • -
  • Only cloth particle collision detection (no cloth triangle - collision detection)
  • -
  • < 1024 attached particles per cloth (limit might be removed - before release)
  • -
  • < 1024 colliding shapes (limit might be removed before - release)
  • -
  • Wild movement of the cloth in connection with high bending - stiffness can get the cloth into an entangled state. It looks like the - cloth would locally stick to itself. This is a local self collision - issue. Workaround: reduce bending stiffness.
  • -
  • Squeezing cloth between rigid bodies can cause jittering. - Workaround: reduce cloth thickness.
  • -
  • For small meshes (< 256 vertices) it is more efficient to - merge several of them into one cloth than creating a cloth instance for - each individual mesh. These meshes do not need to be connected (e.g. - multiple leaves of a plant).
  • -
-

Hardware Scene Manager(HSM)

-
    -
  • Only group based collision reports are supported by the HSM.
  • -
  • Only a single managed hardware scene is supported by the HSM.
  • -
  • Effectors between hardware actors are not supported.
  • -
  • Actor and Shape pair flags not supported by the HSM.
  • -
  • Scene stats for hardware objects controlled by the HSM are not - supported.
  • -
  • Hardware rigid bodies do not exhibit two way interaction with - software objects under the HSM.
  • -
  • Hardware objects from separate scenes do not interact(e.g. rigid - body, cloth, fluids) under the HSM.
  • -
  • Dynamic height fields mirrored into the cloth and fluid scenes - will only supply 64 triangles, the rest will be silently dropped.
  • -
  • Shapes mirrored into the slave scene(cloth, rigid body, fluids) - will not be updated until they are mirrored/un-mirrored. This means if - you change a shape property(e.g. sphere radius) the hardware objects - will not be updated.
  • -
  • In the hardware rigid body scene only dynamic objects are - mirrored to the software scene.
  • -
-

Rocket

-
    -
  • No known issues.
  • -
-

Installers

-
    -
  • The AGEIA PhysX SDK must be installed to run samples as they - rely on DLLs contained within the main SDK installer.
  • -
-

Windows Device Driver

-
    -
  • No known issues.
  • -
-
-
-
-
    -
-
-

Release Notes - AGEIA PhysX SDK 2.4.0

-

23rd February 2006

-

AGEIA PhysX SDK Build Component

-

What's New?

-
    -
  1. Documentation and Samples for new features.
  2. -
  3. A number of smaller documentation corrections and -clarifications.
  4. -
-

Platforms Supported

-Development: - -Not Supported for Development: - -

Known Issues and Limitations

- -

Version

-2.4.0 -

AGEIA PhysX Software Runtime Component

-

What's New?

-
    -
  1. Dynamic vs Dynamic CCD support
  2. -
  3. Support for heightfield shapes
  4. -
  5. User thread control.
  6. -
  7. Fine grained threading of the simulation(available only on -XBox360)
  8. -
  9. Additional overlap tests for shapes
  10. -
  11. Hardware scene manager, allows fluids to interact with rigid -bodies.
  12. -
-

Platforms Supported (Runtime)

- -

Known Issues and Limitations

-
    -
  1. The AGEIA PhysX SDK must be installed to run samples as they -rely on DLLs contained within the main SDK installer.
  2. -
-

Version

-2.4.0 -

Hardware Rigid Bodies (AGEIA PhysX Driver)

-

What's New?

-
    -
  1. Many optimizations and Bug fixes.
  2. -
  3. D6 joint support. The D6 supports the following features: -breaking and signaling, angular orientation drive and gears,
  4. -
  5. The simulation no longer locks up on firmware crashes. Instead a -flag passed to fetchResults () which is set on an error.
  6. -
  7. A new error reporting tool allows the driver to record the -simulation state leading up to a crash to allow analysis and bug -fixing.
  8. -
-

Platforms Supported (Runtime)

- -

Known Issues and Limitations

-
    -
  1. There is a limit of 2048 D6 joints per scene.
  2. -
  3. Only angular D6 drives are supported. All other types of drive -are not supported.
  4. -
  5. D6 joint pose projection is disabled.
  6. -
-

Version

-2.4.0 -

Hardware Fluids (AGEIA PhysX Driver)

-

What's New?

-
    -
  1. The AGEIA PhysX SDK now has a hardware scene manager, which -allows fluids to be created in a software scene. The hardware scene -manager takes care of mesh cooking and mirroring actors into the -hardware scene.
  2. -
  3. Support for more dynamic shapes in a fluid scene: convex mesh, -box, capsule, sphere
  4. -
  5. The following unimplemented API calls have been removed: -
      -
    • NX_FF_MESH_INCLUDE_SEPARATED
    • -
    • void NxFluid::setCollisionGroup(NxCollisionGroup group);
    • -
    • NxU32 NxFluid::getCollisionGroup();
    • -
    • NxImplicitMesh* NxFluid::createSurfaceMesh(const -NxImplicitMeshDesc& mesh);
    • -
    • void NxFluid::releaseSurfaceMesh();
    • -
    • NxImplicitMesh* NxFluid::getSurfaceMesh();
    • -
    • NxFluid::getDynamicActorReactionSmoothing ()
    • -
    • NxFluid::setDynamicActorReactionSmoothing(NxReal smooth)
    • -
    • NxFluid::getDynamicActorReactionScaling()
    • -
    • NxFluid::setDynamicActorReactionScaling(NxReal scale)
    • -
    • NxFluid::setOnSeparationAction (NxFluidParticleAction -action, bool val)
    • -
    • NxFluid::getOnSeparationAction(NxFluidParticleAction action) -
    • -
    • NxFluid::setOnCollision(NxFluidParticleAction action, bool -val)
    • -
    • NxFluid::getOnCollision(NxFluidParticleAction action)
    • -
    • NxFluid::setOnLifetimeExpired(NxFluidParticleAction action, -bool val)
    • -
    • NxFluid::getOnLifetimeExpired(NxFluidParticleAction action)
    • -
    • typedef NxU16 NxFluidGroup;
    • -
    • void NxFluid::setFluidGroup(NxFluidGroup group)
    • -
    • NxU32 NxFluid::getFluidGroup()
    • -
    • NxU32 NxFluidDesc::onSeparation;
    • -
    • NxU32 NxFluidDesc::onCollision;
    • -
    • NxU32 NxFluidDesc::onLifetimeExpired;
    • -
    • NxReal NxFluidDesc::dynamicActorReactionSmoothing ;
    • -
    • NxReal NxFluidDesc::dynamicActorReactionScaling;
    • -
    • NxReal NxFluidDesc::collisionGroup;
    • -
    • class NxImplicitMesh
    • -
    • void NxPhysicsSDK::setFluidGroupPairFlags()
    • -
    • NxPhysicsSDK::getFluidGroupPairFlags()
    • -
    • NxScene::setUserFluidContactReport()
    • -
    • NxScene:: getUserFluidContactReport()
    • -
    • NxImplicitMesh * NxScene::createImplicitMesh();
    • -
    • Void NxScene::releaseImplicitMesh();
    • -
    • NxScene::getNbImplicitMeshes
    • -
    • NxImplicitMesh** NxScene::getImplicitMeshes()
    • -
    • class NxUserFluidContactReport
    • -
    • NxFluidCollisionMethod::NX_F_DYNAMIC_ACTOR_REACTION
    • -
    -
  6. -
-

Platforms Supported (Runtime)

- -

Known Issues and Limitations

-
    -
  1. The maximum number of capsules are limited to 1024 in a scene.
  2. -
  3. The maximum number of boxes in a scene is limited to 1024.
  4. -
  5. Spheres are emulated as capsule of zero height, so they share -the same limitation as capsules.
  6. -
-

Version

-2.4.0 -

Cloth

-

What's New?

-
    -
  1. Software only cloth support (see the user guide for further -details)
  2. -
  3. Collision filtering.
  4. -
  5. Support for tearing and pressure.
  6. -
-

Platforms Supported (Runtime)

- -

Known Issues and Limitations

-
    -
  1. A cloth can bend too much and get stuck in itself. Workaround: -use less bending stiffness or variate the bending stiffness over time.
  2. -
-

Version

-2.4.0 -

Tools

-

What's New?

-
    -
  1. NxuStream- Support for serialization of the physical scene. -Supported formats include binary, Ascii(write only) and Collada
  2. -
  3. Visual Remote Debugger - View the physical representation used -by a game in real time and gather statistics and profiling information. -
  4. -
-

Platforms Supported (Runtime)

- -

Known Issues and Limitations

-
    -
  1. NxuStreamdoes not import Collada files created with other -libraries correctly.
  2. -
  3. Visual Remote Debugger connections must be enabled immediately -after initializing the SDK, otherwise the connection is likely to fail -(because object creation data, etc, is lost). For example: -
    // Create Physics SDK ...

    gPhysicsSDK->getFoundationSDK().getRemoteDebugger()->connect ("localhost", 5425);
    -
  4. -
  5. Reading profiler data at the same time the Visual Remote -Debugger is connected is not supported. Profiler data will not be -returned to the user when they call NxScene::readProfileData() if the -debugger is connected.
  6. -
-

Version

-2.4.0 -
-

Release Notes - AGEIA PhysX SDK 2.3.2

-

6th January 2006

-

AGEIA PhysX SDK Build Component

-

What's New?

-
    -
  1. It is no longer possible for end users to load PhysXCore.dll -from the application directory. The correct version is now loaded by -PhysXLoader from "Program Files\Ageia Technologies"
  2. -
  3. Installer improvements.
  4. -
  5. Fixes to sample project files.
  6. -
  7. Foundation.lib included with the XBox 360 installer.
  8. -
  9. Lots of documentation improvements.
  10. -
-

Platforms Supported

-Development: - -

Known Issues and Limitations

- -

Version

-2.3.2 -

AGEIA PhysX Software Runtime Component

-

What's New?

-
    -
  1. Improved convex hull generation algorithm(the old method is -still available using a flag)
  2. -
  3. Character controller fixes.
  4. -
  5. Fix for distance joints not being breakable.
  6. -
  7. Additional overlap/intersection queries.
  8. -
  9. Fix for performance issues related to SSE denormal handling on -some machines.
  10. -
-

Platforms Supported (Runtime)

- -

Known Issues and Limitations

-
    -
  1. When statically linked(for example on XBox360) calling -NxInitCooking() overwrites parameters set when calling -NxCreatePhysicsSDK(). For example the error stream is reset. This -occurs because the variables are shared when statically linked.
    -Workaround: Supply the same parameters to NxInitCooking() and -NxCreatePhysicsSDK()
  2. -
  3. In some cases convex hull generation can fail for degenerate -input.
    -Workaround: Supply geometry without degenerate sets of points (edges -and planes). Use the legacy convex hull generation(see -NX_CF_USE_LEGACY_COOKER).
  4. -
-

Version

-2.3.2 -

Hardware Rigid Bodies (AGEIA PhysX Driver)

-

What's New?

-
    -
  1. Many bug fixes and optimizations.
  2. -
  3. Fix getWorldBounds () for triangle mesh shapes.
  4. -
  5. Driver error reporting in fetchResults()
  6. -
-

Platforms Supported (Runtime)

- -

Known Issues and Limitations

-
    -
  1. See the API references for details concerning which API -functions are supported.
  2. -
  3. At most 2000 shapes can be present in a scene at once (this -includes both static and dynamic shapes).
  4. -
  5. Precision limitations suggest that physics behavior may not be -stable or correct more than 1000 units from the origin.
  6. -
  7. Rigid body scenes occupy 32MB of memory on the card, so that -absolutely no more than three scenes may be present on the card at -once.
  8. -
  9. The following is an important but non-exhaustive list of SDK -features which are not supported: joints, continuous collision, contact -notification, many debugging visualization, contact notifications, -triggers, per shape skin width.
  10. -
  11. Convex hulls are limited in this release to have at most 32 -vertices and 32 faces.
  12. -
  13. Using terrain meshes on hardware requires making use of the new -mesh paging API. When a mesh is cooked, it is divided into a number of -hardware pages, and these pages must be manually moved to the card by -the application for any collision to take place.
    -The number of pages into which a mesh will be cooked is variable, and -will depend on the degree of local convexity in the mesh. However, at -least 500 triangles should fit into a mesh page, and the allocation of -16MB of mesh data supports 256 pages, which allows for the presence of -more than 100,000 triangles on the card. Note that when a page is -removed from the card, the space occupied by that mesh page is not -freed until after the physics has been stepped. No data yet exists for -the performance of paging meshes on and off the card; however as a -baseline the raw transmission of a mesh page by DMA requires half a -millisecond.
    -As in the software SDK, in the absence of ATT it is easy for thin -objects to tunnel through the mesh; in particular collisions will not -be detected with objects whose center lies beneath the mesh.
  14. -
  15. Due to limitations of the friction model, objects sliding on a -triangle mesh may not have correct frictional behavior. Per-triangle -materials are not supported.
  16. -
-

Version

-2.3.2 -

Hardware Fluids (AGEIA PhysX Driver)

-

What's New?

-
    -
  1. Many bug fixes and optimizations.
  2. -
  3. Fluid scenes are created in a special hardware scene.
  4. -
  5. Fix to intermittent crash bug when adding a mesh to a fluid -scene.
  6. -
  7. Better input validation for the fluid mesh cooker.
  8. -
  9. Driver error reporting in fetchResults()
  10. -
  11. The Fluid can be configured with the new parameter -"motionLimitMultiplier". The user can define how far a particle can -travel during one timestep. This is important for tuning the memory -size consumed by the static mesh cooked for fluid collision. The -parameter effectively limits the maximal velocity of a particle. See -the user guide for more details.
  12. -
  13. If the user is interested in a more coarse simulation of fluids -which supports sprays and puddles, but works less well on deep pools, -he can choose this new simulation mode which alternates the simulation -between simple particles (without inter particle forces) and SPH -simulation. See NxFluidSimulationMethod::NX_F_MIXED_MODE and -NxFluidDesc::simulationMethod in the documentation.
  14. -
-

Platforms Supported (Runtime)

- -

Known Issues and Limitations

-
    -
  1. See the API references for details concerning which API -functions are supported
  2. -
  3. Collision detection only supported with static triangle meshes -and convex meshes.
  4. -
  5. The number of convex shapes interacting at the same time with -one fluid is restricted to 1024 convexes. The user may add more dynamic -convex actors to the fluid hardware scene, though. If more than 1024 -convexes are moving within the AABB of the fluid, some will be ignored -for collision.
  6. -
  7. One dynamic convex is restricted to 64 triangles. If a convex -with more than 64 triangles is added to the fluid hardware scene, some -triangles are ignored for collision.
  8. -
  9. The user can only provide one pre-cooked static mesh per fluid -scene. All fluids added to the scene have to be compatible to the -static mesh structure, i.e. have the same restParticlesPerMeter, -kernelRadiusMultiplier, packetSizeMultiplier.
  10. -
  11. Issue: Max PPU Connections (15): If multiple fluids are created, -the maximal possible number of PPU connections can be reached. One -connection is used for the static mesh interface (per scene), and one -for each fluid created. If the maximum of connections is reached, the -fluid creation returns NULL.
    -Workaround: Don't create too many scenes and fluids. A fluid hardware -scene uses one connection and every fluid uses another one.
  12. -
  13. Crashing call to createFluidHardwareTriangleMesh (): This call -may crash if running out of PPU connections or PPU memory.
    -Workaround: Try to save on hardware rigid body scenes and hardware -fluid scenes, as well as fluids. Try to reduce the maximal number of -particles for the fluids. A main issue might be the cooked fluid static -triangle mesh size.
  14. -
  15. Fluid memory consumption can be approximated as:
    -NxFluid: constant(~2.5Mb) + 11 * maxParticles * 64 Bytes
    -Triangle Mesh: Depends upon:- -
      -
    • Cooked Geometry
    • -
    • restParticlesPerMeter
    • -
    • kernelRadiusMultiplier
    • -
    • motionLimitMultiplier
    • -
    • packetSizeMultiplier
    • -
    -Fluids can be allocated from all of the cards onboard memory. However -when hardware rigid bodies are used they compete for memory.
  16. -
  17. Issue: Slowdown on creating and releasing fluids in a row: The -reason for this issue has not been determined. This doesn't happen when -releasing the scene too.
    -Workaround: Create fluids once and reuse them. Recreation may lead to -fragmentation on the PPU memory, which is bad anyway.
  18. -
-

Version

-2.3.2 -
-
Old Release Notes / Changelog

2.3 - 2005.08.15
==================
- XBOX 360, PS3 support. (may require files separate from windows installer package)
- improved API reference documentation, doc comments.
- new static vs. dynamic continuous collision detection based on CCD Skeletons
- NxConvexShape introduced as independent class of NxTriangleMeshShape
- NxWheelShape introduced for better raycast car support
- added API to support selection between hardware and software implementation.
- NxMaterial::programData API replaced with strongly typed spring member. Behavior is unchanged.
- debug rendering API simplified. NxUserDebugRenderable removed, NxDebugRenderable interface class replaced by a simple struct.
- more strict parameter checking in several places
- removed raycast based CCD
- removed FPU manipulation API functions.
- intel assembly implementation of NxMath::sincos().
- changed implementation of NxMath::rand()
- replaced buggy TransformPlane() with correct NxPlane::transform() and NxPlane::inverseTransform().
- added NxQUat::fromAxisAngleFast() and NxQuat::invert().
- modified implementations for NxQUat::rot, invRot (), and ::transform().
- removed NX_MF_CONVEX and NX_COMPUTE_CONVEX from NxMeshFlags of NxSimpleTriangleMesh
- removed NX_NUM_SLEEP_FRAMES macro

2.2, 2.1.3 - 2005.03.21

==================

- new abstract core implementation for hardware compatibility
- lots of new features for the D6Joint.
- materials API completely rewritten
- new mesh cooking library. Raw meshes must be preprocessed by the cooking library before being handed to the SDK. This makes creation of meshes at runtime much faster.
- new character motion controller library
- new extensions library
- new external utils library
- Foundation SDK has been merged into the Physics SDK. Specifically:
- there is no more foundation.dll
- the user must no longer link to foundation.lib
- API documentation for the foundation SDK is now part of the Physics SDK API documentation.
- the function exports of the foundation.dll are now exported from physics.dll
- the member functions from foundation shape API classes (NxSphere, NxBox, etc.) that were calling foundation exports have been removed. Here is a list with the corresponding replacement export that must be called by the user instead:

Old Member Function Replacement Function

NxSphere::NxSphere(unsigned nb_verts, const NxVec3* verts) NxComputeSphere(sphere, nb_verts, verts);
NxSphere::NxSphere(const NxSphere& sphere0, const NxSphere& sphere1) NxMergeSpheres(sphere, sphere0, sphere1);
NxSphere::compute(unsigned nb_verts, const NxVec3* verts) NxComputeSphere(sphere, nb_verts, verts);
NxSphere::fastCompute(unsigned nb_verts, const NxVec3* verts) NxFastComputeSphere(sphere, nb_verts, verts);
NxBox::containsPoint(const NxVec3& p) NxBoxContainsPoint(box, p);
NxBox::create(const NxBounds3& aabb, const NxMat34& mat) NxCreateBox(box, aabb, mat);
NxBox::computePlanes(NxPlane* planes) NxComputeBoxPlanes(box, planes);
NxBox::computePoints(NxVec3* pts) const NxComputeBoxPoints(box, pts);
NxBox::computeVertexNormals(NxVec3* pts) const NxComputeBoxVertexNormals(box, pts);
NxBox::getEdges() NxGetBoxEdges();
NxBox::getEdgesAxes() NxGetBoxEdgesAxes();
NxBox::getTriangles() NxGetBoxTriangles();
NxBox::getLocalEdgeNormals() NxGetBoxLocalEdgeNormals();
NxBox::computeWorldEdgeNormal(NxU32 edge_index, NxVec3& world_normal) NxComputeBoxWorldEdgeNormal(box, edge_index, world_normal);
NxBox::computeCapsule(NxCapsule& capsule) NxComputeCapsuleAroundBox(box, capsule);
NxBox::isInside(const NxBox& box) NxIsBoxAInsideBoxB(box, box);
NxRay::distanceSquared(const NxVec3& point, NxF32* t = NULL) NxComputeDistanceSquared(ray, point, t);
NxRay::distance(const NxVec3& point, NxF32* t = NULL) sqrtf(NxComputeDistanceSquared(ray, point, t));
NxSegment::squareDistance(const NxVec3& point, NxF32* t=NULL) NxComputeSquareDistance(segment, point, t);
NxSegment::distance(const NxVec3& point, NxF32* t = NULL) sqrtf(NxComputeSquareDistance(segment,point, t));
NxCapsule::computeOBB(NxBox&box) NxComputeBoxAroundCapsule(capsule, box);
NxCapsule::contains(const NxVec3& pt) NxComputeSquareDistance(capsule, point) <= radius*radius;
NxCapsule::contains(const NxSphere& sphere) NxF32 d = radius - sphere.radius; if(d> = 0.0f) return NxComputeSquareDistance(capsule, sphere.center) < = d*d; else return false;
NxCapsule::contains(const NxCapsule& capsule) contains(NxSphere(capsule.p0, capsule.radius)) && contains(NxSphere(capsule.p1, capsule.radius));

Users will need to replace any calls to the old member function to the corresponding replacement function.
- NxProfiler class deleted
- removed virtual NxProfilingZone * NxFoundationSDK::createProfilingZone(const char * x) = 0;
- NxArray no longer derives from NxAllocateable
- removed NxComputeVolumeIntegrals from API
- removed obsolete Foundation/include/NxBlank.h
- removed obsolete Foundation/include/NxList.h
- added NxActor::getMaxAngularVelocity ()
- added NxActor::get/setSolverIterationCount()
- added Physics/src/Physics.h: contains #define's from /src/Nxp.h which are just used from inide the SDK and should not be visible from outside
all files in the /src including Nxp.h now include Physics.h
- removed is...() (e.g. isBox()) functions from NxShapes and NxJoints
updated samples: added static castings for on NxShape and NxJoint to the appropriate type instead of calling the is function
(e.g static_cast(s) instead of s->isBox())
- added NxPlane NxPlaneShape::getPlane() const;
- removed methods deprecated in 2.1.2
- added NxScene &NxActor::getScene() const;
- added NxPhysicsSDK& NxScene::getPhysicsSDK() const;
- added NxJoint& NxActor::getScene() const;
- removed NX_INLINE void NxFPU::NxSinCos(NxF32& c, NxF32& s, NxF32 f);
- added NX_INLINE static void NxMath::sinCos(NxF32 & c, NxF32 & s, NxF32 f);
- new NX_ACCELERATION force mode.
- new getScene() method for objects contained in scene.
- moved public enums from various classes to Nxp.h
- new shape flag NX_SF_POINT_CONTACT_FORCE and NxContactStreamIterator::getPointNormalForce() for returning per-point contact forces.
- improved validation in NxJointLimitSoftDesc::isValid()
- added function NxGetValue(NxCookingValue).
- motor for pulley joint
- added NxU32 NxScene::setThreadAffinityMask(NxU32 mask)
- replaced MIN_SEPARATION_FOR_PENALTY with NxShape::get/setSkinWidth(), and a global skin width parameter.
- new 128 bit mask based collision filtering (NxShape::getGroupsMask(), NxGroupsMask)
- new NxRaycastBit NX_RAYCAST_FACE_NORMAL for retrieving non-smoothed normals.
- new method NxCapsuleShape::getWorldCapsule()
- new method NxSphereShape::getWorldSphere() - new NxScene::getNbStaticShapes(), getNbDynamicShapes().
- new triangleIDs for raycasting.
- removed support for pmap-less nonconvex nonheightfield mesh-mesh collision detection which was working poorly.
- removed obsolete parameter NX_MESH_MESH_LEVEL
- removed obsolete parameter NX_MESH_HINT_SPEED - removed NxActor::setDynamic(). Workaround: Create the initially static actor as a kinematic. Later turn off the kinematic state.

2.1.2 - 2004.11.08

==================

- more strict error checking
- multithreaded implementation - shape descriptors in NxActorDesc can now be allocated using a custom allocator.
- fluid API - NX_MESH_SMOOTH_SPHERE_COLLISIONS now disabled by default
- made mesh instances default to flat and not smooth sphere mode
- removed neccesarily reentrant method NxContactPair::setPairNotify(NxU32). Workaround: use any of the
several different ways to set actor flags.
- actor group and actor group pair flags
- raycast car support, including: - New + improved 'multipatch' friction implementation. Fringe benefits are that rare contact situations with multiple contact normals or materials-per-triangle are now handled correctly.
- Capsule shapes now have a 'swept shape' mode that can be used to get raycast wheel behavior. This is enabled with the new NX_SWEPT_SHAPE flag in NxCapsuleShapeDesc.
- programData member in NxMaterial
- NX_MF_SPRING_CONTACT flag of NxMaterial, and the appropriate code to emit suspension-spring-like contacts when this is enabled.
- SampleRaycast car
- Reworked applyForce code:
- removed these methods of NxActor because they were causing user confusion (they were hoping that it did more than just read back what they have previously set...) setForce (), setTorque(), getForce(), getTorque()
The replacement for setForce/setTorque is calling addForce/addTorque just once (per frame).
The replacement of getForce ()/getTorque() is to keep track of the forces you add.
- removed the variables: NxBodyDesc::initialForce, NxBodyDesc::initialTorque. The replacement for initialForce, initialTorque is addForce/addTorque after creating the object.
- forces act over the entire time step, including all substeps
- NxMaterial's vectors are now in shape space not in actor space.
- added 3 new joint types: - Distance - Pulley - Fixed
- kinematics perform move over a whole step, not a substep
- added methods to add impulses and velocity changes
- exception handling in SDK off, was enabled by mistake in 2.1.1
- implemented more material combine modes
- fixed a debug rendering crash bug
- fixed debug rendering extra lines and zero length lines bugs
- NX_VISUALIZE_COLLISION_NORMALS now defaults to zero.
- raycasting based approximate continuous collision detection (enable using NX_CONTINUOUS_CD)
- faster raycasting, now also supports segment queries
- 'one shot' scene collision queries
- added access to internal mesh data

2.1.1 - 2004.07.15
==================
- convex-mesh collision detection
- convex meshes viewer scene
- broken joints deletion process cleared up
- raycasting against compounds fix
- NX_NOTIFY_ON_START_TOUCH bug fixed
- bugs related to jointing bodies to kinematics fixed
- crash fixed when switching body from kinematic to dynamic
- implemented contact and friction force feedback in contact report
- joints to kinematic bodies now projected correctly
- removed reduced simulation mode for joints
- made it possible to set a different number of solver iterations per body
- added adaptive force parameter - improved solver: bodies don't pop out of other bodies as fast as before
- improved solver: non-reduced mode joints work better
- fixed rotating spheres and longs solver problem
- fixed solver instability on very thin objects
- visual C++ .NET project files
- fixed several box-capsule contact generation bugs
- added more error messages regarding broken joints
- removed '#'-s in filenames of monster truck demos
- updated docs with more information on releasing actors and broken joints
- added angular projection for revolute joints
- fixed some bias scaling related bugs in friction and joint setup code
- fixed uninitialized variable bug in viewer
- removed obsolete files from foundation
- extended ODF files to permit specification of joint projection
- fixed joint projection bug
- fixed fat lines rendering bug in viewer
- fixed some doc bugs
- fixed bug regarding kinematic bodies going to sleep
- fixed sphere joint limit visualization bug
- visualization flag for shapes, bodies, and joints
- added docs on masses of trigger shapes
- added FAQ section to SDK docs
- simplified versioning mechanism
- renamed ShapeDesc::triggerFlags into ShapeDesc::flags.
- fixed bug regarding deletion of trigger shapes
- removed personal edition copy protection scheme
2.1 - 2004.05.15
=================
- Pulled enums and typedefs out of classes. For example NxSomeClass::SOME_FLAG is now NX_SOME_FLAG.
- NxCollisionGroup changed from an enum to an int.
- NxCollisionGroup 0 no longer has special meaning. Static-static collision detection is automatically not performed.
- Actors, Shapes and Joints now have setName () getName() methods for debugging convenience.
- Removed support for dynamic meshes flag
- Optimized mesh inertia tensor computation
- Removed dynamic and default mesh classes from Foundation
- Replaced NxUserTriangleMesh with NxSimpleTriangleMesh, changed the way meshes are provided to the SDK - User's meshes are now copied, not referenced
- Materials are now stored in a global list and indexed by shapes, not actors.
- New material per triangles feature (for all mesh-primitive combinations)
- Added sleep velocity thresholds
- Changed SLEEP_LIN_VEL_SQUARED to SLEEP_DEFAULT_LIN_VEL_QUARED& also angular
- Documented NX_MIN_SEPARATION_FOR_PENALTY in manual.
- Removed quaternion accessor functions and made elements public.
- Added NxMat34::getColumnMajor44(), NxMat34::setColumnMajor44() for ez 4x4 graphics matrix conversion.
- Added X get*() methods which return the matrix value instead of copying it to a destination address. void get*(X) methods are now deprecated.
- Fixed bug with kinematicactors (were generating useless contacts)
- Fixed bug with raycasting against compounds (was returning internal compound shapes & wasn't testing collision groups)
- RunFor() timing params are now scene properties.
- Asynchronous API added. runFor is deprecated.
- Removed NxUserContactReport::onPairCreated() due to performance concerns! Users must take care to notice that their implementing code no longer does anything / never gets called!! We don't have a full replacement for this mechanism yet. For now NxScene::setActorPairFlags() is the best bet.
- Added CoreDump mechanism.
- Maya exporter
- ConvexMesh-ConvexMesh Collision Detection
- Four new sample programs: SampleConvex, SampleGameLevel, SampleMaterials, SampleMeshMaterials
- Got rid of NxActor's localToGlobalSpace, globalToLocalSpace, localToGlobalSpaceDirection, globalToLocalSpaceDirection . because the implementation transformed between the wrong spaces. To get the old behavior, use this code: NxMat34 cmpose; actor->setCMassGlobalPose(cmpose); worldPositon = cmpose * bodyPosition;
//localToGlobalSpace bodyPositon = cmpose % worldPosition;
//globalToLocalSpace worldDirection = cmpose.M * bodyDirection;

//localToGlobalSpaceDirection bodyDirection = cmpose.M % worldDirection;
//globalToLocalSpaceDirection To get the proper behavior, use this code: worldPositon = actor->getGlobalPoseReference() * bodyPosition;
//localToGlobalSpace bodyPositon = actor->getGlobalPoseReference() % worldPosition;
//globalToLocalSpace worldDirection = actor->getGlobalPoseReference().M * bodyDirection;

//localToGlobalSpaceDirection bodyDirection = actor->getGlobalPoseReference().M % worldDirection;
//globalToLocalSpaceDirection
- Removed NxScene::enablePair, isEnabledPair. They are replaced by the new get/setPairFlags (). The old behavior maps to the new calls like so: /**
enables or disables collision detection between a pair of actors. Initially all pairs are enabled. Collision detection between two shapes a and b occurs if: NxPhysicsSDK::getGroupCollisionFlag(a->getGroup(), b->getGroup()) && isEnabledPair(a->getActor(),b->getActor()) is true. Note: a and b may not refer to the same shape. */ NX_INLINE void enablePair (NxActor&,
NxActor&,
bool enable) { if (enable) setPairFlags(a,b, getPairFlags(a,b) | NX_IGNORE_PAIR); else
setPairFlags(a,b, getPairFlags(a,b) & ~NX_IGNORE_PAIR);
}
/** Queries the value set by the above call. */ NX_INLINE bool isEnabledPair(NxActor&a, NxActor&b) = 0 {
return getPairFlags(a,b) & 1;
}
2.03 - 2004.04.08
=================
-B

AM Feb 20 fixed: inertia tensors of meshes are wrong -B
AM Feb 22 fixed: syntax error in NxQuat template's slerp code -B
AM Feb 22 fixed: setGlobalAxis/setGlobalAnchor in NxJoint and NxJointDesc transform to body space, while the local frames are documented as being in actor space, as they should be -B
AM Feb 22 releasing/in any way changing static actor doesn't notify its joints (incl: making it dynamic) == > workaround for now is to use NULL for static actors when jointing
-B AM Feb 22 fixed: Spellcheck api doc comments
-B AM Feb 22 new feature: kinematic motion of bodies
-B AM Mar 5 fixed: Several class doc comments are not immediately followed by the class declaration so doxygen ignores them.
-B AM Mar 02 fixed: Sleeping code is time step sensitive: With small dt stuff goes to sleep unrealistically fast.
-B AM Mar 05 fixed: Deleting while in bbox vis mode causes a crash
-B PT Mar 20 Fixed crash when running empty simulation
-B AM Mar 20 Improved capsule contact generation for parallell case.
-B PT Mar 22 Additional parameter in NxActor::wakeUp

API Changes

- replaced bitfields with enum flags (impacts aniso friction and joints)

Other changes

- removed all templates except NxArray
- Added 3 new samples
- fixed various contact stream iterator problems
- updated docs with kinematic bodies infos
- added this change log

2.02 - 2004.02.19
=================
Collision SDK and RB SDK Merged
Substance SDK Discontinued
Most of the tech completely rewritten - hence no change list.


1.91 - 2003.07.07
=================
Rigid Body SDK: get hinge angle and velocity query, for both artic and lagrange .
Rigid Body SDK: fixed: penetration correction of lagrange jointed stuff is worse than articulated stuff
Rigid Body SDK: fixed: dense grid of contacts acts weird (Pierre showed that this is fixed but we have no good repro)
Rigid Body SDK: changed solver to no sub iters (5x faster), and correct bounce correction
-- now big stacks go to sleep slower
-- boxes don't bounce up straight anymore
Rigid Body SDK: removed obsolete rigid sdk params
Rigid Body SDK: very redundant contacts are working.
Rigid Body SDK: stuff can be created in sleeping mode, even if jointed.
Rigid Body SDK: fixed: Articulations don't fall asleep
Collision SDK: heightfield mode for meshes
Foundation SDK: fixed inplace matrix transpose bug
Collision SDK: test cave configuration for terrains
Collision SDK: upgrated to opcode 1.3
Collision SDK: fixed a bug in mesh-mesh that didn't seem to be having any bad effects.
Foundation SDK: all stl gotten rid of
Foundation SDK: array class with decent memory management
Viewer: vs7 build of viewer
Tools: flexporter was exporting spheres wrong (made them off-center with a nonzero offset)
Rigid Body SDK: fixed: the asymetry of the fixed and prismatic joint leads to breakage if the bodies are not ordered right (it creates a different response.) Collision SDK: capsules integrated (Simon)
Rigid Body SDK: new contact solver combines Pierre's work
Rigid Body SDK: created fixed joint
Demo: gears demo
Demo: bride demo
Rigid Body SDK: added bias for limits.
Collision SDK: fixed a bug in sphere-sphere penetration computation
Foundation SDK: Spelling Error in Nx.h: "usually becase you have passed"
Rigid Body SDK: Spelling Error in NxRigidBodySDK.h: "byt": Larger values may fix exploding systems byt introduces constraint error.
Collision SDK: fixed incorrect computation of box-sphere penetration in the special case of the sphere center being embedded in the box.
Rigid Body SDK: fixed a bug regarding the deletion of effectors not removed from scene
Rigid Body SDK: fixed a bug regarding removal of joints, bodies, and effectors from one of multiple scenes, where they were not added
Rigid Body SDK: fixed a bug regarding the duplicate addition of effectors to a scene
Rigid Body SDK: fixed a bug with non-invertable response of fixed articulation
Viewer: fixed non pow2 texture widths are loaded badly (jpg format)
Collision SDK: Fixed a bug in mesh vs. line
Collision SDK: Fixed a bug in heightfield vs. box
Collision SDK: Fixed a bug in mesh vs. plane
Rigid Body SDK: fixed explosion on constraining missing featherstone dofs.
1.9
All SDKs: Codewarrior compiler compatibility -- renamed overloaded method names
All SDKs: Professional Edition DLLs
Rigid Body SDK: Fixed a crash bug related to deleting certain joints or bodies
Rigid Body SDK: Completely rewritten solver
Foundation SDK: changed memory allocation in foundation, + other misc stuff so other SDKs don't have to link with foundation

1.8 - 2003.06.01
=================
Rigid Body SDK: gravity applied if group is not sleeping
Rigid Body SDK: normal forces have different magnitudes, not real normal forces, just an estimate (this is a problem)
Rigid Body SDK: frict scaling params removed.
Rigid Body SDK: frict coeffs changed, new ranges
Rigid Body SDK: FAST linear time contact solver has good friction model!
Rigid Body SDK: FAST linear time contact solver!
Rigid Body SDK: add API method to purge limit planes.
Rigid Body SDK: applyImpulses () should checks f[i], and early outs if it is zero.
Collision SDK: sweep and prune broad phase, new NxBroadPhase
Collision SDK: caching of near phase results when there was no movement.
Collision SDK: redone exact mesh-box
Collision SDK: redone exact mesh-sphere
Collision SDK: fixed iterators in scene and shapeSet so that calling getNext () after hasMore() returns zero doesn't result in access violation. Actually, now hasMore () is redundant.
Viewer: changed default friction and restitution coeffs in viewer.
Viewer: don't pose change notify unless neccesary
Viewer: punching of bodies
Viewer: better mesh visualization

1.6 - 2003.02.21
=================
Viewer: delete bodies in viewer demos by right-dragging a body and then pressing delete.
Viewer: monster truck can now be driven even if some wheels have been deleted.
Viewer: tweaked monster truck car controller for torque based driving.
Viewer: Granny support for articulated characters ('ragdolls') (only available for Rad Game Tools Granny licensees)
Viewer: inertia tensor can be specified explicitly in the body block of an ods file
Viewer: Made a real collision veto joint in viewer
Collision SDK: fixed bug in mesh-box colldet (thanks to Jason Zisk of nFusion)
Collision SDK: mesh data structure can be visualized by appropriate setting SDK param.
Collision SDK: removed STL from hashGridSpace + optimized it a bit
Collision SDK: new contact groups methods, removed corresp. group methods from hashGridSpace.
Collision SDK: new pairwise contact disabling methods
Rigid Body SDK: hugely improved performance of hinge and prismatic joints, see the monster truck demo for an example.
Rigid Body SDK: NxBody::createClone()
Rigid Body SDK: customizeable damping in NxJoint, works only for chains of hinge and prismatic joints.
Rigid Body SDK: fixed defect in joint limit plane iteration.
Rigid Body SDK: fixed implementation bug of bool Scene::hasMoreJoints().
Rigid Body SDK: joint and body scene removal / addition / deletion error checking.
Rigid Body SDK: setVelocity / momentum only wakes bodies if the set vel is high.
More orderly shortcuts in startmenu.
More demos.
New licensing scheme (registry stuff goes to HKEY_CURRENT_USER, we don't mail reg files anymore.)
No more double precision libs shipped in personal edition (ask if you still want them)
updated docs

1.51 - 2003.01.09
=================
Fixed vsync slowdown problem in viewer
Frame rate limited to physics rate (usually 50 Hz)
single precision floating point DLLs for collision SDK and RB SDK(F32 suffix)
doc bug fixes

1.5
=================
Substance SDK
userErrorStream has new reportError member
Foundation SDK as DLL
substance SDK support in viewer
breaking joints was broken in 1.45, fixed.
mesh-box collision detection implemented
matrix ops of the form Mx::op(A,B) first write to a temp object in case A.op(A,B) is called.
also same for vector cross product.
fixed bug regarding edge-edge colldet penetration depth compute.
improved mesh-sphere
added fracturable vase and road blocks to monster truck demo

1.45 - 2002.12.02
=================
updated simple demos
added colldet block and sim params block to demo scripts.
obstacle support removed
mass = 0 bodies can have material properties
getBodies method in NxJoint
fixed hashspace problem
solver params settable from scripts
fixed box-box bug
stuff stuck in air now wake up
thin rod spin limiting by max angular velocity
joint support improved for Juice

1.44 - 2002.10.30
=================
mesh-mesh collision detection added
mesh-sphere collision detection added
mesh-line collision detection added
mesh-plane collision detection added
internal parameters exposed
doc bugs fixed
full screen mode put back
box-sphere collision penetration depth fix
isAttachedByJoint typo
NxSphere, etc. can have release() called on it directly.

1.431
=================
mass adaptive drag force strength in viewer

1.43 - 2002.10.15
=================
additions and fixes in viewer and rigid body documentation (thanks to Nate and Pierre)
memory leak fix in viewer (thanks to Mete)
domino demo failure
included Pierre's new toboggan demo

1.42 - 2002.10.08
=================
fixed installer problem (DLL placement)

1.41 - 2002.10.03
=================
memory manager issues
readme for max exporter
shortcuts to viewer doc and projects
readme file correction

1.4 - 2002.08.25
================
first public SDK release


==EOF==
-

-
Copyright © 2006 AGEIA Technologies Inc, Suite 118, 82 Pioneer Way, -Mountain View, CA 94041 U.S.A. All rights reserved. www.ageia.com - - diff --git a/MOULOpenSourceClientPlugin/StaticSDKs/Win32/PlatformSDK/ReadMe.txt b/MOULOpenSourceClientPlugin/StaticSDKs/Win32/PlatformSDK/ReadMe.txt deleted file mode 100644 index befa375c..00000000 --- a/MOULOpenSourceClientPlugin/StaticSDKs/Win32/PlatformSDK/ReadMe.txt +++ /dev/null @@ -1 +0,0 @@ -Windows Platform SDk diff --git a/MOULOpenSourceClientPlugin/StaticSDKs/Win32/QTW/placeholder.txt b/MOULOpenSourceClientPlugin/StaticSDKs/Win32/QTW/placeholder.txt deleted file mode 100644 index 87c03db2..00000000 --- a/MOULOpenSourceClientPlugin/StaticSDKs/Win32/QTW/placeholder.txt +++ /dev/null @@ -1 +0,0 @@ -What do you see? An empty folder. \ No newline at end of file diff --git a/MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/License.txt b/MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/License.txt deleted file mode 100644 index 8d286121..00000000 --- a/MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/License.txt +++ /dev/null @@ -1,20 +0,0 @@ -License for Scintilla and SciTE - -Copyright 1998-2003 by Neil Hodgson - -All Rights Reserved - -Permission to use, copy, modify, and distribute this software and its -documentation for any purpose and without fee is hereby granted, -provided that the above copyright notice appear in all copies and that -both that copyright notice and this permission notice appear in -supporting documentation. - -NEIL HODGSON DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS -SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY -AND FITNESS, IN NO EVENT SHALL NEIL HODGSON BE LIABLE FOR ANY -SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, -WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER -TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE -OR PERFORMANCE OF THIS SOFTWARE. \ No newline at end of file diff --git a/MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/README b/MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/README deleted file mode 100644 index 9775d703..00000000 --- a/MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/README +++ /dev/null @@ -1,69 +0,0 @@ -README for building of Scintilla and SciTE - -Scintilla can be built by itself. -To build SciTE, Scintilla must first be built. - - -*** GTK+/Linux version *** - -You must first have GTK+ 1.2 or later and GCC (3.1 or better) installed. -GTK+ 1.0x will not work and when it did it was very slow. -Other C++ compilers may work but may require tweaking the make file. - -To build Scintilla, use the makefile located in the scintilla/gtk directory - cd scintilla/gtk - make - cd ../.. - -To build and install SciTE, use the makefile located in the scite/gtk directory - cd scite/gtk - make - make install - -This installs SciTE into $prefix/bin. The value of $prefix is determined from -the location of Gnome if it is installed. This is usually /usr if installed -with Linux or /usr/local if built from source. If Gnome is not installed -/usr/bin is used as the prefix. The prefix can be overridden on the command -line like "make prefix=/opt" but the same value should be used for both make -and make install as this location is compiled into the executable. The global -properties file is installed at $prefix/share/scite/SciTEGlobal.properties. -The language specific properties files are also installed into this directory. - -To build Scintilla for GTK+ 1 rather than the default GTK+ 2, define GTK1 on -the make command line: - make GTK1=1 - -To remove SciTE - make uninstall - -To clean the object files which may be needed to change $prefix - make clean - -The current make file only supports static linking between SciTE and Scintilla. - - -*** Windows version *** - -A C++ compiler is required. Visual Studio .NET 2003 is the development system -used for most development although Mingw32 3.1 and Borland C++ are also -supported. -For older versions of Borland make such as version 5.02, add the -l option. - -To build Scintilla, make in the scintilla/win32 directory - cd scintilla\win32 -GCC: mingw32-make -VS .NET: nmake -f scintilla.mak -VC++ 6: nmake -f scintilla_vc6.mak -Borland: make -fscintilla.mak - cd ..\.. - -To build SciTE, use the makefiles located in the scite/win32 directory - cd scite\win32 -GCC: mingw32-make -VS .NET: nmake -f scite.mak -Borland: make -fscite.mak - -An executable SciTE will now be in scite\bin. - -The Visual C++ 6.0 project (.dsp) files are no longer supported but are left -in the download for people that are prepared to update them. diff --git a/MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/bin/SciLexer.dll b/MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/bin/SciLexer.dll deleted file mode 100644 index cc99cf0e5941d73bf1e302400a2618680accd3d5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 537088 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 z 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%0AJ?Ltn`D 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%0AI?vl$ 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 diff --git a/MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/bin/SciLexer.exp b/MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/bin/SciLexer.exp deleted file mode 100644 index 5850ef13bbcca2253adb7e1d39edc83a9ec15efb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 639 zcmah`!A`AbNUMB}|05Wna_ngE@3&ICX5A&T0jD1WEAJyZt)x2(z zMsbh%A=x)*Q0`DgXJjfK1zBd=@3-X&ov(SUdcF@>1c~r{hjm5F-Q;!^xQPe@C}C3` zQ-Kr2f@C$sJ;~~bMadcx$#;Q_Zm-C`DjXsQsHp06CW7hqRKAWHP$?_8M!Qlda0JED z@ld#NxC|eYTEjfA>3w4Wnj0=6Rd~hH6gC^`_&GoN&H^l73}?XsF0o3Lcpg2`zI3-t zNnLcuOnDx~IQZsPsT)m<7F=%?BydXb6?u3=wsT}`*NWD<0>;E5V*gnB!|}+pS+{51 inEkOmGRZH07WNwxU1xtB@S0gtgMBwK2CUn*+wcjJ4R-nf diff --git a/MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/bin/SciLexer.lib b/MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/bin/SciLexer.lib deleted file mode 100644 index a90f04bebcb35281b4068189249ecd82a19f404a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1814 zcmcIlPj3=I6#wl4MaiZT+iP{3^iVxum%<9hn60Hm(k*RZdo&|1Xg8tI;5PB*7w{wW z?uYQwZ{Wd$w_f}p^}S^Vwzg0(b&{Q#_nS8}@Av-9uD)yy{G(TyXXe#rS;gmep=^~l zui_h0wCs|cy~_Yd0onzST%>6gSUBTPh}z!4e!~-$o#u9|2A%rEZ5IBEJ7(ZD*<;F;xpue9>~D)|ps-)og{`%`T3V*b5Bh#fAVH&pjdQ7IOBj?s z(C9v;$G8LYT&Hmf_gRDyC$)~HY??qmkXsrVq>P7qfj{Vf>VF8$^~Mv^t<`sj%YXF- z$-I+K;4tzmOFaiQjrcuehTlIvA$wECTU=hM8+i{mHc*G6?EsO9}-y`$b$eZ(}9W9N!SiWp3 zl=J1A66DDF@}Kfxme{V4857^Ex&2nMuGQHux?mXSoBcMW&Wg%aoQ_;)@fNGIg2Gwv rrxN6N$Nrtgr;q6B$&c6E*=Va|H2I&zMe1t&f<28G8q;6rcnI+aLZVcB diff --git a/MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/bin/SciLexer.pdb b/MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/bin/SciLexer.pdb deleted file mode 100644 index d09e00fa06ca9ad6172bb1592c237fb0954de3c6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1403904 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%0DZj9-5#t?#BI?f~PPCi=n*nExe15unYT9 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

#o)h`TXniiO(atA4iXV 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

a*{J>0rgmri8{6wUr}UqptdQLd)c)y; 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

Uuky82ew{Y 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 )NhqCXosewZsIk7Ad&l~-&%ut-Sm4mD6GU#m zK)uhXvsY5PSowL)&p=y_f!rRB&h?0cp=m=ADO(1Em1?ZC_n_Fhlh<7H)amsd2ePMz zCR^7#I`2h%`%^PtL8Q`4$K1E4lcB$!%8gE-oY%a#WL|R+lX=Z)NcP6?WNRp5mcw(1 zFa7+a{)m(U%2kE$h7r$*7g+4QDctA;=FjUp<7Ag$uD&x7Gk=#N z{@|ARKOwTnyyo#EyKW5HpJPh~)+daX1vYcBjtSQLyG52%v^tUU&FpCQaQzMiFFEFiFpkZF#Re(^Hu5 z{QC6Rm>1_B%4Tfm&&Brp;Pu7AB4DDEeM0Y~H8%*0YI0Qe&~@9`e3edLMtyp{vF*IC zPb?M|)L1WUOnmsGM}$ROY|&qReZry|W5zb7k7V)N=}o9lk0(?$)epw{x}e6`5XMY? zAT}n7XpCdO(|$Xjr?R#`HFh|*^?ziKi-h?us85e<@m}rk5*E}LD`p^R=`+G2V0Pb{ z9^?S))=^L0B&-%pe0>-;hW{M$jTUM3t89Nj?;wIxY$%{R-rH}yFNY2z4YhxHNpZeHg>{oton9( zE_U4;E!zsK0h4m4&VLTwJYQHHnAo{LHlB88dQg}@r=GRP#wj<9 z%_+j_z@#qGAqTHMj@eW`^G~j4ZLqDw)TG~pg}}rwdtu{;k;f(otJdW9#Ks4gZiuzp zI!$g5uvvB2CySgvuU;n|x%TMM>`Ig^AuzF%0_(rO3#-#~vQd8h zK<0JA{Q33ikp-skX*(x9jU{5+QKx(pgYr$GTWZV;qO*a$$|7xmcyf2D(^8V*^~QT4NlC z=;_sHjP*umwFVY7usV%#9HQ&ArquiT7#B;?80(ZS=QA+B#{4e1fW|lu(RHR9SWsi^ zgLJu&#*TEcu*NtJ(d8;N#&L+wA_i8iv7Rou8jbaEv09C#x>!_W?2L6=>NLi&hR&>l z`tozL6peLv$@w(K&O_Jf*BHkkItv(Bx`71^EM#C|jqyOM+fu19jze@7(U{N0sx`)O zh%Q&7F^)rYR;w|NLv$83usV%#9HPrvh4tmf&QWJ68sj)bXFiQ_9HKM7#yF7BSwLeP zhv+O_V?4g=ENEaM0}C5irGZ5ZtlGe8G{yt8o`+hEaU7zvsKz)B(OI3wI1bU7Ra9So z?OZHHV;qO*az2f59HKM7#yAeqSwLePhv+O_V;qO*ET}P#Lv$9>7!T|^3u}zy5S>+O zjN=fUMKs27h|a1t#&L+wYBa{NhR$jYEUGb%Lv*=1jd2{JGpo41{5TE~#@`Io74Z9O z#;G;?KQeCjV)TU2#{yoAV;wKX zahDh47|@Fa3~ac8jWV#&29|DMV-0M)fn^w2(7>_{EYH9S3@l_|Wd>GmV6zM?Y+$nu ztir(N7+9r&%`>q12DZ?^BEo$C?qBW`hQ8+<{FcDJrwU6V7WPYSw$#9?4Qz#htu(OJ z!jK2IEj7YmC+oii=3xyM$%C7%HL!ICR%>AE4QzvfePUoy1KVt1TMTTgfz=t64Q!NwjW#eo-{Mt%V-0M)fn^w2(7>_{EYH9S3@l_|Wd>GmV6zM?Y+$nutir(N z7+9r&%`>q12DZ?^A_jJ!fmIpUQUj|tuoVWj(!f?5SdD?LF|f4;w$8w64Q#!EZ7{G; z3@mD3n}uOq;6A=@5r%QW**N}4;J9F`fz=t3@l(^!wqbdfsHn>bORe}VB-xe z!@zkVv!fqi0NQ3Km-U|S4qtAW)S*meWkVPHEA zj87_i_1B5QaC~ZPw(-Bv9uTFv)|P)fw0hFy8xOdZ!^i zxxoJ*^-^aCWPszjfIpxZw=ZfBq^bHGv%vrbS> z0@*^aHi#QyRbW-{X}}ivIvqEcvXo254HuQ3FC{RF8=XKl7VJvIv~wil^m#W> zT*++!lk~_WP>%Cbc(FRLO6)_Qx#hyRG33Qkpm4N@9N(DoV%1=F9kkP1KWf4=w3T+Q z1j9e&Gq){k46GJxD4a&WjDY;9?|tb*q;$658}EtXH`#E+KVI|mKw;@%$2sgo#J9|U zYr3#Xuxc{+g-inN4B!S`8e`}jhB((hYb`lhIoL|Xlp~Ws=0|1W{X)ty-RFNFaUD6? za4>0OL$F>rdDQ}8*%QvTG~3ZaRZX=m2!NJ<V4a=xsQbumn;sXIc%Ws4u|hdMk1}oa$rZvX!2YLLAiy^I_W4T+ zh0R8T=5ykdI~p5@c6>NfSbN+&=Y2-DKeBCiuew-RConc}VP(@k3kvHECVda(M&5mK zi7>xQ=lORnpvx`#B@L_xV%p+IJoTVugJUDOxRw&m8 z@qN=*#_Gg6u(KR?B;uTVw#3?s50xe4u-=H*b{Nd!Q0Y~I&2(5V#Mh2o|A(+Pc))>u z71Qg9xJ}wcD};>)^E>T`dD-uP$It`VIxBp5XB59Fmx?&|=B)D(sq|`nc>fW<$@r|w z^vBlxf=IE-E||B}(aB01I;j*rj?LyAhIdc!n{wR|w+#+qvPy0%*jR^kLwrZZ$sY&{ zU_(cz+_9VW#foDl3(G(vw_=4lyCU}IT|<{Eo!h}w*@D3=>#WjOM+@5l#x_YgAL4C; zUiwN{8ZssRjtMk zCoB~QFJ8+eV}Wlu;>0h6)uDl%jS9eVPXaau!xv&t+m=xQ`+HfG!!Fi>l)Gq>#oyt8 zj0*yR1z4{f)N?i>#VR#+t&2r8_Ku5HYwT?os{y-AOKoIpG0gGoO~cKpMA zz9J@zXma#xc-_Xu!m3=X-OO`hb)wqEPU$(nSmaiMu>)h?sq^v73D*c)4<_YK_Woae z&~w#wn8 z7jL^-SU=PNoy{2k!(?FvV25jRx3-w|t+076xtHE~?NVXuzx@hd> zp?_}?)@daAZ;jnBW*&M*JAb3WdTZ>iM9vCnvvRQ86tn$u%U26>g{7RdtK7*4{C0$} zAz(d~ob9te2cG+suspEt8hhuLG4~6rbg`T6I`Ii%E5Y44J*u9~b+HZxma4G|mt300 zmb%z*Fll2ffQ_$hjP-TtVC}Ju`6CMtIB_E)Rd=&pak?$gKm@ z%c0GE!7^bRz*=iMlco<_Ei4Kqb&$S(`R`|9wrqB>tV_BN6}c@g7QOt57lmzgv8lCp zt`t`1Vprz%iJc#9cd?TPd>rfNcevOaV}F<+I(NF*s4s8ZB#Z+vJ%6)Cr(Y;6(Z#Mj zb`nNjb~&_mv3-)OmI!O(Vv{GnI8s;&*dADs@|)Xg%RFJ7!1VfZ@*mItCajxF?w!o_ z`NI5QdL8WX>MutK8v@oEE0W$btv+Tqqw3OdFg?Amvugh*Y_yA2+&`;8*jO;#XAeI6 z_s7D9Au=>Tj@?*r=l&9!EUX+ybLl_X8SDLLg~r%ObT(gOH7-`Av1eUurN&qpbe(I! z?6I&vPz82s(cSroRQ^5zlVbods9!5Y`XuaEDQ#<%a$562^}?i$BTq{1t$)QSp2w2l41P z_K2MWEd`T${W#c#{SJ&Bi&uh0D2H(m*)KhAcma{capZW^DpnraNw#3xMeie0tQ_ny z#ca7JPs;mASno6KZ}E!U71u7gLs&YPC&*kvvj2D8gH5V!>Fv;N0t zAX0YD2a~qR4sgb;1AY`10h40@S=UXoN`+OqSY-7nu|B!lrSrg7ev9=zE5Rgx9JJ|q zSgWy@Tx^5J*0|VauoP^gKR-kK&W&p7MwP$qE>^Lw=QQl1SmKy^xlgg}=6etNN?3c1 zu@lce{E~ITy1CeGH$M@RO9LB)9ogQWMEvQFD`S0f80;j){DCN939L)CV671ceE+_e zwE;}^gQ&Z6MF=tFJ~6PUfo(RhEnqzOqOJVv*`J*nJKJST%31Yt<6Nwp#?EoEG>wgS zvC$eE>taDL=lJli_dBu;EYH9S3@l_|Wd>GmV6zM?Y+$nutir(N7+9r&%`>q12DZ?^ zA_jJ!fmIpUQUj|tuoVWj(!f?5SdD?LF|f4;w$8w64Q#!EZ7{G;3@mD3n+fo(Og zIs@BoU^@(Kr-AW?hSTrt|qT1~$aN0tPnRz(yI^Xah?(u(1X<-oP>pENEca29{@F1qK!} zurdQHH?Ua-7B;Zi23BEUa}2D~z~&j)d;?o(U=ahm&%mk-Y^i}&8`ug1TWMgc4Xnn% z))?4Y16yZcwFb7{z&04zCk7TZu+0Xx#lW^2Se=1wH?SQBw$s2kS+k6gE| ztqrV=fu$H&djsoWV4V!iXJFk7EY-kz8<^j~`WaZ7fekURfPoDc*1$R5C}9{E;Abqb z+(#Q&x`B-~u<-_#VPHW6%Qmn)11m7Fkb#vMSh<1CGO)0L%{H(K1Dj)Dl?FD?z~&p+ zLIaB!*nI|8WnfDUtlGd<7}!b!TWw%$Jko#SXDqNCtue5*2DZ+?Y7K0?fo(9bPYf(- zV4DqWi-B!5usQ?VZeTkMY^Q-)xQOLdeu)Ow+Q8ZvSc-wQH?R%{*2%zp2G-5MQVp!P zf%y%rpMj+r*boB?7}#(F8)aal4J_Tj#v0go1IsY5pn+uz!|@$eJQmpZ~a zz`#NVR%T%31~y9=>~z}_2D9&5_;@N23(UiO1FHtJ@8|qm?isKHARqAmo7IA~_h6e1 zI)60CwZugi``+2V)9VD*$s;|^bZXzz__y3Buzfw`&I8-qgXMvF<^58F+#E13JFCFF z>|6=vRerT#UbcJ<=9Rx4hV)va0@?SL{_V5&U|u>82lMh-KQOQS4L8V*F|eS46$$hG zI}fwKB!BKUT>&O`y4ie#+vO$zb_Dav zdrvSgpA7)>N^iI!y>SMXXJ8kBdD(I`n7aRme#xEp8^OHtx5%LLAp?67%q#C}4D4Mn zX}4}Ww}5%sxx=6{2~S6P)t3$i))UOjp92hR7?@Yy(+%lOGO#i*ul7)3kh=rS%a$sG z+%sTakQ1w@UBaHgL&nzvw`&i>+Fmt+~qJD%&Yt^ z0P`yM5<_}dfO)ltO0W(dwp1C?;}=!D?0gH%tBf{+dD*fB%*&rU3_24hIO*Z|?)GO2 znCKjbd`jSW*JogUFzE~2aw8=@99P_Ij6vrl11mAGE5N*LnGe>Ze`NJtzEU@oc2PW;-&AtZfgnihi z-K=G>K7VeuuYq+1^Ga_BnB>8&bEKvdrxLNiJd6w0m%E$g8Q4W&Qnqfn3NZ1Rn=J$r zJKgL7Fv;Iot3J@q8Zc?^ZuS9~^mT5w1x(tCn{78Rew@oot__&fPq)ra2G$!)`WLs{ z05I{Vn+-RxF^2Re8CZ!yXV}1Q1Z!_Ke4S{qfjtT4<@6@aUvC2QsuSD6yy`^K zByV502lJ9U9L%eJ2EaOa_+`97uEfCRfO*x4I}EJKz@7w?e#u?W-UajW^%r1Xe%Wqd zNm<_IzOR9G2J=eKZ(zf~yz(%{z$Srt)unO+yV0O?5tvt7c^u5EY-_;SHwJuGpao(H z3C<6B_U?KCh{?EJ*b^?sYbe4_buqR})i!ahSv{2PaOz~87P%qLc1C2ZN5TekqZ7z{ zScDzxY-dE)4U4cr+~@?dR4l^M1Ry5st+9bF=GWK&7wf07{w~HeB=6i$0@E9gMQrIS z05RDpjUD4+qp_~8S;3!2yBOP?=%mdOsFP(baz_b3Ocul}){)y0--tc#0PYs}|jD>Qbfi>=gHXBS(Ib;1#(6g+y?tD)y~fyY zOQ6mU8sj_U639Aftc?J~WIm1UGmU}24oLLR=aKKemsg}$CG4EMar zB#>2r;UC&`iW(Q(=1-nMPBsT%mSX;zVch5hveqn6EO^(erXPO39x0eatQabZs)I<6 z{rs1{Rhxvh0brkl_tk3H#%?)mnCcQJ*G-dix4%>>#KQF0#*zl5Wg$}O`B8DHg#A(w zaqyk;a}X((4n|S3Yq`-0Om95cEyyEv-ir0j-G+`KCfkZeCvsO|UC%=u7(|s$`bPrg zc=D(6hxAkdIFPIZ*nGrH?>fYJ;mqHN$*RG+A*P)#A|CZfiRwnl)`N*H?APx;=b&^% zN{(~sRp2*u-h_D0q63166bqum@j3b9K2wfA^a){MI8k)wa-$QNUIo}n#CY$shU|uu zH-1h`#z}%C?@O?L!b_K`E{|*!SQ__19_~VXNsEH&A0&S@V+ku#VVSB%I@VB!ODOQEb6?W?G zmDo1*h^o7V`EfAuV}&{=BEI5^!A}bdg0an0=Xz}XBWcG^!q(ydH6JTvIfx%${>B5s zf;g~sP|RPGjacT|p`Br{Jcmt2{7`Kht|~k0z&J-Ob+U0?a!BR}!gv5?KOKghr*fkc zsB0AjLr!W!rcYQb2s!boqVOU{SE0J092QZwAex`9c0!(1#C%%|l1HA7r% zl*ZiW7I_+TpIdOAJ<;htx2V!snk&7v8XM?hTQoMn#ag5AB)$GFmI@ZcHu{?VpalB5 zLX+z&05MsW#@y!?Yrz88hdPf&EP-;ZF_`lqCSyI7K$Z#?KuqR7x5(4v`iKx>Wv9lD zbg?Rp^>(qfT6(=)tThItK5U~cJzXqSV?A7Kl*UqBEDwxzh&tWp7FA%CEx^!c9qy7# z>s0R-H!BD8IXb($SE;@>*8YbHAZ;}ETfegbDwu? z(3tzYV+U9O^7I*g#sYPwVP_v=GGr$f$i{2Tecn;7F}OVzC^uhYs2;JP@}MzP@mL_+ zpfNPXSRmU07DY@u(M83Al7lmR*g~cbm=0BP8dHM|jdg$!{wXY4kzW2MI2wwAytn!CpKrE1@ zX$-@MSRfm(F${BJfvj9(tz*RQL*{EN*~M0BEXl<-fCaFP<;UZh1eFIg9v?Q4@%SP^ z(10<;dOOVr>qqx8-IR^MQ%Z>s%}qtW^uz5~#Vx#r)ms zSFW2kQ~xWQDaQO^!0pAZjk`QWD7MG zaj^&(vZ2c1eivH<=5rXwrV^-gvnF?k0K{aiaiEdBuXeFE8oScPQou%I8~ypTi*deK zsb^I#7SeRy>tdXNd8MN>+r|7ikhWILUvrO(aV}ZO!{aVCL}RzO7$?>hxn(XkTw~QP zHcDer7Yl;1v4nlWntw42<|I8g%Qmn)11m7FFjxy!=l^ZX>@;s%D#7f&ApKu?h=8$T zH|>!7eCxO0{54C zV1CJ7xR-RK)yFyt=krHfeK8Ytf6Q>5W(~p|`^UpE!>ki=_h$qqryGqKtkbPCt+T9g zc#LqOH3@fHa;(WXFVDxfGDoV&KYqoWD+<({Ly3DoKb@;m;cQ#6Ewb*mBGx_DV(VV(KI?w#0sJk&cOo8C ze-Bv?<8P_;2>zB~R_f~5-(%L})^hc?!jiuytS77|t*6lQKaIa<)ZZ#=m9^S>c9*~B ztmmy7>jmpY>m_{I^ksbM;#J&rcn!02zmA!x*I92`Z&`2Se!@G}yViTSckn*`KCnKt zHdr578?BE~cJ`lLel1Xj@&C0{CC*Y8nfhO{#g6Um@_zy(WY0v@m;@!yx|5{V$ZXyU zb&2(fYqpfCXmR`}>9bbyPjw5e@&cA0uyn-WXB3t) zEcapI_g`9~zwu+4h-D6z)mXM->5M+&3@n#n;qRqbHezX=gt>9CWMR1p%L`b3#&TFP z=5EDuC6*_!e2wJ*3|>ZJDaCRxmi1Vus|8M8j>3|Gh3nTLUWMg5EW8eTG8S&3jAaUz1z6T%*@@*SoTQPT@5H=*`4txC zgWC_n2_AKgKztDv>LlYe$q%t4;^eSD7Veva_%k0OIbCSsY3Wi^(qSUTcD#VJ^3VyVKi z0ZTG2Y#f7SB9=K=p2qSumi=)tWCWH{EQ_(cjpc7FeQ>Sed@R>uc?!!{SoXzrgp;vc zhGhko&#|=gA+K0MSnkHM4$B`{dUk=Yu*}A?0?QXzQo7kuQAAXHKuD$R-8<9V5-Q*sKL(3&Ps z%kP&}kRQMOxy2=AB~9ssDUjC${RNqmOY`!ZP*^#os?Ux;33O$dXjgF`=X3INb90*D z)2z}abRk)##nXzi<2NR&1Z}V>jVdeD1Ye?o=QhEXf*DQNxk+QINz*VaD{4XmpOjge zpB29~*gc*~Da~+7&deFbCE2C%_I#5vo6dlxog=TK8d zznR(bbnW8q%&e@O($eCRxZGVHipOeE9V*ByLzh$-x9WHfzti(`W~c*XobJmn%FfTq zEQ>RP1^Goeg_$K&a^myHw4!`8b&;;bosvaFHEW{f*) zpnsTgXIx~*r>SQH#*4Qy;rJvqs=vk-5CuOHK5h>v)SQvk5F&m4r zLNou9SYhZth!x}%HC2jvL)QLFYX4CxuL-3V^CN~gP0d+hP9aZqn^;3m8*$o+>E|}J zh9Ir~;0;PS)g!KEQX0Y)oHCqIS#j--D;gnQ)QE5I+}wg`Jc)^OZ!}qsc;eez?TiCm zy!%g_oKuGGIquzaOLB6Ww0}WqlXl05GG1Hk8k-wRi&vm5KN~0D@h4DPmYq{H9b=OC zT#wx|OD5yeY<#;HIz4e*6)d};06n-rUftZcuoPEH;xmQ2=f<5+?wyTJqDcplth_0u zWm8la5m$yWFfGq5z+orOEMWiA{P;7B)2x!Rthlp`-VLS2i?s1MbSh4PF_ zI4P@aW+?7@H3Ov{_s+$ox%ox8xHuo5DFvlDIaBfn^lQ@o@$Q^onpswc8-?+il3&~u zk7N8^7=QW5KwxD2V|QGP&7O{HW^oVA?1L)B@~1ads-U27T0#6>d{GWALWe@}`87Mo zKF^7F|Gdni>;j(a$16}eDKCfDAL28oBnM-xVqCV4Z}-B|{EOnQ{Ji%aziL|Dlq$yo zT)bxUgfxCjc)hBO2l+Uil3iTdgpP6sPNNHPOENx(mlaP7g;@OY?p{zlBmUj=u|ST;FBMP0vxa0|@;>mZ9PUHRpzE&& zKMLC@FFJG{1s?{6$3b`DlD;3$HXdV;4}p&`$k%}5QAF?b!SP6BEN%SU#eRM`+9dA- zH^~RUhZxcigERkL{;35&)!~R#(EaB_;@4s;9%+r`K`*~*@NZj!BLUt2c(hclNANu7 zVc?^cX8S)~z80CEjLj?`2|5qpdCnpL>XvMhFIZRJq%C`>uBu8H7Qa=NDHgqsR z754FCVW57oKa6KQ`(vH5y1cB{fM1LJWrOSX?TNj)PkL8-z7^W2%Zq)LhuQD_lj-te zA74m&9QwzCr($8CeWIT)IZORl(BUFq2cC{?Ui$ft79Mw1T(?i;`M#CtZ^*t%@V<_` zv~j(BYQd2OrJr?(LFddAT;R$5;3qn~A^XDMcs$tC{>FF&@_0PiQ~v)iuYvwvj($Wc z==rY$H?{wi9`$pfHI)AV_-WAE+F6(Y^~dTLIGUi!9~pz5el_?>*d}EsT;%Zr4c?To z+dmnDu0H^N9JVoi-9C{IgR}gk?D2CK`C9NaZ1a*&f%C>V^4y0(Pd@~HKDN>RhSIME zpA3d>szDy;-H83*)Gxa6a~Jyr}`p<{$)WJaeMLvkk--30we}v;zFDnb2 zdDHzXJOnQNJ9bfl`X&F>;QL`+WVwURYr)g8jrwT=gKnP>l^azg=36&U2cP3`Nkf;9 zg0BXr|0U==g2ovD@Zx-rk?*LciZEhbp6?dEiw(42bm+VmgA10g*hV$v;-4TIzlqm@ zOaDq)23^zrot}e+XxSX^Z3QQwYJ4~@lOpn4k4Z#ukFU#m+l{_ zKR)o`j(kHr1kUjZ)7H6^Uri(Wqm*xHw~vPEkAF1YWdmm!>-iJ?m8V;HQ`y_UHQ=W5 ziGoY{K#dBz|M5z*k^36qfkt?+5gu-YN5D73YWhb4?U(+gGTm%{btAmC5nc!WInwh= zKYFHR;Sj0HuA%btVQ|_RoOMU9KT`h!;HL5kf)^X~*Mc*BFa0TJnf3d@dmH3~;D>=T zq}Y*ae+l@_G%LZ`KYFFl6H~t<*O0s){1`{x*=?8h9RlCaz$?K|ad<=ije?_#^t8`^ zwuSf8y^mihIJI;LOxxA3|4oHNuRf$0kmAaPUw76k8#{k`m~1VeVO+7k-GKtrTin{yngAGeqAH-p-GrS6Y^f==gX@1T|@ax z2RHQ}od3SPV;>?Fn18W93Le0^m;JtMyn_w_Nt+6E`Cty-g~tXj`$M_*xsmuzlfWTcmy0xFm{a% zKUMxkKc+4*@*p^ULt7*dv`_pW2A_p>+NSeZ{!zFlc^|m6UtM1Gr-LtmZoLlZ{;dP& z_&e3H0nsk`3r(@FAGq76*cT|UeM>p!fr0uHu+W|mIQ>s~-9C{|LE&|Cn9jxi0QgjJ zFaOklvwe$?u&YX6^hb*@7lFfR1B0IbNXR@stOYk+pYp@F#ZZ_Iy?Xwoend+!_kqLp z^o0k@aQ&#IeT_mH=h)W{+USqybemTQbn)O!3$yRoY3u1r{wu+If>W2y#lJP+i@|t| z)a?`b&_(svR~wR#fFJJYZ>aog!D%~XbuRjY7u&}#{TQv6j}MK5;}-@!eW_mo@Xx?@ zVuQ~2!8WGnyToo^_!;YCs9)qG;CWd0te=#`Q6H3Krcy z;a1ole=vRB|8o3`fDeViY`@gOK>L%hFul6VasLJzsJo%`gIC(u2fXqZ1)mLBFZmGQ zA_Gsk3iF0IY3u1r{YnRC`B1-}KgqxUYSd5IPu7rsg4fvj_u|zRcK`2{Ki{?H{71k? zIcYbPejRuO&YpvPx?y3U|J%ab%x`67{rFzbztpc9@H(tW8X_;{TRqQweo+hl1cX@j z%p(KS7ynga@H!CdOj}Q1)@vK#DYu#J4}eSGs_U2X4TAfev~~Xp4}+J2lj-teKMxMw z4f1~QFTqnC9f(x^rT_HJhddn8&x5BgurSY;A^kh*@9$DK1N|%Z2f!y`gAd#E{Kd-e zPF(*2@9n`uxVSc1WB94`Oa7zaID~onCmoFsU7X@R#0<1g@?Q%+66;?6_1$f*A3^Xl zP(Quot8s7`0R2**@KdEP>viC!`scqF^8n%a=Gi_UF!!(N;Ga7AYpDMFmsr+Wa0rhd zdijWdE2}KbuI6oj@ImwVy0Q_@j}M&d=%)<~EFY;qzK6{1C(sBFf*$~V(stbX!{AvC z*Zm{u*EJ%a@~~OIADqV?uk_Qw<=8Fz==l$UoBEGR@V<_Iz5K-fT1}pLXVCT6ft&10 zS!yod0Qk|+DfQW{Kir6XHTZ#!JY^Yl`)a{W_SJ!#{FCxXJ-4;*s^1UZQ2P}Bg}~dx zAg}yYF0<#MqwjV9OaE2}-V4l2-uI|w9cti#MtHCh9tM~GrJ?-SG$J1bKg_XD&!6}w zrMkZVZ-}RZA7sd12%K~Fx&0^oPt9ZI^y|PeMD}c7p~o?g8T6-OpEg(+SieMnV1>DU z1;Kk`f3NbZ1ULDo23+#bv>BMb_%8}>I)0~M@X{XpGkpoVydT_TUl6<-1SzlQU(&Ax zFK~E6<;R;-ruO9n_Zj2^;HNrV@}S#a2`>4^ZYt=!2ApLlvfM%Eb>N*1JmsnSZ+?jm zT|Q-Heg3GMLFayO9O8E=19GW9wcu4)XCE#>=i#R<%=zkFf2zSh1gE_2f9XFepRv@e zvn)H-0|s4xXjQ}KKVo0X>iTc;+0wh_FAOf_+Ypa{-w(j_b^nR}^k?huPw4gw4?JgK z7FloqM8Qqt+u-x&{y74kit!Qah?IfupV}8N{siOrzajerFQWans&5>-W7@fBvp>X6l*~dSz&CS!n$6})wuLf_01jE=ze5j{i z^QL7z+tR+rBRa_2KqL1L*V^YcUiG&Ioc4S957P-7uivMGZ$|pVp+iq!+HYXJd3+uM zKOy1Y*S|!*8l6Kz1NjqP^AXPP9s3cf!2C=3r);$6$YuGl4KV2bi-4bqZR8SkUI> z#4dfX&Z}{8<^pU;!#?ye1G(6jf|C!PUs1pAAL$>0;AB#^_^IT@{xEn~1Fr@@!oZ`A z@RUvV^NC*R2f>#^Kl9d*{l3pE%$Dt4f2zSJI$YAAePL{Uz>yLEbC>wVUndZ$&q4(9^fRs=t2S zko^(x{UPI({~GYi!1X$!>koX5Ieo$Xjt)e-r0@F%brS-q9z3|kvVtg#+2E1~>gR9T zRP&Sh`n9jF{`ns4t^(zyd;{Q7Th1dR8e_c*&AV-&E+w?oeujqf+zI86``~PF_O~B+T%D(UFWoAMW zNJGLR0c;>Zkf05OeX+BWz$9t1utRz>nIuCdGtJCoLx`;?ilVlP`_>}3qP9D(3@VDt z<1_9XVk<7VVdIYa==c9u)!parp3~>}eeZ>S?|Z#>Y81K;ZM z#l8agK`1N>rJB$3`bx=!y}ycRi+(A;0{$QvWo3<_ece8PDV4D2s~I21TTA^i>4Z6D zfAk*+u@5m&UhWSR(78`QoORRnlXw~YiUU)%|QwKd@A+L!;69Ci+>v6 z*uvWWskzA4@T2DZTbt)05BF&dloy^mIAQXLQ@<`>^p|3I4g7vMn>zSn(E7_ya`j`n zE??Sb68xUI_&sh2Enp@D%4c8^ZK|A}Fn##Yi_eTRX#M7#gqb!Qzr~G2-987QHq4({ zm9XdkWV(LR{tfV_O-DJoRzAmrFaE26M~*-6`)LPW614r5D-z}=0I{8U zG|ya_Xr66`)jtou661?~TgIrCuiy{D{sWBdFQJ8Blfd6p2z<*t6P zp#9Q+OW?OdnDw7eh@k72xjtdf@0iXq7|3P*Er8R0hA>_Nzt}U)`I)Z?aLzpp+JBFEsKF~iRU)Y;4^N=88kXbY@-w?FF7q?v6zY6|!0IAy)`DX;{x8%|K^EcuzydZ&N zD~uOzN*I1=d_f1Eeo2@4(flr;)-U!K!S8?!eXqxt_$Tx7p#N(9 zBA)}NoG^TB@lOH#l&;_mSh&oel~*V1`BliAJjZH5Y<#qXDUj_U-uy3i)gSVFUDZMdapWopa z3)7!@6V_L-PP_!Z3%ry44e+N&@LV-|f0GA43FC7Gbm;kC{8zfe?Z3JIpbZQy{qHRa zUgB9Fh1D;Ar<=b!`L_!GLC90LmKXmP?@E}m=em61b?^t!|L8xy7-*mLzuLQk`BT?V z=C=m;1;|g`Vfu4-C+yrr+q8X6|A4PYfh=3g3!i*<0)OSJbN$SFFg{_-ybk(n?@O46 z&_1+X+b{YnA9VAZl#Oh*{^FmB4<+pLvtqk&k;7(7+gZzvbB9u|J+2vEK;)g*fKuK;7{@LWDK-VDoWizboKUuP|N(U*Kgm7yBl`@d#i?|L41-f>D1AaERj9q-R{ulY|e#yx7qX>Sq*Dw7@`~QjN6_kIxFQ2wE z=<+AP&p?{kCS2-grYFsBkVxN19xdMh&v{N+2FCT+y>#s1v>$>!cQOn(79s{fV14~0IF#mAQVRbuqlz)$eoi3@zo)issoEo{!;0@HeAOwq4lx%w(e5w+PPb zE2$ekTKlE_tKdf?jr9-n|0FoiuNX9!`M(anzr&%t0UqVQ%z@GUF9#kaUx?wQ82yzP zUIRbM*In1Yxqiiz-vB=q9cF%;|KxlzH#=$fH(dL*e&H4H7lLv94r~AHoM>JHm$F#~ zgYLg|@XN42c|Fo~`LZVF4^7&=x6B4BvpjfI{hnxELithqg9`XURI0uGr2doOIG(q@)BcnCH^5Jfkk8Hy$`6yzgGa4D zMey~$eCeaQeJ8-9_E!z?sQ!~VBD(w>c$EHP46nrS3GfFo+2&A386&Kp_`jNU;G0n(`+r#ZjboDb`x%rM9ooL)u}OP>gl#KhNViV|oaYN7i;peq zQ*K@|^!}LiuOj$?kdeM4^1{pDr+F@USUx}VH37a_#qrUWFFbQxAg||N(O&?63uNdU z&82t_c1Do%DPXkJ>7G;6?UkN8OYZvvdp_t3Y@!$2(y{Uh@EeA1pzQGXb(f=7+7N$@ED z*1=DJZU*hYrvDcu&9lH*z69;RD)>SGk!2pu>)>}FO>A%HmBmT(SqRJr5FM14^P}QY z%wI_0`l;Jb_{1`||09z!C@=l5wA@`kBdMi*q<(d9UcWGCdEwa$llWWg&Nj`Z|J1-w z0vFq;N0(m*=lLo7hL)H1<;}-WdL}w3FMI<0XvBr#V~hRSwNoe^B7nuWwy{r2GON4%mdk)89-q z=V;m|&tFXR;d}&fuD>jUfxM}IQ_}u^<9SG99T+sv#qeSbuf*_)7~Y8C+5Tkn`(X$ld`|{w_D-0i7>@R}vMH+pm?UVBB;Kze?(x2IuG+A&4EidbP4qWzjVuSWi zZ7}A11N=Y;%!B?g`Nnlg^FA<{+h|9N{_RP7e~0}itp7H^pA06tMPB+}W+>W!IdIPZ za&02=(*H`}ANE{q)b{0exa{gUj)yCvHs!%a;bk6Jc~GGwf$1R3GgWU>);D8m|oq% z|CwFx`j7tA`lb8{@K?Z~dEjC8755~Y-|q^mUj_U^C5w+Om+KF6L(KjZ{Hv&6js^Rm{hz%N*B?m8f{Bfq7jH`P5!RMx{4_7`3-*Uv zztpb=&iTDl{Tkpe1?SigE5Gv0qbOc;4@tD&Hr`#OoG!FI%r-8=UF>LnEefKp3gFb@yxC6{FPkyAE|#Xh8Mua ze_{Qr1kUxDA&ghRqx@F|=lwf|F!_lXUI*`T;-U3#fXn_$`-h+T%Dli`e|!UtAbpVj zm+?0NKF{mdT>RGn{|fl4@zVNbew=t=(mVsKeg2dFnZGTlzb~d`{1(BF2N2&dkG8J@ zz5r=bAK@~-CcvfsWDJxSUXPK_yeN8p$bm#0T1b^Wy08 zbKrmU@+_M{%jaH_Y<|Da(NpSsK63y0(xkZ>g|hF94Z8mo!A}9})c>mBa{VSg(EgtUkMf^+8SamI{dluM z%jdzP`d1M=N`D1BYW=H$&qJx5>Q@Jsy|y>6rGJ^1C++u(=|2hDe`WANfKI#t{wMJE z{fW#kjoaPzcPIPuuW;wLvFPlP|q9 zX`er2*}8m@FT5-K{*|?Gs+SJ88dv+Nu0T3@^VsX@6gsy0w0> zzx1A@{e1$~Uvud{h4%y^U8;l&F6o^%$zXY5?moMYL@NwK< z!TC%cT=!qGZxTNq@J+Dx{@sJxv3|8rCGGb!Hn+)3|E^BB_M!a}wEv6uCGGdG=Ly8S z=98aJnr9=elmCmKapxDbPuEZE&wSR+ui{%4qxDz8xi_XP>%*XV{(j8w@XtIXhWV%X zd3S!-NxlkB`^C0){kaFCuU`r=yafI?*ft-E!|X48F}S`K8(2SS{|fke)Ng^ZQP;om zWnAAQa}GR<7lY=-$!Ps$aGoDTz*Y+{aSLGY-{t;Q2|IIgp>k}<6 z^~-{v?sehK29_`LOA&lA;+@K`fy@0@=3$_`*jESNjyTKKT>4+(Tkiaz6Q2M-PRZh< z)i3rnz&9eTlYHUZZvQED7kMea0)BCXd>vfQ54HVLzWI*xUnl)}aGrm48ehflMn7MW z`Cjz-X&(GE*iYNU2Hk#T@EREVMp*yIeLrcxAKb}*xd)*i{l610JrwRAY5xlN-w`Rb z+1K>{!_oK8Yv6MI7Uus+aPF`Ezz*#L>(4V6=CAxD*#Csdo1Z4lsLzWx8(RDajwRR> zMHo5A<@^8nM}q4MC*9gVOW^p5nVlcP{Ga)yTYtDlNuYlDeq#xo^DFz0Zr`T=ejR=P zZvvci3(Y?aF9uyd^BcE*l1mjeFM?n1Ss1T_e+~k-p^>zGa!pnHt$Tizb=UG@f4+hF z6N2O5Vg9N8C3^pB9*@30%*F5`xY!C4Y|!;DgFg+ao%~Y+kGlSz1dn?`&c%EF24jW^P{7!yaIk3fUIpI zFYTZGADsW8fA0a1I#R#z+&`1%XGoa9A))SHGQP8kl(kR#w&<7rVF`RcH1M4O+Q0Jr zTX{|@^7-}(xSaoL`(*vBf@ffVyZve#E)53;tjUuJG9^6!fj!P$1AyIsBv&ht~|;T*-F+plm$D)Re574T~z zBXw(+Z-7VDKYL`V`TT?KA5#AU_=})4i*VpGEP5V#AZ}tR?A261$^-KHI zz`1r%R@YDT=jOZd+sXbs_&Tp&@@W55!K2o{?1?G++Y3<9QohU&6>zz>)B1(izo2_elvK0rwEsl^1UT0>2CZLs9lQue-)VXAfBq!2pJ&>?a{XEZp9{{Q zx#*t+k1D?r!!x)!&;36`nEpJtq-*=7`~vvVkd?Yqk8a;Gc$EEB@F@EyVt749zd1Ru zU+O{o#QqHU1BkP3x_;6=b?^;f3}N#5rw00U{}KHK@XtfG{rp7qXP*|x%Nnlj%PFqy z6aD!ZUI345AMnWb0gr5-7+wcI!Fn&419kl}xs*B9^RW8o!K2DAf=B7EfJfDTf*kvY z8@&yDqkS^JHBNQqck17n(=dJ@kcEtHACb>5Oj*`Rz6joc{5;4@9z>hv7tTnT#}S|3 ziJzG=CqW?FftSxpMSg!hf3}++#dfG^sec)K5^3zeq4u4VvVUKgeLsw6&rO-9f-&gv z!@PVIz~4=Xpt2}HfA6f`*O>ie5dxWfcK()CCJc643ro9>KCT$^%>K({n9>WMJn?7g)BJt zhYVW3$mhY2b~u!mzlj56hSKse<$Rr@j1tmDeDDCgeM{UjtmOkCDv=UH<~}yg!@+m$^&o zsLL;cv)zQz!2g|i3HBdsy&ALu?U(*r0q59fkT%l12EN!c@d3GvPt%)fo-b)G{UZ;a zMSij{UIf1rOy)LxwEh+SnN_&HLxJR4UU+_WaQ#YI2HGd(SHORRILAhqe0fdEKHp5X z5HAKTpD(2B_k+o`yy&lizuL1fUbrM>@Do9{d_DffezPvsJU(}ig57zDi1mkas07Vx zSEbCQs7x!bT;0sI!| zXZvXV(!O%pXHg>&(D0-!EeR8)EysN{8!o)oDXRK zHSGiMhm5dx`NHm$$;05R%A@VC>`9r6kia!c+b8oweQz*7Qa1zT#sAqGqWzl(e>3v4 zeI@Af8{p4C!aP8!1G$`klx|Gf=L5;KeNz8P@MnQ_8ehemqImZh&raFj?`HdH{bFC{=9Kw67`fKpq^ z_7xZ(h*ZJD^qbcN*B4rzpZO|)U+zDL@ftYyj|`ei`IXnE%oapm4<1_n8>8DV2Y#W~ zt@ZOWUuE#qBKQP2pPy#X<%@lF@K0cJnu9&0=F-2a?@gHloOo#cYT)djVh^*je@eUo zF3;C9jY0E5EoHwy#B|NYKJ&hm!B5CG|Awx}i+#2Cr|j>)b(&ubA4r+Mp)+rTpst_H zUxklH`@amn8?x-bd@;~|kvE?RAKy~{Ja|<9p1c?PBj}U-_}Jo~%tW+*3o*O`z6Q?h zh2F6G*FO`jKl|B~eZG`-g|$x|e5GfaOMP2eY=A&S2J8fTcfA!^*{rkwkEnNEFldE?QOf)m`VV~=)_*cTarSkZU#j4Fub(;@Xus&MgCA>CTlGu*Ge1T7 z$b2XA$TbS(rGM3b5k0?We;Lh-F}xbX>oGk0tC;e^kBX>&8GM)LGKO^jFuzXOzi-TY zD7yW`KaEF&^G)slrhk7M?f*P@lzm0;FGbjwYeefWf=B5ugTFaS|6?gr#$d=JPgwt~ z{W)d658vzo*Zz_5Q+XWclb9?xzQW}5iM0Lw5#Sas{wskW4<`MY`Pe=(|5U-F*2ioz z9s2z<(N~P&)fip}j~rjAw8^8h)KPgozGh)XpbdqY>E`uUSpO-5i~cZP1HT0G$J?Px z`&asBW>z}#{IvxBQaT$Utp8_b2jy%1(mr|cQy?q;q#m}9#LM8kKO^yWJ^>!JzncVK zLLr1O`?7PQc?tZLkevx1Y5z6-b8y<+PL5Yt|E+;X**5{c1?Q)o=I`9xbo2YyVg4(C z{{hbA`WRMz;mPU9{dEQWSjaMj>7M{E;S1J3LFIM-llteL60N@k9;Lquegeww)V`D8 zuL5V=Y5&Xqr*u-<{(cy3*Xyg;msyaGJije~A0AS^%nv1SUjMe2FZyfXpNyE_N~fjG z#b}>bLx=XS$WNS+4t>5+{E;~`9eMp$0*|_WE1Z=!gXp{K+sc>ub>f_~`5#pF6K%X{ z-(t)^U}6tGwv11+B+Z{7>ezov%hLAmn^8`;A6#PNh2?3p8uAsy!~9cSkv1Rqd9}RQ zQ(T!2-Cqi?#_&4$U6^ndw3RRZsa%|H-W$>VOZ3;lm!LA8{F_^oHt#^^d3~FH@o)XI zbn|cD==n+X7cNhm7eIf$Ow1jiP& zWuWLwBe0 z%}{jzsO@m`3+2Q7-vEy~-^dL|&woYmMG^MZz>oGEZ#K~XQlC0_*!7w4%t+dPf01pY z+ei9Wr4;x_bCGX=pYMvbW%47-N0+ei-1TYGgY_+oxNbkupWl^k{=SChB3}UiiI>&o zH|2LnuP-I=zaaBH&=IzNmG(vVpBnf=$Vz?jv88`Dz~%XyF#9vlME`@~cS25c86Sn` zrOmCVEcJ)=pZW`;>z8?9bon{(sP-?$@Cx{OXullh=rH>yD`~R{EDQU!f1B;|^62%g z0{#d(%vo*z5&7~f()Rc1fJ6J2d1c!C8qT}DO@JaA3VB}%#oBx$-zfS&}0N(*w`d<5A z;yDbiC|(6$86n>QUmU^nzrpoq1h0ZeULSzV^G9L!XC957|MKA6-%EY*v1R<0!K2pi z32^SeDX-gK^i_YGw!a^cZR65^Oas?R&mi%l`e}j_d23F7qT5HmyVbtA}=( zyebbLTgtD4KNP_y4(l=>!`j!2JYn{g=XTls*=O6h_`iHibomqDQT^8(+ZFnJr1-A{ z{tlGQz%&N!|Li>1K9XO!#7p26_^(s_%=|7pe{gJS{ZhX?`0-SVp#3B5UjmOhKPrPK zkhubRy}pS4%1P1sC&2TNrEPlskouVgUFHrrWI>yL>0h;zqxILpqvr3-Q={ec;8FIK z!M}?A>7B4o`%mg$To~=Y5_mskoAt$Kw!g&d;8F8`_Vlji-~XlzgO;y=^Z5bM*Ul%w zqx@seh_*iy!?Q6w2fi5w&xC<`{~`XXp4nyhAGBYuFU|U#<=T&N39LV+JX_}+_^SX* zNDOPANnBjyeO}R_{g*i(?F-JJxr~nn_|qZ4zOVI5|I9tT%RCFbef$ZZ$ak3^f-meK zUtQc~_f{-hmoN331V0kWI>|RybeT^>mO;yl{Szy@%ny>dzVdZoK74GRpHzFh%wyo4 z=9lW4F7pgjZa!qf>Yu&5EAslU0KOTr?e&xR1o#^fxgB}J`bY7aF8lifz%BEK)UN`* z1CcyG1z6U@?85zcwu{&`E>-(@947EzEIyXzQliJ@Namg%a{5Uhr8_e z$2-~wJ_P?PfDUb6Q~vrcyMJf-TECQE183jNpa9)|GC$NuqvwbGSeMy@1?)EH*X<+n z6VHn7pAGOUAuIl*oiL{vFFZS%*TDaT{G8vy?62M2Wj+Z1Foe~=bW4{x8U<2T%ZvZ2 z&+D?^kL%>0$>(>OxB2$h@=~Aj3!?X@_1mKLXI|W8PKW($TdiO0D^%S6@CYn2n(vSN zw4wOYE^{2-8Fc@U_OF27jQQmVl)*Waf&Q2KFWJ{dw_gFA>l=fX7yV`M;}AIlT-zu1 z*WQ5s3nu=e9^L-gH^RSOR_hn}NpSAZ8MJ;WKldiA517oeZCvCh-Wte<`6v6fF0%{< zl_4M2ze{iLioAb13BC!HyQi&u86Wv~NAEw%;NORAC;t@R9GBn*_fT&bYlp z`Q`Vcei8a7!SfM3^MUC7c>(9XIC=)_ClY!~`R z0{ah|+@@8)!_G&APk@JAUkEoJ?TUPUDGz??F`e)KmA@ZezO-iz{6uf7)IsA zX~vOPw@(rLWK_0O|E@fW{t06qfLxe;wLeGe&-^8N|5O0q3Edp~Vg8u}59|NU`aF*7 z7tH}OfJ2#I^Dd+?t(5ML zoPTQIVdGcIZ-C#3{&72Wh55fUz1!Rj#=aTmKQp7d`S-2Ecme$D@Xu#E=+DjWw&(9+ z53;rNpBgyJC)fHVe|}E49sgw7Khi$ggS(r*T@^OIs^Aa9zh^;S*I(o-hjvGPzi|@$ z5N{veY+(OKm95PUa7=&pvxWFi^Xy^Wq2KQk`64*a?ig5S2FgqSsDi)caP0rlN45Pj zz6+;yNA~YB_yy1>{uKQZpNQdRVbH&|eIlO+k9vNo4E`n*%C^((EB?=(-fhNF;Tyqq z{e)M~=#HE}GiP?&zt2f~!rH$A&fkw?(E7!{6X3@?+#)Z$0ltL|f}ra!ym)rESqRSk zU0DCDp3~j@et_oUzXo{J{FFVn+blxnrO+SdztYpA+qVXOgO}Cym*;bH`EK)K*iWXp z_PC%6|l0`$zhBW?8rW{wvGY?c1~u z{7T3-z_ooMpS`f#-akFU*Adz5_!6G!Mfni?JJNOig*Votevs|dKlAu_IQ)W32?ck}nlw7lpySEBx~e_jXq2L3p1 z)cIZR>S$hy;k6jv06zh?G0$2+r@P8{|Ic$;HBlozG8pS zKXv~R`7$_uV%y|Ve%ScRZ|RPFzOe+3BR*4wJg-9-U`q3RZ(@75S&leu*Y-<1GZekQ zDa7y!`0XgL)A+~@ciX;?;#>S9^)G_YCq&Tx6J7!TAsBt5xs1QkNO$D-KP%w;`wW!V z{ulX)Qn&s6J@E&!S^r7AcztyLt$|~SFn2>h>zDR#?2h(tZcp_7u>`&YHiV2LW}Y3apSpd--W)jR7m2sqUj%<&1kc{w z9r^rr5&W76`3dl-@*CjXKXh6@bIq-l))1i|A%=SL|*z&<<{u^-6Z&_5%yJH=imv$Q*!P@;QeT+<2KYO{Sa)52sbBTg=zjoz0oV3R``7P`p1*TWhyp^V=l&liZm?2f!YY~Ix!`FuhVJZgVk0goEL4e+S@)8_8($n(Pj zc$9oGhL^w(X8(r+_4+LBQ+ZF|-_Z64k9z*QS_`i4bpMd{s)HZPMnlm3L&i_$edr%( zzdOOh*8k#%yCd&^Rl)O+mGbbhrGM1Hqs}+7ABkRn%HUD<*TC@=td8GbsC_)T|C>)l z+n)!Q>w_@=6~VuS!N~Pdx37%P{AZ&3PXQc1QPT1G@yX9c+n4!#w0{fWQTCU>zq`LN zW%L1Uzx;lF;hWv|{E|%fPpMx6oPWRd2y_7LpJxC5c1-^Uza6r?{^pAT>Vosp2Qj}P z-l>00f`117+lD;4e6g=u59GD|qVG!&cQ>E!W*WnF?#-6@z)z;OpXNtC;>HI>!sM?8 zXa8pizDrh82G2#IQL7U|Bv9G z4B?{fL%(w8kH`{Qzi)#-&?XP{&EFh)5d6M2?)GcWTXpbHgz#y;HjjXRAcV_q<4wPg zwr~I6bel5db>R4*jkMqZ@O>KMvl~Coz88Vd59Ln&L*QqDb8c`FPWMdMk15Oi9Gqia z^NmaZrwzXWKZsETk=Nt5@o0DR_ibFR*7@g8;O7EJ+cOXKinh~!>-N{}T;`v%!Fm1P z&PDz@aHr2Iwf|}Rwu7_&I%xhD@S{8otKWU#hiPGa*792#-S+PTGK-eSmc_=mf25zi&8| zJ8S;u&)xRGeGARC{7!J%t+|$e7We{i1{ovtKLhQ3H+aQSCe}xc%Iv8lb`}VsrPY1u>rnYj? z-~B&s{`Ohy8|CRk>gxf&*QN&lIsdrQJ`c|MiT;(K{r@<)w4ZS8|KvX$C)4&zdDRSuKzKZiGB-t9W-AE{-B2V?6|Y`bnx$mayJ?dO!Sy1 zu|fzkJ{YA7sNrDn*=_u%%72G|^Y`5tM4nt?F9MhKxs|)o@RVdvbN-+dgRb8-;PYH^ z%lMJ?uMb?-Cq2HBzO|kO&ijuH(tgxG-N$bMKZOuMINP81R~ViL-rhdsXHvkKxyV%l<^`hs$gWUklFr_Y9g#|Jezy%VRzrzXkkqCL(Bgi9HYeQit2P^VSc+ zKLbu1rT=LE-FhI#UmMr{y91p5WoRwm#XkT(%i-q#+Wt?2?*hrU~`c4NAzdm%OmB24XJ_aeD@|;2#-wD19?+n7-{On>M2S425CfD`*Cin&5 z^tSe|=%0OXPw4t1{1EUbdHwQ6{n9^j;P3H3>z|G^T6h-togrN07lR)f!eul)1U>}5 z0591;(zpCf{l5gi0`Hn%2jk`X@KJF7eqTEm{TCh5V}F|gSz7#qDaYzx4gN|(gqiNm zaDKHs5xf`g?c7n!dx!Se=MTuW ze>f&6zaIQ~US2r;BlG(P@aKkbncuGfFNbik_Q&9tfHTNB1MQdjxMd&ZDk>aZE7n zTi^q2oaamXd;5L}F5fQ^d3XNhV&@-?{gu*#0HqQPj>-%2tu>LFk>jrRnzE|{9Ui#O!j|=8+;ky3617FGPDv-uLHEe|dKY*Vaju`5%k|HBC%Eee&0G36_$iQO(DKs0z2Ng5ZsC%97x;=c?)>L+ zduK3!%!K{md@jD{yGqG+Vdyy{X)3x@BRv&4&kCLaZ*q7_kX<^c6`yh)W1LY zI|cZ6XTS5tYVd8L+*x}McsCk^G3`IG|FhtK0n?oGuk63>2mezDm;Kilz#j|YGCn@F zpvU|Wot^b@J;wP@)|W4VPquO1E0^-W4E~i6F6B>xe<6fRX>WL15C257-TUeK9}jyN zzXzQ5ac?M`zZW^f$L)#H?tdQy{}|e50m_#-p5sTx z$BRyLBUN)fK86?emb3g+rYUuZDRQ=3fIp)(bn2wDylb#>mfG5-oor zc+u;Z_GA0Y{$MruWg%R=`8IGF|6%qGEbX!PhpAiqPyO5vF#dM%FCbwBKFb_MJ_jD= zlySo{H-Bla```7;d+hIb^&+nX%I^nx>R*2$<}a)-S$x*z(^kf>0?)SbJdBn7adFUI6}E6sYx6UPi-BD|_tstC$kzpZ9{VB1F(!&PP57exbuHTM>jWXW@E(-wi$x!exKo1KuCPrT)XxvOwKhI|aV{xbg`2TuPn2u076L4AIZ36yt+<7CtCYT>uxoeGe;4c>7-?e=e@UZJ|=W%0x z1b!;y+WpVDn`u7-KdFto>wjne>_T+^JrO+0f2YRqbHT?@K7%XK`Imj1@$uGh~uf^R{7)=vWEW&QaOIM=6kF8)ccbMqU&f3M3w6fyRJ z^T6p>&2{;`>x1(z?SJ~3@yo!&+t1~`96Y@JoHbtpUj#i2TEE0+Ziqf#se;oMxt^e$ zw*PMMW0;5#rvEG8H-pg{@ge;y>%+If_k?iiKR*KJ`qVBj-oE709{c%yG{nGvq zgLC|31>#-X|7-BD>r-@LTc6*6U*%<`e(wC-#U2Hh{h{V!-;B$q-v8F;>np+K{*K7A zf3psZUj)9Ot$f%2UGClB-vpoM^E0ci|3R0#`9*VG|0Uq`Pbc2%IrU1=<8K4_(H_YB zKrZv&mEf}f(Oi1VF7Ru;yo?{p%lO+3esu_!^PL;PFAd@1|8IbY`IolPgWm<8@8ub1 zVEJy;8dC?C^KH#VfAWeR`~4EiX)gNr2N(ZnF8kL5z@zj(4g4YK=6*u_$M&U9sqb9y zFX3Hto>kxb&Z!z%K!(Z$+N%fA5pRMekiK*k^Cc}-4xUJ3r>HqQ95-rBps`TcY)PtNOChL3{( z6$;zA`1cc=d(17!$F)KCZy7%ifOGxRocjy$)?dJ%9?D($kAri6KULn9ws^p;Pk}}^ z{-u4FfIo{6LE6X7Z!We1oY!9rnu|B@2Y(${r}jO2OLY4b!MT5A(E8a%jQ4?aEHG#; zu`2jM4mba&EQXxTKLO6Mtb^wD7|tL6jgrrTpQ4rHv({gX;nf&k2VWSWKf5iO7r~?K ztH$tpjQ;FkO!+aq8pG@0QTAuAizz>bS7Ue`JhJ@lG3CebDtMIsdW?K_D5m@vUX9`P z7@pk`Q+^Du#_)O!&ko0wAH%EQvVW3crpNCjcvSmjMxuEkhF4bm%*d#n~33NJf{2@UXI}t z;8Fdj0Ul+4Zf7(v#qe4TZ^ZE2u9)&;crAuEz@z$SZg(^#ranKe=l6UJFU0U-3@^p-atyD;@M;XN#qfz3J{iO7 zF}xAO%`>9gClkZ7F+3N;^D(>-!;3Mz6vN9gyb{B!F}xPTCt~zi)`iE#g)!N_*;P-@1Xm(f)1g#`{LcwP7uG(8?!Dt#gU<#mTHb z%+LK>{KP``SQnmhDjfQsDf;v?{$oWiJnKJJ^r;K~V@02m%l*g7KJ`E7@&8<{PYXuZ z6EQCZ!}vefsZI~7`0t*(!n%~q|5zi|pVD!XKSixPvMkw!=M=jv{eN0`{@t}dC73>+ zsJ>OQOGM!2e@i(LoqFLJep~Q_?jf)WKd}{+mW!zADGPIM1N4N}w7K0l1t!^z(Z8v< zQ~y1+dt#gM)HD8b3k&;)?AxBGT29#@K2Zg^X=duE_z&()m3#l)^ZIGQyzYxW8=I$p z$LM^b+ShfYGlP0PQ3d(+$`6fTdTkcX2g)Q|i*JhY3p05#1VTOF_>b@NV=CN7GKM(2F zu2mzOcMc7h0}q~Ujz=29J`JG%K$dsW}A~B%jW=Lg0+cp_CETHb*1f3L)!AeVH<}`;uORgHg4QC(7$wGXzBRK zDDxg;(gz=cZ;GAj`5}1Ew$vKFGt)ABmXP5%@aZO*S!mzg=Ms!TuflgQQU}w=2Qp*Y zJjQ%{D08~yiG$F4?K8fIoBfI6~P!X5&TMTJt7N9_b86!H>q2?dRaXb?e4Q2Zy(!Ump%#d|sZq=p*V` z>_1a4(*xVP%o4^C!sJRw&snx#rnS!aJEu)K__)m7is&Ni7wxHNE;~)jP{{VXE%+E z48bnSpRdxdy2gzw$}bthX`at>0pjZh#_gD7{zXGWI13!Na|3lSKlt*|ksX5km`a(a zgRLCqeB^X5YQ`6B+B7<_YY=)i`*N0oVQyHBk_X1dSpg@rd`h~V9}+BgGc zqgosLhepPBj&cr4B`&nAbsV$*9fH5Yv;s`RoOIJsj~yS{KbP(u?%Ofg-#fTzv~P4T zeata?5p;0O%2;IlV!Zf_I>$eQWylk-VBE+!30NT4)bDkyfj;JQAVG| zAkR~f3F&qoS&R5o`x0iI*L9HTJ}89=XFcM4@0I**Hp`g!v`HPb-yD3W0Qoq_GC#w< zHWwXu@LaPB3~KEBx_swwKbIlbKj)g&V4RCrj$PU}G`JbMW|#ufdPn-2bMpqo+tjkZ zCRpaijqHCz8+UCP@7pvq(AxNRT+B{fihK<1b2;01Kg{KqdCs{!-Ch!O90D)SGaIG^ z`uPgTa4zpKpY0so($~**ii% z>Ka>EJJ3Ily&E=Y=-UUu7u>7t@%qAbrp#WiQ~DD7q|}qL&%i6Jo;P|qoj1IUq}k{5 zN}st2@v~44`^+=_=VM?mckV1x{Gi|Yd8!@wzKYka>r3B;+nq8u`}~K8`f&LOn#Ydm z=OQ0{q3yZ_X|&@=|K7Q+@H?HpoTE@Le!qtG3X`8&r*3nrmzBOjIVp2Ibo{2x3%!i^ zLCdfV+8y-wlzEZQFYU+tCFGf!H)&qt^UC;Q-l_Q#=A}Mg_?%hj8yXnLhQiI6FGpVX ze<}ZV#B&|We}&g8<=9tcxE@xpnbMl)>wYO?Y4D zR{^e*oR=B)Nuph&W|+-LmpO{#lCpzHTRA*9E^Fm>#CbK#w8G$?RedGyiRN0JRJ(Qn z8#U}gnKp!kIX>?oR@O1>te8H6bbe>BFfi;UM!VmdYf4Dx_py3MwnFv5(AX7D_w`86 zB7G^gXZ-^!1_rlo8@IjR+CA5dfzJb9HL`19{fLuc+I;H5?pD%vBW(fF3L`^%w_^FH zEjJ)7hqUH|v~;v@H|$~E%V5g~hlZNW+ew-8C^NEi7#DZ}_Vzp*JP*ETsI;vwpw>^6 zT?)2rXlStH{q!89tw7q6k&@ld(XQtstruxDXFaZevG0a}s~cHCF_Mz^?F+!xE4F^L zZ+NVP4J;-L>b(v8a`07XCG1Tv8{9m;ZOqr}#b8&1*+drV(n6?dRyf~IJnKp#9mBZr$qr-hey#sxld4)xL$Vy<#_JlLe1+K*d{dwhqu5Yp(RqS3=*7;Mo7mAhveB8tG-1ZXL<8IS!tKwB)$r88BYty zb;Mlr8t~^knGM5({Ue(PaHxQD2Fkt`>^8@iE?%$nOGr=A?#@uA?n~^^%@QoE?EH3ZeJAut z-ML3${9Sm_Uozjy_5Mz9zSt&gpAz21FM(W_c{dotR2KM*EQdUSTq|q0Mb1s^H5BCD zhccMwy?CcC+SEx`D{Eb2T5Slf^<*t9K`&oZ?M<2wqihCQ3&Zmz%soCI_gu93Lx}VJ zBmVuPcyE@Mc0Qi!yQKNJ*YiDlR)TNx+qgYnwC85*gKVF)85rJN81ZKo33E5{+3Wm0 z<92rAnFsStGyOY9Idl5Fauzbv^o?^}v5yvEj+FHMeL7B4?AZ+cn&J5frWEF3e2(eg zR=_y}=POA&3~4%k1mdgN1MPZ}GVg(XEj`nxvu&4*>?mQc(mea9A#K$N4jqt(YuNh{ zUp_LryAOvK98>HUsO0cgS`RTv!#GoOpUdavnuvKn0Qug5;jQD_mN?(oH6mp`h;;Z6 z%YWba;I0AeJ5uIjNL$r6j>@^S9k#2DuiQEe6PLJsLdtx?$%;ab@3yqwk=+BM_FRV7 z6Nh7be-bhhvaR01^+f8RBy>F4Z0j4_wsvF$$5Z%wE@=H}whiuuY+-bygo>SW&c=;9 zhjE|+<&Pa@x(=Q?Cot#0==feYAKV97w--zu{AqmVxhd8g$cA3$xKdDm>Ay!phJB0u zm+zlN+=ZmM-+$J5nP0}1&ii?vmvcSSX;bqv#t7$drpp}uC4A;Jf{ev4BQ9fz`M!u3 z=d}OAJHu2K%s(>6dP{~ zz4wxX0sR=H>js9$205y+86MzR!CCQv2TwPjgPs-0?GMat+5<>iIov2-eBLlThErcRm#|-et=c&> zK8Oj>>i9O&FbC<+%l4G|xJS2X-vM_Cb`N2`>+)k;>f+yX@yiBrONMihkFOrs?WO#@ zOI!7M^!E{8KjOXM^ZdZ+T0S_6ljhbmJGJwS@gd|v9hQW<*w!=gL*xnDBhJMLse?&) ze$$)WBTmO}cLzs>1(eUZ;m63&dEzKPKc>t7{O3QPi7qfYuwwvg9NHLHMcf+&bLCGU zv#7s+U<|he^kjLw*HN9dY3G(L1EcE(Z?J0)=iNUf#)dGvGR5lRZ|ZYQ{j7s7-h(QE zb1r@JEH}@lXe;`)x%E z1@=#s(`SM0I$P&I&T&C`fljfTYns%t)wfCWcV%}w`>`l&aHtNflGb!re`BfF^Q~ia%BB6D)_$09Dcz+J_Fm!Nk{wdz|+|0C}x217@egtW0 zgK>qi$T)3z`z-7uN9|6unRfTAU>_^_YO{EqTEL|-=d{DkFQJP;uDw@|@#=f=UTpm= z|CKGvopZ>Z@iC;yn0Is6Y}?1DLC?M>aP#o*kXP>G$^E)NAZ=aWmI2Jg+)po(Ih(e$ zmY*^#pL3uX&1>sFA#Eng3igh34a>nlx6^}0=KC`e<{%B_a68^iaShqntvia@ATO0>jt*& zkaHJKs7pnU0J|2=HA%1)VD7pbCuBZ7h4fy^pgwe!q<0~`fb^AEO^3%9?ZDBOtZNC* zfB(vvM>lk^4~4B~^Kf^e2b_WH)CXrZJ6fl`HLf(ajEwGZ>&1SMmGy#ii;W{qpHXm4 zV7jacGx1rk3Hu{1^F|<_Fb5!=f%87^Yt67aaJGu~@cSFit2hH2xt~)d2fv69)p*hBk?`3BW<4K>lr2^ z_tx5F=6ac_HUw)US*t&$u7!ae!I~y(1B>8`dRog*nyf0H9|JwXxtQo-dofT?t1px0 zSf!`kmuGu9S!1Y&FV<yrG;C$Fi#z_U!MZ2FmXn2wh|tGXbWI*9x44AKiS zg8crJ{d!+Bk#o@ua}d&&Y{QcjcD>N?6*z_;;!!;2-5F*!@+}?M(ue)HJ(_3QoYpkE zA!Pc&Odr{aTje;4?cctB5XzZ;2+~)L>>L|dymNefWOy;=7<=EE>`<#~)6T6+2ggc7 zeg2$$hB*xBE5|M#*t>LOH}|g0dpOc?&9Zr2|KRXA&hPtt`VsBv_7*3eR)jrZ+o#*YT)X(k_1 zS-*Q^-8MXN9?FO1B`)SC_F_*(T=X2_j`TSI-pF1milpXAywVd-w zD`T0IYiFNoJ6C5v=GZ<3d0ST?_8mMshIHAhoqs-`mrR+nkcPG1_J?!u8Bf6M99Xku z1s+qhGUp;qox7X!5XU}fEzirS)5k9y9l)byejf2@i=hd6Q;G8-6Lwb5wR3;`qU;6W z66CC2)=swN9{85+D(i{Nf$}bG$9#F{;@|jLFpC zem0JHSiTFr4(YGU5oi0Y@MZFIP-d`3Q5WkIu&I3@jQ!a50e7~HyKDnn?0Jrhr_J~X z$FiI=Pcx%-zLxk*vuOkq?G9+51}Sy zJUdk`sPC06eQi(ko<`d29O<1;S2Z+9iQglS$| z`13ETaDeId{#Qdr*O~Ea@X~vKTQB$}jD?@wUxp{KM|QLC(yvA6;~XM;K>Dr^Y2vRy zFP^tRI>Qz}KXWf;%wY2w)N8@5_0A_|BjT7-S1xtyt|4DCI)K|VcCog;Wg6zh@zD|I z>wd(!uG2pHryIW8j5G;pSAu<3eCj=ob$uoTS+T83R9XZ5_sE@eKR?2;!yjQQJl(e8!W)%`@sz#K-)(DAz&q zeIo3~!x+-S_E^)#;d&@a?lsYoUMU9 zESu|MPTu%Fa=opRXL= zWuGr*TEeH<$869Sn3nWui$+H=uw7cpr)|KqKg^T%@yq($Gg(aQ@@XqZMh9>3a@{`d zQtbLUM=&4$B9gUZEe>`@#|B(6p4ofduyF-$moWcPxCg+$RmDBY3*ZMg8=i9xZqgzb z=Uumcz7Q4OKgRtmKHI$;dU&?Ud}%+2avbh!+Qfb6Y}*fE zD!ymnrfrVRXChB??*hLt?O90EbM3PccXO>ddAm#dFSOGks5!b=U6KAj^5=-+Ce=sZ@d=q9O6@TCC%%=7-Wp-eS$9Y4L+aMfyUBI z#=*Dz9)jZ#SJ8Zg68rgt9hYghy4d*3plcfL-{QMV_8ggGhv2y9=NOu4ww3yZ zg75ld>>hRZ+5yZ=H{j6?+yJ!Wg!SJi!k7=(Uzip=-g+!JdNsi)FvV>w72OrTwYP z*%st~5B$KfOFQ6z(#Y6GJD)S{Ey%C$Cvl#nP1tqVIg>KzBmUeiY3@S)z*lT%m$pwO zGVSfiC;JxmqjyoxekrcmvXo8SZOd={P7|-`r(+bo8%zTBE-m{_j;H6gjb+B)3z_zI zVY;--`@r>Bem~;YcPJ>3PnZw*vgvDn7qEsn-#>_VdB$DNT{*5ej^#B~U$^pa`m1?HN4Hj(3Nw)qJ1u-V-@=GH^j znfF@sc)bT{dhPot;+X&Cx+6iEe`P-Z81gZ+k7-_q@H+G3o*#m?o93*yd)508*JF|K zPa>~w^Goe~=bpdA)dQX`adQ>>b=qtn*o*Pcxs35?2Ky-==QAxc?Kg$p{Pij5m78vE zKjW^S@AbCPew-mRpY4+QCU1NGh1h_NZ}aEbEzgeK2YLSuQ9aq%`Yl%V%RxWmpRx4| z#xwgq)7g*NpY8__@&$8U-YS@8g~2 zq(ACD#C(CCr1>$*W|-=ifVKC> zQfU5^`DsU8ts_-1B@Iy7ivtKzSUtPh0?2JqD)eudwjfBgmww*+|NVC&vM9FG?A4uF+?4Do*Z z?755o4sopDxJ%^f@q5JWQ%+;l?eZ`U2Dud9R)1hV`{SOjoIf+p`VNlobk8-V5`RHj z`~HOIoKM5`=Hp-zGR>aBXS9Ro5I5tQZn=J&g?S?Qj!nY+9rAK7it_@;1z%~Ok7Jy> zm46_g)|rJ)9lycH=Rl4oIWFJjacem93&(R!IG1tX(bVN8AoyDi~Y#X@W3}HLBwsq3%51rgA@Vhg5Pc+N=HfSq8P!jk)VHl?z?V_Bl zIh32-k~eAQATH|+Iop%%8|X`!L##~DKmV%j29q{)eJ^RA)TWcXHBZXSwK}B^?*5S2 z!SeZ%K3&3RuB1n`+3`rKwNK-k!|sK1$lYG=V|;mH8Q87TJv_9<9xZ& zZphj)me47i-?5;s1TqBvOPUkCd8wvRPkVTLiLQW`UIzKe_#f_({eO zpB1GHeM~<+4Kf$`F_bX7$JUkHZ!oxVvU_ZO-zMAF@!KtqF~N_oX-LB}^!S}5{7eZS z=0p17=;tWHw&5wzt=GUaFs~U?=5dt@&5^KnlNtys@I4wtmki+^E&Jzb&?S3dwhQA6 z@zQ(Xe_8)&=bUrN&XI9E)??2~ssD^N{fwX4rl0!`mL0HQk4K-f&3FaDJ@3o>^`Y~# zdlb`N4m9eK4M>7O2xOq`2!37JH^|Mgn%1@y;FEp=OBAF&MThC2Z02NLhX6I6KM z$*!wspchd^SF>!Lm+y+KPLHi3^miavvG9X3$sK+LE@?=Nvm+hh#p} za|C_Pla@u$9gGDxeq`Ngju+(Qewz859Del#a_loDFwPw^J~>}5SFhIjv&&ovCi>g+ zQooyT(q<*{1?9PYxr}4hO^=w-8wf6T(y!W1>f)Sq8S;pq$nBYm&l{ALHdiQJvL?2! ziz#!J(xvmX=1ZGvkne)#USj+1HRIcG(^>Wr+jrx6voSvR=H|uiyK&}X=f#xSzI)}4 z5}u0Vo+X(3HbUR_-Rt+3u%`^_@1A{>`b!_%*)}I{f~?*T;TiLmH3Yx)_1HPlb7^5< zbSQi_#n@uIZb2D(K4p9>UjHxVQ(cB0g;xJyn|{WxYtt|DX~2T>pfDz936{ZUfz83W z0r!J4hvI6g`JL7h`qBT&yvshQ=UvWS+fW}pze?IZm58*&F!HtU@!5X3cb*sllaL8^ zh1$2+7Al2kztNUDt{u?NPVu=kKJqT}?=;goAMdB;G31nr|`TjkQ`)|Ps@bD5{$ zJ~-z_UK#T@SMWP3c79ACeqn#V{mzH%8EPDj*?^Qw^Lx#)@l|6^ggU#xR*kvr zjCb4k;?chT?e-ZKrs1!ABhRJ%QU=awLTH{90b~d4uUlTQZI>tGFWV z96zHa&D~WJ9XRii{QL#Rr6YKBTh@yGh55DO0K_*8j}G*YY#qk=h~49zgLPt-zZSd= zzQi4I(y@VMc%WjGzxl_n=-5lbvrgBi_Za(nJYfr?))sdL#`cx|$N4gdC(VI29`rB# zhLY7M*DB~zn7b2p&F49|^fj*e?6=Yna`?=3`V~l*F{ks8vs{-iZC+*ji@SDZzE(ZB z|Jy+i$B5SRI+ZVM9JzX@%^Q$UY-c~_OKfs^Qszy_6X^8 zacxI?etu7oWx4sH+uZHtrEH!Dw9j{Ptt;*3WV_6Jt!!}agYT_9c1Lp$HL%Y9jPB|Y zeB({_Q9kXWb#|QN7xG-5OBb(`v6Ygv!rt+1xXI74jo-m=`3frvlCMkBE??CvY2A{x z?m{HGGJAB|Cj9>4c3w~SVC{8&d_U^oe(!hVI5%s2c9dn}G;hWD4w=ISPzy$#8B!kX z_v!eh4BVpY_hq6EE%}A&YvT_Fahxl!a7X5P0=f*K@`;h0(&ZN25$6fz$>$vWVv|HAD zo}1(l56bH{pGKP4FLjjsQkL|+&)Twr@%Q8wpLH4XPG!>{t@^sn1IRDqQT!_Y|Dt1= zEbMjn2i-GeU$!>LJcs*?h>QI!gVz|;!FL%uPG^_-Z!7E1^YB^bI#<7>`6|-*T&L@c z|HAc1-*|J4v)3fUWBB1hd@TuUh8sh{bqeEMxH|DaJ#BfnT&*BKuVeVTfwcAOup_vR z3H<#>oMZ7i;+?3Qo}*-5`WEEq1M1)_=zHDf+hB~djpaIA{Khnqq0e%N2eMt}dsa5M z#;?E*>Brm?@--W;pkJlT4}5vl#TMlK9rBWo^ZRZ=+}%r*Ygp#V;T7n^y)diKwVl+F zocUOvpR|>?KlIaA{H{2CrFHRlIry6xuAS}K^2XI0dYf}v!Yo?9X4S?GtL+)}Qa^9n zG@s(yH|6pz->`b)>P4&E`E=T>UbA$WjRy*Rf9O)oEAstd)uJV9*YK2kt(=$l7?;*G z!t0pk)3yA5X6>>iYt}CH3arlQlGaqJ6)wtzFdX70@sH2WcxWT#X}k zU;Y8j^tFqYuDpC>@5=R*v_6{EWb1G)zoB>0`jwY1!vX&4^()t{Tjb9AGtE59d)F*l zA5gFVz&4H}{xz$48^QB~+W0za9q$CVY_xs0DJ)vMZrR3VYuBz>i}iuOSuqEFfPMTI z=qI=-wPPc0PK^!VMj4)(#8Xph?ssS1L4T3oO>^_l?QQ++H*N8=v9AdKomV_fvt|pw zCfL`H14f=}uzxln&oco%o@gigwOo%g4+b302~y^FcxRZ(g8T7PS?e`Ebq6|I8Sl$# zCii9CHNJbc5UaQS{SMxXr7rxUEAP}T+JbtqooqVvOf#Esi_+h#gWc^O;I;c7kiM@S zKnK|$!4_?H&))tCpZ$Yk@~my*&q!;(#;5Q3eEeU)B+Q&rvfI;h&O&pczqmcQ#PL@e z>>gd>vd+16B4IeU1pUK(&sd)w&A0M?ok3puNY7O)uzhdAHs`z+t2Z4 zza5|;j`c=+=@FpyG2tQTcT0eh4{5Z&wuIdcG_>1k=lux?or0_mcxxn zUa!Y*;`9^CTYR?;^?>n^eU|xqBI0>nu-+NI8Gos6b6G`P^nF1dOq=rH@2A*r#^LW6 zC#_pOrxtNhz8sHUjxuw6z`zf)M9-#mf*13*58vc{17s8B5#xJaBd$5!h--)k9Tjm= zPhN;KW3)N6pUv5xuHS>06`#;Vo2I`fMnL$3iBW0B^j~oe^!KQn(gy@gcpoAaN

1hHg<}A?c%x^>dVph(rJZyge&53Y+6>Q?5f}Y(D?ar}_hZ11)Ms!V zaaOa{aF>Jp=x-W#op@_GlMT~)0&wC6+ibL|q{X#U+=GI{9n$myh9+EdAHIhW=GpRw zuwCy~ThC|`f6W(#n-DMKEY2|Ck4{pNIHf+|8^;~$wq4M*HQ@ZSyH$0Yv^~^UY}c_3 z>0S9!I4JQ}WR2U~M=MYFLGB)I3n$H6M}*<-OjA2+w{}LEJPCZQXUjOsFzbw6-SKH1 zJsEhneY@}*@)Npl{hgDY!4lcElx_uGqim>eE{1ISf%DHc&lT#k*k94Wg?qhv(|2HMi7v;|*yr ze7GSEj5|W-=g@Bho@0WKM@JEMy%pn^!tH?b(~OH_h4Xk8%Fs+#3Qs!^5BKHAaxhOW z^G>A6eB6n@ROWuB2sa~fM(EVs%AD#8&WU->=&(Y%=1)(ajr-~m&iR{JjB<~P`keam z7}7a1i(@fzP)WGV&CkK>E!qs%ZljGV{*+}Ol<{zW$@Hw-o+l?)uog^umH~S@?mbl6 z_At^(TN~RW@BL2$?w|G?h3(CtPs@0OxrE3V;k3Q@9QJvV*HV}fe(J2$`*bLyPosUa zFOC8qTWW;Ky&7%48C}|E#}JQ?)l)9uQ#y`tQ6I#fZkUxkXsKGuF}31;gIbxJlC!jI z3(r7YZwss=hEL!xZ3}GEXVB)nO`imwZQ5;0+Aa%#@z2|3q}q>ZbF3hq)bSqr4K4Dg%#i}E=Y+07 zFwUCAIcMh(Sw8Z(6Z2a41HA#docfLZA-y|z2DF(bDcBFB&Lgj3;iWdvj|0Z~ID&6) zhpE2sc6iH1?K5nnI8l-5MCnI>wU(tH$vOvNrwH4Ne4=d3Ct;@nyZ72TZxB zr43<21ll6$Y4?8pTC{O{kilW!APfV&JjjsHe(PE^WUf}}sFLyc&b4?kVoKkJP@78o z^7pP?sn4@HaOgBXY$HE#I8LeKMGVmm?E9_zKz|Io$qn>v4o~RGr#%n9-qT=tw-YB1 zYDC?#Yu{;VEXgcP1|E_}@*Hhd9^~0kNE3PNN$}msY7viX3Tc!F(>S2{wso-<@gsAy z!PG;V=7%!r**Ak1AGJNI(Us3{UlTs&bvVIg-q#`%sXyjtY<;?{ZtmDO3%BS?i?p>8 z!DT$|Y{qACXC0RpSQdA_8K1>nb=)|XEtc7aWBJw`H;Uc=`8qqh_)R^FevqDbWxHmZ zIJ1xbj-U_Fx3vkYoQb=8pZGdTk&-{w!MS}aXHOnmoL8i#&p7w)w90`H-qPCXfwlucG7pq<1h9-a}f^P#C0a~IfeLN*>?)|ij1z(R-HHV@-@Nf zh%DEy53SAVJVX23-wD1t#C=!tW1PR=w*v0~$o+{rURLEyBDVLh@0*%juCGqXKjtbDj{--Wjb zqdjpqa7FgSQ!uJO8#w=L+aC)^dx7I1?FHHd{OvZuIs8uT+~*?fwgBm#gFmkMJP+Ue zG~?p@+}8n~4_c0a_u{*mKHA02xKe0b-%0b}cSb#(pRjaZgzwa*;d;yq+l$g}2`>gM zKaw`&k@EMkS$!&~4uO{;^dmh_%Jxb9={Apt;U^6vL(~)7;4=X)J4t)y`pWjObY=;D zXgM!`0mAG+(mU<`73FkK0%RL_Az`HTk_IEvOJ>3(Xnp~+5P>;#J9{kZDJkA?owin8+sDF;}d=%e*0b!=ZMVL8vtj#=JZ>`&s+Rv-cb$`5A8dZpSSOOWUWlwGHp-V z@7|WNUzfFIrceJLbCWAWGpX~|L?>^7k3c+!kc~ZC!`v!jOr<&=Zvfj~p}xz#J+pUX zpW&M}wk=A7C*#)<>WlMSAVVW!9+{`B0^e0r+T(pplsy}@iC8)N97;Tp+%%=ZB)+wB<{-SK=j6I5KiZ>>^BmI%WvwT*CSlL zYi$m@yVynINaeo3Tf!TG6UQ*}PF+j*1%zwK$V@%-Ccql?5a)Rv(Ad8SoPUNbmmHt& z0?>8CFM)>r!`Iv2f-vP1*YV5Yt$=y|aXi;#osN2dTKnywOXGbC_381b4@iGk5|3fV zd#B`~+|F}H%uDgyGxH`44^yh|-o<#}SNv{J-x1tioM4-w9(a$WLH>Hi;JpZY-zT4U zV4;_03EGo2h=H~;5uVpQI^QhLthl^m!;h>Y! zf5_-P|MdUOJVIniK1$)kmj7ZIcCD>0`lFM|_y3Tu$gpU>U!9(_H}9F}k69kPt?(Sf z#{qL$k=IA@M;|1gz&Agh-(tE__${Mzo8vbTW_$W1zMJ_*IkO!zJ#WXK!Ecs>ak%b6 z+-LEZuGa`Z(8PSkwdtR>bt}e&R>y0dYEOI$JW{E#&wd)Pdr~0U7~#JSxZl^l_Q`5D zq_B=DUbgA53h3Bt_GsyIh}YPMS$~_bGW2=i`~$DLx%#`h(B~=+d=Gck2FFInM#d|0 zriXR+1@K{e+ff*&ucv~pLb~5Gy5c?s-Z%!u^HW^==>R_r_i}Ig9$UluqU3jWnrB9- z|2fveo~tfnq;UQH`=Eg@+$s2l#m0H0!?*<#9}UjNOUB(5W^fgAd6S^O^{en(h7 zevA`>$HmaP#mepT0_yVhW!e(HYI&reAGQn194iQ7H}E%o*ivR?{Qg=}9$3AZ%+fNT z8%rB>nKNA6AF|_MBYbtw>+S27f0p|yW(Asrx-*VnsvD?hsOMeJe1q{!&vYUdasPrp zjvaB|UiYfw_>lKk>G6Eb@plQ>7W25M@0xMZmu7KW>l-;V7~AQ;G2h6q=s?T2r|yknbx+{u9!MDN~;+Cgzb$m=%E2_j<{ZG3k!H6AljPPqaMHp zMMmEq7UUrxr{9L~qU>L*UfUiPuvtBIf(R>K;_BSY9QG{eHBj`C+BPlQitD)*aDIyGS-73;!|Oztfb(opy_;%R%E^E?k3poCd+;KJC<+t5nn&UXyX!61)yfjxS?9&YtV zp1XD59$U6?E(pKEZ&7E~$ML5kv zjJF|Ng82MUKM?Nvp&h^XDqQ?}Zb8_~5aZ)*VvFx*o_zga6><5uUb@>Xp4*R?BFr-J zFtVfrU7e=mb97&W;yecSUe-qAIRu>x!%l(pFmkNvT{y4z&2k<^-}!PF`#?I!rcHP; z@{z9rwG|1+ncTE$#D*li7mqoxJu&`6B>t+bwO)?j@s0A9(iI37*^Tt;xg9wFY-`9t zIwxBN5&u&8Mjg}|b{L=HwsmNJ@z~`20DKHB+xx7$K%cfPh98DMj*sq>+Uq~!qOS9L zyb^I(j}OOpGkvt%y^f1`5yx_^hohcY568Jp#KrVJEn`ece7Vv;B7HTn{z*@pjrS$F zF3^E|=cHrx$@1KjLufr;1$gG&(`X+7*!Y6p?P6OX4Hj?g{q&abNQ8a9(Q#~X(ftzd zCY_Cah*x?P!bR=mBFrzY2F^ci`5b5Gk|`&SpV2ldhdqdw&H-Sz<>myu+wc3@Iv!(a zr70#EQ$4*GJm7UgUo9fe^!H-{--wsu{GB}7H*5>nBzfHyCZ?9=7G@UB_7CA4DAEt? zmfj&ugK&AFYixX^8sK|F$27AK=9uIP7QIe&8+@f=U_eF>}{ zpPXE+;w9R;x)GDLi66_-Dq5SEI5ZBArPT9J0G;dkoA6upJnjRbFEFoe6W$2i6Y+O5 z{@8|iM{yH+_mdC?9~l=&Lmb=MCUAWU!o_xq)a%FqoK=lgbRDQm_{6m)@*Rr-~1Ho%J(+FC>zNS%I9Tc_;&oIHpn_9MU%8BcHD(-Kx$Fg?~l5 z4SaEc#>Z=?VLGchxweL9H1ML_^KGpq%!7tHoAX_+13>(uvprl!xL5|Yu4ydm*Ksc3 zgz2Lt@M3#%d(HF4bngN#-|serWl1~AqOo19G7j`?vmTdz#tVc!U1MF+c1~H^tc%n3 z+xr;vaRz^>oX-kPxn0^x(&iX`7XJPRZ4S$^V>su4!NS_yvxR4@zk3iaYIDyKI&E{L zN!#3W5iZvK6S7LgGY2kT#{D4XmXzD`@w-vJ_ZlzMVZ-`KhMxc~%B~cc zN6J~so5+sg7vnFLU9ZgeM+l^FiE0Nk2cg6p=BF9l$+x4ZCzWzUlNk0UMrMoto`h znC_iCIX4e`nK%||7jV6kQ*|DDWcy-2xCCju6!P`Y&9pcAhYr!C>5_KQxW*Ly!KUkE zNTJX!iSw;SKGD|ov6*YSuBTJm=H-?@;%H|V;atCw2me+<$M!{fTKKO75AVC)f5?wI z)cNr&=c|&m*mff>&KR3g%qJ4Rj6Ldhah<*^A}XR~_sdsE&2@ z*5GwCTO0o+i&M3o{VYYj2_2i`co6@=5>;PQ)VrRTQJco)S?OT+#x{#sLx!QElia-S1x z2}>)_Bn#=;0)LzESXx=dc@@&V!^6il{7!`1!V=1WR^^Wem`=C=?ci5{_s?dwiNrSX ze&n`DbDfvNyDWb3Sld?{#7H{`=dM2Qcn|2+p4Bnzy$F-9_jk<;_Dzki_d)KDa!$oR z>TULUes6+QeqDH$+uv`zi`z$Etun*~Y;7MOJU?ys$oOaFF%)*g{Y4dr)`dLLxto0m&OU)_|zj=Qp9P2&DK%IkAKHI`<&D~Ux z$A3bWa}Kcx9EU>#xh*m80*kZ`VpVciq$h%eT~c0~9dfr|$}L3mo% zXj-G}TkNlxi-(VZzkfQ}Zm>IE>F*jHt=`tfGBwv})DOh5?x=J5@jB#h_A$cQMv8R< z(yEM9F-g)5N%$yWoKGM>jKg-p{>GUk_ujn?v;7b*c%m@|d=hcIeSI9iS+CT8%v)m~ z+50|iWlq~3VGQf|qia$ztYvoH%DNs!oQo}j#B8Z4fdegYJ-O+`l?+$ z)sa!Q73G=Wx+<0GF#Jr^2CAc$W=k5kdfV7Y7gO*z)RMUUU4w_lyAD+?-i9>Z_-J)R zynbk!8&ljc+U^lJ~Qrvjg#BlAlYX7LF*Vcfm4E2l83YO!76gQ;)n=VXY%)ac_}ygfx~)+ zD#K`YW9Spn_vjyKo}38%IOYc^$)Ed^fNsf!*+)})^#2Fmf^&Lo1Eqis^V$F^d4kd# zov8JTZ*y(u4YuMAKqPV8A9lKmpQ!D>Q-<+8}xW zdBOKE;62s;Dtx@FOP&7e;GwZT>sN}0EewD1hhPmd(-TIavcu{sUC@jj9i|_e+a@aA z-rgP*-nD*MhJ8cuoWlk(I?&bMFLW%D1k<|xYVfqm!$m!r?I zU;a57Iy|G!W4gFf!E=$*%Y$6Jotwfkx?Dv7AD%6dG{Wf7(TO9q!Rv02G)o?S-1QPJ zOBg#i{u&g%l^^GdZVlFP6q>$;HWvC-GYI zxG^82H{{^MH80b~9DHc3uR0>-a$jwKtL0*52C4%puJ_}9pSCw0qOip?I?;>fiK-c? zjt-5FpfXKnWgGW|27}EYo5J8BscW}W1P6@{t*%Im+nUDht{y@PLq`VTR;x$Uv6RO(V22YvTc(LkXeQliN3q=_Z6y z2Df>HZk!Fg(pBlJ_Ed(3kGdS)_7R#<6arKn31QibEZy!Ayi6`?Jza+}=yUL}KH|2I z(9mFHdyGVq7q@?u53|8_1?s{`$hvoXNa#dfqeo$i4Z~TQ^bOLuZ6q|va-KqEhngYgqDpX^KZW2?xP%OYzVmV?(e)O-3%?%TgLQDot*er#KA#wcc8_ zXC3)nkE2057bzFJS?TFVQ3vh zw~Wn0WPW8zqdl9-Lh}Cb6gSd!B+G{J??~~euiK9Hz(R_8wZg%ggROEvFI_qvONF&~u}1Z#=4qhA;ZSL!!vW zyyqiaqPnL1+WR*|_zXb?N%6U88+cCwteWp|(5(XNWpJKQ^T^ zne|}^_q<<|!#{4==B|>)wJC0tLpe-ntDi=>?@MW+RYq&0oZK{#voGvVY4dzXC(!kV zj-aMcpB%6E+j#wVIK25T@fX*gPYD4Xxa-jNzK4IW`Kc#FYd z>Wq)jtV!mMt%e&J8XC(+Ym0|hF~pZ+BYdO5u^`xo>4NmBO$HP7WVU;o$EON0*aZd~ z?i%ZxP#YQ(S=Boi8V=c06p0LXk>S`My zh{0eK;ZVHN;oVUwZ>A1S4qH6F%g-W__g2GIM=M>!Rz~-MIX-Am@L~OOnT+<>KcIdm zFo~Ab(7$P~eKWJiDo~||sGrZ=4j6GdH8Zrzubkp>{zN8{Ccl;joY!fp z_c6bT{IRkj&PB7fkl@S`r`n|qHm32EtQVs@8n)(ZQ;Ns*hIK%Ba4(1Q_(yH;F#*K$ z`;etDJUX5&Xn8paOIx$PIYyp7pZI5&@#wfo_}dS>yv64yhsP$WP(nww-b(>taYF0- z5w7W62qzct`+$_QmA^;y_XhcWqm>` z6ggK08GaPQSV&6KznZXd2WmME5=Jv~jEYBLU4&sBq1(dU3?rdx*MRV@Xm|)yv`pXh zL>jE8FgfU}w3~d_VXQ@&iaSFKL8! zp|6bDx=-jpIFWxi$T&wiiVA)CTsQ{^Dw0Z9Wm!J=;DdnG`neQjYq^q^LHLZI+am&} zZBHQNN8j5AOb`4E`Yf6`j<*ejXJ+Fa<`E-D>14R3=DYST)?qm)j#V=;)H{Ji6UaqW zn8>EZ@MeNeWTvyVf4q+)ydBSMd0WIAWr9P&QC77>HfAu)k}x`Zd)VZBy6BAhaP3fH zkG2^OO%@9})iEqh-|A^xV7MAyV3bLfwWkXs+-7jq9@rOHHPm{%DB?BV1Q*A;hKH>_ zHm7L{h1T80F`g(-&;KO}9KBEG*gR*jiobs~Ju1=|8kVt&{)j1mcr-c6<=qLf$2ED z&^uhis=M@~g9hUUd9Rh3@?;wB51skZKg?QKpjL(%`beUevNpya{ zLEu>QLiYn-OhI)z2`XEjz|yTOj%nFpFMv<=Hq2J4{k_m7hiE`s?`CHn8qeAdYzNSe z4{})G&P7)@=7uIOtU)tBRfue)+6@C1@V$^3_ruwCzst6Zqbc7%!Wc61i#@Unhn)kXnO)n)3`ujYTvSc zcm|H;{l1o$EYWWchmowj5cLEmkh+eMwH?@_fb(c$t>XHpEHFg3H8t3!pvhX7$d}vY zOz(%99tc?X;ej}}z|4w!#1mK|F#8GJBU}3pz8^fn84!14DmeJz?Z)GxrDH{-n(gH| zT>3vWjq7!XOV7yYTeCFA!3P?{bkjeyIDMKol_l%t>lt1)UYToYpY4zKcnbHn=6&Nq zm4y+lcmKAA_viSitDZq9U4}CV5GKzfJOT03b1p5w@k{~rGU>|rJF3KiLA3XT` za_~#*?FxjO=Job4(6ZjH#P@PR zyur!X9#KE6%WZ(+NKY6&F}LKf%K&3_i{C4&^M?Y4HwxfGMBkrceLozqw3aS} zL^h$m$A|SSDbG)KfQFx|@Qpg>-35F6P0t90a8B^?KV7)!8ld{F%3PlEek9^k-q)jC zJa4pH_%87o`jg^i#qQ7Qxfi{INoQg7k;eALdHbU*FHB4CcXy3wI_sT3M_!=id|vEn zv#sG=SNB=?Af(KgpGSjt8{W!TwrfR)?R|TmO=8-6lC-zeQpDm+TE^l&0J>}x)jqHn zd?<%?>5*Sbj`^b8t}*)Jvu-tR*5N(BCGae_?=xEW5%5^aGtQ>1Elg3yUe;?3j?xO4 z<=<~Gc%TC}p7YrVDDL+Gj@K&mM2F4A=|7;k-fJUk3k&G%>aN87VKZOXgPQ$*oiYq8 zF5p=8vg+0Yq(!=ZUW;}0PBiAn1D@&z@_Zcrc&6+IeDmY|H{zmh@H5HeQ$+U!#i{x|2(x4usd|eOL@Ov-H;qtx3;<2CN-~hh= ztUwR`7~s@{BlY8aXkGjkQWxF`ICbGj{nX-#I{m2Z3^xHrU07SO=4txyNq|!y!gsee zSgZw;z6)@iQ3`{64jtDtkJrcMaJpV_72rBF4uL~6{gZh3Qiw2i?F@au?*^Vq(o>_J z9R$3ncTnG6NPRm#EA7Kcz{0!q8`nIr7{gvrZJ^whrRKa=Z)w*0!&-5A3AmV&- z?mX!Mz}f;1Aup`S8A6_wgm3iIIJi1Vhas*XR*^o=sEQA1>IR14V?R4{&hU2JMR(k; z5dCp<;C)X&8ynA{u6zDec(5N_gR}0{GwJ}#&z_E$EP%#6W9XoU^PmfmgU-*WWG4>S zM#je7<}U?-4dVi54qjF`<~t5{dsOJns8(33(q=|9ZFZioXZgpFH`DH7M7s|O+JksG z8qPrVTsF&wyC+i~{wv_Og_W}_Cvc1(ZILqMn72K^G3YZEmk-x@Fh}DOz60>Ng=YA! zaJql)n2wO__nbQ&PUO|W+>PNh8Be>|7}~6}NrPFN3^+Q@7Sdpb>|;`~jsc%+Jmi}} zI>z57`B}}zn4<`{g}Lc@foR!p7g%Nn$hb(|@#9HZ+F2GJJ+XXJZ;1}Wn8M%G&(y1_ zE%|i7((!`yPs1N=$q9V(<9aUQ;&{=Fi+ZXVR|=_qBtO@W)A*h0$2!8U13g{p$C)Hg zEPuqsblpxo4qEERS$v-=(2sWl-e@OI0@i3J9s`WcHMJ9`0Bf`p=K#x%BCt)^4rm`f z12}#X`!E}8iv6YYJ>Tv{`g3R9%_F|f2}<(Y<+cELDz`<1U2cqX5`UE262AFq#x=+d zGnLzLSTP(Kb15uOObc)-7o5Y&Y-+tIb#DUl)Zn!1DeVt_Y_9gTDnjWfZ&M z48mLw&~aLAiL-#QkAkl26fV&pPaL|_mLML*BHo^c7+E|GA40@E3%G5-!FFlF-3^@C zH9h)73|`a5x&`As8#vlF6^!<)e6ytr*Uu;`aV%R0ar1TYr$E>}fb9mX3*Kevuflok z0jyuW>jZEu>h~EPm$gyW}4R3DX^5xVC`fk>HnWT9UX!?|fwM+k+ zCCX!B0zNb*=O<3htkMPP#1vf2O-#)%!pmP>^L=UQCqc(gqo0gR(3&q*+m80#Fm>TW zp)X%-^e@5p=B#z`ZE>yyofBT@U9feIt~X!mnS(n~+z1sN_S1;PezWeloa~pfpWSEl z{QXnO@1IG2zbyIvX!~6}zd=5+^h#Nf-_IItab9YC)_r-proJ~w|7xRuFZSKt4#J3* z*`c(5%Hgzo>ytHkr^EXt4wwCDhi{DV$1z`o^IQe)Xw9QxiM`2tKL|4@_znpl%feIv zuv4<|K?%>yuM%QBy973UOt=_Kcp zoU6-`2j`=>+qbrGBEnc-fK8(<5GZk3Z-7lMFHdH+dx!8_lEN{)EgF`>F}zj7nQSh# za9XZ|3Nry{xw;f)0#KOob^%D9jK2!N7lgoG zVK5g2%XGiNR1liCS1Jrk9#MuIUm)wV%k>$l3yvSCn@pZ;e{EqclND`wgfm$^(!!~% zI4+{?ETnB^&G;x#^Ybdr&vadqQy9lplusZm$5k5E449l~(}G4bVX#L!OfsUpRuyI$ zQP`UE(~OAxR0d0@v~y}ZdJXahUu^(MXB9g3?Ertsk~yTyK7KtQuN63P9Iv1clJ&N| zvg&|w$L310FA_-?^S9+m_kZ03B&2Q6*6ci_93KH7?uvETS4ZDc+_e zkMFlU`kLJb5T;E|88NbX8wdtrh zuE8vwTAo`H15D*X9NuccnAcaIU*f%Y?Z1=>-g-PuDBqW6MKfLMtZjih%iQ={8oz=3 z;!TH{1+3xM;R1J>{^@IacbffoSI}XIvgH2Xhe7Y34q0P}a=J2Sk4@mgbU1b3fw1Z! z9Jl=T1MUZqdB@D-^wdgR<6^$CW}emK|3Nw!S915rxfYDJy2`~xmWg4!RhbKS;5Br| zljojre0c_KoAxi`5Oxh={fl_3X>@IAX>pk^uMo#|sLn7ozk-D)r#(nodC~=L3(OxW zdGx?np-EEoI_H@mO=QzY*>GhHJ_Bg~6yMkO{Xlci06OZAkAsiTW!b(M{sjJb?#AcX z-VW*Gfchv;2VdWo7oQuFj^k`IZ8?0(Xqh(U&c5sXKZ9^{oKpB~7N;cnb=~_pz*F7( zd5cfo>E)pA{T++%x-{Zq8GY^M3!vrN&F|uyYlfV2mL$H;SAG+}sYYunJ#)+O1H<{r zCjmo|L;vDrHedQQV4Ua0H|=(Y-v*5HJI=Y_#!r0GavuA8fH%|*>gGbUNls0)KDn0j zMbPo{`}mIgyRklt?RvD0hPAmrKzz#m87LpuXG;MGf`@L!Emg=~4_;1r;)B{*Os-Lue zLHm^cHkOY^8~qOvALA5Y@Utnqld`rh{b(Gx&4D{=vVbf7@Q(p&hs}2?S=0RiDhzAp zlk@ZN-f&9w8RrM+3b~tQkDVzHczAG#qp21k@bXSI{QBEX0F6E4OI4qC7 z$dl4iPj`mX1n2@WkvAD8aCi{s%=TG5X&$DtNuJNUST@Z4 zup%ATzRQ69dBRi1#bnKz{u_0lV3cm(m$9CKMF8~=rR~#9u@oUPi|57v68s^pghKC0 z7TAp09t`I&@aaQ4Qed1zGp~Q$nAb{|oB-dEo!J|%^$d*G{fr#$cjR!jK^~~YkybnNhdUlQJZ?H>{S@~+ zayV|aAUl#K?tA2L;5y{z7;*0-hr>Z_6i@s9gU`w1^j0U^&L-Gv+Q0t>^2<}<;_rAB zeneVF4F5g;()C#1 zbEp1+U*Ofr)QD3YuhXzPXc!fOkxFyiU^y1iBlwRr^pW}6m*Whm-^_t>*PV-`UiwWz)%vhMr-g@Ia zW)B9D66$zyiJsp$KQvfr1_tN2L8;%dKY`e#@=BdMTznG6VdXOIL%?kuU^*@3x#QUC zt5+uDn-_$)mZxSH7gy@~yrSx3?pL&x=a0EwWW8)I!@oN0yJgeagtgbrxABqc@piZ4{sSp*yZJE_%VdFy*e~=1WR~KlkN8#$V0C6C2)D? zBx{yR|1YFhNlN^GMOd?|_-`@HxA$DI#_s{ZYbcn4xxU;IjFuL@3tZqz8^NB}ZyWEd zB8>OH0WNFQUO@&odMbHVlJGX#9L)0J>&D?bOb4$#db*TRMWn4fzKig{V)kyJm4oiQ z1z-Ai;EU#}4~Jg(58(W>y_}Og?n&qxi0YrUg|!v+bx+?wFgL@0CUIK>oczG)6~{&D zCXI8Ve%9I|!>tW|_}2i#+v+Pk%SS!LKK1>C=jL#0{p=VO(Mj=beZFzA1@Y2xk#+&c z#UCd8WDLjM1i86_IyoOdu0^K&e4Kr-nO{#g#?kZf>R5+YiH8sC;m2z?{iAdJm|@R%C9w z1$ddq)>ql~FayHIob7WGXY<)6939(qfG>1+;Tb9B?F!KBmbCSpn5L_9IpQA*{2t|z zqM++{h8@6hPm^c4QY3M^fa5rtmRY&#zVRb~&w3Jc7xw}$w!Oe%gxUA_-sdAh$Iotj zW6qoPy(ee$6})|3UtYD{O0)l$@oK`UdJ4l%HOFxS<$bhW4c?Qo+o|)F;xic*6?tQS z+JiW${mAfR@RzqA_3Xo=0q1z(X96e}Z<8_JhVWR>@sshF-+JcoTHu=Fl)^rXBRKSx z$S>~Of6nwP^MR6P^Jg8y^6$;){>rr2^*-*wpK5(UOnse?GyhnZn><@toSer>rS3Ji zguUSJGN=8)@I3}#_!@-c{=VX|(z&|4$Tb|CuLb_l@}$^n2$wn$ZXD-XH+%!{I^g`X z%~M6)xLv*mB>z}O{@s8M$Td-x&(BtDf@Xdk_)y*lP~V=se(VMjX;SiTt2rN$WcHDTG-X zYzxF4#9!L>eQY9*dCAkk`yt@`6yf}wkLRTVTIQw4c;)jR^)>G!dYiTRrPvYL&UrjT zb^TT$;z7}z@U9kNU?(KINaZ?-NsR(<2@%Xe6Ml4^=xX9aWgi+AaMi|5QG02+l zMqL4&!?AGC_&jy3zI?WZJ(}g2NhnPjLx+Gv6$CuIg(tHkjOFxwJg!fVgRbV@mrYM> zMEMUJ@5_-E#z&`+{Rd>HaZXd{OZounkn*Me5E}{c{BFVR;Qx5wpNR6XT~Zdz8{-@W zj&}=w-1C4n5tfBByhEdn>J>G5pb{N!2Pi)FmKfExo2_W4RZ#Ts9h>o(xAzH}CMNlyCVW$LBV zz||Z8`mN|$SHv@Ya!-!7{8s3yGoaPb}sNd(+vlJ(>r0$0bgB9;2Fgto2`OeIJQaI!H2SFln2-Q$)9qG`ELuaSeJjZ-5uk_vT^KXeR><{L_SFO zD*QFJfg$9<+rVppXB%+&zZPNsHOrtJehzSc1PA?|=EK+Yua|SC(9uFEb7oFa=H;~+ zY5$6A4X~#pM%VGdllMdQTxTh~05ZZpFpqc(o-*4eZ$6I8JzTEy6SiAmJ>utj5iTleik=+Z%xM&;6b&$o9oH_u`m@vtikhEXuJ15Ufp2K_XH&47Y?8Y;vib z83%ZTBMoh9jz4fUEp@>#_COcY@a8ZuHw^&Oc%f;U zMeFBpN_hFYKliGywsJFna#kXFGrB{0$*K~^;xZ`S+{lMJ{^lc$V}A!|&~%~u;9ow+ zdv)61UxsSNqa4%2I4YLJ7Fjdyg}_zM z;MB&cljsxqxNkuj@OI3!6bx;S`xd-+_|~LsD)0OoNDXJ{@<-{whvUQB!Q(>kI$s^V z12jc-^vg;5R!4o5NAW%N^gIBrS{~E;!_334SRVZTB6Wkl)rtlTey$sErZ|g7*smfU z-UR3IL`jol@Vk;cp}k^VpuVhU5b|k$2xC0QMIYmsCfgLpF}7vm-veG;4|uQfY{tcV zi(C(293Mk}9dS}S>ir1&`02bkZ}~vNoB5Bp=6TBpLCbl|hw#laLyda|zXmw>3}j7! zW6a#bS{~V1+Tn@Ig&OZhoY9SV zn)_Ae2Z3>Z%i>%K`-*)*=9lQbyXFv0d-@Z2C ze8}T7h4EX%XS4Vv@%`X+{yD(YI{&=IXT5s*tn=To_}(5OuDQ;?09w}h@8Wx~pw2%H zIP08qRn{fz`L_XMJUsjh80WA!ED zMSiZgYiNJx(=S}lNcD^B?mukiMb~fQ@$q)k)vrX{fH@de0FS$_(6fch$9XqpZkpP5 zx(nwFW!zemd`;!TcrPjvS$jwE!XGE;tA2&kFu89%y3YNAp2evnydoBL+s91LcwIC6 zr{LRYe-rNQ=+A*q+tFVj+#J6Y{?hX2bFe={7)>So6~2qlWbsT>|K!=lwbjZba*28= zo=4(L!2q6DgDi^o1}c-d$%s4^%|W^June5;d3-kTT+8Ux^5Xn_57rQP)`4fr;8{uR z(XSz|)#*8`qug}U!~{HE2Jy(c3C$yPCujdI7mV+|Bw}LQ>Y-#fK z6zchZSSL-|1H{uF;95Z34_sJW6~kS9Drs6vm@PoV;vG1K%eeoAaMv-M!hokA>5D9< zr}%acok^jf5OlCVfu^CV%Bep=3dP14WTr}AxuPtpfB zod#=di#Y3xz7*TT1M9>uZl~yPcuj?KLF)2a5=hM2}=zLv^bSyXN_{~42!9S+g z%%d%AHy&=gF@GM1-|U~{(=7juVTZ+adyR3Oo_T1F(;9YJoSR@P^6ed$2jjU+()9V8 z>3f-q`Cc5ZG`=ni=bQ3M(`e3HTj($z&A7O}=xyA~+DwZxEyjnoQ?#2=2>Hm)^w^?3 ze9Lz7DA2P#Id7KtYQV^wYtgZNmBXWxJhE&l?z@m7Ka58nDX#HsK*YthS?_l|LqXe& zJetdga~_rlr)NHV9kqylUy|p1TZd1`ZHSDI^ZE|-49{__m-cm8+NuYyN0@r>LVUaY zoJVtB%Hcpm{Ks2-+G|Dh+~?)T+c?Y0y!l^qoYruorIE#HkMv$He#bg!4L4bwV%q>? zD^?EYX6Ee12KA7h8@d_sn)6T!PcnX~TuDpWHq*C+rxehWmgOy??=t!#+*eJX7U7D< z3XUz!wB=Au(qKNKyz=8n9v9C=rFz%vOTJA8`FI;bElIDj-~CZiraZ1Cq~*=y%HfaN zk#T&Q%U23pw?!QLTv|Twuhb70fsXpY>v9GBS~7Mi)D@bGg*Csm+PPPd2R@|Cp`1{k33ywyu0B% zoAcKao|f=x%%9sOjMs=u?YYK0bfaDKQSeZ-LWooqWX%sjNKAHNkpJ4QHdx^3Z< z-ES+0S3oX%_Al9n2iHf-(l2k`zXY$p*v2}(5Y;y9N5>yjyzZA|_n9?rkK#Dz)0tor zuW$d<+VaXGokrMttj6izKgIduqRhcZ&z?NC$h{yf$MF8y$(3GA&t%_9VNcyZi~B8@ z3jh2Hlx^4eS?&NTDuQIu`3a>z1 z+tD- zGEK3wG*0fv9%$DpJzUDlg_mn#{}k6;MiKpl-WMs09lNxDY3|HPolSclXeX{39MZO8 zXgUkDbWh5BE<4as+iT zw6+ST0=loN{V#N4FW1)hg+J(96$U1;J+^gH9=BCyaR6x{fp6}d$KqJm0&cm9FIVT$ z-ic<8mOnYKIBq^WZd)gG0iBi-n8<5;CoWqx@Y&Ugq`RV-OM-`$-n zaDX;7t0y~S-uHCk`kC~E2)l-595Zl|ht5u%DL=kCi)l`EK|DWc9Ln)P=K^*-#+RnC z$~9io`us=K(~X^Q27|YG)3O{i*Z`Mu)ir9?w|hEg{pf;p4k**Llh%LOp87ghXY1zQ zjqT%~3)%-^{hhL2nA5eKD-L%q_3@gx0)wr;u>NSPCMH)Jj=gh^WG!0%KYJCRUBD^MP$s*EyAIPk-1sYu7_#T3-f??VoMrTZq%B*9iNIPOg(`6CvHV3+O19uLzxvHeSZB zd0g~7hkadOOf}}?8v?^1h69IrdX@0L0%gf+R!$MO@ zsgw`f$qzbVOK^A`hN`mhoc3wBZfSZE{uQ=h$D8xzd(42^a@h_E^A1yO0r$Oe)*eS1 zLAO=lyuSoLhYCe|+=4dG_&EE>Q~A&W(y?VreH|Q*ane*^+^yleh}!|4>z_GM{)Ugt zleDSZaTjH2c23&|`Tjfj?gn3+*~EZ_Zk(+1Ghf8>JSTd6#2C;20FJ70WoQ8gMO}0| z<7DtL+jx;OC>+j7)c7#{P5SSVk5w(*Qv#(I=q;W91pc-hLgo2ifIBVG&V&7feAmO{ zEd*4R(tN*>2g-As;TWIgE8@+yXq?6IQ9#oBAz-!vqbk($@!x=JWm1G}BVJch!4f7v zrGcU{i-~j(3f#6{m=V3?A#u149@~>57>Dw&WTT{tl5plPQ-jr$OK>wId`O?crF#^> z*=?;nY{w|OwTHF&$>o@KK2I4}yp2%~CFB?JBGCAmEG0(~srA!>IKrJhL_=? z9T!!^FKI)W)}h$|9=v<)ZN)4Z**l_KHZ|b&d~rFjZKUx=7v0#_yqO$mNx5+&^1OiM z6bl@jq>Ni-?_v-7nZf1E2-9ZS`x>lzPoL|1Ous_Q8@E6{1U(k6aA5-A>msVG3`+qQ$7M4h3^*YJFJ({HTVsiTU}d)yCa^lsm*AE zX89ii-qHcln5-*FxwZm6QpY5(eyUEMx)ZH!{W9P*OpL;=04!^dJS}&8+3vrV!$X0i zQcS>-#!kRt5}!`zFU-@!49+rZjx~*k8@!5FJxOEYicBBI~zX!?g$>1b>5# zkKrv!%7JZFd;@2d*8qnZ>+LY3^{rg9w=+I#^b1@L`;nHI28q^F9xAIIq=f zcIw(b!X_6aT1w0N3<``gi2j!~|C)7XG}4S?Yd_65#*17S=NmGeM%`gyJLjqS9A=*8 zC+AM)WTUt-;PC#%+{{^(yrzZQ58%bS5{lDB6_%0X#vOpuc354Wm$wz!E;>PfXGV`3 z7%(fG7yI*ch7)0rEmA>1p;OMpXL-QeFnJiYVUY7;k3$+tM^9+OP#CK+#@vv>wN-Xu zeE}mKcyA3q2Hb3xcH$P=Wc-9IZr|eS=+dH2;q@#9^U;J)SonCv_N4iWb3Mk5aOtri z*Lr!!=o2Bxj+^7r3mM0fhmZIGz?R!oAd8sX@cK1B$w}PbrXnygS zmdT}#cQc^a8SZ78vZ6S?G_HNv-)C$Y8aFFzt>bSw49c#pEWGNT>LdGvm%*rxucqvI-A=Yx(t|!3jr3x2v>U-wzK85KO2VE40EOy8^ct3D`(9$`im6>so zh72l@IgWs_%v-~qfWI2?L|eLDZ*{@E=HMnqmTMC6MBhQjsa`Q_UkxQ`OUE?LZZ5pV z1!R@=wBle5NDX3DSK%{&SI;bok0YkTemS;y9OvPfIXlBU;# zS8=Lt-AmzffM@M#1>+Bt9oN~IR%|mFLf|J52ePxlD%yM}0f$a$f-eA0C%$syMdZIV zECTjA$XWJ#GNh)kzivuR2FXWDiF*D=zq_!tbQjX$r}4fDS|QFI(XVOKN6wgDS=t(wE$#}w z+pe>P9Hh_l;ykz7;45pOIyeq*S?l6!0~MeVpZ;9^js{NmWcM?#0?%@o>BTEuFn#s> z?;`+f4O7RexYP-=$kyr9r!Ra3V+rF#2IJly{IQ?%dlyXOZpf(}=Z#k;)g$>M>@LP> zD;wCuuTFZ;^gM4QR{Cqh^zMN&a?kxNcyQ01Je$w(@CfvNzPkFw5IC$(#X!w zuiM5F-*4xov6g$j@}jk#FE3eZK2JLR!(@VXcV3z!B+`3Ph5e?|MQ_LcLc;oY!&54x z$$s%l>lg3ckm{KK_uopP4V%7!(IMgW-$tQsOW(-g8KCrS73#V4%?#SY|C9GIcpnUJ z6=FEzeoRYHAL?rYVECZ$`TyrlmM23Cwgve1taE=@^V1@*r8PeE$NW4K^~1M2VEkfH ze^Ow)!_)Yd%d>=zzV46BFN#>X_W*saaKMzm`l?!5c_t-*Hb5HXw{%*83j3eF4MU&l z$e$@&jr$IVsq+X);~p(XqjnbD%e2h7_hp_V^iz}mw!t|IuUR>sYhn8LVHuw1_&F`- z^DWHv4dU;0yw&>)EUf1jTEYt*KdbS7!op|?BJ&qn7!T7(_$MvQM`>J+FE*HZ{MK|| zVldtRYY8uPJ~Ty5{y$}~tR)!yrwuNR!C*h*{JcRJ{62%T1vuZAB`~%Mhrit5^GhVw ze7+)sohDFZcE7=vFfYOVBPqAFpX@D}4rz<)zXQa3RD4%P9=ox;+S@(ZdpEoz+xYg( z|MZ=igBtgL^@dQ(X?&(I#@CzZlR^{F!c{FGs-sSMLh_ ztjOM6M_C;;zLmp!vIEdpuL7-q z{?dD0ejY92^5@F(@#1|8#-qMoFJ2y(kC*2e?^Q@%P$wx*_s{TE_`snKAYZ(py1aN= z*L)oYUtX9;sr~#Klo8_$!(tXY&1T#uf2QeZwoSafidFvk%$6o^yuS*X{wDZ#^UrOY zA(*$~o;=c#*_%oo^DTwp9Y9R!6zDMS|FZ8g{CdQT^Tae9)Ae|==4)WW-hjB+=E0IY znkd|nISg|=1te*Vh&M>i$y>tDTV8V;K}P#V;IKZo0OXy=WBx;Thlh^ygrbmXKhgCs;@P@_M_g0W_h>4 zpJwJn1AT#VV41h;n;qd-Y3!_l9bChakJ_Nq(fe-qPY@ zCJs9QSQk9+EXcJ}W;Evn^NfGp`FX!+!% z_}F3DNdv#%3Zqwkl##l72((zL1SLJO;Xzm%<9R2Bz7Rj0C#9x{Y`H^qr7xfc9;S+!IjKa~j6^48Kdg`VD-X7K<@6q~QYjyOvp866_WqTah zB-#EYeKCC;Wze-_*3pRV{%ClRtQnPHUPc*^!TX)~Sz$?+s)w2)_p5&F{SkcT3hhHv|R z9ytGO56n#LTMgq$?kzZuUl>oiG4+%2%g2*1B>ZGNu{G7=zC1dGy>C2+G1)zdQ*E3Z ze8cYGx}EVw@bf9j7!hIg_EPRAro%kU5L-5aXdt`1Q^|;`9rOszwsT_$Iz{^JxN-Y^Gye)X7v2F z?)W+VFvf&8ADGVc%^e88^T0F~2sE8%BmBMt(=z9{1iaph@N71q>s_BeXpl8|Z-Ez` zUq>GANh<+79iBhOsoqYFe##`AXjU^^Mdd(z(;-K zN77eVWz2zkui}r8*Yy0c=STEFwg+1ZA3@rTiR5j*RSJI$n9e<@4gBD!mg$?oVd6A5 zo!i&i5dIeM{QlL3@GZcgvusauL-Cwre6EVqrxygmTh;{DAH;oHFF_9{)@-z9%N zBWQc?D(~WRbc*9Vu=u=IhF|Bb)`n0*UC8NE*a{w)`!u`w-y!C)j{=CnI zumLcoOV9dj2p4AXP-+b1oBz>TE5(ltxk05O|9DmtAfWvT@V%VNa;iokX2x+cTp9|dfDVHwsJt{2F; zwwCZG(0j}?{3t_rk}-}_58W#AQk}9=ndGHARIX94 z9_^Sh%x?eG;{O@GKYJiIC^f7F;iU=mD7|+SeH9;{6(HV@C*=N8hCJ?=l8NX|6+c)mp~h?4ZlhAclg@`Z&H7cZ+l4oO zegN1-@a(vOLcquC_3#S<>qW zGq?y)KSQ1Du-%09;#wVmes^t8fSHDy%9Hc`J^~2+_uOQX3mv-| zZKrJbiy`~_3Ul`D2iSJ08@ez)1Y4u3uTF`+V_(}ACZ|tf+$GIjput<~ShtmBU4fBi z7uGK^wOYVH#;f&mUIJASS}lG23>|VV3Ga#9nWMaJoZ^wFY|U;9A{VW-ZcO;uTC1Gv z*~pe3hGo6K4K&ml*Fy%l8Oo%Sk012E=_YfP$ma&&DtTGP`#A5Nni}PKT=Y?$?@mn( z+8JW?KQ}eyZ(=gs5~ikxIr~}D8;bid?{%Me7a>0})hU>duu4}}ay}A@=k^sCl-=S_ zfbC=*n#d3Lx!CV6wDK4GtQ)E7nO~)CH(JIM|8=HA_}g{JrJzZ5$Toz%AChh>!qg#` z;hUdkTE z7_gS`;kqx=)lX~KV|1{QOy3e7dmdiy>&x?djpg@Rd^eXbrcK-u z(oJRMzFs_EzLve7tgf?sIX&s9_qc~Z{``*oTf*avelL7h@hu9{d)Zkpjep#;Zsv1A zczl*F_WKa;0K)vf0pIQ)NBrGbeEyF4fS*5$@3c3e-k5fgylygD`om0h7bm=?vCiIf z)6^7ok@Ndi7{oUtUJ<`1HKfh*Q_iGi9@2b1#b~LA=(C3U+tcU*j`m|wyzVSsN%WrU ztRBG0gZ!w!+zzSYH`DFKchR21dboUkqyISOiRF)FDTPPqB%wei(MOrc3uQ{IOvX(OWEayh1JCd{yRZ~HK^r&TiX$Sb&(lt;Fhopc;04l7Wwj6X z+Lrq{E#XSQ^z4d?o_rq8bYu-m8!)D;cCSUtC|gcqS8G_di!9uMxamHXg@uH?DLYLs zzyCwrRlvcnCj!g;?$ShMOFmqGQ}Dv^G!Nuiv|mSf(S9A_T(8SE*pj?A?z>UOSmR=~ zX;V|PRqFc@%BK+56wfOKeSu{)yt$=O*dxJ@chU?f^Q1=urU`RB@1pP+gyoJOx5$|? z3aD$RTECcEU=>gDD;TCldj;inEh242<(YvbPkSXTo~vS8(EFqNGMKdjlhuB}L4|wA zO3QTEzEHOUXb9WgTJ%kgx9sijdW0cg#?gy8#-DW3`aqb-D?6V>S*7Q-SQi#XQFZN; zFl}q`td`}`&TloJ)rxrBDP}ae!>#q@eK$G7CG|+SERrX6YgLow-NIQb@G>2)^evvu zdaUM~WkVt4#GC4zti9x5Y{!jf;~1CibrO!XX6Jm~oW76Nmhc3?qK|^^ zvzdUb9SC2@7k;GR%}sef5pk^TO{y=Mtc}|pQZ^^C#IX6Gee20gN86brq|Gy*fU~JV z$I0L(aJFx$Q^R;Yu#Xr$mOhrH><1H=r^kGw9v~jop&p+)T+b~iTzy!m9tFJs)j-gE zvyN*E@EXH&Knd3ChwVh0pUT7V%w7!JR9v<8AJUXVoj)PBD-_(l^AF+3+NFUp&2qC8{ zbX=6HzbshBAF1MwvX+N@8I~KMN!wE0%AEtHW80PskK$B}u#${fa#u1_my|^*++umn zTAQ@BQn386Ke5+9gDHK4qgjYvE6Mn)G6F#IrRnKDq3%S+yZI&2<%)~L7xQu}@{+{C z2ruO+vHkq$`+}F2`a#D}wP3dLRN*68hMn&DDPF58zLQkrL9$V- zvW<@69W~B>M!}QwpJIBPd2?#i6Y0lEk1Y6Hm-F1ifTe5qC+xVS!&iD`^Ujg=Wgon`3{7e$e>K=U=D#7Fv3TB}cs`eX%GZ3@XJR_IQ`V4<(^E#g|H3;vMd{q#P!5)# zbZqyLe<|D(>7*@qzc~kZ+Ham)5TE_#c^1Escd8e?-#j0*>^Jw~d!M~^%=gIst>Zbs z*>5oR@?g+$a!a20GwZ;M@Wd%z7C2_<_{8&i%jUbMCHy4wKnP^TH;`J8{);Vr#%?n#^M-0|yfa^`3=PVi z`Sb1V==)ep*?y0od;Fl)%vU#0Pi;=IA)xL$A6iLngj@J6F`dA-K+zKV1r zT`9cD=$IbUkGSTsiumI4l*2E@^rZe>=e-s1ROh`7VM!~=2X)@t(|qJ`F(0n;-T_+b zykExm`wMj5%K@j(Q|Cx>drWi&;cQ|GSC3%SC9eRSy3XMAGA8u*1CD>xW1`(i`?CO; zZWFab*sB2RP&%0q5cV3tOsBct6j9@ebNC?CwCCgJfun92 zUdzWJ{6GRvUicIdzV?GyEcOHv?B&k;w|?ucF$e%x?znAaEv&W%$;}?k2qj zxSj@FJY%>sP`-T`-cCuGz4cDuYF;5Ti()HZ3f=cBfb;Vbv`^^Xgo5wF>ziWJfxfzR zu9dze_AbPglh6%kcBq5sXWVrV^)|!r0ez~sXL5R*X>hqx=N9ZIcn=mZtRNhj#05k> zOZ#r{NYB!`p2uD}XhqROjxFK6o;TC;8({7K8esm}tT`7slmRTz%{hM&1!KX;Ar1u? z$BOr@aUL6foEA@>6rVbj$p?_W+HNKJ%|6OE@je8&JslzT>)$lUj^Pi3CY7D*M#_nQ zYxwhi9qHj;z{*SFz zdC!~wPEE`~Kvo8qz++^WM6e zC~c)3=W5u`FwV#uX0G=?i+HKt|80c5eK5{v5T@S$9KQJ}!o@vg-JAV9Xj#(VDdZK$ z2_N%5T}W37zn7%Rwwvb1(`?R9Y_C4fbFY_kj3w|OpXNBN;SVe=AG1A9GcDfrN%F<9 zHqDpsUG8X!dzZ2g2s*vLEo(-$Kjr-a{lk{*ma%o^`-Yq4e)nMV*0SEyXqPwTvDt?< zz`f5;B0r6~j^*6OyIIm8b>Wseknrt%znP0#D>X@${eyg14{5t0Jz={PI!8ar&Z8ro z$y|o%>lATsZgu?#*E@bs_s0)=;wbP15zk2f69I@I{29zhc#=zYkc}+>m$j z`4V7ptr=SZkS*bVsBl>_UCC-(`TQ|(NE>3S7vL`~{R!~=H0oTAgO9>E`(?wo;rq_C z#7JAlLD=$c8*qN|0fheywCR0y*CE~8v|s1xO5rao4e!^aE2b@nzcN}MGf6jvzg477 zJ&@{Jr;3K*cO}(lIaf8PKD)CtHV*%Wl#P-3HR!Sf zdHzSb9l5-*hJeVf^#v;#P5g$YX3!q|0!p24K{tPKH^$rxsB(%*p%k{ z=p%0bveFO3y{JEUbcjC2IA>ptFz>7PPtDK3a9h@$+`nwJbXj(ssd)^PpYn<8+izk_ zxX;>^clTPqejIlv+jWHNLxxv^ZaD5{?0TKLF-}y5oo_UTV}`BASN03vTB1|ZJ42-{Xn%fQ$cd`SQ{Or#Yt{HMt7(}2gXQg+i%%?Vi3oNnVOyPKe9O}Zr#YVY#;uZPirP0yti%Z9%l2()+yUB{+>*ATV!cw(>+<7Z;R@B`~1jf?0d&&^jF08yacdNk01@oci+~2 zzxfjJ1FSafuu7R4mc1#J)uF!5b`^b{mWx(q69#|cFx}cjMPB4MVNK>h366BcClzHk z_l8yp-e$>wFt#uB6Kk;V)2_?-YgD{u>|s^fGm{4WFKsaMX?f@i@>fxzwatdV@W}|reS(UQai=SY(YF7GPH?(Y-F|~3^{5+I)9u8Sa6$8ji$5Si{mgqdNm9uZg=W<5gNQI}3<1(n&)1`flz zRhWga<}Guy|*s%@CrHt37gR@&pERRf!5*MxE0pK)7bl zDDOjx?ZTy}yvs6G(<0A+_jb z;Ot+tk!4+XCR=B0pH;z`pY&yg&90+EC#|aAc^V;%^{TKDj|eLkhv93uNJojqA-wa* zjR~|@)Gcub%R^}34jSvCZ@C}ahPBfk#JO)YloG(9%%(pnC$l*xFx-PQq0HtSPq>@o zFGGAd$M+#Day^qiGW|Ah&hb1$?M0Y>2k`gJSWoioD}wLBc5ICez>HAO$Hs=+=I3~L zD*n${7s8hUZ)igJO7NCxSbCK44H|C8lV*ay+=h9O&-fJ@PJQqY)~GOLOUPfsa1O(K z)To|{B=YAvaS63Fl>Ks)J@w{+L6un~0{1vuuO&Q>p;2@$i0lo`P-KtjpBj^Wy)p3z|O^rNsT-2FIc_DU@bi3?f zel^X+Totq-N%%U|nQw<}4;{tF`8FJh)d$=M1y|?(eU-cfKIU5Z3c#~#;hg9>^_%QI z8hlC3Pwy#D&QssXnQKt)hE3B1V$UsSegqm#o8ST;Jk9V6u&1zb3pT)QnEmyEEqE7L zOdFNP4z$_50@LBcb*A$%@xT^2x16<)H43~HG`_F}o1>KAF#nJV9p!gv9^5isUPxV1 zD0~g__!{BPp|vf~eSkl-h2G+4C6Z`V=2Vjdmx@5ALy2{4#Xq_!xm+aPHLGS=&3IiV58DLvLD zXP93Y7ru2jR1rtLQXPhB+Tn_LRs^>}%QL8y?nl(f+u^8$wl*I%@a$aS-r{3BRF)Iw zI9eR`z3AFYO}PRu^yJ3+YJ1Au1V79}>3d=akj~Co+-|@eyvB?Ib~pIBwhy;8W(@If zMLen-_;G`sIcZ_v5tbq{7}<~41D1XJEH7V1!u z(FE}LRqlK6y{R)6@o`1Hq6K>*lQ!)X{@(8WTM6Sko7cQumopE$$06_ZQ14iQxKQt4 zcm}jWy~D{+ALrMb)p0rVY?~kT6{d0e%0bX|d0hxN;|@t)+57C2N44VI-m$@b>;*C| z_$Raxx&gEZ_I?Ds+}y_NCN)&l>?l?ye>{%Z`t&M_)f*;Ecl;rP<*v zRlRfZ&#Sb3*{^()Whv0yJp$V9@=VUziK zWj4J_0tS{s_xejTf1}vUpDK zB3^CWocU`{vx)BzxpDd$z{xwVd`y1_VD49)Z*2a?(~>m?@7q-4Mdt4;o-3c@t7_bw z`TGjo%h5K(uZ8;$KK~~2v#ZPN0T0(mZ$OyoxyEvQ&;8ebwCStke1ADxjJtqKTZ}j2 zFa7UVzK8JVfYTPk`cF*Xprh@?Er^4PWP0E_+q$xYtXOMa1UQPFrqO4Ur~|DvFF_ot zZqsNC;kN=#I}G*tNtv_O+y+=PVAKhC`2jay?Vi?J^OuO*Aovp#W3rF6*4z#l);7?2 zc=cUryb>^HgJEe{`L))(3UQRr*0R|~Yr0n>ZmZCuuQC^mqb)Y#0$I7%ybkc~3YX0~xnV4N+FElb;yM_I147DHo+bYiU|s!Kc$d_7<_d7} zNA87`c;S!h*xG6H=DjwpJ5PBJ!sL;A@b{zW7iTYF%)}JE ziNG=vzU=hwfs4c0l5;YRwoyCB>^{4~?AfSl?$VC%BZ0Ev{U_cKP1CND{cay#4gY)N z!(za^7ix2gx6Z?9gDG#FzYpccfuvlfwuOaVc6==O+q~b_m2KZ#g{61PxX)Da=IM^E zfjw=#Fx%%C`5@M_>>Hk;8FQ4Rf-n142J!zBd2()&wCVqKPP`Xk_9y3C()|yFdEe?o z_{*HE_c_pds$3Ev_3Et{l8OS6z-e^MJ))w68k4`g?oZ`r7vN zOM89}_-xPh(C2vXmpTsXdlG)1M;z~xy_a>bnP0(t!RF_5QP)jq{p-9oID&`T=`ya$_wefruehyPL;a>%udK}W( zvWnAoN%M8YQIErfGy_NTJtKR{6N6BinC_d1+m1NZi9;O&_QZ(mP?~$VZ%F*_0k&IV z+?FZfMvz|7;{#_t2C8#wNsbJ%A;L|m_r%kbAzVC`uh1unl|;;+3kEvYyT-vq`8bq>BcOL@Y(#N<`ZQN;Nb($c@huPrUd z?|hTC8ZR=xwRmp+;5whUq+6SIY<_Rk)S~zASljWdjtj?6Bz_^84}YvjH9q_&FPcxz z1nV;y&*A=qZ->Z4Yos_F_tJ(=9@GII%7YkTmVxrgrKdbdZ2IcBus-^(T^_iU2L=57 z26Qv7VxLRx}Y%)_MXk zj^S{v^}m2|-11R&`tzq>W6~s?V|L#pJs#Q^%lD|bj9s_(A$|_9t;{d*?@OTdZ)>G2yqyEV zGXuJ-=u6%vE5jd|h(^?Jy``<=X=r-S*reQ#(D8(DX#s0wrPmVBtC!OWIc-aQu#vBy zX2%Tw{}B2)_BZftK%x<9@=Od za48$l!(Yl4+H3Ic_0V4REyZxeaC?c@OU0fe$FN*H@OQ0;oaTu>p(qcH#ObYwOmpC&WJHj#ZY$}GH{kY0SpbqRad zSJT24p68U9Muswelh@H_ob`#!y}2!*3p1P4=OkfU0~l=iQvaFMlg~$7MIT|z9wR(~ zB87Kpr32kKC(m@?O(~m`p0xoMo`F%;JR7jeyR|GM0$cEI||aJ-9_ zb@}c9j5hXDFbJS*VL6`qZ1$L_9eDg|$)V$*>2%n5wMnmRkw5)j(T(7X;KHKpMe|!J_z^Aq5*xea=;{PapxtQ|jHao{Ueh>Ex7P$8}ZqyU61e~AM z6H^Svqu5n@wSD{gcVnyek@M}G$2~k)?;M&Orp};xB>N(Uy`Dh8m((5EukZm6U*-Bv z3ulOHY~J`U+CZ%+cEbYLovZ9d1;aHn>F!`(Tb+;nPn_q14%ZJwOOO4MjjLWi_;kL{ z9FJcDnzd*QS^DG~rgwZ(20Y}O5riFYxO~Vr2ZHjk{yxr^!ST%~aLG4g_*-i&aV_AL zYl#wIm1~JXz))1kKfjh32CQ-|aUEc?me|?Tw+D}s58zEc>MZ1u>k-E;^zWM5 zywcGQM&Wv-1|N0p#aeN1dnYisPFQO4T#JGhWzH1xl?JdBXl*K)5>J$Q%ZopX=ir5N03GIDFL8 zm(%MB)cL6=OaqT|D)ITzXTJ68Dl%afa1O`7ckN;C?{=-3Lp;ZYwO2|_=qXR;5hwgK zH3$0F6KueFAB$yb`r8GY%#;6cQZzbsAa7S;kv&tU%y@j)@UZira^KV`1H5qSJ6 z=UR8p_k0^qeu=|eEFXOveH7}>4BrIYkasSza*TSDk+-;2N1)6iEHb(W%J3Y*m_y4m zV^it*=TXp8wN`x>#uzUzu;n5}==h@ax-$gMRs5|m^|CI7_Xcw_@X716EhXP`O=HYa zCJ#QR9JdV(VKWuhHz|)mEDA>GRLNXTtFt##OFu ze4Lk+EK`9^r;5`>hsYW7^Sc_Shj|~Cw#ek|dm7cYm|?c#2O7uhdM792_1;EYG6O;C{lvK) zY3^&3H4q*-Q#$Oo;S;SlCb^@Qllz3DCk~D3p^B!R2HqH8@Q#kx^%TZ-9zPL=6LiXs zJM+#)dRk#{DMssQ=R;4+GQ zOTqjV!s$CHsTiOfE|^y#PTj0)_^%NbyKT8ERxqzdnCl`eqcK-#m;vk=+qVcTjH^$Z z<~2y;_lGq9o#XSf)E^xUOOspAc5PKKcQ9|wD+B)y`ydEUD$3*`KIOo;Md5UuUWXSis5YO-1;PZtOtGN4- zpRLhxz`37i4b<1aiT`&FkMY)!@YJ;!Pq8_~XVB#yKr1kD_nq_Yth=*L-rI-sn^oqZ zv<1U|g*-R5Oqa&XbLb%DS@QdZEz`KVhkI=YCR3{uH%1u0UE{S`pbms-J2dW!nbLIH zzmD&Bw+zkCV0MxucFd7pcgqmHI84clCjEye2B*f;di1v7oqB!lTk6WXUDh%>HeA;G z3f!e5eZu=%#wPi;@+_9~JiB!H4z!eKW~OFXo_X~Vruh3?&{eZ#K2^|Onx4beEcy=6 zxGP%*<(h$cXCEF5hcg7G#3Q-sk~zO&Unp zZJdq?^-RYyFz#q|ocCyE^X8t|EiKpwv}L5P%ez{fKTG)WLin9p7wI$lE4`;>4t9e2 zMk>SiwUlsULR(n;o`M$bwZDhBa1V*)qMzyqTEzFX(BmDX2U}=Urq>9FLwWv?hmoY> z0{-2W;X`;F6AEz2+Nr5L{{hM*K2bXu?RnrQicjG$W%@ylG7p-BwCSPqu$ zv6ksMdD)#kY}=?6<#-%pfNyxytBf17gg?S{`uzM>n-ut!~Zk?DK?mUPNk;mmkjx1Y+-J8~7GKTQzPmv$Ek$jleldv1n<^m1! zItqHQDwY?I;N{UhGM38ZTUr;SJ2lF;%ZpnV(47`)`-J>^Yb)lY2^fLapmlqz$h7^v zQ@HUX{s)v7US;9^<9;l#ZSPR{m6iCfweU*(J6o-9Dx1LZ-(3za34B}LZF$g+h*T!O zwRNUEgsV*GfITHh_K@%2*-AT0RaHozzI5KzI+V6E%l(Dc(5I!=@j<}I|CDRLK$=Rq zM%dR{52e#F@gA*#NBR#5p3XL|j^A}@p$R(J4+O?seVug*5k1NM;JpVjx^8Tw&E-dw5eEVE+LlYCGxKox&)_3xizfvhHC?}N!JF{tG|Nq z5vxG)9vH*ACkiK{dczO8-%5egRwH}w5B7Y(_vZ~Vu({a|J+fvT?mJV3pgy_M{0eEC zL38nYgG$53d*T=ijy`4kF0{kwnDPhd{u*>QfG%`yOjsDk@C*)%?E_ehNIJ$Nj-%ek zSem~<97W@7&m<LWqm>B%pWRgpg#L;d6}N|t3~^9#9@u#W&tVZ6M(f1!tvbH zq>4~m{yze)oyjKDb|o*^4wkf}r(p;xt1+?e|0{6YB`k=Z>Pi}ey&ca_8sXaC-hgz? zBRt0PrDCviVtNiT&*7(V86Gv@9JT>3q3)I+=EvRBfTWczQ%Y6ryd#ts={(TVvu!CQ z@{!udbx0#Mb4CGJ>CK@P-96Gwofg4KKx6TDH*=;?5l^3wtP6P~OxHiN#!gp6_^)COVwp{HcXx=b@z~bfdu`=(V>X_ic z3e?8T$Y5Lp(&-y^lF}7g%0|B9MOKMvbN6;rHc4?PD+I@m1*Y@7rZG;|oq>9(X48Lo zcCI`TrXxRa^Oo{=np&&v^A&&-Ch{Z5L&BF#VcDZ?%=Qsj|Ma-pxM{!mHwiIV_#VKB zGBoSo2--3L!Ay22NxfDA?#^sUQ_udjua8BXh8d%&&0C!Fz`L+K2^NH41MMH3+qNoBC3_MJbzNgl1MO|V zk)8d+%Gp?vS{gbJ(pDFOVhaBD4`87jAZ5l-O*n3!;{8%Fft0pA9r?lTmzPq}Rx8b! z2yX{{3rp|HlUL>bP}+Ig)+rontmDHJ=C)9*zRmWOxOwjLlL}T67lFWsvu*LKvm7k-e-f$itowrDsmu<2omWD_8ons+Hzk z#EqtThaLd5jn7Nd?w*?KpPtesyxO{u2dd%&5^g>s&uF>)TF>#4!ezt)UGuyk%~K_n z?iy&E$WA#sqXebYo)lhWJ(QMg4#-|WHjk^|RZMyQBH+sV6w(~n`=R~}AwfB$eUdlZ zQ+kS|b;+BvQ+Rkjmp407xb$CoHpeowr*X1W;n24}7;>fqaWv18UbK8n-coLBFU{gk zf@e$5_mqY5rt-Ac+l0U8F(;r#T~7eVrG<9`SK)#!>G!0t zuE_z}JyAYlId)AAO!;|fjoAy_1-3UFFTv-=_}KK|R0+M!Hts_BC_CYEw>ETr_p%xqou+4!*Dw(Yn>l`1&olgoj7Bg$?2QduG3p`(bC{$@%$PWK}X zbs`*NNO`y>aYVZ&(;7+LuLN!{R2b-NKEjqW8)vl>8^=1beSIQrH{o?|1ExCoN^>=E zZ$UY;zC+;425^O`tYlw2H-+u9V_wI^K;Y+u^A+FAbMqAQd@smrOk#~@BDp%~jr7B9&cY~Uzym{d_khQIcH4fT<^dNSH6+QyEI;!>KVPNV2 z*2yd!-P`EC1j|7EU-fVHrW?>oXB2ULWvJ~#WjnkSJ_dNoPqUbRU`EJ2IMVYxlST;q zdZawRzYyq$-2(L0!ao^QrAORz}Z5KKv@r z#pwV3glMJtCwne73%vSGcC!X~3@-C_vE0jAx*BEDSB^997c;H_aYN2Cia*K1ew?$X zohgr4yH>*J-xPLea%YTT`jwgX6tEWsU!*AWbTq5ywz5^qy(gtN7nQMf$zwOZF{7{r z!L7Eby%D%LF)0rR`E#B*>fp|^Wf0$p^4t>HH=UuoyF6YTVZYiof}U^T938Z7jj)7( z@vl7u6#S=w#_iEGybx-+X?yUhXm);Zc5ZBLp38B<)t==JS5I-K;Nh-J9zI0<$h~~i4V==q8y!fM!E;6^Q4Q_a+e;w$DdmC0tvP~ua84^$L0cAdgE;LVI{jeoJSJtLyJ|_aEcQcfMaf89m6`UpJB=ZH1K=p9lOn|i&F!FbW zpIO7S#4F*j8s`X_n$T;OEaF?HrV!2G`7j>Bn7*m?_Hv^&mbVIiUYdI8c{-Ycn} z#+1hw^|f{p^HDw%UqLvvO!)zDvKnNZOl|@ve@ma*7}q8oBNo35byWIydjNA|k>y4| zpm|h=y7X%SS3OeUx-YD96!-$vOE=m-?BlLUoW#&NDTsCbKt4h9sG42DE0u6tCLGuJ zB&5@hJTP{giLlh4FuiZ*z*?SNfTNtLhQai^6^8Cl!9t@8aP?USmctRjG+ai~P>E^C zkK`-Hbn|9uP<99JlN+U#d@7BQkrixHVQh&wmck995s+&m2j|y$hF9D{?#@DK+2{0 z>0XfR-2}GTk;rn53+E}^s{x%L4Q6<$cSQbqY90KTs2h0vYU$v&z*6{btAq2t(mheC znBbjZz2i^+LHx~whPPR+GjB#Z-Vv#`Q-=ElG#qWAXjlAJ;5obEx8eV^D|WsLXutUp z*tJn7emnl}>Br_B2v?SY`X6!l7go*YUjiKJxb$n|aLz%QiSutlx9(WN#UvHJ9-S@r z53%mx&*uvpTEUN2;&jZAhO0MiZE350kHpu@yS)tm2t;Xn&3ZaJY}S)@+%6xs-vOb(8A8ANB)PZ;`FY!JocolxWY@E{Yw!I^;W#<_DPoznE!H$W00mIHd z9cQFEGRuYACE_=e`ZvocZ}Nz3YF+dpglqXWXTK*X`-c(lzIvY{+P7Zpo!LGgK_0AI z6Zp%u57%65AMl6Rjeit$T-y-uBM9@p%*QPK>NsEL+P3l>xmZWws0ms>y$6e}{Kr8r zv}^x_&6jN*=KIM-^R2d7_vv7-rWb&PpN^5XReZ9^W%^8BFxi>&1Y@ij`vwc zrs0qH{Oj@S%;zn>%Ok|+n5a$@n=jVLgSfTv>&%x^e7)Pd)a+^7KhU;|axHu_@qd8V z*QvXd;RW5)PisBW?cLc{neMAkmG0>O?(G@a*|TqN2ksO3H=w`1NIKp<{0rS^u-ND-Yw`UHot0UJl3G{Xse0eD~jg9dV6e_4rQ#2AhsS znS!9GFzx36qXQvYlr#JVggY0?Ls+Iu_(6od9;G%~UjZz%0pdQ$*J{ANQ32x^|0ZC3 z!v*&Mv45fAji#K2A3}UD-eGZb8|y(o*=`PF*q?tz=F<$1LR+zO;b&Z!J2mZ8<8+Sv z65zdd?sa<_3n&NA%ot|5Zsh&?*}3#y^0xrH%S?`xEDrnhuKHP6;bYiG~ifj00i z^Z5<%+0V`g!EX_+l^5qy)jjg&cfj$wistELSFN&Cm(%l|#G#%{r=PDw+75^aX(*n5 z%Yk_Ri}ak!YqxLz{LBb;&*`De);qV>wXgCt!*%$Dck*1F7K>wh_&8r4S5_aFGvy{N zb#+{9u3I!NGLugd_lh8neBtxUwr@5rd;ct3hwNRdY+P&(2Ki;<;6HrPxSTm+8jWx-gfJGL2c z&ikZK{g|`}!_Fc$)Q5YVuOq@Dg{60i9B$6&>#o>?!{jqL*ET*qs&kOis)MHtK(K9q zy?E4}_ok7bSre2kHpLy?oqIcW?%Ufw(ABe-^><^R_u0uS;cq>{;n-gXTGjnlXKuEA z<7m+?{Dt_DmXjx3!&Ilun-gvMD*V?h=v=D)pJD@RYbmR?_envW#3xgK*HxXUGu!%k z$cJs+yw|^tz|2_C9OYNa>71lDQ6n$(`Rm?ZFUG7H$0zlezN8!=-H7#2WvpuE_=6+ zH~YBR?&9DlYl8c8y!Tfb2R}m-Z3kuJUQNMJ7ng1|;;_-f>9;Cw9pbLgSC>=#X25t~ zid(v2zit4$0~a^u@OtWS+w3&VH1~(`8>{25bn(sTAB?q$o%GJklA!-tKElrgTsJ8J zw&f=LEYd5Fl;+1Zg~M+Fe8)_=bbSS#R=~TkGdL!9J(cz*z_96Go*Bn(ki21|@Xdf@ z7khr_dYp^|W!VCF?-)+U+Tfj{G%+?V_Xaf0R>Uz&YOWlwt5C+%1K!?7Su)VMe_&7N zKwnq8tXXRD(_aVtl;zFpw~9PZSHG7L#<{!CoL{fSfa3h>)_0pwMviCx$cvN_y6lY2 zX2jK=hq-+=Fx3TnPxcAvZUt_tw?h6fd^Ud6ThFj{sx8C$a26?vIlRz1m$Xn8w$C>F z-_y#@huOHCardKZzlY9zc1$ho*R}fvHV>9v{*N*{Il}O>@uMDg2s0GF>Nr2XYsL9C zkA%L{$J>~%&5QDadF_zAvUU4c%&&{ZQ6~E``gFDT&vsKyw0<#iO*@&tt&huJ>+0!L z*XPONa^}0rFw#a@n!fL=Y1XB0ue$ky^9$r7P7+iOk{0|Uj4gBxr}Oh3l;3^u#h&4v z>OB1YeU8bRx<*G|+Z9~{oqOO2a38!3k{^0)8@c_Y%Mh-n9hp8`mg=~i`B=p`_Wf07 zUSxTSd9g3qA1<%UEAmp_h|Cp1UcAe<7;jK!_`Is+LKx@PaBg4G$pF^J^`qtw+oB-< z$~<1VN_&Lq$O_DZUje=M?iz8*Z$55OJ#bHFTmQbk&Y*ilK9oS8ZB|>JK+f*z+KZhb z>W|W&Ln(f(HCyL6jH=7Sax+t9S(*5OJYaYPzsfa58_MA0d|Oj@nMNFSmj?=VzsQD< zLT`M7)f=gk!6NohPd`kt={u0#n&gN<=Rd~Bh~HDXZfeG&xH*t<^^6;vtQpsUxE=F2 z*t2dBIX^N@6X3n$r8yo8V_3;NdmZYw%FN!--rwPJ5uKB7HzJcyydtcW8X1eZTKiqdBNwK4I$G%-iL%yE?UG^b;Sg~xAl21o@aQ=Y! zI3|p|6pQCtHE40LdRmpkh7&EO5mqnYzFLFnIV7%}N1+7R`pJHq(CIJZx-xEx@(!-H z$12m0s|iYme8@Ua1$AC+YSu;O_-c7lt&?xYo;3O90myTXsqj||_B`b6*5n0n+>EqS zu4z{OGOq4e?gf*#mVlRPkAY%$SN}k2{!FXt+4#%*I9PM@8f zFliBfq4<##%gD67wwps^ljkk8wfFYJmA;!l zMSmdd<0Byuyhl5SzX06tg%?b{4eLc8($}=!HViMQSscA{O1qJQVYzx?-z85~qAdwq z23Ysh0gx(>&t9pt8UX7k9~>Jh>k3o~jj|AbIpSy&rgjDzRxMxCu3#QhFJbU`{~T z-?PEG3t`^3Vt>*PI*KOgHU#j!Vw+wKr^Wg-n4EPvIlvd2DHtGd-OadD5ob9`xJvCd z3g#5R1t83%ZTKt)vujVLKMgRqws&E-u6N*7h(~&#vzocP8=% zZ@L#orEShq7^^S!BX5ci9^JMM>_ZBsMR7yJUZK&d@Qxkr{bIGr^A6JaQ}*d!1U!C~ z`}ACAUWk4A7u)zNA-_5@BME+e?LLa?O@m|MJfXV6;FxY=aLl`XltFC!iGhf~PD0-B zIX(s*2*yIH{}8qUFj)0u^a<6M2C+pr0pr(M@$T&P2F<@~0xd7{OY?&q9NXWEF^31s z_rQA0?Paihkcneg)`(+1&4_CspV+Qs9{)AzN z`@kTqMV&rOSe?SGBBFVtKIZlyZ}_7x9SHV}_h#~*E|a9sceRp!N*|s1I z7Vu@~zrgL)zOpjUiZ-YIz;&F{AGj|N>JNX7u+tyHHQTE#T{)*i-mgKJ?b}roA9GB& ze}TpbX*r$Y4T<`T8W&tYU+Vi`cJxSnBk_sWB=fdNV)RF3E`T1f$}G&%o|0ki*K9Q7 zb7L|tBE!9m?PfeZQ>8xAQ9~c$T)f*1muJUd<8H4`^i3VI_9c<*QFU_;=XMcgte9kw z_cX58;GzlPDg>k~+}|1iPr7@EZqDCt{2c_sZb99zF~d{ygLGz%TQAlUm~mV`Tw5I{ z8&-_xzQr)~1(aNNvYhV1_4FvqTTv#~bKF3pKr!Bpqj1vTKESkr{}tSmRec${31COf zFl4)R6J`5=@E04gndHS2$mGa$pq{X|+kFLW8Wh`1|@X|s? zuP6K};A7sxP;@>pBH`~IINnS9NAwDXW9@+^lb4^xk0ohbO&YYS(@1HP=K!{M2rWK< zjFjOap}v-pAb47I~BKRe+NUZQ@Cv?-UZo zcB+KQyrDqR1@8b}xu-p3D1*E$N5Nczu=1dmjp?9%!%I?F zR@(3Tc;x4=z}a@V6zOOWtbAH9-3YV1@^pm7=>d$d*xLRwypQ0cAE%5kN z>POtuZpZBNcQ*cIkXN^Rj)7iKYj3OLFkVU>8?tX<%CR}>#r>DR2OaKlaUSCT-8}RU z_>AE6(lryE*C&z~vnEkN8`SU$M80GKKj#T1?jp8b0pH z)493r)tKMuBmEM{OkEG-JQN3COj3Hzess1GPGN% zH-!-2WC>Z zk@IUdcpShcFK!CZ%LTOvxq7uA{P;ek2Y=4sKzay1FEPiE@l}uKUTD36Ga)*@hU2K~ zXGOfr+CtZSvU;gn3$Bt`AId_y@vQV>++SUdePm3DhWp{%yL-QFE0(&s_8xM&AHGQ2 zrRR44`hRU4`nfGT7IoQA7KJcN-aKJ0Nr&zD>RF~g|a^g&e zF5hHb!nBYF>Aot%tFR9_Z*}Gm0)Ho#yu9P0x=Liu0Zi^n5h!D}&Ja)c>9oHn>j{J2 zm>$tPnAgqf%=x4x>jUaub>_neL#LAY-RX4^5fo(^>bBceu(&r+RK>#5#UEEBG_j?1)MI`Ikld7k;;b< z);u&`nw@R-joEyf$c>*N9b^LkAN?Hvuk2&?OFdq6`vv0MS6^8&^h@ovOu8&&zK}$E zN05E^DCoI1<~oDnU*Z?GvFqP^!8@(Maee440Xy?W@2m-Hcr$z zDF;?_|4G8?Yhj%kNAoEm&fCOk78nWXTu#^q_=3mo3C?L%-y#h6Iwpq+QF(73LwjL+ zMfN(#H@`->b}#9iLHr}N5riLqBkA2e$U5^|gtepP?n?AKge!T9yu$hA_lR@f8Hcfw3J+YrzM|fh^ zlgXf;W3#ZMg!47W3-xB9V@%!%P~K=Thcod_=CH)GzhmU(&kQxp!O1g3)(?7clmN$l ztDd5D!umP;MAtW*le7I3n*wOFzn;deJIMEMx^B$#mN@xBmA*UN%8Z85*6DH$rd%0l9;>9jEb*ft*OPKZ(--UoIX240x2 zv-x!MKp5xd?Ay@3+>hd2D&3EYS&MPXy@3rVOJz%O59(yV)Aw6k z6N+rc`848q>|pO;MW-T+Casd6Iw!+_DB}6?epEwMZrU$=BbfY7e%)wwE$L?vX1gB% ze=_b2&?252!_*O}o3aniM4aOd+6SH$ghLvwPeNl;kcKoiOW4b4j6Jbms~&U3&i(D3 zy<&`pH>G>}I;6a3+q@|2xsIhcxezqoY{vp&kn9UXM_J2~DEkuxB!w`se! z4LI)WHP!W9WFKZ{cTd|u*WO*l{B}AJusy_^7hR6J5N9$61CRp z9su4=n`yQ43+sYC&6!O>7`!#JIS4l)yd?;)Lin5@yc*$iZTNiDZ5^x?rb^8=TI1a zr|B$(;ddduyBEar-D5goec|^_KEU#{`|{jtIy1b)H20xQVVe7yreD)sfOh#L_yPxR zVqT-CAhR;>9FMdY20Zb}T(KSY;JApOYvN|avwwTR?_bLByF20Xe9Lmga=I};D_and zHEtZ#n}N~+yD#Bj;Bmg86TESwW2Q;rstLl+hr>tTV}B$(>r{O30N^RQ z!vOxzHfNX|u@B)zcr7g(`{WAXX&>kw2gA(6={8p)%%7W6**jMu?AA7nb7k;2b>Q0%!BZKCh1dl*cy0Uzmp{KgLg-q{$o<|F&1ib%D%iCY<+S@fie$%q{7dzVqTDxu8 zalf+I-?eM+9vjA~ZE;uUK)1t(3}d*@g%gBj$XWb6!n}h>+6DZdv|PBJamdSsmmmyU zosQO0#={1KX_xW;#jZWQ-CgY{?IXvbjT&tIhEN}@u;dMcBUJP@nREFxm%EF|lBg6NInA*<}g33}qU1m2s5AeXGsR>79~_){!$~({uoZ z{>2!O^=q3TF36an444ekLdQ@E5a4eY{1NEzI{v2v{Md--N1Li&9=<`&^7%H#`Wg6P zJaPQ^!TU23@5ZyfS02VQJ=ZU!n*%R#d{B-s%&&5M)RyzL+k~>_2BGi!nte>Y^3QC! z4&yH+^NkX&JC=MvIRgF@nOH5;d>fMfO-NTMXO3oQ<6T;W*}m1Zw0%kE<{ETvsi5;0 z64t(89^~7wEngJGGi_!3OC-MT*t0ROv5tB^;QSou-W|(wEAUt+H@9hD__>T>+_xzY zP3xUohOrlimx=6LhjKMwtl$7}b{6^upWsA%!5%0z`VXS+${&nV6zzN%n_wn3$1#y{Prb7lx@jF}z*ou39`_?7y-f z_Xr2N_Hb@+cf4qyfm;J2_b4C#8TpA0JvodG-o04gDQ~?QaM(M;%$IQJyB5y$11UU9 zXFv2}xFb9;I+vw$M+(o49JPhj7?@qlITN zv}VyI(NrSj& zncDEv%ye;Rwn(L}4BKUG7vP@`INGT=hbmg`}qtrSu@R)A+W$^-=umN%Qfp*_bG(D!Mfi9% z{BFX@y+pV9aF61xf*ww8Z zBOIs9hwVjusJ5P_ZOifWA<*L(q|QpY>Gs_J%fkQMjx(0i1m$7>oXA*>ultIWp7aHvYpX-!_exvN3#NkY8Ai?YKvP z?%L#uXc3yUnyDaIp6Q)(zS!;V55}*9h-T;jE>3gtD~>?er1Exo-fn zjW?ZZ$yV|J+m$@96+FOx{wCJisy8`5A9|*-5^>GIW1N1J{i>6H9QpC*^|GA#1j0_Y za`EIhk5gwpB{(_pH&%=8XAsYyPm?nbAbgu0%N*Z0v6!9<&LiRXXb7S`9e3C_8!QFq zm)P48h28NK=I9anLUiF(NRML?Jk+f;*gm-9jWF&I1mk&~Db7tykHCDoENf2A{hveG z+}CW1V^gF8o^kEK@~RIDtrKZe$NU1)y%2Tco&ZkB2a0>CRdvfALBw!xXJ0!mW04kd zuzxXt-AOpa)G+oh28vg7bqwq_5)b`xpxDuq;$!~;G;pBN)h{%$e=&ef3-P05_b>*E z16TG^FXbKt>%y{q3FYGU4B@X%%h$fU*fX#jPPgpd3c^+811!iNo}qUaL8#A`7yF&N zi&u5__1JL2a7WiJ?t!p8d4_}f;RXWI`|{Q^Y|Fa_<>lTj%ljb8+rGQ4PomIPp)PVI z_1R@V*5+mnZ3v zPslIKlWE8&-w_s%Pm-mF%?>-pC>tPw^i~G)VtT@I*wbAYo0y-lQG_!e_y~|U?pZFLlar%=$a2{a z<56ZRu7c^G%B^czXJ1$No3vqFtGRI9vFsl$llQNt?K3qyGU{wybl*8PfN^l!a=_UjlJ4@<>Sd$k07ne z)w*LJ4eH=zsN)OY208N>@W{g~x74{w^%~a(M{(vBrsw{S=TW?!E9rHgqY#|G{@#|w zwf!F~9_2If9+&uB(-Rg?Xo5E5{$1t=_+d=rbPixzmp|)5pPJD#Sm#_*PX7A-4e7)- zuC`4@aesU7K(S3d*vWX#1K;(3?L9G_?hPuJVLYWEjr*kM^g$UL|-Ewf+S zb8jr{j|h7Wl#6ceFco?a+X4HegQ?nM`A~UoY&M9IaYZ=xj|Ru7_F3Epl%ol-d6;E^ z+XQbpU|1Ins-mD{awFuyGa|q++0i`$+lFiR6~J|0bFOyVxUtSY#A}Y&-onLQ$YxhB z%qL?92(o2*Ir_d{@Vvda8|zI$ewb@B{g0fV$nVeIQsQ{3CVt2lg!&pZX?9S6miMzjxL&W0j|9~C&36trouG+4h|OwnEx!E81# zIx}@hd79;UG3f84iAERN1;#dfqkyvKnMk)X7$>))d|vjbz4tQ2ds!ZtRW?jGzmuUK zP!=`g|4tsdJyY@v?Zx?*dP`P!Nz7`Y<>!?Ia*VV%=aE(~!aTcHeRTZ#y*zip`hwxe zj9-sC$Y?THBZ037%K@fu-3(*j)}QmOLq1-kpgy4EpLcI?x+8Nd+x;29iw!1V$OE=d z4zVZLdJ?lfpu%#Vh&YzB8Rc|36Wg0S!@q70rEU93z~vmYUj8n2raD78gTXy3ZMwnI zzXS6Aw5)v3$RoCIY$WX*?{&GdpMv!6tJnCH_Wj^>mK{l@&E1&Z$ z3=@}W71z)4JiBMyS+>4TKR6R%{yb0ROlu~rwvF`Lr2US&SMA02-Iw+c_%mOHUEViP z?C$C3AuBwnIUdlsp1!_)n6jbmw_ob`qmK8R+Kc<(6s(IW>GNw}f2XWPpmQ>=tGl~% z7nVHWk%IVb;@H}P@=0tb%|tK(4Z>Xpc#iek%6g)$$PZ@&&$X$v3&O4qoxZRjZRmBC zo#+S0C)8%olQg*|;%i#PWjQVYjJW(u+zav7-49_re{w#J^2nG&nE3oZyfm4M1i$9K zC;W$_@*Ud0+kwY=;FJC)Kf5sZUHE_QyRgpf7Wa=9*X_aHWW(H-acPM^ZE2y|QrnGp z0|%$fH*~{S>pZt*>^wpEcKUncZ6kQ;;27P7{EiCDzY*!?{N0Fi-|f7^g*w4qBFx45 z%|&+naL)*9jx;OMBn*4^E*qIo2*chzCB8UZ;+WzZ;F2JZyv>8{c8aCXwt|QKRBvLR z#PGOZ9Mb(F>O(oex&u0pD@5S_3>GC5c!XdK-W@o$R0eZi^5Z2kdy$r5!ue4Kli%J8 zTTSvzx*oKAK)vKLn?~0$vFStD;Zar*rxxCTr1R%Y6}iQ4cI>$?eCmCP!abq)-BkdAMJ0$ zu5bAuWA}3JhJ46$@L8tm95>prz;vs9I=p3mI8ApF%CU~+aE^xE_NGnC_zgjP8_u-I z*s=u*9F8CEwH!cw-3LF%^gjb3DZ*7`9s7>_<>n%lE3-F9L4tC!O|*LI_mBL3T|nFV z)q(i!9BA9Im~X)B_$7aj+x#gF$I$a_o^rgP)6I$gcF8RXKvsOlcX55w=VVfMrCAWK62rT&Xs=ySzcsNVJ* z_agMB!u045_VyyLUxGYwCrtJ-oqqK-*ekj()D3B`=J*Pde(Demq@Avgp$M757o7zt za^z*8&DLcaG&jD>=1cOD9Cf+8*lye^`4_v}`gZZWd!Ta{c0R#>(hf)wL&kDXgkyv4 z;^y4*b75KJny=)^wvNpJ)^QzJz2H25LeD%n@6}^ZE%4-;&WCvaDD>i*(rGZe#-|2L z<1&8q@@^W}6vpw=os|>JANSO=_uj4iVyUL!(cHBm>}v6X^~A&&9J!R?)d~tbRygHZ zF04a(>ry;#A38=??$Vf*k~>vo0*$0 zjqfQ>OwAmwN&gIYXCLo4Osh~y+oRRRwT+B$v3odpW0-Bf)db#cZCeq3j@)3Q$kH`B z%eqbODFr?O(C-(*-Wm%>5N@BEx_&Ixr7m1WU8=uR-};=dBD@p{EW5tCC$|qzAz&WcdSzp-`DGG zJm%7I_YSGcr`f<+AuR}@k%jF@x*OmV3|=>fiz9HV67bGO2bb+TH#fjGDri6KlU%Z= zx42{9PV-A=r$U;zYdKv+LFM{I&@VCJZn+P*?lr<+Q$Q24r>33t+cR<~-AgFqtdT32 zlqZpg+h>qNDYtK;{o>C$wxskC=Zirlo}z(iK{*;=L(|^VONFJo(|Rm+<#^ndBfAEGxx&G)jdfR%`#x%W5}DTq^fP_f z*SQORk^9u3>Cs1?o2lRMA?$*t?F@gpQzIj=MV;d|6tCF$`ckKnEvtZ^;OhnWvK!P( z;}i0M>M)UcT~HqEV{*?+l)tMo`Il#CiE%K<2mCXWwqB4I+I9%{v++uqKl>n0(XPsl zIO~@?GIwV4Za**6?Ll)q;^({%+je*TP^<`lwIa-Qh|ZC!E4;rVeyggd_s7vUNeM!X9pR*wwMF zMNuZ|eg9(HLS^Sslqmdc+Kx8p>*-7;depxm9rdWAX!{X+X27`^w~0#!@IVXOp&22b zK|)``mE!BmmHzJ;k9#N7n`*|heR!^ML%C<9a;(CJU*Pn;Oh3wau?EUoDQJI#PLBhbq>m&HW+zM@?mE$ z_cp+*(|FlOFb&&qqqbR(xNm^4?mrBVcoWWntCpX5r)k?gCEgiIPYUO#xV+9%8a3lu zH65Rt%#^^T-K=SA#ZcetZX6rhs1`}<-6O`hgLsyysb6$5CuZnfb zQ@y@y(=Mr_3;SMI?rEDW)dluLr!K)Oi(5mxG}qWWqCF#h2TN^uJscFAe(^4huWRMb z9IonvgP>32y`<#W6H&)^2lC({v-tRa(lPBGbg<%pvf#Z|7Svw17a>Ilx^`fE5cho+ z_rq3(vh6wcheqK%z>Xopa%mmyI0){@)>>nc2jJIBr{968ezD(FjXZ7722WF>U7ImK z$XDry9=YaQ8n@5Ir987zZd8ZNp?V|t2mU>1SDa0%+}zm(oyN<|tUlH0^r`MpN7i`* zV;dYu--3?62(LGGl_3#&w~qTM{}JR}OP}IdkK-F-dPfh>j$vV*ov+w-c;#8wU~C5T z1MN<7fPN74v5%kHj;yfjkWX3VU0UBYv0%+%?3x)Wf#ai*WP_4*m4K* z7xS9yLl>3y-|8T)j1{X)t^r@H^YL^=p~|w2XCF7G{SR*wX>ulo=HwQY-L%gjYC=Lxbb?jR>9hpexh7G##sXhG*as$?_X%)eBB(X4Ia8 z6SfpEo;17jPL318u?C~bX%&10;O?$I@tPP8@?DAW(5$zmAP&}LMO^q!%XXaL`0#3k z$45#mZHlu7u&IMEjj-kaZ?x|^z@T!Z^VJ68lqYZ~;@jpF3!^a!>+*4=gWn#e+w5p@ zuk1p=kmqC>=h@^b?vH&U=tHchRfcu+^g9uz`uI^`hTkH5TeOQxl%Kr#DbObWzQ@X< zPfK1Y@5yEh%d0#oGi<60sq7P2_ZW7oTs;VH;5@EM&cN89wjbe5(2uYf&&ZV~<1`p; zFXF8-Z8L*oFdvvX4Bz`R>DrBDc|Xbszm8>i?Uc0~_ftO;v=Q{_bY2VBHmMw~A@fux z)jN=st)C6(VXbQ0JgYN5>0Def$7J_Nv7*K574{Co3!g_`xcdmb(avm^x2VUjHWjlT z;>Z`AU%n8O@wcvw!MbP>nN-C;6{JU#_Oq|p)> zk$kCp-ShC?s4%y0{@tKl;H7lFcIQgE2M+(i*q?A?=zEf8?hq$j>OyYLe;9D=bBMon zqB}bb)`4{Rm;I(R;cE!^Ar8yvaQJ`L^GCp8JyZKg^pU$)p!FQGZv;47({ZOOr~A=7 zzo4HZ?95z0H>G=(gu#|`dSDDrkgY5vJ-&6eKM1cvnD1e+4H>_h@mAMyuyw?#fHf0O zc5k^j@au{V#H|6}2slRBc-tIoU*X#%oAfo)af~|u5$sxs&TEX9LQlHjZc5F5a9z?%wU)o0C zoOKfK2BcdsZ1-P-MhEV%&mEKmyPba+!te9&ZfDE*TjECtW~NzZncZ~Xns&y&L!A5W zYeQW%FSH%raYx*fwxP6(+6O&uad+A|RqHehu zAJQND+(9Wu$`gdg9-i_9;q?NytNdU*!ma@=IGyS%1>}Wy*DPmv-l-4jfcu~6m^v=g z&g20)#a0`D2>C7z(#ab*Qe+)pl;gjY_EaBU&Zdkoj(NtDFF2Vk2OW>^&ePSNhWLzg za-j*hZccEt80T>?msxsFw$O)~%bzf|ndFcEGyh{PzP7z9uRF7bO*#g8h)>@(GnsQU zytfG_^`XuTyCrMmIW^NZgIx&jsZwdO{XTJWn58~^KDKVG0Aih^d;vf>`e0Z z1Y9iRF&SB;I%Ux7o}9DnEsI6*m=EVMT4En8r^S@hO^$EIb6!*Hxt@^}BUlr2o=f54 zLfy}SobUWj^e(76^Ek4{F=sFjH3#jZ%RWudc3B_9_2F$faSnpE;FzPYlQrls_uJ(;DwE+wyCZ zQ2^Up~>o{q>bh}_;9ZSv=IZ2slGiuhhT5EvJeK@7%6xi$ zOER3FPi{;8F?mn2DS1OZ>d}lz1k7R$*P;^5}xXKztHP{E7T==2`LW$%XN%WTN3sOHPO` zPA-nVY;wu@h4bTmjUQTmM|9efB>LWpWy!UL=f(-zZZO)EEQ^jLNpxEL{>Im@Se4|W zZ?9OJOc$<kGHVE0UGb1Iz!uupHcT zQM{?~%gF}{FHgRbU!J_F@a^RK!i$onX2r4>Eq{?Y3qA38^4%5pMgN@K3A^1d=I@U- z*4-9=%xsNMZTx(4PvPd|bNQ|LQi3x$%qnriC-OI&!T5`fQ!9GRM{ybV4z%p=z>yax zuZ+*kACn}>!-dO}*TfGszB2hkp)2`dd`#h$(c|%_;{N0nagUV!v-y|B?}>k6TJqz` zALEVr2jh<=FOQcLuFd}%G(H>O8=nunhmt4aTjHD0f9J(t%)iWhwee^)ZBEYrI3COw z^Ay7xuNb!H*|(ZYxs%zvY>qw!PA4}$8Ih5O@^<5LS;3#;NS`ToLn@pR#5=3xBX z!o~6P3;ASg{`A7*br+i6czwPD{rbkjpxGLo6z?rOZU%F2ExaSyn!BhF=l*QP+7*}O z&P!gqbRc(ea&z+YWRv;w@+Zuiq`Q8jxiNoi;SYt4`7afk;)VG8h2i}Dg$t6_+iF}FC54{ShzTUR$){AGlfqq`DpU|`0U(l;fUE}{@56U z{=4gz<({21B`-kFKe%jc`J3XF=p1t~YIh`I`cv}{7M_i?7w4WR+>~s~wHL~;xNpsU z8<0~98$iFl@Wo_%<7%@t_gBe}lPK8?kKey)+!Q}lSRW^a!||sIo6*YW<}WR*&%eEJ zePJwrT%p-K8};~k;juzn{yTA3;YazN!VpT|QkXO?OWxNwUH|sn7IQ=LPw~r=i*x6r zZf`4mu<(=kFAHBRoE%?Xcw; zfkW?bKzcuP9;Hb~KoF2>p-Pc1U6dkSx*{D>ihxK*K#HKCpfnW(LFN8)(D!-Xb>9#7 zR%J`l6Fo$so(QIvpz7V zsuJc=)k$ULu60IzY@Jp@9@mcPg~Mi6YW-*bh_%_Qr~cr6w%j~u9np_i>&#XvwYAp# zR$Vst$#?u7*3Z%B)?elfbw%3hg!zW{yqc)Ka=z4`vW{Dun4jHTubwtfTBm}uRsl6h z-F3gwhq>pin{uoAkzC~nDV6At(({uB{pFdkhL~iHvnN=yZJzV9OR7Y*P(2k+w-(E! zXuS8k-9uX>TbLuQ;nn~(O|?uMf|g&C+>eV#7tC&|m-MaLMp-kTHd8M58jJE;L|#5Y z9#MfjBWrn;)E3#rZez6K{&q@va`SAMS?a!7Sk%qgPtzBYlmcMEtI8Y6UXHpkFSyb&5Yt&J*Lx$ z&RQ8cMC(t83i5R=txUuDbU@D{Uerp+0a|;xgi28lt*|UY{Ca9RWO?m#nOEhJFNiK; zl$%EMR)5JpT2@(KrV~$y0xFHn!qN59vx;t7N!d?(Uyd_}$b9mlxURW!xy))@GcP%b z=55aUC*>3719PSvDLbo+GN1a5V=Z7-l;^_>qNRB}_)zVXdCcXqVRciEP{+k4EwlC^_ns4?o&L3Grk@tMg6-A^YK!)zbxj)~Hfr1C2>G#g zQ)?u9n`zDW)t|D5Xs6v04Z}C(R>z2j7#s8nvaj)mcufp2&idWVTiiFE4>m<2{9Ses z8^am)N@JCl-h9<)9SrAOZK2hVUe(5ji|x(kS*xCXOe-H=x9S*ef~nSXelJzpz7S-W zkIWu^RmyGo^-SV@x0)=(6;hG&{3~~(d)P_u*Eds(>{eqjTjeq9%cim-;a0gVWl=q& z$WFLaqL+N$9_Uq(wZp|~j5bF86z2A8$#Pl)`HQG0m-;!qQBjgvz-=y<>1)Jjm8hHI zkjSn&h>=b!Swv6dUQ|)c)RnYk5B+(u*7amNJ&6+FDU~2hW4>M2J7x^AhS`<<^}%X6 zPtTLM@K@6~XOYU_mNP1l#5^tx>6qzYwWbDUY$ z+9%SOK6m@hW>@a!mCg3r8L`UjV16oBSbvH_>VoiOwrE+@%ipH82oK8B>X3KFdb*ip zH}i;m->s_Vh9~59eXTev`{^UxkL}B0g1qMqH_Mm{wQqP-bc^^#-q25o_U;&YNk5ew z?^S*~V|SF+nj-UA1O2}C71oWYe3os+x-g4);Ps~z&|Y12Cd%)EDXOko z!sCqP%z<7#Ew>1DN^e?O;p(?lcfE_%NmpW!X6hd}ZM70Yktd&0m8=u?da*rh=4bHh zaO{JOX?h(kuXsZD>_JN&A4MN(LdHJsTE;g ze-}A#PG_&SM$FTXsTYh{+UqQxYS!d_)lH4n+Zbi62UrT<~ z>)ClbSlsGXPnHwSNWU-m)}yCzt=Vd^%%SRAn?*ybyDDu}7da@)bXVD}y!z{AW4*fd zBxR0+R#~a6-YPpakpWVc;9imM8iaN;u6|5^(O})I#Z*3Q^(|Vs*OJfyMsjQa9 zJtMLXsRzb0Rz|B7^|edfuWnm6^ir~l^}8;u4~@3gIX#2*kr-^Xvz`)NwY}Cu{Y(9! zXkb(_YKwN%N(Rfw`cWK_gDG#>)P06qPs!}6s?}Va7Fkq!`IpE_S!XaMvCyg^-k>~| zp!!;OkS7NA!5n%P?O%m#W>2&p$P?OR?YfoD&98Q9PspahXZ9Gsy0t)07v=Dq zSxam?S`^%H-=su5OM5>Wr~htF(>mJ|^&jL(%ESAWqxDrsD|lp5cWlHsMlT_qxVB>R^Br`O2aEk5@TL?ffcVQqVe`Jq|J z&grMJ2O8=9E^ZhMQo*N2Hl;ZI_`$YC55iK39mX(WhB);;l|en6D-i>Y5kId`}J zemF;zvQMd(jRbq0-<_+pr#H<1QC^5PMFsT}ehKR@dxYxbby4&5JYJ)yi#^aPq1Cdb z8mSsv>+QGvZ$nGl;~rI4-5a5%O?Cft2N_$n4#p7eTv*;*CQj^wDOjlKwdVQaD%j2~Vk|c3RO}D;731yNj828gqa(&Hpvr6~y<}jFx9k zv)gl5_)Be7ZBcc%M`d)%E7Yz;2C$HP(P@1l)()pU(doCbDew4$E6+G-wDj8X;X zR1Tx5|BBJlI8B+Vc2HE^4xTZJQtEGKls0xt-)Qcv)zgc6p%qN9KJj|mX@Wt~evOt0 zZLXQxnq&6jE1#L(3h$7dp>#RP}e9v>vxz&Bwek+<}>teT=YkcOHgUw<0@KLaz(&K*4 zscrs~q;Jb;nA66(FRN?4)wkMdwOV#E+ehcsM0q|q7yJ}m&}(b8<@RW^-cas{KGKU= zz4d|GTD`EgUhiy8(C0Z*f^|`#CtCIOhgMbnrdXo?Xbsc1Y9sW*`ZnG0hXq@_O|<N907tB5@5y=WIv$K{9egQ$U) z+p8QV`1Q4(9K&?|nEh^;&X^$^go(B*&)e<2q52)KMOeviE<1T=lFB2RvH6!*RCkR&PqoU33Pwr$g7J;MB@q5tw;r{;7&8QGQXTCx? zv!r*J~NI^bU&&<`d>7L-UH5 zcW4_c9hy-uO2b>Nn&t)3FRW^>Fw4ob(cqwAxXC;tG8wN0PlUy28}rSssz5kVCb$*l zN>7Ul_#zr2l~>Vx*1SwfqPi+3T4`Za+*q#NbGimSqg2tWqF(Ss^qm^!MCM_U+RYkm zkxxepj9t-+U{=^jol+;r^>&3fqP=#awC!77M_Nbz492U_zvTZGY0-}0t&RT9F5)3sZOhRLvD#yp4v8w)(xzgVEMtLO9h5WLED7{Xwuh zJR7x(UNFCR+j`GOiRMOQgm*ODW~L{fct@@aZx{urNfr|&`M_>#yon`~v2Q=vq`%jdnVjJM7waHn*Hp)+nUc zvlCP`Ck&J9mFh07p>vGkYGz#W_1pTN=&kJ%ZYF1y7~-6u^j?K+Uvr6}lCWG&o^|%>FPN?LRCXyf+?i<=@zW8b%uYAAytBjHNe!g0bH`a|<==yX=UIwP#rVW%LQsuSD`YXt+;@?emv zHJJ)VZgDrHAfCEm4Cn@6GqHNh#ORyfBQo8g==SBlrP%MSN%|64B) z{hgMYv+Qf(7H3D;*4g1!aTbQZI%S;);$!tlOKlF;?zx+to6a^`nS1Gmnrd(G7rA?! zQldgQP;57un^)BKXoOWUcU5A=(uQmp^9^)UEBjdVZo2Z$P`o*irG(1@=qIigU(`I^dKl87WuhEUKv=Os58A3 z&JMP@-R+sqiLjJ+%x)K*uzMKaxm%1x^^Bb}Snm$9uen1=;pVpHG_p%-(`@C;RHuaQ z9P}RA%e=^$A1;c%_dhf4d8wTS)-;vg$!Vr@n%bG1uG$Jat8>SkXlHiHX(jFU+G$6~ zrsfQDj@^cLdkuH0nmPQfs*BOoY8+mVo^ob{o1AO*0lu*+r%%_^b1xxGu>0x3FmWaAF0)dpt3ey zpJp%BedB@it3A|d>c8nM<+yu_m&JV1U2kMfbh6qr)N{rd^HryVHQ#2(oH+_GL-b5YpcqmxDQ z-&Ka`vhjXpzLYmA3-N8-d9j@ki|FWhd6*FE(ovwBFT?|e?RE;W^9lMMUKC;BDaBHT7k`i<1MghP zMSXWYLnE6emhe4(s>+&}K%bg)?KF{%@A1bdX#)s{C)kl;<||~W3iFkr!DS}YH*bfWzK*8#XnY;+%Yrx`Gk0zkNc%-spQ|| z|MPlPI&|Q%PhK>byq-?j0&Mo5_rb*d(&BzNF^y$(BoP1Zk3%6fdHUady~#A_=k&NA zQ5-g2KMr4nVch;@GcWEJ8pki*PY%My&zr^led4hH$tBEx-=8JC+zemf3Md&c`J{f?}*<|_Rss;(lH+Q zX^NliQN&&s&646{NT0l3d<_57=TWcIz)pSY_v-jcavyG<4@i}P@Q>rArONpCy76{s z$p5d;D&E&WpIdSq*l!#rUN??UJRYwbr`BL6qDD{(oQZao@9ey?^2v$2krc?GkxQJy|HWtOb;M^;d?fK75l{I` zNr99U_`fOzZW0@A?X))VtPA)4cY4IvG396aB;9#kh@}2J8*@Mt`UuPChf2@83HzUV=+KTgY$mX6I@rTt2pOkY%k{mMUJam=M#L-bT({kZ|=FznzAk5_Ag^D<2#ARHr9`aAFmvHT+YXvzG_EH{|WfSt^1$M!Q5 z<}~BA2p{i%H{%AweuN*$@_0Iq>wLuHvsm{C%Wfl{zK=M)HZe@cvN&w4AM@gLs7$yx zt*$d2$1hHYIL`4tedde5!(C=P-gdn1ea6!fhd8eB^iIs@Tu5TxLBhw&D=?hQFg}JJ zgp1Sf9A3pr=Ew1m_aA>Q^ATSgO$l3#u>+rACqBhz*oEELgT441`>-De@C6RyOB}*s9Klf>!*QIzNqmJjvKg%Teyv%@e6*%9o)rlxQF}r9S`sjf8bC2 zg+~yiyMzWhwFm zfQqPuL{vrV1@H_C zq7Vur0Yy+0#ZVk2P!gq38f8!xB8+A|@^-v!T z&=7Hc+X#)(1aUsx49(F3E%7frhv(4>tR8GXR;2T`TC47tTa2Z$dJ$}GdT*Hs}3DcmeIv0Ugl^ozVqd(G4%6 zJ9?leUP3SQ#>?n~zUYTn&>sUZ5Q8unL+~nI!|QkhLop1)F#;no3U6XG#$YVQ;Vq2E z1Wd#vOvV&U#oL&M>6n3;n1$JxgLg0&@8UgB4F9iI28#KDq89COo8?qw@av~RUBMY+Xw zpdpgb2#wJMR5|GPN8X1PXbFDfjUJPnS7?RSXoL9ul%fn+a4sT&R zCSW2aVKSy*D&EF4OvenOCl9K3_Mco*+s9_C{K7UF#@!eT7JQY^!AtiT6YiB(vQ zHCT&vSdS0!5jNmsY{VvP#ujYFHf+ZZe1e_$6rW)ic4H6r;&bf7ejLCTIEXKC2#0Y5 zM{x|taRMjt6;9za&fsgD#W|eE1$={xxP))<9WLVvzQ+%^ifi~0KjAuV;3jV2Hh#u0 z_!W0>7r)^i?&Ehnz(f3jKk*kHK}h~VgAM~G6fD?q;KD;(rwb4wLMo(28l*)!#4oi^ zk0+4EG_oKovLQQiASZGmH}W7a@*zJ8;29J|ArwXeil8Wpp*TvQB={;* zltvkpMLCp51yn>OB%(5^;8|2fHN*|IHBb|^P#bkn7xhpd4bTutXoSXSf~IJO=4gSI z_!pkT^Wb;jMQgM{TeQOqXpau)h)(E?F6fGGcoE&v13mE)dLgd=zKlNTi+*?o{V@Oo zF$jY(1h3*XypA_86vHqaBQO%9@FqrM48~#{-okiHz(h>KWK6+Syp3s?jv1JVS(uGE zcn5RwF5bgD%*O&O#QRu;#aM!+Scc_Tfe)|}tFRhtuommE9v|W(Y{19Zh)vjxE!c`} z*p40e1UvC5KEp2T#vbg&=h%n+IDjv35MSaD4&w-p;uwzO1Ww{BoWg0G!Phv8b2yI+ z_y!ko3E$#7T*eiAj~{Rq*YG2L!gbuhP29q5{ET1lEAHSfe#1T7$M1N6hxh}3;x9ac z(767gK}XysV?x0~+(zQSg$Ex2LPSV~)JTK0h}($bmzJc*lZe}*G9nY6LS{UTEXay% z$c`MyiCoByJjjcD$d3Ye263BCArwXeil8Wpp*Z3;w~{D@(kO$nD2MW>fQqPuL{vr< zJd3KRhU%z+ny7`^sDrwwhx%xMhDbsqG)5CNMKd%<3$(<)@Eo2;E3`%%v_(6-fcEHs zj_8EW=z^~3h8NKtJ6n3;n1$JxgLg0&@8Uho!+b2jLcEVfSd1lD zie*@i75D%vu?nlP25Yen>+vBz!UlYdjo5_E*n+LthV9saPp}i8;xp{RZtTHce2#tC zj|2Du2k|8i;V_QiD30McPT(ZI!YQ1_8GMbiIEVANfNyXSm+&pV!)08-_xJ% zCtSx3+{7*1#?SZ#zv2$=;y2vGef*9Gc!)pnC;q}C2%YO68gv+_YH}T*I%=RMYN0mj zAmuM51yWMr|2zfibImkBLnNUQ8lwqP{!&sPB?VGaASDG-QXnM-Qc@r#1yWKVB?VGa vASDG-QXnM-Qc@r#1yWKVB?VGaASDG-QXnM-Qc@r#1yWKVB?bQ9N`e0cX8Kgb diff --git a/MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/bin/Scintilla.dll b/MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/bin/Scintilla.dll deleted file mode 100644 index 97a60ede234229f7da4984efa78121b90a49225b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 279552 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�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 z%0A_Qa!C19If@Zoshq;7K8rc#f^u28hVdPxMys)))y>sbYFkk3j%pXRo64#JC|JCj zq$Y!cr>Pn05YT|pY7XdGfm#HLJ{c>|614n0(6(jj3U!sbR$Z^=X$7FWg4gADx z(DcW(g$7UYpKzo>?W{4HAQ5mzVZMvixsWtxhI5E>1n5N$=7s`ik<;&-eA8H4=3L=i zg?VE=)=!(AZ#lO)D?nNHIS+ut`qX(8JXWRi)b;Ur*?G;$xT16pMs_6=&8ZIYkw@7e zdx71InWO@9$pO%vG|c*wZL@9j^!3VG+h*HaHlha6S}XKAL6fy)J?F<=l`eYo62E7G z=or=vz9*R-!sfA)*?DYR&cZPk{N@POvQca_8>_n$U(|&a!1E1ZN3f&W9QZC^i@*U+ zW~Z?wSa;6@ce0ROjP>_2b_KhNU5oi(BfA-E-)(FKyPMs|9>Ch`I9rJsQRb4leq08( z(7M>V!n(@3*1F!h(Yo2X4P46s>!;S^)>EJ}7p&K;QG6`loNo(0rW-F{9iPPa<1PQ? zUOrEJTwEwF7MF_4#1-NyaV_}HjpAnUEv!N-z|rj!4~U1vO7WC&l>o%2L7ypKWpI68u+sY{;Yxj|JA_%1J~MzBLDyZ diff --git a/MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/bin/Scintilla.exp b/MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/bin/Scintilla.exp deleted file mode 100644 index 7b464bf48f40cc66fe79ef7580c7549f36fce1e4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 644 zcmah`O;5r=5FJ3Q8V*FfsR;)Tn3xTC@LaGM38j#>985?yrLAO>(l({2@#0VNANa$( z;LJjcA2CikuW#PI-PsSlP=uNVyVWnDG2W|J0)8YOu5tz2msEsQojz}ABV&Iz_rgg0dQQGQ+;|7%2TUjyf25%Yg6{o#0I+Fa{d hH)elqkIbDP7ceHe&VO0pb=Oup?7N9E;9AG-z$bIWc>n+a diff --git a/MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/bin/Scintilla.lib b/MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/bin/Scintilla.lib deleted file mode 100644 index 963c00089ca29b7bd9015ae06c530a4cf496566d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1826 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%0D2*Cuju<2&6$3F6<1huYum@*w3DX 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

;_NJMWB$ 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 UI9vmVYv6DV9Ik=?H)`Pj08>kJrvLx| diff --git a/MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/doc/Design.html b/MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/doc/Design.html deleted file mode 100644 index d426cb36..00000000 --- a/MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/doc/Design.html +++ /dev/null @@ -1,249 +0,0 @@ - - - - - - - - - Scintilla and SciTE - - - - - - - - -
- Scintilla icon - - Scintilla - Component Design -
-

- Top level structure -

-

- Scintilla consists of three major layers of C++ code -

-
    -
  • - Portability Library -
  • -
  • - Core Code -
  • -
  • - Platform Events and API -
  • -
-

- The primary purpose of this structure is to separate the platform dependent code from the - platform independent core code. This makes it easier to port Scintilla to a new platform and - ensures that most readers of the code do not have to deal with platform details. To minimise - portability problems and avoid code bloat, a conservative subset of C++ is used in Scintilla - with no exception handling, run time type information or use of the standard C++ - library and with limited use of templates. -

-

- The currently supported platforms, Windows, GTK+/Linux and wxWindows are fairly similar in - many ways. - Each has windows, menus and bitmaps. These features generally work in similar ways so each - has a way to move a window or draw a red line. Sometimes one platform requires a sequence of - calls rather than a single call. At other times, the differences are more profound. Reading - the Windows clipboard occurs synchronously but reading the GTK+ clipboard requires a request - call that will be asynchronously answered with a message containing the clipboard data. - The wxWindows platform is available from the wxWindows site -

-
-

- Portability Library -

-

- This is a fairly small and thin layer over the platform's native capabilities. -

-

- The portability library is defined in Platform.h and is implemented once for each platform. - PlatWin.cxx defines the Windows variants of the methods and PlatGTK.cxx the GTK+ variants. -

-

- Several of the classes here hold platform specific object identifiers and act as proxies to - these platform objects. Most client code can thus manipulate the platform objects without - caring which is the current platform. Sometimes client code needs access to the underlying - object identifiers and this is provided by the GetID method. The underlying types of the - platform specific identifiers are typedefed to common names to allow them to be transferred - around in client code where needed. -

-

- Point, PRectangle -

-

- These are simple classes provided to hold the commonly used geometric primitives. A - PRectangle follows the Mac / Windows convention of not including its bottom and right sides - instead of including all its sides as is normal in GTK+. It is not called Rectangle as this may be - the name of a macro on Windows. -

-

- Colour, ColourPair, Palette -

-

- Colour holds a platform specific colour identifier - COLORREF for Windows and GdkColor for - GTK+. The red, green and blue components that make up the colour are limited to the 8 bits of - precision available on Windows. ColourPairs are used because not all possible colours are - always available. Using an 8 bit colour mode, which is a common setting for both Windows and - GTK+, only 256 colours are possible on the display. Thus when an application asks for a dull - red, say #400000, it may only be allocated an already available colour such as #800000 or - #330000. With 16 or 2 colour modes even less choice is available and the application will - have to use the limited set of already available colours. -

- A Palette object holds a set of colour pairs and can make the appropriate calls to ask to - allocate these colours and to see what the platform has decided will be allowed. -

- Font -

-

- Font holds a platform specific font identifier - HFONT for Windows, GdkFont* for GTK+. It - does not own the identifier and so will not delete the platform font object in its - destructor. Client code should call Destroy at appropriate times. -

-

- Surface -

-

- Surface is an abstraction over each platform's concept of somewhere that graphical drawing - operations can be done. It may wrap an already created drawing place such as a window or be - used to create a bitmap that can be drawn into and later copied onto another surface. On - Windows it wraps a HDC and possibly a HBITMAP. On GTK+ it wraps a GdkDrawable* and possibly a - GdkPixmap*. Other platform specific objects are created (and correctly destroyed) whenever - required to perform drawing actions. -

-

- Drawing operations provided include drawing filled and unfilled polygons, lines, rectangles, - ellipses and text. The height and width of text as well as other details can be measured. - Operations can be clipped to a rectangle. Most of the calls are stateless with all parameters - being passed at each call. The exception to this is line drawing which is performed by - calling MoveTo and then LineTo. -

-

- Window -

-

- Window acts as a proxy to a platform window allowing operations such as showing, moving, - redrawing, and destroying to be performed. It contains a platform specific window identifier - - HWND for Windows, GtkWidget* for GTK+. -

-

- ListBox -

-

- ListBox is a subclass of Window and acts as a proxy to a platform listbox adding methods for - operations such as adding, retrieving, and selecting items. -

-

- Menu -

-

- Menu is a small helper class for constructing popup menus. It contains the platform specific - menu identifier - HMENU for Windows, GtkItemFactory* for GTK+. Most of the work in - constructing menus requires access to platform events and so is done in the Platform Events - and API layer. -

-

- Platform -

-

- The Platform class is used to access the facilities of the platform. System wide parameters - such as double click speed and chrome colour are available from Platform. Utility functions - such as DebugPrintf are also available from Platform. -

-

- Core Code -

-

- The bulk of Scintilla's code is platform independent. This is made up of the CellBuffer, - ContractionState, Document, Editor, Indicator, LineMarker, Style, ViewStyle, KeyMap, - ScintillaBase, CallTip, - and AutoComplete primary classes. -

-

- CellBuffer -

-

- A CellBuffer holds text and styling information, the undo stack, the assignment of line - markers to lines, and the fold structure. -

-

- A cell contains a character byte and its associated style byte. The current state of the - cell buffer is the sequence of cells that make up the text and a sequence of line information - containing the starting position of each line and any markers assigned to each line. -

-

- The undo stack holds a sequence of actions on the cell buffer. Each action is one of a text - insertion, a text deletion or an undo start action. The start actions are used to group - sequences of text insertions and deletions together so they can be undone together. To - perform an undo operation, each insertion or deletion is undone in reverse sequence. - Similarly, redo reapplies each action to the buffer in sequence. Whenever a character is - inserted in the buffer either directly through a call such as InsertString or through undo or - redo, its styling byte is initially set to zero. Client code is responsible for styling each - character whenever convenient. Styling information is not stored in undo actions. -

-

- Document -

-

- A document contains a CellBuffer and deals with some higher level abstractions such as - words, DBCS character sequences and line end character sequences. It is responsible for - managing the styling process and for notifying other objects when changes occur to the - document. -

-

- Editor -

-

- The Editor object is central to Scintilla. It is responsible for displaying a document and - responding to user actions and requests from the container. It uses ContractionState, Indicator, - LineMarker, Style, and ViewStyle objects to display the document and a KeyMap class to - map key presses to functions. - The visibility of each line is kept in the ContractionState which is also responsible for mapping - from display lines to documents lines and vice versa. -

-

- There may be multiple Editor objects attached to one Document object. Changes to a - document are broadcast to the editors through the DocWatcher mechanism. -

-

- ScintillaBase -

-

- ScintillaBase is a subclass of Editor and adds extra windowing features including display of - calltips, autocompletion lists and context menus. These features use CallTip and AutoComplete - objects. This class is optional so a lightweight implementation of Scintilla may bypass it if - the added functionality is not required. -

-

- Platform Events and API -

-

- Each platform uses different mechanisms for receiving events. On Windows, events are - received through messages and COM. On GTK+, callback functions are used. -

-

- For each platform, a class is derived from ScintillaBase (and thus from Editor). This is - ScintillaWin on Windows and ScintillaGTK on GTK+. These classes are responsible for - connecting to the platforms event mechanism and also to implement some virtual methods in - Editor and ScintillaBase which are different on the platforms. For example, this layer has to - support this difference between the synchronous Windows clipboard and the asynchronous GTK+ - clipboard. -

-

- The external API is defined in this layer as each platform has different preferred styles of - API - messages on Windows and function calls on GTK+. This also allows multiple APIs to be - defined on a platform. The currently available API on GTK+ is similar to the Windows API and - does not follow platform conventions well. A second API could be implemented here that did - follow platform conventions. -

- - - diff --git a/MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/doc/Icons.html b/MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/doc/Icons.html deleted file mode 100644 index 0d8b8bf5..00000000 --- a/MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/doc/Icons.html +++ /dev/null @@ -1,56 +0,0 @@ - - - - - - - - - Scintilla icons - - - - - - - - -
- Scintilla icon - - Scintilla - and SciTE -
-

- Icons -

-

- These images may be used under the same license as Scintilla. -

-

- Drawn by Iago Rubio, Philippe Lhoste, and Neil Hodgson. -

-

- zip format (70K) -

- - - - - - - - - - - - - - - - - -
For autocompletion listsFor margin markers
12x1216x1624x2432x32
- - diff --git a/MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/doc/Lexer.txt b/MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/doc/Lexer.txt deleted file mode 100644 index 5f118e73..00000000 --- a/MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/doc/Lexer.txt +++ /dev/null @@ -1,226 +0,0 @@ -How to write a scintilla lexer - -A lexer for a particular language determines how a specified range of -text shall be colored. Writing a lexer is relatively straightforward -because the lexer need only color given text. The harder job of -determining how much text actually needs to be colored is handled by -Scintilla itself, that is, the lexer's caller. - - -Parameters - -The lexer for language LLL has the following prototype: - - static void ColouriseLLLDoc ( - unsigned int startPos, int length, - int initStyle, - WordList *keywordlists[], - Accessor &styler); - -The styler parameter is an Accessor object. The lexer must use this -object to access the text to be colored. The lexer gets the character -at position i using styler.SafeGetCharAt(i); - -The startPos and length parameters indicate the range of text to be -recolored; the lexer must determine the proper color for all characters -in positions startPos through startPos+length. - -The initStyle parameter indicates the initial state, that is, the state -at the character before startPos. States also indicate the coloring to -be used for a particular range of text. - -Note: the character at StartPos is assumed to start a line, so if a -newline terminates the initStyle state the lexer should enter its -default state (or whatever state should follow initStyle). - -The keywordlists parameter specifies the keywords that the lexer must -recognize. A WordList class object contains methods that make simplify -the recognition of keywords. Present lexers use a helper function -called classifyWordLLL to recognize keywords. These functions show how -to use the keywordlists parameter to recognize keywords. This -documentation will not discuss keywords further. - - -The lexer code - -The task of a lexer can be summarized briefly: for each range r of -characters that are to be colored the same, the lexer should call - - styler.ColourTo(i, state) - -where i is the position of the last character of the range r. The lexer -should set the state variable to the coloring state of the character at -position i and continue until the entire text has been colored. - -Note 1: the styler (Accessor) object remembers the i parameter in the -previous calls to styler.ColourTo, so the single i parameter suffices to -indicate a range of characters. - -Note 2: As a side effect of calling styler.ColourTo(i,state), the -coloring states of all characters in the range are remembered so that -Scintilla may set the initStyle parameter correctly on future calls to -the -lexer. - - -Lexer organization - -There are at least two ways to organize the code of each lexer. Present -lexers use what might be called a "character-based" approach: the outer -loop iterates over characters, like this: - - lengthDoc = startPos + length ; - for (unsigned int i = startPos; i < lengthDoc; i++) { - chNext = styler.SafeGetCharAt(i + 1); - << handle special cases >> - switch(state) { - // Handlers examine only ch and chNext. - // Handlers call styler.ColorTo(i,state) if the state changes. - case state_1: << handle ch in state 1 >> - case state_2: << handle ch in state 2 >> - ... - case state_n: << handle ch in state n >> - } - chPrev = ch; - } - styler.ColourTo(lengthDoc - 1, state); - - -An alternative would be to use a "state-based" approach. The outer loop -would iterate over states, like this: - - lengthDoc = startPos+lenth ; - for ( unsigned int i = startPos ;; ) { - char ch = styler.SafeGetCharAt(i); - int new_state = 0 ; - switch ( state ) { - // scanners set new_state if they set the next state. - case state_1: << scan to the end of state 1 >> break ; - case state_2: << scan to the end of state 2 >> break ; - case default_state: - << scan to the next non-default state and set new_state >> - } - styler.ColourTo(i, state); - if ( i >= lengthDoc ) break ; - if ( ! new_state ) { - ch = styler.SafeGetCharAt(i); - << set state based on ch in the default state >> - } - } - styler.ColourTo(lengthDoc - 1, state); - -This approach might seem to be more natural. State scanners are simpler -than character scanners because less needs to be done. For example, -there is no need to test for the start of a C string inside the scanner -for a C comment. Also this way makes it natural to define routines that -could be used by more than one scanner; for example, a scanToEndOfLine -routine. - -However, the special cases handled in the main loop in the -character-based approach would have to be handled by each state scanner, -so both approaches have advantages. These special cases are discussed -below. - -Special case: Lead characters - -Lead bytes are part of DBCS processing for languages such as Japanese -using an encoding such as Shift-JIS. In these encodings, extended -(16-bit) characters are encoded as a lead byte followed by a trail byte. - -Lead bytes are rarely of any lexical significance, normally only being -allowed within strings and comments. In such contexts, lexers should -ignore ch if styler.IsLeadByte(ch) returns TRUE. - -Note: UTF-8 is simpler than Shift-JIS, so no special handling is -applied for it. All UTF-8 extended characters are >= 128 and none are -lexically significant in programming languages which, so far, use only -characters in ASCII for operators, comment markers, etc. - - -Special case: Folding - -Folding may be performed in the lexer function. It is better to use a -separate folder function as that avoids some troublesome interaction -between styling and folding. The folder function will be run after the -lexer function if folding is enabled. The rest of this section explains -how to perform folding within the lexer function. - -During initialization, lexers that support folding set - - bool fold = styler.GetPropertyInt("fold"); - -If folding is enabled in the editor, fold will be TRUE and the lexer -should call: - - styler.SetLevel(line, level); - -at the end of each line and just before exiting. - -The line parameter is simply the count of the number of newlines seen. -It's initial value is styler.GetLine(startPos) and it is incremented -(after calling styler.SetLevel) whenever a newline is seen. - -The level parameter is the desired indentation level in the low 12 bits, -along with flag bits in the upper four bits. The indentation level -depends on the language. For C++, it is incremented when the lexer sees -a '{' and decremented when the lexer sees a '}' (outside of strings and -comments, of course). - -The following flag bits, defined in Scintilla.h, may be set or cleared -in the flags parameter. The SC_FOLDLEVELWHITEFLAG flag is set if the -lexer considers that the line contains nothing but whitespace. The -SC_FOLDLEVELHEADERFLAG flag indicates that the line is a fold point. -This normally means that the next line has a greater level than present -line. However, the lexer may have some other basis for determining a -fold point. For example, a lexer might create a header line for the -first line of a function definition rather than the last. - -The SC_FOLDLEVELNUMBERMASK mask denotes the level number in the low 12 -bits of the level param. This mask may be used to isolate either flags -or level numbers. - -For example, the C++ lexer contains the following code when a newline is -seen: - - if (fold) { - int lev = levelPrev; - - // Set the "all whitespace" bit if the line is blank. - if (visChars == 0) - lev |= SC_FOLDLEVELWHITEFLAG; - - // Set the "header" bit if needed. - if ((levelCurrent > levelPrev) && (visChars > 0)) - lev |= SC_FOLDLEVELHEADERFLAG; - styler.SetLevel(lineCurrent, lev); - - // reinitialize the folding vars describing the present line. - lineCurrent++; - visChars = 0; // Number of non-whitespace characters on the line. - levelPrev = levelCurrent; - } - -The following code appears in the C++ lexer just before exit: - - // Fill in the real level of the next line, keeping the current flags - // as they will be filled in later. - if (fold) { - // Mask off the level number, leaving only the previous flags. - int flagsNext = styler.LevelAt(lineCurrent); - flagsNext &= ~SC_FOLDLEVELNUMBERMASK; - styler.SetLevel(lineCurrent, levelPrev | flagsNext); - } - - -Don't worry about performance - -The writer of a lexer may safely ignore performance considerations: the -cost of redrawing the screen is several orders of magnitude greater than -the cost of function calls, etc. Moreover, Scintilla performs all the -important optimizations; Scintilla ensures that a lexer will be called -only to recolor text that actually needs to be recolored. Finally, it -is not necessary to avoid extra calls to styler.ColourTo: the sytler -object buffers calls to ColourTo to avoid multiple updates of the -screen. - -Page contributed by Edward K. Ream \ No newline at end of file diff --git a/MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/doc/SciBreak.jpg b/MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/doc/SciBreak.jpg deleted file mode 100644 index 65c9fc740133c9c1ed590b0de368e4dc57a04ec6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 14998 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 - - - - - - - Scintilla and SciTE Code Style Preferences - - - - - - - - - -
- Scintilla icon - - Scintilla - and SciTE -
-

- Code Style -

-

- Introduction -

-

- The source code of Scintilla and SciTE follow my preferences. - Some of these decisions are arbitrary and based on my sense of aesthetics - but its good to have all the code look the same even if its not exactly how - everyone would prefer. -

-

- Code that does not follow these conventions will be accepted, but will be modified - as time goes by to fit the conventions. Scintilla code follows the conventions more - closely than SciTE except for lexers which are relatively independent modules. - Lexers that are maintained by others are left as they are submitted except that - warnings will be fixed so the whole project can compile cleanly. -

-

- The AStyle formatting - program with a '-tapO' argument formats code in much the right way although - there are a few bugs in AStyle. The scite/scripts/Fixer.py script will run AStyle - over a C++ source file and fix up some of those bugs. -

-

- Language features -

-

- Design goals for Scintilla and SciTE include portability to currently available C++ - compilers on diverse platforms with high performance and low resource usage. - Scintilla has stricter portability requirements to SciTE as it may be ported to - low capability platforms such as Windows CE or PalmOS but it is less likely - SciTE will be. -

-

- To achieve portability, only a subset of C++ features are used. Exceptions are - not available on some platforms such as Windows CE so exceptions are not used - and thus the standard C++ library can not be used. - Template support differs between compilers so is not used in Scintilla but there - are some simple uses in SciTE. - Run-time type information adds to memory use so is turned off. - Name spaces are not used. -

-

- The goto statement is not used because of bad memories from my first job - maintaining FORTRAN programs. The union feature is not used as it can lead to - non-type-safe value access. -

-

- Casting -

-

- Do not use old C style casts like (char *)s. Instead use the most strict form of C++ - cast possible like const_cast<char *>(s). Use static_cast and const_cast - where possible rather than reinterpret_cast. Because the code is compiled with - run-time type information turned off, dynamic_cast will not work. -

-

- The benefit to using the new style casts is that they explicitly detail what evil is - occurring and act as signals that something potentially unsafe is being done. -

-

- Code that treats const seriously is easier to reason about both for humans - and compilers, so use const parameters and avoid const_cast. -

-

- Warnings -

-

- To help ensure code is well written and portable, it is compiled with almost all - warnings turned on. This sometimes results in warnings about code that is - completely good (false positives) but changing the code to avoid the warnings - is generally fast and has little impact on readability. -

-

- Initialise all variables and minimise the scope of variables. If a variable is defined - just before its use then it can't be misused by code before that point. - Use loop declarations that are compatible with both the C++ standard and currently - available compilers. -

-

- Allocation -

-

- As exceptions are not used, memory exhaustion can occur. - This should be checked for and handled but there is quite a lot of Scintilla and - SciTE code that doesn't yet. - Fixed length buffers are often used as these are simple and avoid the need to - worry about memory exhaustion but then require that buffer lengths are - respected. -

-

- The C++ new and delete operators are preferred over C's malloc and free - as new and delete are type safe. -

-

- Bracketing -

-

- Start brackets, '{', should be located on the line of the control structure they - start and end brackets, '}', should be at the indented start of a line. When there is - an else clause, this occurs on the same line as the '}'. - This format uses less lines than alternatives, allowing more code to be seen on screen. - Fully bracketed control - structures are preferred because this makes it more likely that modifications will - be correct and it allows Scintilla's folder to work. No braces on returned - expressions as return is a keyword, not a function call. -

-bool fn(int a) {
-        
if (a) {
-                
s();
-                
t();
-        
} else {
-                
u();
-        
}
-        
return !a;
-
}
-

- Spacing -

-

- Spaces on both sides of '=' and comparison operators and no attempt to line up '='. - No space before or after '(', when used in calls, but a space after every ','. - No spaces between tokens in short expressions but may be present in - longer expressions. Space before '{'. No space before ';'. - No space after '*' when used to mean pointer and no space after '[' or ']'. - One space between keywords and '('. -

-void StoreConditionally(int c, const char *s) {
-        
if (c && (baseSegment == trustSegment["html"])) {
-                
baseSegment = s+1;
-                
Store(s, baseSegment, "html");
-        
}
-
} -

- Names -

-

- Identifiers use mixed case and no underscores. - Class, function and method names start with an uppercase letter and use - further upper case letters to distinguish words. Variables start with a lower - case letter and use upper case letters to distinguish words. - Loop counters and similar variables can have simple names like 'i'. - Function calls should be differentiated from method calls with an initial '::' - global scope modifier. -

-class StorageZone {
-
public:
-        
void Store(const char *s) {
-                
Media *mediaStore = ::GetBaseMedia(zoneDefault);
-                
for (int i=mediaStore->cursor; mediaStore[i], i++) {
-                        
mediaStore->Persist(s[i]);
-                
}
-        
}
-
}; - - diff --git a/MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/doc/SciRest.jpg b/MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/doc/SciRest.jpg deleted file mode 100644 index 4b052239cd953c92a5ec4bc22fb9aed2cc545a1b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16680 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 Uw^L7}bKU68RwQB4@Net?2Xk}R0ssI2 diff --git a/MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/doc/SciTEIco.png b/MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/doc/SciTEIco.png deleted file mode 100644 index d0cc869b8c56c3d77ba76ff1a81b22609836022e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10091 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 N002ovPDHLkV1k*@zUlw~ diff --git a/MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/doc/SciWord.jpg b/MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/doc/SciWord.jpg deleted file mode 100644 index 60e70e897b41b1943952b42aab2592cfe6452883..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6164 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 diff --git a/MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/doc/ScintillaDoc.html b/MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/doc/ScintillaDoc.html deleted file mode 100644 index 08dad961..00000000 --- a/MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/doc/ScintillaDoc.html +++ /dev/null @@ -1,5350 +0,0 @@ - - - - - - - - - - Scintilla and SciTE - - - - - - - - - - - -
Scintilla iconScintilla
- -

Scintilla Documentation

- -

Last edited 4/February/2006 NH

- -

There is an overview of the internal design of - Scintilla.
- Some notes on using Scintilla.
- How to use the Scintilla Edit Control on Windows.
- A simple sample using Scintilla from - C++ on Windows.
- A simple sample using Scintilla from - Visual Basic.
- Bait is a tiny sample using Scintilla - on GTK+.
- A detailed description of how to write a lexer, including a - discussion of folding.
- - How to implement a lexer in the container.
- - How to implement folding.
- The coding style used in Scintilla and SciTE is - worth following if you want to contribute code to Scintilla but is not compulsory.

- -

Introduction

- -

The Windows version of Scintilla is a Windows Control. As such, its primary programming - interface is through Windows messages. Early versions of Scintilla emulated much of the API - defined by the standard Windows Edit and RichEdit controls but those APIs are now deprecated in - favour of Scintilla's own, more consistent API. In addition to messages performing the actions - of a normal Edit control, Scintilla allows control of syntax styling, folding, markers, autocompletion - and call tips.

- -

The GTK+ version also uses messages in a similar way to the Windows version. This is - different to normal GTK+ practice but made it easier to implement rapidly.

- -

This documentation describes the individual messages and notifications used by Scintilla. It - does not describe how to link them together to form a useful editor. For now, the best way to - work out how to develop using Scintilla is to see how SciTE uses it. SciTE exercises most of - Scintilla's facilities.

- -

In the descriptions that follow, the messages are described as function calls with zero, one - or two arguments. These two arguments are the standard wParam and - lParam familiar to Windows programmers. These parameters are integers that - are large enough to hold pointers, and the return value is also an integer large enough to contain a - pointer. - Although the commands only use the - arguments described, because all messages have two arguments whether Scintilla uses them or - not, it is strongly recommended that any unused arguments are set to 0. This allows future - enhancement of messages without the risk of breaking existing code. Common argument types - are:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
boolArguments expect the values 0 for false and 1 for - true.
intArguments are 32-bit signed integers.
const char *Arguments point at text that is being passed to Scintilla but not modified. The text - may be zero terminated or another argument may specify the character count, the - description will make this clear.
char *Arguments point at text buffers that Scintilla will fill with text. In some cases, - another argument will tell Scintilla the buffer size. In others, you must make sure that - the buffer is big enough to hold the requested text. If a NULL pointer (0) is passed - then, for SCI_* calls, the length that should be allocated is returned.
colourColours are set using the RGB format (Red, Green, Blue). The intensity of each colour - is set in the range 0 to 255. If you have three such intensities, they are combined as: - red | (green << 8) | (blue << 16). If you set all intensities to 255, the - colour is white. If you set all intensities to 0, the colour is black. When you set a - colour, you are making a request. What you will get depends on the capabilities of the - system and the current screen mode.
alphaTranslucency is set using an alpha value. - Alpha ranges from 0 (SC_ALPHA_TRANSPARENT) which is completely transparent to - 255 (SC_ALPHA_OPAQUE) which is opaque. The value 256 (SC_ALPHA_NOALPHA) - is opaque and uses code that is not alpha-aware and may be faster. Not all platforms support - translucency and only some Scintilla features implement translucency. - The default alpha value for most features is SC_ALPHA_NOALPHA.
<unused>This is an unused argument. Setting it to 0 will ensure compatibility with future - enhancements.
- -

Contents

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
o Text retrieval and - modificationo Searching and replacingo Overtype
o Cut, copy and pasteo Error handlingo Undo and Redo
o Selection and informationo Scrolling and automatic - scrollingo White space
o Cursoro Mouse captureo Line endings
o Stylingo Style definitiono Caret, selection, and hotspot styles
o Marginso Other settingso Brace highlighting
o Tabs and Indentation - Guideso Markerso Indicators
o Autocompletiono User listso Call tips
o Keyboard commandso Key bindingso Popup edit menu
o Macro recordingo Printingo Direct access
o Multiple viewso Foldingo Line wrapping
o Zoomingo Long lineso Lexer
o Notificationso GTK+o Deprecated messages
o Edit messages never - supported by Scintillao Building Scintilla
- -

Messages with names of the form SCI_SETxxxxx often have a companion - SCI_GETxxxxx. To save tedious repetition, if the SCI_GETxxxxx message - returns the value set by the SCI_SETxxxxx message, the SET routine is - described and the GET routine is left to your imagination.

- -

Text retrieval and modification

- -

Each character in a Scintilla document is followed by an associated byte of styling - information. The combination of a character byte and a style byte is called a cell. Style bytes - are interpreted as a style index in the low 5 bits and as 3 individual bits of indicators. This allows 32 fundamental styles, which is enough for most - languages, and three independent indicators so that, for example, syntax errors, deprecated - names and bad indentation could all be displayed at once. The number of bits used for styles - can be altered with SCI_SETSTYLEBITS up to a maximum of 7 bits. - The remaining bits can be used for indicators.

- -

Positions within the Scintilla document refer to a character or the gap before that - character. The first character in a document is 0, the second 1 and so on. If a document - contains nLen characters, the last character is numbered nLen-1. - The caret exists between character positions and can be located from before the first character (0) - to after the last character (nLen).

- -

There are places where the caret can not go where two character bytes make up one character. - This occurs when a DBCS character from a language like Japanese is included in the document or - when line ends are marked with the CP/M standard of a carriage return followed by a line feed. - The INVALID_POSITION constant (-1) represents an invalid position within the - document.

- -

All lines of text in Scintilla are the same height, and this height is calculated from the - largest font in any current style. This restriction is for performance; if lines differed in - height then calculations involving positioning of text would require the text to be styled - first.

- SCI_GETTEXT(int length, char *text)
- SCI_SETTEXT(<unused>, const char *text)
- SCI_SETSAVEPOINT
- SCI_GETLINE(int line, char *text)
- SCI_REPLACESEL(<unused>, const char - *text)
- SCI_SETREADONLY(bool readOnly)
- SCI_GETREADONLY
- SCI_GETTEXTRANGE(<unused>, TextRange - *tr)
- SCI_ALLOCATE(int bytes, <unused>)
- SCI_ADDTEXT(int length, const char *s)
- SCI_ADDSTYLEDTEXT(int length, cell *s)
- SCI_APPENDTEXT(int length, const char *s)
- SCI_INSERTTEXT(int pos, const char *text)
- SCI_CLEARALL
- SCI_CLEARDOCUMENTSTYLE
- SCI_GETCHARAT(int position)
- SCI_GETSTYLEAT(int position)
- SCI_GETSTYLEDTEXT(<unused>, TextRange - *tr)
- SCI_SETSTYLEBITS(int bits)
- SCI_GETSTYLEBITS
- SCI_TARGETASUTF8(<unused>, char *s)
- SCI_ENCODEDFROMUTF8(const char *utf8, char *encoded)
- SCI_SETLENGTHFORENCODE(int bytes)
-
- -

SCI_GETTEXT(int length, char *text)
- This returns length-1 characters of text from the start of the document plus one - terminating 0 character. To collect all the text in a document, use SCI_GETLENGTH - to get the number of characters in the document (nLen), allocate a character - buffer of length nLen+1 bytes, then call SCI_GETTEXT(nLen+1, char - *text). If the text argument is 0 then the length that should be allocated to store the - entire document is returned. - If you then save the text, you should use SCI_SETSAVEPOINT to mark - the text as unmodified.

- -

See also: SCI_GETSELTEXT, SCI_GETCURLINE, SCI_GETLINE, SCI_GETSTYLEDTEXT, SCI_GETTEXTRANGE

- -

SCI_SETTEXT(<unused>, const char *text)
- This replaces all the text in the document with the zero terminated text string you pass - in.

- -

SCI_SETSAVEPOINT
- This message tells Scintilla that the current state of the document is unmodified. This is - usually done when the file is saved or loaded, hence the name "save point". As Scintilla - performs undo and redo operations, it notifies the container that it has entered or left the - save point with SCN_SAVEPOINTREACHED and SCN_SAVEPOINTLEFT notification messages, allowing the container to know if the file - should be considered dirty or not.

- -

See also: SCI_EMPTYUNDOBUFFER, SCI_GETMODIFY

- -

SCI_GETLINE(int line, char *text)
- This fills the buffer defined by text with the contents of the nominated line (lines start at - 0). The buffer is not terminated by a 0 character. It is up to you to make sure that the buffer - is long enough for the text, use SCI_LINELENGTH(int line). The returned value is the - number of characters copied to the buffer. The returned text includes any end of line - characters. If you ask for a line number outside the range of lines in the document, 0 - characters are copied. If the text argument is 0 then the length that should be allocated - to store the entire line is returned.

- -

See also: SCI_GETCURLINE, SCI_GETSELTEXT, SCI_GETTEXTRANGE, SCI_GETSTYLEDTEXT, SCI_GETTEXT

- -

SCI_REPLACESEL(<unused>, const char *text)
- The currently selected text between the anchor - and the current position is replaced by the 0 terminated text string. If the anchor and - current position are the same, the text is inserted at the caret position. The caret is - positioned after the inserted text and the caret is scrolled into view.

- -

SCI_SETREADONLY(bool readOnly)
- SCI_GETREADONLY
- These messages set and get the read-only flag for the document. If you mark a document as read - only, attempts to modify the text cause the SCN_MODIFYATTEMPTRO notification.

- -

SCI_GETTEXTRANGE(<unused>, TextRange *tr)
- This collects the text between the positions cpMin and cpMax and - copies it to lpstrText (see struct TextRange in - Scintilla.h). If cpMax is -1, text is returned to the end of the - document. The text is 0 terminated, so you must supply a buffer that is at least 1 character - longer than the number of characters you wish to read. The return value is the length of the - returned text not including the terminating 0.

- -

See also: SCI_GETSELTEXT, SCI_GETLINE, SCI_GETCURLINE, SCI_GETSTYLEDTEXT, SCI_GETTEXT

- -

SCI_GETSTYLEDTEXT(<unused>, TextRange *tr)
- This collects styled text into a buffer using two bytes for each cell, with the character at - the lower address of each pair and the style byte at the upper address. Characters between the - positions cpMin and cpMax are copied to lpstrText (see - struct TextRange in Scintilla.h). Two 0 bytes are added to the end of - the text, so the buffer that lpstrText points at must be at least - 2*(cpMax-cpMin)+2 bytes long. No check is made for sensible values of - cpMin or cpMax. Positions outside the document return character codes - and style bytes of 0.

- -

See also: SCI_GETSELTEXT, SCI_GETLINE, SCI_GETCURLINE, SCI_GETTEXTRANGE, SCI_GETTEXT

- -

SCI_ALLOCATE(int bytes, <unused>)
- Allocate a document buffer large enough to store a given number of bytes. - The document will not be made smaller than its current contents.

- -

SCI_ADDTEXT(int length, const char *s)
- This inserts the first length characters from the string s - at the current position. This will include any 0's in the string that you might have expected - to stop the insert operation. The current position is set at the end of the inserted text, - but it is not scrolled into view.

- -

SCI_ADDSTYLEDTEXT(int length, cell *s)
- This behaves just like SCI_ADDTEXT, but inserts styled text.

- -

SCI_APPENDTEXT(int length, const char *s)
- This adds the first length characters from the string s to the end - of the document. This will include any 0's in the string that you might have expected to stop - the operation. The current selection is not changed and the new text is not scrolled into - view.

- -

SCI_INSERTTEXT(int pos, const char *text)
- This inserts the zero terminated text string at position pos or at - the current position if pos is -1. If the current position is after the insertion point - then it is moved along with its surrounding text but no scrolling is performed.

- -

SCI_CLEARALL
- Unless the document is read-only, this deletes all the text.

- -

SCI_CLEARDOCUMENTSTYLE
- When wanting to completely restyle the document, for example after choosing a lexer, the - SCI_CLEARDOCUMENTSTYLE can be used to clear all styling information and reset the - folding state.

- -

SCI_GETCHARAT(int pos)
- This returns the character at pos in the document or 0 if pos is - negative or past the end of the document.

- -

SCI_GETSTYLEAT(int pos)
- This returns the style at pos in the document, or 0 if pos is - negative or past the end of the document.

- -

SCI_SETSTYLEBITS(int bits)
- SCI_GETSTYLEBITS
- This pair of routines sets and reads back the number of bits in each cell to use for styling, - to a maximum of 7 style bits. The remaining bits can be used as indicators. The standard - setting is SCI_SETSTYLEBITS(5). - The number of styling bits needed by the current lexer can be found with - SCI_GETSTYLEBITSNEEDED.

- -

TextRange and CharacterRange
- These structures are defined to be exactly the same shape as the Win32 TEXTRANGE - and CHARRANGE, so that older code that treats Scintilla as a RichEdit will - work.

-
-struct CharacterRange {
-    long cpMin;
-    long cpMax;
-};
-
-struct TextRange {
-    struct CharacterRange chrg;
-    char *lpstrText;
-};
-
- -

GTK+-specific: Access to encoded text

- -

SCI_TARGETASUTF8(<unused>, char *s)
- This method retrieves the value of the target encoded as UTF-8 which is the default - encoding of GTK+ so is useful for retrieving text for use in other parts of the user interface, - such as find and replace dialogs. The length of the encoded text in bytes is returned. -

- -

SCI_ENCODEDFROMUTF8(const char *utf8, char *encoded)
- SCI_SETLENGTHFORENCODE(int bytes)
- SCI_ENCODEDFROMUTF8 converts a UTF-8 string into the document's - encoding which is useful for taking the results of a find dialog, for example, and receiving - a string of bytes that can be searched for in the document. Since the text can contain nul bytes, - the SCI_SETLENGTHFORENCODE method can be used to set the - length that will be converted. If set to -1, the length is determined by finding a nul byte. - The length of the converted string is returned. -

- - -

Searching

- SCI_FINDTEXT(int flags, TextToFind - *ttf)
- SCI_SEARCHANCHOR
- SCI_SEARCHNEXT(int searchFlags, const char - *text)
- SCI_SEARCHPREV(int searchFlags, const char - *text)
- Search and replace using the - target
-
- -

searchFlags
- Several of the search routines use flag options, which include a simple regular expression - search. Combine the flag options by adding them:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
SCFIND_MATCHCASEA match only occurs with text that matches the case of the search string.
SCFIND_WHOLEWORDA match only occurs if the characters before and after are not word characters.
SCFIND_WORDSTARTA match only occurs if the character before is not a word character.
SCFIND_REGEXPThe search string should be interpreted as a regular expression.
SCFIND_POSIXTreat regular expression in a more POSIX compatible manner - by interpreting bare ( and ) for tagged sections rather than \( and \).
- -

If SCFIND_REGEXP is not included in the searchFlags, you can - search backwards to find the previous occurrence of a search string by setting the end of the - search range before the start. If SCFIND_REGEXP is included, searches are always - from a lower position to a higher position, even if the search range is backwards.

- -

In a regular expression, special characters interpreted are:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
.Matches any character
\(This marks the start of a region for tagging a match.
\)This marks the end of a tagged region.
\nWhere n is 1 through 9 refers to the first through ninth tagged region - when replacing. For example, if the search string was Fred\([1-9]\)XXX and - the replace string was Sam\1YYY, when applied to Fred2XXX this - would generate Sam2YYY.
\<This matches the start of a word using Scintilla's definitions of words.
\>This matches the end of a word using Scintilla's definition of words.
\xThis allows you to use a character x that would otherwise have a special meaning. For - example, \[ would be interpreted as [ and not as the start of a character set.
[...]This indicates a set of characters, for example, [abc] means any of the characters a, - b or c. You can also use ranges, for example [a-z] for any lower case character.
[^...]The complement of the characters in the set. For example, [^A-Za-z] means any - character except an alphabetic character.
^This matches the start of a line (unless used inside a set, see above).
$This matches the end of a line.
*This matches 0 or more times. For example, Sa*m matches Sm, - Sam, Saam, Saaam and so on.
+This matches 1 or more times. For example, Sa+m matches - Sam, Saam, Saaam and so on.
- -

SCI_FINDTEXT(int searchFlags, TextToFind *ttf)
- This message searches for text in the document. It does not use or move the current selection. - The searchFlags argument controls the - search type, which includes regular expression searches.

- -

The TextToFind structure is defined in Scintilla.h; set - chrg.cpMin and chrg.cpMax with the range of positions in the document - to search. If SCFIND_REGEXP is not included in the flags, you can search backwards by - setting chrg.cpMax less than chrg.cpMin. If SCFIND_REGEXP - is included, the search is always forwards (even if chrg.cpMax is less than chrg.cpMin). - Set the lpstrText member of TextToFind to point at a zero terminated - text string holding the search pattern. If your language makes the use of TextToFind - difficult, you should consider using SCI_SEARCHINTARGET instead.

- -

The return value is -1 if the search fails or the position of the start of the found text if - it succeeds. The chrgText.cpMin and chrgText.cpMax members of - TextToFind are filled in with the start and end positions of the found text.

- -

See also: SCI_SEARCHINTARGET

- -

TextToFind
- This structure is defined to have exactly the same shape as the Win32 structure - FINDTEXTEX for old code that treated Scintilla as a RichEdit control.

-
-struct TextToFind {
-    struct CharacterRange chrg;     // range to search
-    char *lpstrText;                // the search pattern (zero terminated)
-    struct CharacterRange chrgText; // returned as position of matching text
-};
-
- -

SCI_SEARCHANCHOR
- SCI_SEARCHNEXT(int searchFlags, const char *text)
- SCI_SEARCHPREV(int searchFlags, const char *text)
- These messages provide relocatable search support. This allows multiple incremental - interactive searches to be macro recorded while still setting the selection to found text so - the find/select operation is self-contained. These three messages send SCN_MACRORECORD notifications if macro recording is enabled.

- -

SCI_SEARCHANCHOR sets the search start point used by - SCI_SEARCHNEXT and SCI_SEARCHPREV to the start of the current - selection, that is, the end of the selection that is nearer to the start of the document. You - should always call this before calling either of SCI_SEARCHNEXT or - SCI_SEARCHPREV.

- -

SCI_SEARCHNEXT and SCI_SEARCHPREV search for the next and previous - occurrence of the zero terminated search string pointed at by text. The search is modified by - the searchFlags. If you request a regular - expression, SCI_SEARCHPREV finds the first occurrence of the search string in the - document, not the previous one before the anchor point.

- -

The return value is -1 if nothing is found, otherwise the return value is the start position - of the matching text. The selection is updated to show the matched text, but is not scrolled - into view.

- -

See also: SCI_SEARCHINTARGET, - SCI_FINDTEXT

- -

Search and replace using the target

- -

Using SCI_REPLACESEL, - modifications cause scrolling and other visible changes, which may take some time and cause - unwanted display updates. If performing many changes, such as a replace all command, the target - can be used instead. First, set the target, ie. the range to be replaced. Then call - SCI_REPLACETARGET or SCI_REPLACETARGETRE.

- -

Searching can be performed within the target range with SCI_SEARCHINTARGET, - which uses a counted string to allow searching for null characters. It returns the length of - range or -1 for failure, in which case the target is not moved. The flags used by - SCI_SEARCHINTARGET such as SCFIND_MATCHCASE, - SCFIND_WHOLEWORD, SCFIND_WORDSTART, and SCFIND_REGEXP - can be set with SCI_SETSEARCHFLAGS. SCI_SEARCHINTARGET may be simpler - for some clients to use than SCI_FINDTEXT, as that requires using a pointer to a - structure.

- SCI_SETTARGETSTART(int pos)
- SCI_GETTARGETSTART
- SCI_SETTARGETEND(int pos)
- SCI_GETTARGETEND
- SCI_TARGETFROMSELECTION
- SCI_SETSEARCHFLAGS(int searchFlags)
- SCI_GETSEARCHFLAGS
- SCI_SEARCHINTARGET(int length, const char - *text)
- SCI_REPLACETARGET(int length, const char - *text)
- SCI_REPLACETARGETRE(int length, const char - *text)
-
- -

SCI_SETTARGETSTART(int pos)
- SCI_GETTARGETSTART
- SCI_SETTARGETEND(int pos)
- SCI_GETTARGETEND
- These functions set and return the start and end of the target. When searching in non-regular - expression mode, you can set start greater than end to find the last matching text in the - target rather than the first matching text. The target is also set by a successful - SCI_SEARCHINTARGET.

- -

SCI_TARGETFROMSELECTION
- Set the target start and end to the start and end positions of the selection.

- -

SCI_SETSEARCHFLAGS(int searchFlags)
- SCI_GETSEARCHFLAGS
- These get and set the searchFlags used by - SCI_SEARCHINTARGET. There are several option flags including a simple regular - expression search.

- -

SCI_SEARCHINTARGET(int length, const char *text)
- This searches for the first occurrence of a text string in the target defined by - SCI_SETTARGETSTART and SCI_SETTARGETEND. The text string is not zero - terminated; the size is set by length. The search is modified by the search flags - set by SCI_SETSEARCHFLAGS. If the search succeeds, the target is set to the found - text and the return value is the position of the start of the matching text. If the search - fails, the result is -1.

- -

SCI_REPLACETARGET(int length, const char *text)
- If length is -1, text is a zero terminated string, otherwise - length sets the number of character to replace the target with. - After replacement, the target range refers to the replacement text. - The return value - is the length of the replacement string.
- Note that the recommended way to delete text in the document is to set the target to the text to be removed, - and to perform a replace target with an empty string.

- -

SCI_REPLACETARGETRE(int length, const char *text)
- This replaces the target using regular expressions. If length is -1, - text is a zero terminated string, otherwise length is the number of - characters to use. The replacement string is formed from the text string with any sequences of - \1 through \9 replaced by tagged matches from the most recent regular - expression search. - After replacement, the target range refers to the replacement text. - The return value is the length of the replacement string.

- -

See also: SCI_FINDTEXT

- -

Overtype

- -

SCI_SETOVERTYPE(bool overType)
- SCI_GETOVERTYPE
- When overtype is enabled, each typed character replaces the character to the right of the text - caret. When overtype is disabled, characters are inserted at the caret. - SCI_GETOVERTYPE returns TRUE (1) if overtyping is active, otherwise - FALSE (0) will be returned. Use SCI_SETOVERTYPE to set the overtype - mode.

- -

Cut, copy and paste

- - SCI_CUT
- SCI_COPY
- SCI_PASTE
- SCI_CLEAR
- SCI_CANPASTE
- SCI_COPYRANGE(int start, int end)
- SCI_COPYTEXT(int length, - const char *text)
- SCI_SETPASTECONVERTENDINGS(bool convert)
- SCI_GETPASTECONVERTENDINGS
-
- -

SCI_CUT
- SCI_COPY
- SCI_PASTE
- SCI_CLEAR
- SCI_CANPASTE
- These commands perform the standard tasks of cutting and copying data to the clipboard, - pasting from the clipboard into the document, and clearing the document. - SCI_CANPASTE returns non-zero if the document isn't read-only and if the selection - doesn't contain protected text. If you need a "can copy" or "can cut", use - SCI_GETSELECTIONSTART()-SCI_GETSELECTIONEND(), which will be non-zero if you can - copy or cut to the clipboard.

- -

GTK+ does not really support SCI_CANPASTE and always returns TRUE - unless the document is read-only.

- -

On X, the clipboard is asynchronous and may require several messages between - the destination and source applications. Data from SCI_PASTE will not arrive in the - document immediately.

- - SCI_COPYRANGE(int start, int end)
- SCI_COPYTEXT(int length, const char *text)
-

SCI_COPYRANGE copies a range of text from the document to - the system clipboard and SCI_COPYTEXT copies a supplied piece of - text to the system clipboard.

- -

SCI_SETPASTECONVERTENDINGS(bool convert)
- SCI_GETPASTECONVERTENDINGS
- If this property is set then when text is pasted any line ends are converted to match the document's - end of line mode as set with - SCI_SETEOLMODE. - Currently only changeable on Windows. On GTK+ pasted text is always converted.

- -

Error handling

- -

SCI_SETSTATUS(int status)
- SCI_GETSTATUS
- If an error occurs, Scintilla may set an internal error number that can be retrieved with - SCI_GETSTATUS. Not currently used but will be in the future. To clear the error - status call SCI_SETSTATUS(0).

- -

Undo and Redo

- -

Scintilla has multiple level undo and redo. It will continue to collect undoable actions - until memory runs out. Scintilla saves actions that change the document. Scintilla does not - save caret and selection movements, view scrolling and the like. Sequences of typing or - deleting are compressed into single actions to make it easier to undo and redo at a sensible - level of detail. Sequences of actions can be combined into actions that are undone as a unit. - These sequences occur between SCI_BEGINUNDOACTION and - SCI_ENDUNDOACTION messages. These sequences can be nested and only the top-level - sequences are undone as units.

- SCI_UNDO
- SCI_CANUNDO
- SCI_EMPTYUNDOBUFFER
- SCI_REDO
- SCI_CANREDO
- SCI_SETUNDOCOLLECTION(bool - collectUndo)
- SCI_GETUNDOCOLLECTION
- SCI_BEGINUNDOACTION
- SCI_ENDUNDOACTION
-
- -

SCI_UNDO
- SCI_CANUNDO
- SCI_UNDO undoes one action, or if the undo buffer has reached a - SCI_ENDUNDOACTION point, all the actions back to the corresponding - SCI_BEGINUNDOACTION.

- -

SCI_CANUNDO returns 0 if there is nothing to undo, and 1 if there is. You would - typically use the result of this message to enable/disable the Edit menu Undo command.

- -

SCI_REDO
- SCI_CANREDO
- SCI_REDO undoes the effect of the last SCI_UNDO operation.

- -

SCI_CANREDO returns 0 if there is no action to redo and 1 if there are undo - actions to redo. You could typically use the result of this message to enable/disable the Edit - menu Redo command.

- -

SCI_EMPTYUNDOBUFFER
- This command tells Scintilla to forget any saved undo or redo history. It also sets the save - point to the start of the undo buffer, so the document will appear to be unmodified. This does - not cause the SCN_SAVEPOINTREACHED notification to be sent to the - container.

- -

See also: SCI_SETSAVEPOINT

- -

SCI_SETUNDOCOLLECTION(bool collectUndo)
- SCI_GETUNDOCOLLECTION
- You can control whether Scintilla collects undo information with - SCI_SETUNDOCOLLECTION. Pass in true (1) to collect information and - false (0) to stop collecting. If you stop collection, you should also use - SCI_EMPTYUNDOBUFFER to avoid the undo buffer being unsynchronized with the data in - the buffer.

- -

You might wish to turn off saving undo information if you use the Scintilla to store text - generated by a program (a Log view) or in a display window where text is often deleted and - regenerated.

- -

SCI_BEGINUNDOACTION
- SCI_ENDUNDOACTION
- Send these two messages to Scintilla to mark the beginning and end of a set of operations that - you want to undo all as one operation but that you have to generate as several operations. - Alternatively, you can use these to mark a set of operations that you do not want to have - combined with the preceding or following operations if they are undone.

- -

Selection and information

- -

Scintilla maintains a selection that stretches between two points, the anchor and the - current position. If the anchor and the current position are the same, there is no selected - text. Positions in the document range from 0 (before the first character), to the document size - (after the last character). If you use messages, there is nothing to stop you setting a - position that is in the middle of a CRLF pair, or in the middle of a 2 byte character. However, - keyboard commands will not move the caret into such positions.

- SCI_GETTEXTLENGTH
- SCI_GETLENGTH
- SCI_GETLINECOUNT
- SCI_GETFIRSTVISIBLELINE
- SCI_LINESONSCREEN
- SCI_GETMODIFY
- SCI_SETSEL(int anchorPos, int currentPos)
- SCI_GOTOPOS(int position)
- SCI_GOTOLINE(int line)
- SCI_SETCURRENTPOS(int position)
- SCI_GETCURRENTPOS
- SCI_SETANCHOR(int position)
- SCI_GETANCHOR
- SCI_SETSELECTIONSTART(int position)
- SCI_GETSELECTIONSTART
- SCI_SETSELECTIONEND(int position)
- SCI_GETSELECTIONEND
- SCI_SELECTALL
- SCI_LINEFROMPOSITION(int position)
- SCI_POSITIONFROMLINE(int line)
- SCI_GETLINEENDPOSITION(int line)
- SCI_LINELENGTH(int line)
- SCI_GETCOLUMN(int position)
- SCI_FINDCOLUMN(int line, int column)
- SCI_POSITIONFROMPOINT(int x, int y)
- SCI_POSITIONFROMPOINTCLOSE(int x, int - y)
- SCI_POINTXFROMPOSITION(<unused>, int - position)
- SCI_POINTYFROMPOSITION(<unused>, int - position)
- SCI_HIDESELECTION(bool hide)
- SCI_GETSELTEXT(<unused>, char *text)
- SCI_GETCURLINE(int textLen, char *text)
- SCI_SELECTIONISRECTANGLE
- SCI_SETSELECTIONMODE(int mode)
- SCI_GETSELECTIONMODE
- SCI_GETLINESELSTARTPOSITION(int line)
- SCI_GETLINESELENDPOSITION(int line)
- SCI_MOVECARETINSIDEVIEW
- SCI_WORDENDPOSITION(int position, bool - onlyWordCharacters)
- SCI_WORDSTARTPOSITION(int position, bool - onlyWordCharacters)
- SCI_POSITIONBEFORE(int position)
- SCI_POSITIONAFTER(int position)
- SCI_TEXTWIDTH(int styleNumber, const char *text)
- SCI_TEXTHEIGHT(int line)
- SCI_CHOOSECARETX
-
- -

SCI_GETTEXTLENGTH
- SCI_GETLENGTH
- Both these messages return the length of the document in characters.

- -

SCI_GETLINECOUNT
- This returns the number of lines in the document. An empty document contains 1 line. A - document holding only an end of line sequence has 2 lines.

- -

SCI_GETFIRSTVISIBLELINE
- This returns the line number of the first visible line in the Scintilla view. The first line - in the document is numbered 0. The value is a visible line rather than a document line.

- -

SCI_LINESONSCREEN
- This returns the number of complete lines visible on the screen. With a constant line height, - this is the vertical space available divided by the line separation. Unless you arrange to size - your window to an integral number of lines, there may be a partial line visible at the bottom - of the view.

- -

SCI_GETMODIFY
- This returns non-zero if the document is modified and 0 if it is unmodified. The modified - status of a document is determined by the undo position relative to the save point. The save - point is set by SCI_SETSAVEPOINT, - usually when you have saved data to a file.

- -

If you need to be notified when the document becomes modified, Scintilla notifies the - container that it has entered or left the save point with the SCN_SAVEPOINTREACHED and SCN_SAVEPOINTLEFT notification messages.

- -

SCI_SETSEL(int anchorPos, int currentPos)
- This message sets both the anchor and the current position. If currentPos is - negative, it means the end of the document. If anchorPos is negative, it means - remove any selection (i.e. set the anchor to the same position as currentPos). The - caret is scrolled into view after this operation.

- -

SCI_GOTOPOS(int pos)
- This removes any selection, sets the caret at pos and scrolls the view to make - the caret visible, if necessary. It is equivalent to - SCI_SETSEL(pos, pos). The anchor position is set the same as the current - position.

- -

SCI_GOTOLINE(int line)
- This removes any selection and sets the caret at the start of line number line - and scrolls the view (if needed) to make it visible. The anchor position is set the same as the - current position. If line is outside the lines in the document (first line is 0), - the line set is the first or last.

- -

SCI_SETCURRENTPOS(int pos)
- This sets the current position and creates a selection between the anchor and the current - position. The caret is not scrolled into view.

- -

See also: SCI_SCROLLCARET

- -

SCI_GETCURRENTPOS
- This returns the current position.

- -

SCI_SETANCHOR(int pos)
- This sets the anchor position and creates a selection between the anchor position and the - current position. The caret is not scrolled into view.

- -

See also: SCI_SCROLLCARET

- -

SCI_GETANCHOR
- This returns the current anchor position.

- -

SCI_SETSELECTIONSTART(int pos)
- SCI_SETSELECTIONEND(int pos)
- These set the selection based on the assumption that the anchor position is less than the - current position. They do not make the caret visible. The table shows the positions of the - anchor and the current position after using these messages.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- anchorcurrent
SCI_SETSELECTIONSTARTposMax(pos, current)
SCI_SETSELECTIONENDMin(anchor, pos)pos
- -

See also: SCI_SCROLLCARET

- -

SCI_GETSELECTIONSTART
- SCI_GETSELECTIONEND
- These return the start and end of the selection without regard to which end is the current - position and which is the anchor. SCI_GETSELECTIONSTART returns the smaller of the - current position or the anchor position. SCI_GETSELECTIONEND returns the larger of - the two values.

- -

SCI_SELECTALL
- This selects all the text in the document. The current position is not scrolled into view.

- -

SCI_LINEFROMPOSITION(int pos)
- This message returns the line that contains the position pos in the document. The - return value is 0 if pos <= 0. The return value is the last line if - pos is beyond the end of the document.

- -

SCI_POSITIONFROMLINE(int line)
- This returns the document position that corresponds with the start of the line. If - line is negative, the position of the line holding the start of the selection is - returned. If line is greater than the lines in the document, the return value is - -1. If line is equal to the number of lines in the document (i.e. 1 line past the - last line), the return value is the end of the document.

- -

SCI_GETLINEENDPOSITION(int line)
- This returns the position at the end of the line, before any line end characters. If line - is the last line in the document (which does not have any end of line characters), the result is the size of the - document. If line is negative or line >= SCI_GETLINECOUNT(), the result is undefined.

- -

SCI_LINELENGTH(int line)
- This returns the length of the line, including any line end characters. If line - is negative or beyond the last line in the document, the result is 0. If you want the length of - the line not including any end of line characters, use SCI_GETLINEENDPOSITION(line) - SCI_POSITIONFROMLINE(line).

- SCI_GETSELTEXT(<unused>, char *text)
- This copies the currently selected text and a terminating 0 byte to the text - buffer. The buffer must be at least - SCI_GETSELECTIONEND()-SCI_GETSELECTIONSTART()+1 bytes long.
- If the text argument is 0 then the length that should be allocated - to store the entire selection is returned.
- -

See also: SCI_GETCURLINE, SCI_GETLINE, SCI_GETTEXT, SCI_GETSTYLEDTEXT, SCI_GETTEXTRANGE

- -

SCI_GETCURLINE(int textLen, char *text)
- This retrieves the text of the line containing the caret and returns the position within the - line of the caret. Pass in char* text pointing at a buffer large enough to hold - the text you wish to retrieve and a terminating 0 character. - Set textLen to the - length of the buffer which must be at least 1 to hold the terminating 0 character. - If the text argument is 0 then the length that should be allocated - to store the entire current line is returned.

- -

See also: SCI_GETSELTEXT, SCI_GETLINE, SCI_GETTEXT, SCI_GETSTYLEDTEXT, SCI_GETTEXTRANGE

- -

SCI_SELECTIONISRECTANGLE
- This returns 1 if the current selection is in rectangle mode, 0 if not.

- -

SCI_SETSELECTIONMODE(int mode)
- SCI_GETSELECTIONMODE
- The two functions set and get the selection mode, which can be - stream (SC_SEL_STREAM=0) or - rectangular (SC_SEL_RECTANGLE=1) - or by lines (SC_SEL_LINES=2). - When set in these modes, regular caret moves will extend or reduce the selection, - until the mode is cancelled by a call with same value or with SCI_CANCEL. - The get function returns the current mode even if the selection was made by mouse - or with regular extended moves.

- -

SCI_GETLINESELSTARTPOSITION(int line)
- SCI_GETLINESELENDPOSITION(int line)
- Retrieve the position of the start and end of the selection at the given line with - INVALID_POSITION returned if no selection on this line.

- -

SCI_MOVECARETINSIDEVIEW
- If the caret is off the top or bottom of the view, it is moved to the nearest line that is - visible to its current position. Any selection is lost.

- -

SCI_WORDENDPOSITION(int position, bool - onlyWordCharacters)
- SCI_WORDSTARTPOSITION(int position, bool - onlyWordCharacters)
- These messages return the start and end of words using the same definition of words as used - internally within Scintilla. You can set your own list of characters that count as words with - SCI_SETWORDCHARS. The position - sets the start or the search, which is forwards when searching for the end and backwards when - searching for the start.

- -

Set onlyWordCharacters to true (1) to stop searching at the first - non-word character in the search direction. If onlyWordCharacters is - false (0), the first character in the search direction sets the type of the search - as word or non-word and the search stops at the first non-matching character. Searches are also - terminated by the start or end of the document.

- -

If "w" represents word characters and "." represents non-word characters and "|" represents - the position and true or false is the state of - onlyWordCharacters:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Initial stateend, trueend, falsestart, truestart, false
..ww..|..ww....ww..|..ww....ww....|ww....ww..|..ww....ww|....ww..
....ww|ww........wwww|........wwww|........|wwww........|wwww....
..ww|....ww....ww|....ww....ww....|ww....|ww....ww....|ww....ww..
..ww....|ww....ww....ww|....ww....ww|....ww....|ww....ww|....ww..
- -

SCI_POSITIONBEFORE(int position)
- SCI_POSITIONAFTER(int position)
- These messages return the position before and after another position - in the document taking into account the current code page. The minimum - position returned is 0 and the maximum is the last position in the document. - If called with a position within a multi byte character will return the position - of the start/end of that character.

- -

SCI_TEXTWIDTH(int styleNumber, const char *text)
- This returns the pixel width of a string drawn in the given styleNumber which can - be used, for example, to decide how wide to make the line number margin in order to display a - given number of numerals.

- -

SCI_TEXTHEIGHT(int line)
- This returns the height in pixels of a particular line. Currently all lines are the same - height.

- -

SCI_GETCOLUMN(int pos)
- This message returns the column number of a position pos within the document - taking the width of tabs into account. This returns the column number of the last tab on the - line before pos, plus the number of characters between the last tab and - pos. If there are no tab characters on the line, the return value is the number of - characters up to the position on the line. In both cases, double byte characters count as a - single character. This is probably only useful with monospaced fonts.

- -

SCI_FINDCOLUMN(int line, int column)
- This message returns the position of a column on a line - taking the width of tabs into account. It treats a multi-byte character as a single column. - Column numbers, like lines start at 0.

- -

SCI_POSITIONFROMPOINT(int x, int y)
- SCI_POSITIONFROMPOINTCLOSE(int x, int y)
- SCI_POSITIONFROMPOINT finds the closest character position to a point and - SCI_POSITIONFROMPOINTCLOSE is similar but returns -1 if the point is outside the - window or not close to any characters.

- -

SCI_POINTXFROMPOSITION(<unused>, int pos)
- SCI_POINTYFROMPOSITION(<unused>, int pos)
- These messages return the x and y display pixel location of text at position pos - in the document.

- -

SCI_HIDESELECTION(bool hide)
- The normal state is to make the selection visible by drawing it as set by SCI_SETSELFORE and SCI_SETSELBACK. However, if you hide the selection, it - is drawn as normal text.

- -

SCI_CHOOSECARETX
- Scintilla remembers the x value of the last position horizontally moved to explicitly by the - user and this value is then used when moving vertically such as by using the up and down keys. - This message sets the current x position of the caret as the remembered value.

- -

Scrolling and automatic scrolling

- SCI_LINESCROLL(int column, int line)
- SCI_SCROLLCARET
- SCI_SETXCARETPOLICY(int caretPolicy, int - caretSlop)
- SCI_SETYCARETPOLICY(int caretPolicy, int - caretSlop)
- SCI_SETVISIBLEPOLICY(int caretPolicy, int - caretSlop)
- SCI_SETHSCROLLBAR(bool visible)
- SCI_GETHSCROLLBAR
- SCI_SETVSCROLLBAR(bool visible)
- SCI_GETVSCROLLBAR
- SCI_GETXOFFSET
- SCI_SETXOFFSET(int xOffset)
- SCI_SETSCROLLWIDTH(int pixelWidth)
- SCI_GETSCROLLWIDTH
- SCI_SETENDATLASTLINE(bool - endAtLastLine)
- SCI_GETENDATLASTLINE
-
- -

SCI_LINESCROLL(int column, int line)
- This will attempt to scroll the display by the number of columns and lines that you specify. - Positive line values increase the line number at the top of the screen (i.e. they move the text - upwards as far as the user is concerned), Negative line values do the reverse.

- -

The column measure is the width of a space in the default style. Positive values increase - the column at the left edge of the view (i.e. they move the text leftwards as far as the user - is concerned). Negative values do the reverse.

- -

See also: SCI_SETXOFFSET

- -

SCI_SCROLLCARET
- If the current position (this is the caret if there is no selection) is not visible, the view - is scrolled to make it visible according to the current caret policy.

- -

SCI_SETXCARETPOLICY(int caretPolicy, int caretSlop)
- SCI_SETYCARETPOLICY(int caretPolicy, int caretSlop)
- These set the caret policy. The value of caretPolicy is a combination of - CARET_SLOP, CARET_STRICT, CARET_JUMPS and - CARET_EVEN.

- - - - - - - - - - - - - - - - - - - - - - - - - - - -
CARET_SLOPIf set, we can define a slop value: caretSlop. This value defines an - unwanted zone (UZ) where the caret is... unwanted. This zone is defined as a number of - pixels near the vertical margins, and as a number of lines near the horizontal margins. - By keeping the caret away from the edges, it is seen within its context. This makes it - likely that the identifier that the caret is on can be completely seen, and that the - current line is seen with some of the lines following it, which are often dependent on - that line.
CARET_STRICTIf set, the policy set by CARET_SLOP is enforced... strictly. The caret - is centred on the display if caretSlop is not set, and cannot go in the UZ - if caretSlop is set.
CARET_JUMPSIf set, the display is moved more energetically so the caret can move in the same - direction longer before the policy is applied again. '3UZ' notation is used to indicate - three time the size of the UZ as a distance to the margin.
CARET_EVENIf not set, instead of having symmetrical UZs, the left and bottom UZs are extended - up to right and top UZs respectively. This way, we favour the displaying of useful - information: the beginning of lines, where most code reside, and the lines after the - caret, for example, the body of a function.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
slopstrictjumpsevenCaret can go to the marginOn reaching limit (going out of visibility
- or going into the UZ) display is...
0000Yesmoved to put caret on top/on right
0001Yesmoved by one position
0010Yesmoved to put caret on top/on right
0011Yescentred on the caret
01-0Caret is always on top/on right of display-
01-1No, caret is always centred-
1000Yesmoved to put caret out of the asymmetrical UZ
1001Yesmoved to put caret out of the UZ
1010Yesmoved to put caret at 3UZ of the top or right margin
1011Yesmoved to put caret at 3UZ of the margin
11-0Caret is always at UZ of top/right margin-
1101No, kept out of UZmoved by one position
1110No, kept out of UZmoved to put caret at 3UZ of the margin
- -

SCI_SETVISIBLEPOLICY(int caretPolicy, int caretSlop)
- This determines how the vertical positioning is determined when SCI_ENSUREVISIBLEENFORCEPOLICY is - called. It takes VISIBLE_SLOP and VISIBLE_STRICT flags for the policy - parameter. It is similar in operation to SCI_SETYCARETPOLICY(int caretPolicy, int - caretSlop).

- -

SCI_SETHSCROLLBAR(bool visible)
- SCI_GETHSCROLLBAR
- The horizontal scroll bar is only displayed if it is needed for the assumed width. - If you never wish to see it, call - SCI_SETHSCROLLBAR(0). Use SCI_SETHSCROLLBAR(1) to enable it again. - SCI_GETHSCROLLBAR returns the current state. The default state is to display it - when needed. - See also: SCI_SETSCROLLWIDTH.

- -

SCI_SETVSCROLLBAR(bool visible)
- SCI_GETVSCROLLBAR
- By default, the vertical scroll bar is always displayed when required. You can choose to hide - or show it with SCI_SETVSCROLLBAR and get the current state with - SCI_GETVSCROLLBAR.

- -

SCI_SETXOFFSET(int xOffset)
- SCI_GETXOFFSET
- The xOffset is the horizontal scroll position in pixels of the start of the text - view. A value of 0 is the normal position with the first text column visible at the left of the - view.

- -

See also: SCI_LINESCROLL

- -

SCI_SETSCROLLWIDTH(int pixelWidth)
- SCI_GETSCROLLWIDTH
- For performance, Scintilla does not measure the display width of the document to determine - the properties of the horizontal scroll bar. Instead, an assumed width is used. - These messages set and get the document width in pixels assumed by Scintilla. - The default value is 2000.

- -

SCI_SETENDATLASTLINE(bool endAtLastLine)
- SCI_GETENDATLASTLINE
- SCI_SETENDATLASTLINE sets the scroll range so that maximum scroll position has - the last line at the bottom of the view (default). Setting this to false allows - scrolling one page below the last line.

- -

White space

- SCI_SETVIEWWS(int wsMode)
- SCI_GETVIEWWS
- SCI_SETWHITESPACEFORE(bool - useWhitespaceForeColour, int colour)
- SCI_SETWHITESPACEBACK(bool - useWhitespaceBackColour, int colour)
-
- -

SCI_SETVIEWWS(int wsMode)
- SCI_GETVIEWWS
- White space can be made visible which may useful for languages in which white space is - significant, such as Python. Space characters appear as small centred dots and tab characters - as light arrows pointing to the right. There are also ways to control the display of end of line characters. The two messages set and get the - white space display mode. The wsMode argument can be one of:

- - - - - - - - - - - - - - - - - - - - - - - - - - - -
SCWS_INVISIBLE0The normal display mode with white space displayed as an empty background - colour.
SCWS_VISIBLEALWAYS1White space characters are drawn as dots and arrows,
SCWS_VISIBLEAFTERINDENT2White space used for indentation is displayed normally but after the first visible - character, it is shown as dots and arrows.
- -

The effect of using any other wsMode value is undefined.

- -

SCI_SETWHITESPACEFORE<(bool useWhitespaceForeColour, int colour)
- SCI_SETWHITESPACEBACK(bool useWhitespaceBackColour, int colour)
- By default, the colour of visible white space is determined by the lexer in use. The - foreground and/or background colour of all visible white space can be set globally, overriding - the lexer's colours with SCI_SETWHITESPACEFORE and - SCI_SETWHITESPACEBACK.

- -

Cursor

- -

SCI_SETCURSOR(int curType)
- SCI_GETCURSOR
- The cursor is normally chosen in a context sensitive way, so it will be different over the - margin than when over the text. When performing a slow action, you may wish to change to a wait - cursor. You set the cursor type with SCI_SETCURSOR. The curType - argument can be:

- - - - - - - - - - - - - - - - - - - -
SC_CURSORNORMAL-1The normal cursor is displayed.
SC_CURSORWAIT 4The wait cursor is displayed when the mouse is over or owned by the Scintilla - window.
- -

Cursor values 1 through 7 have defined cursors, but only SC_CURSORWAIT is - usefully controllable. Other values of curType cause a pointer to be displayed. - The SCI_GETCURSOR message returns the last cursor type you set, or - SC_CURSORNORMAL (-1) if you have not set a cursor type.

- -

Mouse capture

- -

SCI_SETMOUSEDOWNCAPTURES(bool captures)
- SCI_GETMOUSEDOWNCAPTURES
- When the mouse is pressed inside Scintilla, it is captured so future mouse movement events are - sent to Scintilla. This behavior may be turned off with - SCI_SETMOUSEDOWNCAPTURES(0).

- -

Line endings

- -

Scintilla can interpret any of the three major line end conventions, Macintosh (\r), Unix - (\n) and CP/M / DOS / Windows (\r\n). When the user presses the Enter key, one of these line - end strings is inserted into the buffer. The default is \r\n in Windows and \n in Unix, but - this can be changed with the SCI_SETEOLMODE message. You can also convert the - entire document to one of these line endings with SCI_CONVERTEOLS. Finally, you - can choose to display the line endings with SCI_SETVIEWEOL.

- SCI_SETEOLMODE(int eolMode)
- SCI_GETEOLMODE
- SCI_CONVERTEOLS(int eolMode)
- SCI_SETVIEWEOL(bool visible)
- SCI_GETVIEWEOL
-
- -

SCI_SETEOLMODE(int eolMode)
- SCI_GETEOLMODE
- SCI_SETEOLMODE sets the characters that are added into the document when the user - presses the Enter key. You can set eolMode to one of SC_EOL_CRLF (0), - SC_EOL_CR (1), or SC_EOL_LF (2). The SCI_GETEOLMODE - message retrieves the current state.

- -

SCI_CONVERTEOLS(int eolMode)
- This message changes all the end of line characters in the document to match - eolMode. Valid values are: SC_EOL_CRLF (0), SC_EOL_CR - (1), or SC_EOL_LF (2).

- -

SCI_SETVIEWEOL(bool visible)
- SCI_GETVIEWEOL
- Normally, the end of line characters are hidden, but SCI_SETVIEWEOL allows you to - display (or hide) them by setting visible true (or - false). The visible rendering of the end of line characters is similar to - (CR), (LF), or (CR)(LF). SCI_GETVIEWEOL - returns the current state.

- -

Styling

- -

The styling messages allow you to assign styles to text. The standard Scintilla settings - divide the 8 style bits available for each character into 5 bits (0 to 4 = styles 0 to 31) that set a style and three bits (5 to 7) that - define indicators. You can change the balance between - styles and indicators with SCI_SETSTYLEBITS. If your styling needs can be met by - one of the standard lexers, or if you can write your own, then a lexer is probably the easiest - way to style your document. If you choose to use the container to do the styling you can use - the SCI_SETLEXER command to select - SCLEX_CONTAINER, in which case the container is sent a SCN_STYLENEEDED notification each time text needs styling for display. As another - alternative, you might use idle time to style the document. Even if you use a lexer, you might - use the styling commands to mark errors detected by a compiler. The following commands can be - used.

- SCI_GETENDSTYLED
- SCI_STARTSTYLING(int position, int mask)
- SCI_SETSTYLING(int length, int style)
- SCI_SETSTYLINGEX(int length, const char - *styles)
- SCI_SETLINESTATE(int line, int value)
- SCI_GETLINESTATE(int line)
- SCI_GETMAXLINESTATE
-
- -

SCI_GETENDSTYLED
- Scintilla keeps a record of the last character that is likely to be styled correctly. This is - moved forwards when characters after it are styled and moved backwards if changes are made to - the text of the document before it. Before drawing text, this position is checked to see if any - styling is needed and, if so, a SCN_STYLENEEDED notification message is sent to the - container. The container can send SCI_GETENDSTYLED to work out where it needs to - start styling. Scintilla will always ask to style whole lines.

- -

SCI_STARTSTYLING(int pos, int mask)
- This prepares for styling by setting the styling position pos to start at and a - mask indicating which bits of the style bytes can be set. The mask allows styling - to occur over several passes, with, for example, basic styling done on an initial pass to - ensure that the text of the code is seen quickly and correctly, and then a second slower pass, - detecting syntax errors and using indicators to show where these are. For example, with the - standard settings of 5 style bits and 3 indicator bits, you would use a mask value - of 31 (0x1f) if you were setting text styles and did not want to change the indicators. After - SCI_STARTSTYLING, send multiple SCI_SETSTYLING messages for each - lexical entity to style.

- -

SCI_SETSTYLING(int length, int style)
- This message sets the style of length characters starting at the styling position - and then increases the styling position by length, ready for the next call. If - sCell is the style byte, the operation is:
- if ((sCell & mask) != style) sCell = (sCell & ~mask) | (style & - mask);
-

- -

SCI_SETSTYLINGEX(int length, const char *styles)
- As an alternative to SCI_SETSTYLING, which applies the same style to each byte, - you can use this message which specifies the styles for each of length bytes from - the styling position and then increases the styling position by length, ready for - the next call. The length styling bytes pointed at by styles should - not contain any bits not set in mask.

- -

SCI_SETLINESTATE(int line, int value)
- SCI_GETLINESTATE(int line)
- As well as the 8 bits of lexical state stored for each character there is also an integer - stored for each line. This can be used for longer lived parse states such as what the current - scripting language is in an ASP page. Use SCI_SETLINESTATE to set the integer - value and SCI_GETLINESTATE to get the value.

- -

SCI_GETMAXLINESTATE
- This returns the last line that has any line state.

- -

Style definition

- -

While the style setting messages mentioned above change the style numbers associated with - text, these messages define how those style numbers are interpreted visually. There are 128 - lexer styles that can be set, numbered 0 to STYLEMAX (127). Unless you use SCI_SETSTYLEBITS to change the number - of style bits, styles 0 to 31 are used to set the text attributes. There are also some - predefined numbered styles starting at 32, The following STYLE_* constants are - defined.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
STYLE_DEFAULT32This style defines the attributes that all styles receive when the - SCI_STYLECLEARALL message is used.
STYLE_LINENUMBER33This style sets the attributes of the text used to display line numbers in a line - number margin. The background colour set for this style also sets the background colour - for all margins that do not have any folding mask bits set. That is, any margin for which - mask & SC_MASK_FOLDERS is 0. See SCI_SETMARGINMASKN for more about masks.
STYLE_BRACELIGHT34This style sets the attributes used when highlighting braces with the SCI_BRACEHIGHLIGHT message and - when highlighting the corresponding indentation with SCI_SETHIGHLIGHTGUIDE.
STYLE_BRACEBAD35This style sets the display attributes used when marking an unmatched brace with the - SCI_BRACEBADLIGHT - message.
STYLE_CONTROLCHAR36This style sets the font used when drawing control characters. - Only the font, size, bold, italics, and character set attributes are used and not - the colour attributes. See - also: SCI_SETCONTROLCHARSYMBOL.
STYLE_INDENTGUIDE37This style sets the foreground and background colours used when drawing the - indentation guides.
STYLE_CALLTIP38 Call tips normally use the font attributes defined by STYLE_DEFAULT. - Use of SCI_CALLTIPUSESTYLE - causes call tips to use this style instead. Only the font face name, font size, - foreground and background colours and character set attributes are used.
STYLE_LASTPREDEFINED39To make it easier for client code to discover the range of styles that are - predefined, this is set to the style number of the last predefined style. This is - currently set to 39 and the last style with an identifier is 38, which reserves space - for one future predefined style.
STYLE_MAX127This is not a style but is the number of the maximum style that can be set. Styles - between STYLE_LASTPREDEFINED and STYLE_MAX would be appropriate - if you used SCI_SETSTYLEBITS - to set more than 5 style bits.
- -

For each style you can set the font name, size and use of bold, italic and underline, - foreground and background colour and the character set. You can also choose to hide text with a - given style, display all characters as upper or lower case and fill from the last character on - a line to the end of the line (for embedded languages). There is also an experimental attribute - to make text read-only.

- -

It is entirely up to you how you use styles. If you want to use syntax colouring you might - use style 0 for white space, style 1 for numbers, style 2 for keywords, style 3 for strings, - style 4 for preprocessor, style 5 for operators, and so on.

- SCI_STYLERESETDEFAULT
- SCI_STYLECLEARALL
- SCI_STYLESETFONT(int styleNumber, char - *fontName)
- SCI_STYLESETSIZE(int styleNumber, int - sizeInPoints)
- SCI_STYLESETBOLD(int styleNumber, bool - bold)
- SCI_STYLESETITALIC(int styleNumber, bool - italic)
- SCI_STYLESETUNDERLINE(int styleNumber, bool - underline)
- SCI_STYLESETFORE(int styleNumber, int - colour)
- SCI_STYLESETBACK(int styleNumber, int - colour)
- SCI_STYLESETEOLFILLED(int styleNumber, bool - eolFilled)
- SCI_STYLESETCHARACTERSET(int styleNumber, - int charSet)
- SCI_STYLESETCASE(int styleNumber, int - caseMode)
- SCI_STYLESETVISIBLE(int styleNumber, bool - visible)
- SCI_STYLESETCHANGEABLE(int styleNumber, bool - changeable)
- SCI_STYLESETHOTSPOT(int styleNumber, bool - hotspot)
-
- -

SCI_STYLERESETDEFAULT
- This message resets STYLE_DEFAULT to its state when Scintilla was - initialised.

- -

SCI_STYLECLEARALL
- This message sets all styles to have the same attributes as STYLE_DEFAULT. If you - are setting up Scintilla for syntax colouring, it is likely that the lexical styles you set - will be very similar. One way to set the styles is to:
- 1. Set STYLE_DEFAULT to the common features of all styles.
- 2. Use SCI_STYLECLEARALL to copy this to all styles.
- 3. Set the style attributes that make your lexical styles different.

- -

SCI_STYLESETFONT(int styleNumber, const char *fontName)
- SCI_STYLESETSIZE(int styleNumber, int sizeInPoints)
- SCI_STYLESETBOLD(int styleNumber, bool bold)
- SCI_STYLESETITALIC(int styleNumber, bool italic)
- These messages (plus SCI_STYLESETCHARACTERSET) set the font - attributes that are used to match the fonts you request to those available. The - fontName is a zero terminated string holding the name of a font. Under Windows, - only the first 32 characters of the name are used and the name is not case sensitive. For - internal caching, Scintilla tracks fonts by name and does care about the casing of font names, - so please be consistent. On GTK+ 2.x, either GDK or Pango can be used to display text. - Pango antialiases text, works well with Unicode and is better supported in recent versions of GTK+ - but GDK is faster. - Prepend a '!' character to the font name to use Pango.

- -

SCI_STYLESETUNDERLINE(int styleNumber, bool - underline)
- You can set a style to be underlined. The underline is drawn in the foreground colour. All - characters with a style that includes the underline attribute are underlined, even if they are - white space.

- -

SCI_STYLESETFORE(int styleNumber, int colour)
- SCI_STYLESETBACK(int styleNumber, int colour)
- Text is drawn in the foreground colour. The space in each character cell that is not occupied - by the character is drawn in the background colour.

- -

SCI_STYLESETEOLFILLED(int styleNumber, bool - eolFilled)
- If the last character in the line has a style with this attribute set, the remainder of the - line up to the right edge of the window is filled with the background colour set for the last - character. This is useful when a document contains embedded sections in another language such - as HTML pages with embedded JavaScript. By setting eolFilled to true - and a consistent background colour (different from the background colour set for the HTML - styles) to all JavaScript styles then JavaScript sections will be easily distinguished from - HTML.

- -

SCI_STYLESETCHARACTERSET(int styleNumber, int - charSet)
- You can set a style to use a different character set than the default. The places where such - characters sets are likely to be useful are comments and literal strings. For example, - SCI_STYLESETCHARACTERSET(SCE_C_STRING, SC_CHARSET_RUSSIAN) would ensure that - strings in Russian would display correctly in C and C++ (SCE_C_STRING is the style - number used by the C and C++ lexer to display literal strings; it has the value 6). This - feature works differently on Windows and GTK+.

- -

The character sets supported on Windows are:
- SC_CHARSET_ANSI, SC_CHARSET_ARABIC, SC_CHARSET_BALTIC, - SC_CHARSET_CHINESEBIG5, SC_CHARSET_DEFAULT, - SC_CHARSET_EASTEUROPE, SC_CHARSET_GB2312, - SC_CHARSET_GREEK, SC_CHARSET_HANGUL, SC_CHARSET_HEBREW, - SC_CHARSET_JOHAB, SC_CHARSET_MAC, SC_CHARSET_OEM, - SC_CHARSET_RUSSIAN (code page 1251), - SC_CHARSET_SHIFTJIS, SC_CHARSET_SYMBOL, SC_CHARSET_THAI, - SC_CHARSET_TURKISH, and SC_CHARSET_VIETNAMESE.

- -

The character sets supported on GTK+ are:
- SC_CHARSET_ANSI, SC_CHARSET_CYRILLIC (code page 1251), - SC_CHARSET_EASTEUROPE, - SC_CHARSET_GB2312, SC_CHARSET_HANGUL, - SC_CHARSET_RUSSIAN (KOI8-R), SC_CHARSET_SHIFTJIS, and - SC_CHARSET_8859_15.

- -

SCI_STYLESETCASE(int styleNumber, int caseMode)
- The value of caseMode determines how text is displayed. You can set upper case - (SC_CASE_UPPER, 1) or lower case (SC_CASE_LOWER, 2) or display - normally (SC_CASE_MIXED, 0). This does not change the stored text, only how it is - displayed.

- -

SCI_STYLESETVISIBLE(int styleNumber, bool visible)
- Text is normally visible. However, you can completely hide it by giving it a style with the - visible set to 0. This could be used to hide embedded formatting instructions or - hypertext keywords in HTML or XML.

- -

SCI_STYLESETCHANGEABLE(int styleNumber, bool - changeable)
- This is an experimental and incompletely implemented style attribute. The default setting is - changeable set true but when set false it makes text - read-only. Currently it only stops the caret from being within not-changeable text and does not - yet stop deleting a range that contains not-changeable text.

- -

SCI_STYLESETHOTSPOT(int styleNumber, bool - hotspot)
- This style is used to mark ranges of text that can detect mouse clicks. - The cursor changes to a hand over hotspots, and the foreground, and background colours - may change and an underline appear to indicate that these areas are sensitive to clicking. - This may be used to allow hyperlinks to other documents.

- - SCI_STYLESETHOTSPOT(int styleNumber, bool - hotspot)
- -

Caret, selection, and hotspot styles

- -

The selection is shown by changing the foreground and/or background colours. If one of these - is not set then that attribute is not changed for the selection. The default is to show the - selection by changing the background to light gray and leaving the foreground the same as when - it was not selected. When there is no selection, the current insertion point is marked by the - text caret. This is a vertical line that is normally blinking on and off to attract the users - attention.

- SCI_SETSELFORE(bool useSelectionForeColour, int - colour)
- SCI_SETSELBACK(bool useSelectionBackColour, int - colour)
- SCI_SETSELALPHA(int alpha)
- SCI_GETSELALPHA
- SCI_SETCARETFORE(int colour)
- SCI_GETCARETFORE
- SCI_SETCARETLINEVISIBLE(bool - show)
- SCI_GETCARETLINEVISIBLE
- SCI_SETCARETLINEBACK(int colour)
- SCI_GETCARETLINEBACK
- SCI_SETCARETLINEBACKALPHA(int alpha)
- SCI_GETCARETLINEBACKALPHA
- SCI_SETCARETPERIOD(int milliseconds)
- SCI_GETCARETPERIOD
- SCI_SETCARETWIDTH(int pixels)
- SCI_GETCARETWIDTH
- SCI_SETHOTSPOTACTIVEFORE
- SCI_SETHOTSPOTACTIVEBACK
- SCI_SETHOTSPOTACTIVEUNDERLINE
- SCI_SETHOTSPOTSINGLELINE
- SCI_SETCONTROLCHARSYMBOL(int - symbol)
- SCI_GETCONTROLCHARSYMBOL
- SCI_SETCARETSTICKY
- SCI_GETCARETSTICKY
- SCI_TOGGLECARETSTICKY
-
- -

SCI_SETSELFORE(bool useSelectionForeColour, int colour)
- SCI_SETSELBACK(bool useSelectionBackColour, int colour)
- You can choose to override the default selection colouring with these two messages. The colour - you provide is used if you set useSelection*Colour to true. If it is - set to false, the default colour colouring is used and the colour - argument has no effect.

-

SCI_SETSELALPHA(int alpha)
- SCI_GETSELALPHA
- The selection can be drawn translucently in the selection background colour by - setting an alpha value.

- -

SCI_SETCARETFORE(int colour)
- SCI_GETCARETFORE
- The colour of the caret can be set with SCI_SETCARETFORE and retrieved with - SCI_CETCARETFORE.

- -

SCI_SETCARETLINEVISIBLE(bool show)
- SCI_GETCARETLINEVISIBLE
- SCI_SETCARETLINEBACK(int colour)
- SCI_GETCARETLINEBACK
- SCI_SETCARETLINEBACKALPHA(int alpha)
- SCI_GETCARETLINEBACKALPHA
- You can choose to make the background colour of the line containing the caret different with - these messages. To do this, set the desired background colour with - SCI_SETCARETLINEBACK, then use SCI_SETCARETLINEVISIBLE(true) to - enable the effect. You can cancel the effect with SCI_SETCARETLINEVISIBLE(false). - The two SCI_GETCARET* functions return the state and the colour. This form of - background colouring has highest priority when a line has markers that would otherwise change - the background colour. - The caret line may also be drawn translucently which allows other background colours to show - through. This is done by setting the alpha (translucency) value by calling - SCI_SETCARETLINEBACKALPHA. When the alpha is not SC_ALPHA_NOALPHA, - the caret line is drawn after all other features so will affect the colour of all other features. -

- -

SCI_SETCARETPERIOD(int milliseconds)
- SCI_GETCARETPERIOD
- The rate at which the caret blinks can be set with SCI_SETCARETPERIOD which - determines the time in milliseconds that the caret is visible or invisible before changing - state. Setting the period to 0 stops the caret blinking. The default value is 500 milliseconds. - SCI_GETCARETPERIOD returns the current setting.

- -

SCI_SETCARETWIDTH(int pixels)
- SCI_GETCARETWIDTH
- The width of the caret can be set with SCI_SETCARETWIDTH to a value of 0, 1, 2 or - 3 pixels. The default width is 1 pixel. You can read back the current width with - SCI_GETCARETWIDTH. A width of 0 makes the caret invisible (added at version - 1.50).

- -

SCI_SETHOTSPOTACTIVEFORE(bool useHotSpotForeColour, int colour)
- SCI_SETHOTSPOTACTIVEBACK(bool useHotSpotBackColour, int colour)
- SCI_SETHOTSPOTACTIVEUNDERLINE(bool underline,)
- SCI_SETHOTSPOTSINGLELINE(bool singleLine,)
- While the cursor hovers over text in a style with the hotspot attribute set, - the default colouring can be modified and an underline drawn with these settings. - Single line mode stops a hotspot from wrapping onto next line.

- -

SCI_SETCONTROLCHARSYMBOL(int symbol)
- SCI_GETCONTROLCHARSYMBOL
- By default, Scintilla displays control characters (characters with codes less than 32) in a - rounded rectangle as ASCII mnemonics: "NUL", "SOH", "STX", "ETX", "EOT", "ENQ", "ACK", "BEL", - "BS", "HT", "LF", "VT", "FF", "CR", "SO", "SI", "DLE", "DC1", "DC2", "DC3", "DC4", "NAK", - "SYN", "ETB", "CAN", "EM", "SUB", "ESC", "FS", "GS", "RS", "US". These mnemonics come from the - early days of signaling, though some are still used (LF = Line Feed, BS = Back Space, CR = - Carriage Return, for example).

- -

You can choose to replace these mnemonics by a nominated symbol with an ASCII code in the - range 32 to 255. If you set a symbol value less than 32, all control characters are displayed - as mnemonics. The symbol you set is rendered in the font of the style set for the character. - You can read back the current symbol with the SCI_GETCONTROLCHARSYMBOL message. - The default symbol value is 0.

- -

SCI_SETCARETSTICKY(bool useCaretStickyBehaviour)
- SCI_GETCARETSTICKY
- SCI_TOGGLECARETSTICKY
- These messages set, get or toggle the caretSticky flag which controls when the last position - of the caret on the line is saved. When set to true, the position is not saved when you type - a character, a tab, paste the clipboard content or press backspace.

- -

Margins

- -

There may be up to five margins to the left of the text display, plus a gap either side of - the text. Each margin can be set to display either symbols or line numbers with SCI_SETMARGINTYPEN. The markers - that can be displayed in each margin are set with SCI_SETMARGINMASKN. Any markers not associated with - a visible margin will be displayed as changes in background colour in the text. A width in - pixels can be set for each margin. Margins with a zero width are ignored completely. You can - choose if a mouse click in a margin sends a SCN_MARGINCLICK notification to the container or - selects a line of text.

- -

The margins are numbered 0 to 4. Using a margin number outside the valid range has no - effect. By default, margin 0 is set to display line numbers, but is given a width of 0, so it - is hidden. Margin 1 is set to display non-folding symbols and is given a width of 16 pixels, so - it is visible. Margin 2 is set to display the folding symbols, but is given a width of 0, so it - is hidden. Of course, you can set the margins to be whatever you wish.

- SCI_SETMARGINTYPEN(int margin, int - type)
- SCI_GETMARGINTYPEN(int margin)
- SCI_SETMARGINWIDTHN(int margin, int - pixelWidth)
- SCI_GETMARGINWIDTHN(int margin)
- SCI_SETMARGINMASKN(int margin, int - mask)
- SCI_GETMARGINMASKN(int margin)
- SCI_SETMARGINSENSITIVEN(int margin, bool - sensitive)
- SCI_GETMARGINSENSITIVEN(int - margin)
- SCI_SETMARGINLEFT(<unused>, int - pixels)
- SCI_GETMARGINLEFT
- SCI_SETMARGINRIGHT(<unused>, int - pixels)
- SCI_GETMARGINRIGHT
- SCI_SETFOLDMARGINCOLOUR(bool useSetting, int colour)
- SCI_SETFOLDMARGINHICOLOUR(bool useSetting, int colour)
-
- -

SCI_SETMARGINTYPEN(int margin, int iType)
- SCI_GETMARGINTYPEN(int margin)
- These two routines set and get the type of a margin. The margin argument should be 0, 1, 2, 3 or 4. - You can use the predefined constants SC_MARGIN_SYMBOL (0) and - SC_MARGIN_NUMBER (1) to set a margin as either a line number or a symbol margin. - By convention, margin 0 is used for line numbers and the next two are used for symbols. You can - also use the constants SC_MARGIN_BACK (2) and SC_MARGIN_FORE (3) for - symbol margins that set their background colour to match the STYLE_DEFAULT background and - foreground colours.

- -

SCI_SETMARGINWIDTHN(int margin, int pixelWidth)
- SCI_GETMARGINWIDTHN(int margin)
- These routines set and get the width of a margin in pixels. A margin with zero width is - invisible. By default, Scintilla sets margin 1 for symbols with a width of 16 pixels, so this - is a reasonable guess if you are not sure what would be appropriate. Line number margins widths - should take into account the number of lines in the document and the line number style. You - could use something like SCI_TEXTWIDTH(STYLE_LINENUMBER, "_99999") to get a - suitable width.

- -

SCI_SETMARGINMASKN(int margin, int mask)
- SCI_GETMARGINMASKN(int margin)
- The mask is a 32-bit value. Each bit corresponds to one of 32 logical symbols that can be - displayed in a margin that is enabled for symbols. There is a useful constant, - SC_MASK_FOLDERS (0xFE000000 or -33554432), that is a mask for the 7 logical - symbols used to denote folding. You can assign a wide range of symbols and colours to each of - the 32 logical symbols, see Markers for more information. If (mask - & SC_MASK_FOLDERS)==0, the margin background colour is controlled by style 33 (STYLE_LINENUMBER).

- -

You add logical markers to a line with SCI_MARKERADD. If a line has an associated marker that - does not appear in the mask of any margin with a non-zero width, the marker changes the - background colour of the line. For example, suppose you decide to use logical marker 10 to mark - lines with a syntax error and you want to show such lines by changing the background colour. - The mask for this marker is 1 shifted left 10 times (1<<10) which is 0x400. If you make - sure that no symbol margin includes 0x400 in its mask, any line with the marker gets the - background colour changed.

- -

To set a non-folding margin 1 use SCI_SETMARGINMASKN(1, ~SC_MASK_FOLDERS); to - set a folding margin 2 use SCI_SETMARGINMASKN(2, SC_MASK_FOLDERS). This is the - default set by Scintilla. ~SC_MASK_FOLDERS is 0x1FFFFFF in hexadecimal or 33554431 - decimal. Of course, you may need to display all 32 symbols in a margin, in which case use - SCI_SETMARGINMASKN(margin, -1).

- -

SCI_SETMARGINSENSITIVEN(int margin, bool - sensitive)
- SCI_GETMARGINSENSITIVEN(int margin)
- Each of the five margins can be set sensitive or insensitive to mouse clicks. A click in a - sensitive margin sends a SCN_MARGINCLICK notification to the container. Margins that are not sensitive act as - selection margins which make it easy to select ranges of lines. By default, all margins are - insensitive.

- -

SCI_SETMARGINLEFT(<unused>, int pixels)
- SCI_GETMARGINLEFT
- SCI_SETMARGINRIGHT(<unused>, int pixels)
- SCI_GETMARGINRIGHT
- These messages set and get the width of the blank margin on both sides of the text in pixels. - The default is to one pixel on each side.

- -

SCI_SETFOLDMARGINCOLOUR(bool useSetting, int colour)
- SCI_SETFOLDMARGINHICOLOUR(bool useSetting, int colour)
- These messages allow changing the colour of the fold margin and fold margin highlight. - On Windows the fold margin colour defaults to ::GetSysColor(COLOR_3DFACE) and the fold margin highlight - colour to ::GetSysColor(COLOR_3DHIGHLIGHT).

- -

Other settings

- SCI_SETUSEPALETTE(bool - allowPaletteUse)
- SCI_GETUSEPALETTE
- SCI_SETBUFFEREDDRAW(bool isBuffered)
- SCI_GETBUFFEREDDRAW
- SCI_SETTWOPHASEDRAW(bool twoPhase)
- SCI_GETTWOPHASEDRAW
- SCI_SETCODEPAGE(int codePage)
- SCI_GETCODEPAGE
- SCI_SETWORDCHARS(<unused>, const char - *chars)
- SCI_SETWHITESPACECHARS(<unused>, const char - *chars)
- SCI_SETCHARSDEFAULT
- SCI_GRABFOCUS
- SCI_SETFOCUS(bool focus)
- SCI_GETFOCUS
-
- -

SCI_SETUSEPALETTE(bool allowPaletteUse)
- SCI_GETUSEPALETTE
- On 8 bit displays, which can only display a maximum of 256 colours, the graphics environment - mediates between the colour needs of applications through the use of palettes. On GTK+, - Scintilla always uses a palette.

- -

On Windows, there are some problems with visual flashing when switching between applications - with palettes and it is also necessary for the application containing the Scintilla control to - forward some messages to Scintilla for its palette code to work. Because of this, by default, - the palette is not used and the application must tell Scintilla to use one. If Scintilla is not - using a palette, it will only display in those colours already available, which are often the - 20 Windows system colours.

- -

To see an example of how to enable palette support in Scintilla, search the text of SciTE - for WM_PALETTECHANGED, WM_QUERYNEWPALETTE and - SCI_SETUSEPALETTE. The Windows messages to forward are:
- WM_SYSCOLORCHANGE, WM_PALETTECHANGED, - WM_QUERYNEWPALETTE (should return TRUE).

- -

To forward a message (WM_XXXX, WPARAM, LPARAM) to Scintilla, you can use - SendMessage(hScintilla, WM_XXXX, WPARAM, LPARAM) where hScintilla is - the handle to the Scintilla window you created as your editor.

- -

While we are on the subject of forwarding messages in Windows, the top level window should - forward any WM_SETTINGCHANGE messages to Scintilla (this is currently used to - collect changes to mouse settings, but could be used for other user interface items in the - future).

- -

SCI_SETBUFFEREDDRAW(bool isBuffered)
- SCI_GETBUFFEREDDRAW
- These messages turn buffered drawing on or off and report the buffered drawing state. Buffered - drawing draws each line into a bitmap rather than directly to the screen and then copies the - bitmap to the screen. This avoids flickering although it does take longer. The default is for - drawing to be buffered.

- -

SCI_SETTWOPHASEDRAW(bool twoPhase)
- SCI_GETTWOPHASEDRAW
- Two phase drawing is a better but slower way of drawing text. - In single phase drawing each run of characters in one style is drawn along with its background. - If a character overhangs the end of a run, such as in "V_" where the - "V" is in a different style from the "_", then this can cause the right hand - side of the "V" to be overdrawn by the background of the "_" which - cuts it off. Two phase drawing - fixes this by drawing all the backgrounds first and then drawing the text in - transparent mode. Two phase drawing may flicker more than single phase - unless buffered drawing is on. The default is for drawing to be two phase.

- -

SCI_SETCODEPAGE(int codePage)
- SCI_GETCODEPAGE
- Scintilla has some support for Japanese, Chinese and Korean DBCS. Use this message with - codePage set to the code page number to set Scintilla to use code page information - to ensure double byte characters are treated as one character rather than two. This also stops - the caret from moving between the two bytes in a double byte character. - Do not use this message to choose between different single byte character sets: it doesn't do that. - Call with - codePage set to zero to disable DBCS support. The default is - SCI_SETCODEPAGE(0).

- -

Code page SC_CP_UTF8 (65001) sets Scintilla into Unicode mode with the document - treated as a sequence of characters expressed in UTF-8. The text is converted to the platform's - normal Unicode encoding before being drawn by the OS and thus can display Hebrew, Arabic, - Cyrillic, and Han characters. Languages which can use two characters stacked vertically in one - horizontal space, such as Thai, will mostly work but there are some issues where the characters - are drawn separately leading to visual glitches. Bi-directional text is not supported. Characters outside the - Basic Multilingual Plane are unlikely to work.

- -

On Windows, code page can be set to 932 (Japanese Shift-JIS), 936 (Simplified Chinese GBK), - 949 (Korean Unified Hangul Code), 950 (Traditional Chinese Big5), or 1361 (Korean Johab) - although these may require installation of language specific support.

- -

On GTK+, code page SC_CP_DBCS (1) sets Scintilla into - multi byte character mode as is required for Japanese language processing with - the EUC encoding.

- -

For GTK+ 1.x, the locale should be set to a Unicode locale with a call similar to - setlocale(LC_CTYPE, "en_US.UTF-8"). Fonts with an "iso10646" registry - should be used in a font set. Font sets are a comma separated list of partial font - specifications where each partial font specification can be in the form: - foundry-fontface-charsetregistry-encoding or - fontface-charsetregistry-encoding or foundry-fontface or - fontface. An example is "misc-fixed-iso10646-1,*". - On GTK+ 2.x, Pango fonts should be used rather than font sets.

- -

Setting codePage to a non-zero value that is not SC_CP_UTF8 is - operating system dependent.

- -

SCI_SETWORDCHARS(<unused>, const char *chars)
- Scintilla has several functions that operate on words, which are defined to be contiguous - sequences of characters from a particular set of characters. This message defines which - characters are members of that set. The character sets are set to default values before processing this - function. - For example, if you don't allow '_' in your set of characters - use:
- SCI_SETWORDCHARS(0, "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789");

- -

SCI_SETWHITESPACECHARS(<unused>, const char *chars)
- Similar to SCI_SETWORDCHARS, this message allows the user to define which chars Scintilla considers - as whitespace. Setting the whitespace chars allows the user to fine-tune Scintilla's behaviour doing - such things as moving the cursor to the start or end of a word; for example, by defining punctuation chars - as whitespace, they will be skipped over when the user presses ctrl+left or ctrl+right. - This function should be called after SCI_SETWORDCHARS as it will - reset the whitespace characters to the default set.

-

SCI_SETCHARSDEFAULT
- Use the default sets of word and whitespace characters. This sets whitespace to space, tab and other - characters with codes less than 0x20, with word characters set to alphanumeric and '_'. -

- - -

SCI_GRABFOCUS
- SCI_SETFOCUS(bool focus)
- SCI_GETFOCUS
- Scintilla can be told to grab the focus with this message. This is needed more on GTK+ where - focus handling is more complicated than on Windows.

- -

The internal focus flag can be set with SCI_SETFOCUS. This is used by clients - that have complex focus requirements such as having their own window that gets the real focus - but with the need to indicate that Scintilla has the logical focus.

- -

Brace highlighting

- SCI_BRACEHIGHLIGHT(int pos1, int - pos2)
- SCI_BRACEBADLIGHT(int pos1)
- SCI_BRACEMATCH(int position, int - maxReStyle)
-
- -

SCI_BRACEHIGHLIGHT(int pos1, int pos2)
- Up to two characters can be highlighted in a 'brace highlighting style', which is defined as - style number STYLE_BRACELIGHT (34). - If you have enabled indent guides, you may also wish to highlight the indent that corresponds - with the brace. You can locate the column with SCI_GETCOLUMN and highlight the indent with SCI_SETHIGHLIGHTGUIDE.

- -

SCI_BRACEBADLIGHT(int pos1)
- If there is no matching brace then the brace - badlighting style, style BRACE_BADLIGHT (35), can be used to show the brace - that is unmatched. Using a position of INVALID_POSITION (-1) removes the - highlight.

- -

SCI_BRACEMATCH(int pos, int maxReStyle)
- The SCI_BRACEMATCH message finds a corresponding matching brace given - pos, the position of one brace. The brace characters handled are '(', ')', '[', - ']', '{', '}', '<', and '>'. The search is forwards from an opening brace and backwards - from a closing brace. If the character at position is not a brace character, or a matching - brace cannot be found, the return value is -1. Otherwise, the return value is the position of - the matching brace.

- -

A match only occurs if the style of the matching brace is the same as the starting brace or - the matching brace is beyond the end of styling. Nested braces are handled correctly. The - maxReStyle parameter must currently be 0 - it may be used in the future to limit - the length of brace searches.

- -

Tabs and Indentation Guides

- -

Indentation (the white space at the start of a line) is often used by programmers to clarify - program structure and in some languages, for example Python, it may be part of the language - syntax. Tabs are normally used in editors to insert a tab character or to pad text with spaces - up to the next tab.

- -

Scintilla can be set to treat tab and backspace in the white space at the start of a line in - a special way: inserting a tab indents the line to the next indent position rather than just - inserting a tab at the current character position and backspace unindents the line rather than - deleting a character. Scintilla can also display indentation guides (vertical lines) to help - you to generate code.

- SCI_SETTABWIDTH(int widthInChars)
- SCI_GETTABWIDTH
- SCI_SETUSETABS(bool useTabs)
- SCI_GETUSETABS
- SCI_SETINDENT(int widthInChars)
- SCI_GETINDENT
- SCI_SETTABINDENTS(bool tabIndents)
- SCI_GETTABINDENTS
- SCI_SETBACKSPACEUNINDENTS(bool - bsUnIndents)
- SCI_GETBACKSPACEUNINDENTS
- SCI_SETLINEINDENTATION(int line, int - indentation)
- SCI_GETLINEINDENTATION(int line)
- SCI_GETLINEINDENTPOSITION(int - line)
- SCI_SETINDENTATIONGUIDES(bool - view)
- SCI_GETINDENTATIONGUIDES
- SCI_SETHIGHLIGHTGUIDE(int column)
- SCI_GETHIGHLIGHTGUIDE
-
- -

SCI_SETTABWIDTH(int widthInChars)
- SCI_GETTABWIDTH
- SCI_SETTABWIDTH sets the size of a tab as a multiple of the size of a space - character in STYLE_DEFAULT. The default tab width is 8 characters. There are no - limits on tab sizes, but values less than 1 or large values may have undesirable effects.

- -

SCI_SETUSETABS(bool useTabs)
- SCI_GETUSETABS
- SCI_SETUSETABS determines whether indentation should be created out of a mixture - of tabs and spaces or be based purely on spaces. Set useTabs to false - (0) to create all tabs and indents out of spaces. The default is true. You can use - SCI_GETCOLUMN to get the column of a - position taking the width of a tab into account.

- SCI_SETINDENT(int widthInChars)
- SCI_GETINDENT
- SCI_SETINDENT sets the size of indentation in terms of the width of a space in STYLE_DEFAULT. If you set a width of - 0, the indent size is the same as the tab size. There are no limits on indent sizes, but values - less than 0 or large values may have undesirable effects.
-
- - -

SCI_SETTABINDENTS(bool tabIndents)
- SCI_GETTABINDENTS
- SCI_SETBACKSPACEUNINDENTS(bool bsUnIndents)
- SCI_GETBACKSPACEUNINDENTS
-

- -

Inside indentation white space, the tab and backspace keys can be made to indent and - unindent rather than insert a tab character or delete a character with the - SCI_SETTABINDENTS and SCI_SETBACKSPACEUNINDENTS functions.

- -

SCI_SETLINEINDENTATION(int line, int indentation)
- SCI_GETLINEINDENTATION(int line)
- The amount of indentation on a line can be discovered and set with - SCI_GETLINEINDENTATION and SCI_SETLINEINDENTATION. The indentation is - measured in character columns, which correspond to the width of space characters.

- -

SCI_GETLINEINDENTPOSITION(int line)
- This returns the position at the end of indentation of a line.

- -

SCI_SETINDENTATIONGUIDES(bool view)
- SCI_GETINDENTATIONGUIDES
- Indentation guides are dotted vertical lines that appear within indentation white space every - indent size columns. They make it easy to see which constructs line up especially when they - extend over multiple pages. Style STYLE_INDENTGUIDE (37) is used to specify the - foreground and background colour of the indentation guides.

- -

SCI_SETHIGHLIGHTGUIDE(int column)
- SCI_GETHIGHLIGHTGUIDE
- When brace highlighting occurs, the indentation guide corresponding to the braces may be - highlighted with the brace highlighting style, STYLE_BRACELIGHT (34). Set column to 0 to - cancel this highlight.

- -

Markers

- -

There are 32 markers, numbered 0 to 31, and you can assign any combination of them to each - line in the document. Markers appear in the selection - margin to the left of the text. If the selection margin is set to zero width, the - background colour of the whole line is changed instead. Marker numbers 25 to 31 are used by - Scintilla in folding margins, and have symbolic names of the form SC_MARKNUM_*, - for example SC_MARKNUM_FOLDEROPEN.

- -

Marker numbers 0 to 24 have no pre-defined function; you can use them to mark syntax errors - or the current point of execution, break points, or whatever you need marking. If you do not - need folding, you can use all 32 for any purpose you wish.

- -

Each marker number has a symbol associated with it. You can also set the foreground and - background colour for each marker number, so you can use the same symbol more than once with - different colouring for different uses. Scintilla has a set of symbols you can assign - (SC_MARK_*) or you can use characters. By default, all 32 markers are set to - SC_MARK_CIRCLE with a black foreground and a white background.

- -

The markers are drawn in the order of their numbers, so higher numbered markers appear on - top of lower numbered ones. Markers try to move with their text by tracking where the start of - their line moves. When a line is deleted, its markers are combined, by an OR - operation, with the markers of the previous line.

- SCI_MARKERDEFINE(int markerNumber, int - markerSymbols)
- SCI_MARKERDEFINEPIXMAP(int markerNumber, - const char *xpm)
- SCI_MARKERSETFORE(int markerNumber, int - colour)
- SCI_MARKERSETBACK(int markerNumber, int - colour)
- SCI_MARKERSETALPHA(int markerNumber, int - alpha)
- SCI_MARKERADD(int line, int markerNumber)
- SCI_MARKERADDSET(int line, int markerMask)
- SCI_MARKERDELETE(int line, int - markerNumber)
- SCI_MARKERDELETEALL(int markerNumber)
- SCI_MARKERGET(int line)
- SCI_MARKERNEXT(int lineStart, int - markerMask)
- SCI_MARKERPREVIOUS(int lineStart, int - markerMask)
- SCI_MARKERLINEFROMHANDLE(int - handle)
- SCI_MARKERDELETEHANDLE(int handle)
-
- -

SCI_MARKERDEFINE(int markerNumber, int markerSymbols)
- This message associates a marker number in the range 0 to 31 with one of the marker symbols or - an ASCII character. The general-purpose marker symbols currently available are:
- SC_MARK_CIRCLE, SC_MARK_ROUNDRECT, SC_MARK_ARROW, - SC_MARK_SMALLRECT, SC_MARK_SHORTARROW, SC_MARK_EMPTY, - SC_MARK_ARROWDOWN, SC_MARK_MINUS, SC_MARK_PLUS, - SC_MARK_ARROWS, SC_MARK_DOTDOTDOT, SC_MARK_EMPTY, - SC_MARK_BACKGROUND and SC_MARK_FULLRECT.

- -

The SC_MARK_BACKGROUND marker changes the background colour of the line only. - The SC_MARK_FULLRECT symbol mirrors this, changing only the margin background colour. - The SC_MARK_EMPTY symbol is invisible, allowing client code to track the movement - of lines. You would also use it if you changed the folding style and wanted one or more of the - SC_FOLDERNUM_* markers to have no associated symbol.

- -

There are also marker symbols designed for use in the folding margin in a flattened tree - style.
- SC_MARK_BOXMINUS, SC_MARK_BOXMINUSCONNECTED, - SC_MARK_BOXPLUS, SC_MARK_BOXPLUSCONNECTED, - SC_MARK_CIRCLEMINUS, SC_MARK_CIRCLEMINUSCONNECTED, - SC_MARK_CIRCLEPLUS, SC_MARK_CIRCLEPLUSCONNECTED, - SC_MARK_LCORNER, SC_MARK_LCORNERCURVE, SC_MARK_TCORNER, - SC_MARK_TCORNERCURVE, and SC_MARK_VLINE.

- Characters can be used as markers by adding the ASCII value of the character to - SC_MARK_CHARACTER (10000). For example, to use 'A' (ASCII code 65) as marker - number 1 use:
- SCI_MARKERDEFINE(1, SC_MARK_CHARACTER+65).
- -

The marker numbers SC_MARKNUM_FOLDER and SC_MARKNUM_FOLDEROPEN are - used for showing that a fold is present and open or closed. Any symbols may be assigned for - this purpose although the (SC_MARK_PLUS, SC_MARK_MINUS) pair or the - (SC_MARK_ARROW, SC_MARK_ARROWDOWN) pair are good choices. As well as - these two, more assignments are needed for the flattened tree style: - SC_MARKNUM_FOLDEREND, SC_MARKNUM_FOLDERMIDTAIL, - SC_MARKNUM_FOLDEROPENMID, SC_MARKNUM_FOLDERSUB, and - SC_MARKNUM_FOLDERTAIL. The bits used for folding are specified by - SC_MASK_FOLDERS, which is commonly used as an argument to - SCI_SETMARGINMASKN when defining a margin to be used for folding.

- -

This table shows which SC_MARK_* symbols should be assigned to which - SC_MARKNUM_* marker numbers to obtain four folding styles: Arrow (mimics - Macintosh), plus/minus shows folded lines as '+' and opened folds as '-', Circle tree, Box - tree.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
SC_MARKNUM_*ArrowPlus/minusCircle treeBox tree
FOLDEROPENARROWDOWNMINUSCIRCLEMINUSBOXMINUS
FOLDERARROWPLUSCIRCLEPLUSBOXPLUS
FOLDERSUBEMPTYEMPTYVLINEVLINE
FOLDERTAILEMPTYEMPTYLCORNERCURVELCORNER
FOLDERENDEMPTYEMPTYCIRCLEPLUSCONNECTEDBOXPLUSCONNECTED
FOLDEROPENMIDEMPTYEMPTYCIRCLEMINUSCONNECTEDBOXMINUSCONNECTED
FOLDERMIDTAILEMPTYEMPTYTCORNERCURVETCORNER
- -

SCI_MARKERDEFINEPIXMAP(int markerNumber, const char - *xpm)
- Markers can be set to pixmaps with this message. The XPM format is used for the pixmap and it - is limited to pixmaps that use one character per pixel. The data should be null terminated. - Pixmaps use the SC_MARK_PIXMAP marker symbol. You can find the full description of - the XPM format here.

- -

SCI_MARKERSETFORE(int markerNumber, int colour)
- SCI_MARKERSETBACK(int markerNumber, int colour)
- These two messages set the foreground and background colour of a marker number.

-

SCI_MARKERSETALPHA(int markerNumber, int alpha)
- When markers are drawn in the content area, either because there is no margin for them or - they are of SC_MARK_BACKGROUND type, they may be drawn translucently by - setting an alpha value.

- -

SCI_MARKERADD(int line, int markerNumber)
- This message adds marker number markerNumber to a line. The message returns -1 if - this fails (illegal line number, out of memory) or it returns a marker handle number that - identifies the added marker. You can use this returned handle with SCI_MARKERLINEFROMHANDLE to find where a - marker is after moving or combining lines and with SCI_MARKERDELETEHANDLE to delete the marker - based on its handle. The message does not check the value of markerNumber, nor does it - check if the line already contains the marker.

- -

SCI_MARKERADDSET(int line, int markerMask)
- This message can add one or more markers to a line with a single call, specified in the same "one-bit-per-marker" 32-bit integer format returned by - SCI_MARKERGET - (and used by the mask-based marker search functions - SCI_MARKERNEXT and - SCI_MARKERPREVIOUS). - As with - SCI_MARKERADD, no check is made - to see if any of the markers are already present on the targeted line.

- -

SCI_MARKERDELETE(int line, int markerNumber)
- This searches the given line number for the given marker number and deletes it if it is - present. If you added the same marker more than once to the line, this will delete one copy - each time it is used. If you pass in a marker number of -1, all markers are deleted from the - line.

- -

SCI_MARKERDELETEALL(int markerNumber)
- This removes markers of the given number from all lines. If markerNumber is -1, it deletes all - markers from all lines.

- -

SCI_MARKERGET(int line)
- This returns a 32-bit integer that indicates which markers were present on the line. Bit 0 is - set if marker 0 is present, bit 1 for marker 1 and so on.

- -

SCI_MARKERNEXT(int lineStart, int markerMask)
- SCI_MARKERPREVIOUS(int lineStart, int markerMask)
- These messages search efficiently for lines that include a given set of markers. The search - starts at line number lineStart and continues forwards to the end of the file - (SCI_MARKERNEXT) or backwards to the start of the file - (SCI_MARKERPREVIOUS). The markerMask argument should have one bit set - for each marker you wish to find. Set bit 0 to find marker 0, bit 1 for marker 1 and so on. The - message returns the line number of the first line that contains one of the markers in - markerMask or -1 if no marker is found.

- -

SCI_MARKERLINEFROMHANDLE(int markerHandle)
- The markerHandle argument is an identifier for a marker returned by SCI_MARKERADD. This function searches - the document for the marker with this handle and returns the line number that contains it or -1 - if it is not found.

- -

SCI_MARKERDELETEHANDLE(int markerHandle)
- The markerHandle argument is an identifier for a marker returned by SCI_MARKERADD. This function searches - the document for the marker with this handle and deletes the marker if it is found.

- -

Indicators

- -

By default, Scintilla organizes the style byte associated with each text byte as 5 bits of - style information (for 32 styles) and 3 bits of indicator information for 3 independent - indicators so that, for example, syntax errors, deprecated names and bad indentation could all - be displayed at once. Indicators may be displayed as simple underlines, squiggly underlines, a - line of small 'T' shapes, a line of diagonal hatching, a strike-out or a rectangle around the text.

- -

The indicators are set using SCI_STARTSTYLING with a INDICS_MASK mask - and SCI_SETSTYLING with the values - INDIC0_MASK, INDIC1_MASK and INDIC2_MASK.

- -

If you are using indicators in a buffer that has a lexer active - (see SCI_SETLEXER), - you must save lexing state information before setting any indicators and restore it afterwards. - Use SCI_GETENDSTYLED - to retrieve the current "styled to" position and - SCI_STARTSTYLING - to reset the styling position and mask (0x1f in the default layout of 5 style bits and 3 indicator bits) - when you are done.

- -

The number of bits used for styles can be altered with SCI_SETSTYLEBITS from 0 to 7 bits. The remaining bits - can be used for indicators, so there can be from 1 to 8 indicators. However, the - INDIC*_MASK constants defined in Scintilla.h all assume 5 bits of - styling information and 3 indicators. If you use a different arrangement, you must define your - own constants.

- -

The SCI_INDIC* messages allow you to get and set the visual appearance of the - indicators. They all use an indicatorNumber argument in the range 0 to 7 to set - the indicator to style. With the default settings, only indicators 0, 1 and 2 will have any - visible effect.

- SCI_INDICSETSTYLE(int indicatorNumber, int - indicatorStyle)
- SCI_INDICGETSTYLE(int indicatorNumber)
- SCI_INDICSETFORE(int indicatorNumber, int - colour)
- SCI_INDICGETFORE(int indicatorNumber)
-
- -

SCI_INDICSETSTYLE(int indicatorNumber, int - indicatorStyle)
- SCI_INDICGETSTYLE(int indicatorNumber)
- These two messages set and get the style for a particular indicator. The indicator styles - currently available are:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
SymbolValueVisual effect
INDIC_PLAIN0Underlined with a single, straight line.
INDIC_SQUIGGLE1A squiggly underline.
INDIC_TT2A line of small T shapes.
INDIC_DIAGONAL3Diagonal hatching.
INDIC_STRIKE4Strike out.
INDIC_HIDDEN5An indicator with no visual effect.
INDIC_BOX6A rectangle around the text.
INDIC_ROUNDBOX7A rectangle with rounded corners around the text using translucent drawing with the - interior more transparent than the border.
- -

The default indicator styles are equivalent to:
- SCI_INDICSETSTYLE(0, INDIC_SQUIGGLE);
- SCI_INDICSETSTYLE(1, INDIC_TT);
- SCI_INDICSETSTYLE(2, INDIC_PLAIN);

- -

SCI_INDICSETFORE(int indicatorNumber, int colour)
- SCI_INDICGETFORE(int indicatorNumber)
- These two messages set and get the colour used to draw an indicator. The default indicator - colours are equivalent to:
- SCI_INDICSETFORE(0, 0x007f00); (dark green)
- SCI_INDICSETFORE(1, 0xff0000); (light blue)
- SCI_INDICSETFORE(2, 0x0000ff); (light red)

- -

Autocompletion

- -

Autocompletion displays a list box showing likely identifiers based upon the user's typing. - The user chooses the currently selected item by pressing the tab character or another character - that is a member of the fillup character set defined with SCI_AUTOCSETFILLUPS. - Autocompletion is triggered by your application. For example, in C if you detect that the user - has just typed fred. you could look up fred, and if it has a known - list of members, you could offer them in an autocompletion list. Alternatively, you could - monitor the user's typing and offer a list of likely items once their typing has narrowed down - the choice to a reasonable list. As yet another alternative, you could define a key code to - activate the list.

- -

When the user makes a selection from the list the container is sent a SCN_AUTOCSELECTION notification message. On return from the notification Scintilla will insert - the selected text unless the autocompletion list has been cancelled, for example by the container sending - SCI_AUTOCCANCEL.

- -

To make use of autocompletion you must monitor each character added to the document. See - SciTEBase::CharAdded() in SciTEBase.cxx for an example of autocompletion.

- SCI_AUTOCSHOW(int lenEntered, const char - *list)
- SCI_AUTOCCANCEL
- SCI_AUTOCACTIVE
- SCI_AUTOCPOSSTART
- SCI_AUTOCCOMPLETE
- SCI_AUTOCSTOPS(<unused>, const char - *chars)
- SCI_AUTOCSETSEPARATOR(char - separator)
- SCI_AUTOCGETSEPARATOR
- SCI_AUTOCSELECT(<unused>, const char - *select)
- SCI_AUTOCGETCURRENT
- SCI_AUTOCSETCANCELATSTART(bool - cancel)
- SCI_AUTOCGETCANCELATSTART
- SCI_AUTOCSETFILLUPS(<unused>, const char - *chars)
- SCI_AUTOCSETCHOOSESINGLE(bool - chooseSingle)
- SCI_AUTOCGETCHOOSESINGLE
- SCI_AUTOCSETIGNORECASE(bool - ignoreCase)
- SCI_AUTOCGETIGNORECASE
- SCI_AUTOCSETAUTOHIDE(bool autoHide)
- SCI_AUTOCGETAUTOHIDE
- SCI_AUTOCSETDROPRESTOFWORD(bool - dropRestOfWord)
- SCI_AUTOCGETDROPRESTOFWORD
- SCI_REGISTERIMAGE
- SCI_CLEARREGISTEREDIMAGES
- SCI_AUTOCSETTYPESEPARATOR(char separatorCharacter)
- SCI_AUTOCGETTYPESEPARATOR
- SCI_AUTOCSETMAXHEIGHT(int rowCount)
- SCI_AUTOCGETMAXHEIGHT
- SCI_AUTOCSETMAXWIDTH(int characterCount)
- SCI_AUTOCGETMAXWIDTH
-
- -

SCI_AUTOCSHOW(int lenEntered, const char *list)
- This message causes a list to be displayed. lenEntered is the number of - characters of the word already entered and list is the list of words separated by - separator characters. The initial separator character is a space but this can be set or got - with SCI_AUTOCSETSEPARATOR - and SCI_AUTOCGETSEPARATOR.

- -

The list of words should be in sorted order. If set to ignore case mode with SCI_AUTOCSETIGNORECASE, then - strings are matched after being converted to upper case. One result of this is that the list - should be sorted with the punctuation characters '[', '\', ']', '^', '_', and '`' sorted after - letters.

- -

SCI_AUTOCCANCEL
- This message cancels any displayed autocompletion list. When in autocompletion mode, the list - should disappear when the user types a character that can not be part of the autocompletion, - such as '.', '(' or '[' when typing an identifier. A set of characters that will cancel - autocompletion can be specified with SCI_AUTOCSTOPS.

- -

SCI_AUTOCACTIVE
- This message returns non-zero if there is an active autocompletion list and zero if there is - not.

- -

SCI_AUTOCPOSSTART
- This returns the value of the current position when SCI_AUTOCSHOW started display - of the list.

- -

SCI_AUTOCCOMPLETE
- This message triggers autocompletion. This has the same effect as the tab key.

- -

SCI_AUTOCSTOPS(<unused>, const char *chars)
- The chars argument is a string containing a list of characters that will - automatically cancel the autocompletion list. When you start the editor, this list is - empty.

- -

SCI_AUTOCSETSEPARATOR(char separator)
- SCI_AUTOCGETSEPARATOR
- These two messages set and get the separator character used to separate words in the - SCI_AUTOCSHOW list. The default is the space character.

- -

SCI_AUTOCSELECT(<unused>, const char *select)
- SCI_AUTOCGETCURRENT
- This message selects an item in the autocompletion list. It searches the list of words for the - first that matches select. By default, comparisons are case sensitive, but you can - change this with SCI_AUTOCSETIGNORECASE. The match is character - by character for the length of the select string. That is, if select is "Fred" it - will match "Frederick" if this is the first item in the list that begins with "Fred". If an - item is found, it is selected. If the item is not found, the autocompletion list closes if - auto-hide is true (see SCI_AUTOCSETAUTOHIDE).
- The current selection can be retrieved with SCI_AUTOCGETCURRENT -

- -

SCI_AUTOCSETCANCELATSTART(bool cancel)
- SCI_AUTOCGETCANCELATSTART
- The default behavior is for the list to be cancelled if the caret moves before the location it - was at when the list was displayed. By calling this message with a false argument, - the list is not cancelled until the caret moves before the first character of the word being - completed.

- -

SCI_AUTOCSETFILLUPS(<unused>, const char *chars)
- If a fillup character is typed with an autocompletion list active, the currently selected item - in the list is added into the document, then the fillup character is added. Common fillup - characters are '(', '[' and '.' but others are possible depending on the language. By default, - no fillup characters are set.

- -

SCI_AUTOCSETCHOOSESINGLE(bool chooseSingle)
- SCI_AUTOCGETCHOOSESINGLE
- If you use SCI_AUTOCSETCHOOSESINGLE(1) and a list has only one item, it is - automatically added and no list is displayed. The default is to display the list even if there - is only a single item.

- -

SCI_AUTOCSETIGNORECASE(bool ignoreCase)
- SCI_AUTOCGETIGNORECASE
- By default, matching of characters to list members is case sensitive. These messages let you - set and get case sensitivity.

- -

SCI_AUTOCSETAUTOHIDE(bool autoHide)
- SCI_AUTOCGETAUTOHIDE
- By default, the list is cancelled if there are no viable matches (the user has typed - characters that no longer match a list entry). If you want to keep displaying the original - list, set autoHide to false. This also effects SCI_AUTOCSELECT.

- -

SCI_AUTOCSETDROPRESTOFWORD(bool dropRestOfWord)
- SCI_AUTOCGETDROPRESTOFWORD
- When an item is selected, any word characters following the caret are first erased if - dropRestOfWord is set true. The default is false.

- -

- SCI_REGISTERIMAGE(int type, const char *xpmData)
- SCI_CLEARREGISTEREDIMAGES
- SCI_AUTOCSETTYPESEPARATOR(char separatorCharacter)
- SCI_AUTOCGETTYPESEPARATOR
- - Autocompletion list items may display an image as well as text. Each image is first registered with an integer - type. Then this integer is included in the text of the list separated by a '?' from the text. For example, - "fclose?2 fopen" displays image 2 before the string "fclose" and no image before "fopen". - The images are in XPM format as is described for - SCI_MARKERDEFINEPIXMAP - The set of registered images can be cleared with SCI_CLEARREGISTEREDIMAGES and the '?' separator changed - with SCI_AUTOCSETTYPESEPARATOR. -

- -

- SCI_AUTOCSETMAXHEIGHT(int rowCount)
- SCI_AUTOCGETMAXHEIGHT
- - Get or set the maximum number of rows that will be visible in an autocompletion list. If there are more rows in the list, then a vertical - scrollbar is shown. The default is 5. -

- -

- SCI_AUTOCSETMAXWIDTH(int characterCount)
- SCI_AUTOCGETMAXWIDTH
- - Get or set the maximum width of an autocompletion list expressed as the number of characters in the longest item that will be totally visible. - If zero (the default) then the list's width is calculated to fit the item with the most characters. Any items that cannot be fully displayed within - the available width are indicated by the presence of ellipsis. -

- -

User lists

- -

User lists use the same internal mechanisms as autocompletion lists, and all the calls - listed for autocompletion work on them; you cannot display a user list at the same time as an - autocompletion list is active. They differ in the following respects:

- -

o The SCI_AUTOCSETCHOOSESINGLE message has no - effect.
- o When the user makes a selection you are sent a SCN_USERLISTSELECTION notification message rather than SCN_AUTOCSELECTION.

- -

BEWARE: if you have set fillup characters or stop characters, these will still be active - with the user list, and may result in items being selected or the user list cancelled due to - the user typing into the editor.

- -

SCI_USERLISTSHOW(int listType, const char *list)
- The listType parameter is returned to the container as the wParam - field of the SCNotification - structure. It must be greater than 0 as this is how Scintilla tells the difference between an - autocompletion list and a user list. If you have different types of list, for example a list of - buffers and a list of macros, you can use listType to tell which one has returned - a selection.

- -

Call tips

- -

Call tips are small windows displaying the arguments to a function and are displayed after - the user has typed the name of the function. They normally display characters using the font - facename, size and character set defined by - STYLE_DEFAULT. You can choose to - use STYLE_CALLTIP to define the - facename, size, foreground and background colours and character set with - SCI_CALLTIPUSESTYLE. - This also enables support for Tab characters. - - There is some interaction between call tips and autocompletion lists in that showing a - call tip cancels any active autocompletion list, and vice versa.

- -

Call tips can highlight part of the text within them. You could use this to highlight the - current argument to a function by counting the number of commas (or whatever separator your - language uses). See SciTEBase::CharAdded() in SciTEBase.cxx for an - example of call tip use.

- -

The mouse may be clicked on call tips and this causes a - SCN_CALLTIPCLICK - notification to be sent to the container. Small up an down arrows may be displayed within - a call tip by, respectively, including the characters '\001', or '\002'. This is useful - for showing that there are overloaded variants of one function name and that the user can - click on the arrows to cycle through the overloads.

- -

Alternatively, call tips can be displayed when you leave the mouse pointer for a while over - a word in response to the SCN_DWELLSTART notification and cancelled in response to SCN_DWELLEND. This method could be used in a debugger to give - the value of a variable, or during editing to give information about the word under the - pointer.

- SCI_CALLTIPSHOW(int posStart, const char - *definition)
- SCI_CALLTIPCANCEL
- SCI_CALLTIPACTIVE
- SCI_CALLTIPPOSSTART
- SCI_CALLTIPSETHLT(int highlightStart, int - highlightEnd)
- SCI_CALLTIPSETBACK(int colour)
- SCI_CALLTIPSETFORE(int colour)
- SCI_CALLTIPSETFOREHLT(int colour)
- SCI_CALLTIPUSESTYLE(int tabsize)
-
- -

SCI_CALLTIPSHOW(int posStart, const char *definition)
- This message starts the process by displaying the call tip window. If a call tip is already - active, this has no effect.
- posStart is the position in the document at which to align the call tip. The call - tip text is aligned to start 1 line below this character unless you have included up and/or - down arrows in the call tip text in which case the tip is aligned to the right-hand edge of - the rightmost arrow. The assumption is that you will start the text with something like - "\001 1 of 3 \002".
- definition is the call tip text. This can contain multiple lines separated by - '\n' (Line Feed, ASCII code 10) characters. Do not include '\r' (Carriage Return, ASCII - code 13), as this will most likely print as an empty box. '\t' (Tab, ASCII code 9) is - supported if you set a tabsize with - SCI_CALLTIPUSESTYLE.

- -

SCI_CALLTIPCANCEL
- This message cancels any displayed call tip. Scintilla will also cancel call tips for you if - you use any keyboard commands that are not compatible with editing the argument list of a - function.

- -

SCI_CALLTIPACTIVE
- This returns 1 if a call tip is active and 0 if it is not active.

- -

SCI_CALLTIPPOSSTART
- This message returns the value of the current position when SCI_CALLTIPSHOW - started to display the tip.

- -

SCI_CALLTIPSETHLT(int hlStart, int hlEnd)
- This sets the region of the call tips text to display in a highlighted style. - hlStart is the zero-based index into the string of the first character to - highlight and hlEnd is the index of the first character after the highlight. - hlEnd must be greater than hlStart; hlEnd-hlStart is the - number of characters to highlight. Highlights can extend over line ends if this is - required.

- -

Unhighlighted text is drawn in a mid gray. Selected text is drawn in a dark blue. The - background is white. These can be changed with - SCI_CALLTIPSETBACK, - SCI_CALLTIPSETFORE, and - SCI_CALLTIPSETFOREHLT. -

- -

SCI_CALLTIPSETBACK(int colour)
- The background colour of call tips can be set with this message; the default colour is white. - It is not a good idea to set a dark colour as the background as the default colour for normal - calltip text is mid gray and the defaultcolour for highlighted text is dark blue. This also - sets the background colour of STYLE_CALLTIP.

- -

SCI_CALLTIPSETFORE(int colour)
- The colour of call tip text can be set with this message; the default colour is mid gray. - This also sets the foreground colour of STYLE_CALLTIP.

- -

SCI_CALLTIPSETFOREHLT(int colour)
- The colour of highlighted call tip text can be set with this message; the default colour - is dark blue.

- -

SCI_CALLTIPUSESTYLE(int tabsize)
- This message changes the style used for call tips from STYLE_DEFAULT to - STYLE_CALLTIP and sets a tab size in screen pixels. If tabsize is - less than 1, Tab characters are not treated specially. Once this call has been used, the - call tip foreground and background colours are also taken from the style.

- - -

Keyboard commands

- -

To allow the container application to perform any of the actions available to the user with - keyboard, all the keyboard actions are messages. They do not take any parameters. These - commands are also used when redefining the key bindings with the SCI_ASSIGNCMDKEY message.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
SCI_LINEDOWNSCI_LINEDOWNEXTENDSCI_LINEDOWNRECTEXTENDSCI_LINESCROLLDOWN
SCI_LINEUPSCI_LINEUPEXTENDSCI_LINEUPRECTEXTENDSCI_LINESCROLLUP
SCI_PARADOWNSCI_PARADOWNEXTENDSCI_PARAUPSCI_PARAUPEXTEND
SCI_CHARLEFTSCI_CHARLEFTEXTENDSCI_CHARLEFTRECTEXTEND
SCI_CHARRIGHTSCI_CHARRIGHTEXTENDSCI_CHARRIGHTRECTEXTEND
SCI_WORDLEFTSCI_WORDLEFTEXTENDSCI_WORDRIGHTSCI_WORDRIGHTEXTEND
SCI_WORDLEFTENDSCI_WORDLEFTENDEXTENDSCI_WORDRIGHTENDSCI_WORDRIGHTENDEXTEND
SCI_WORDPARTLEFTSCI_WORDPARTLEFTEXTENDSCI_WORDPARTRIGHTSCI_WORDPARTRIGHTEXTEND
SCI_HOMESCI_HOMEEXTEND[SCI_HOMERECTEXTEND]
SCI_HOMEDISPLAYSCI_HOMEDISPLAYEXTENDSCI_HOMEWRAPSCI_HOMEWRAPEXTEND
SCI_VCHOMESCI_VCHOMEEXTENDSCI_VCHOMERECTEXTEND
SCI_VCHOMEWRAPSCI_VCHOMEWRAPEXTEND
SCI_LINEENDSCI_LINEENDEXTENDSCI_LINEENDRECTEXTEND
SCI_LINEENDDISPLAYSCI_LINEENDDISPLAYEXTENDSCI_LINEENDWRAPSCI_LINEENDWRAPEXTEND
SCI_DOCUMENTSTARTSCI_DOCUMENTSTARTEXTENDSCI_DOCUMENTENDSCI_DOCUMENTENDEXTEND
SCI_PAGEUPSCI_PAGEUPEXTENDSCI_PAGEUPRECTEXTEND
SCI_PAGEDOWNSCI_PAGEDOWNEXTENDSCI_PAGEDOWNRECTEXTEND
SCI_STUTTEREDPAGEUPSCI_STUTTEREDPAGEUPEXTEND
SCI_STUTTEREDPAGEDOWNSCI_STUTTEREDPAGEDOWNEXTEND
SCI_DELETEBACKSCI_DELETEBACKNOTLINESCI_DELWORDLEFTSCI_DELWORDRIGHT
SCI_DELLINELEFTSCI_DELLINERIGHTSCI_LINEDELETE
SCI_LINECUTSCI_LINECOPYSCI_LINETRANSPOSESCI_LINEDUPLICATE
SCI_LOWERCASESCI_UPPERCASESCI_CANCELSCI_EDITTOGGLEOVERTYPE
SCI_NEWLINESCI_FORMFEEDSCI_TABSCI_BACKTAB
SCI_SELECTIONDUPLICATE
- -

The SCI_*EXTEND messages extend the selection.

- -

The SCI_*RECTEXTEND messages extend the rectangular selection - (and convert regular selection to rectangular one, if any).

- -

The SCI_WORDPART* commands are used to move between word segments marked by - capitalisation (aCamelCaseIdentifier) or underscores (an_under_bar_ident).

- -

The SCI_HOME* commands move the caret to the start of the line, while the - SCI_VCHOME*commands move the caret to the first non-blank character of the line - (ie. just after the indentation) unless it is already there; in this case, it acts as SCI_HOME*.

- -

The SCI_[HOME|LINEEND]DISPLAY* commands are used when in line wrap mode to - allow movement to the start or end of display lines as opposed to the normal - SCI_[HOME|LINEEND] commands which move to the start or end of document lines.

- -

The SCI_[[VC]HOME|LINEEND]WRAP* commands are like their namesakes - SCI_[[VC]HOME|LINEEND]* except they behave differently when word-wrap is enabled: - They go first to the start / end of the display line, like SCI_[HOME|LINEEND]DISPLAY*, - but if the cursor is already at the point, it goes on to the start or end of the document line, - as appropriate for SCI_[[VC]HOME|LINEEND]*. -

- -

Key bindings

- -

There is a default binding of keys to commands that is defined in the Scintilla source in - the file KeyMap.cxx by the constant KeyMap::MapDefault[]. This table - maps key definitions to SCI_* messages with no parameters (mostly the keyboard commands discussed above, but any Scintilla - command that has no arguments can be mapped). You can change the mapping to suit your own - requirements.

- SCI_ASSIGNCMDKEY(int keyDefinition, int - sciCommand)
- SCI_CLEARCMDKEY(int keyDefinition)
- SCI_CLEARALLCMDKEYS
- SCI_NULL
-
- -

keyDefinition
- A key definition contains the key code in the low 16-bits and the key modifiers in the high - 16-bits. To combine keyCode and keyMod set:
-
- keyDefinition = keyCode + (keyMod << 16)

- -

The key code is a visible or control character or a key from the SCK_* - enumeration, which contains:
- SCK_ADD, SCK_BACK, SCK_DELETE, SCK_DIVIDE, - SCK_DOWN, SCK_END, SCK_ESCAPE, SCK_HOME, - SCK_INSERT, SCK_LEFT, SCK_NEXT (Page Down), - SCK_PRIOR (Page Up), SCK_RETURN, SCK_RIGHT, - SCK_SUBTRACT, SCK_TAB, and SCK_UP.

- -

The modifiers are a combination of zero or more of SCMOD_ALT, - SCMOD_CTRL, and SCMOD_SHIFT. If you are building a table, you might - want to use SCMOD_NORM, which has the value 0, to mean no modifiers.

- -

SCI_ASSIGNCMDKEY(int keyDefinition, int sciCommand)
- This assigns the given key definition to a Scintilla command identified by - sciCommand. sciCommand can be any SCI_* command that has - no arguments.

- -

SCI_CLEARCMDKEY(int keyDefinition)
- This makes the given key definition do nothing by assigning the action SCI_NULL - to it.

- -

SCI_CLEARALLCMDKEYS
- This command removes all keyboard command mapping by setting an empty mapping table.

- -

SCI_NULL
- The SCI_NULL does nothing and is the value assigned to keys that perform no - action. SCI_NULL ensures that keys do not propagate to the parent window as that may - cause focus to move. If you want the standard platform behaviour use the constant 0 instead.

- -

Popup edit menu

- -

SCI_USEPOPUP(bool bEnablePopup)
- Clicking the wrong button on the mouse pops up a short default editing menu. This may be - turned off with SCI_USEPOPUP(0). If you turn it off, context menu commands (in - Windows, WM_CONTEXTMENU) will not be handled by Scintilla, so the parent of the - Scintilla window will have the opportunity to handle the message.

- -

Macro recording

- -

Start and stop macro recording mode. In macro recording mode, actions are reported to the - container through SCN_MACRORECORD - notifications. It is then up to the container to - record these actions for future replay.

- -

SCI_STARTRECORD
- SCI_STOPRECORD
- These two messages turn macro recording on and off.

- -

Printing

- -

On Windows SCI_FORMATRANGE can be used to draw the text onto a display context - which can include a printer display context. Printed output shows text styling as on the - screen, but it hides all margins except a line number margin. All special marker effects are - removed and the selection and caret are hidden.

- SCI_FORMATRANGE(bool bDraw, RangeToFormat - *pfr)
- SCI_SETPRINTMAGNIFICATION(int - magnification)
- SCI_GETPRINTMAGNIFICATION
- SCI_SETPRINTCOLOURMODE(int mode)
- SCI_GETPRINTCOLOURMODE
- SCI_SETPRINTWRAPMODE
- SCI_GETPRINTWRAPMODE
-
- -

SCI_FORMATRANGE(bool bDraw, RangeToFormat *pfr)
- This call allows Windows users to render a range of text into a device context. If you use - this for printing, you will probably want to arrange a page header and footer; Scintilla does - not do this for you. See SciTEWin::Print() in SciTEWinDlg.cxx for an - example. Each use of this message renders a range of text into a rectangular area and returns - the position in the document of the next character to print.

- -

bDraw controls if any output is done. Set this to false if you are paginating - (for example, if you use this with MFC you will need to paginate in - OnBeginPrinting() before you output each page.

-
-struct RangeToFormat {
-    SurfaceID hdc;        // The HDC (device context) we print to
-    SurfaceID hdcTarget;  // The HDC we use for measuring (may be same as hdc)
-    PRectangle rc;        // Rectangle in which to print
-    PRectangle rcPage;    // Physically printable page size
-    CharacterRange chrg;  // Range of characters to print
-};
-
- -

hdc and hdcTarget should both be set to the device context handle - of the output device (usually a printer). If you print to a metafile these will not be the same - as Windows metafiles (unlike extended metafiles) do not implement the full API for returning - information. In this case, set hdcTarget to the screen DC.
- rcPage is the rectangle {0, 0, maxX, maxY} where maxX+1 - and maxY+1 are the number of physically printable pixels in x and y.
- rc is the rectangle to render the text in (which will, of course, fit within the - rectangle defined by rcPage).
- chrg.cpMin and chrg.cpMax define the start position and maximum - position of characters to output. All of each line within this character range is drawn.

- -

When printing, the most tedious part is always working out what the margins should be to - allow for the non-printable area of the paper and printing a header and footer. If you look at - the printing code in SciTE, you will find that most of it is taken up with this. The loop that - causes Scintilla to render text is quite simple if you strip out all the margin, non-printable - area, header and footer code.

- -

SCI_SETPRINTMAGNIFICATION(int magnification)
- SCI_GETPRINTMAGNIFICATION
- SCI_GETPRINTMAGNIFICATION lets you to print at a different size than the screen - font. magnification is the number of points to add to the size of each screen - font. A value of -3 or -4 gives reasonably small print. You can get this value with - SCI_GETPRINTMAGNIFICATION.

- -

SCI_SETPRINTCOLOURMODE(int mode)
- SCI_GETPRINTCOLOURMODE
- These two messages set and get the method used to render coloured text on a printer that is - probably using white paper. It is especially important to consider the treatment of colour if - you use a dark or black screen background. Printing white on black uses up toner and ink very - many times faster than the other way around. You can set the mode to one of:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
SymbolValuePurpose
SC_PRINT_NORMAL0Print using the current screen colours. This is the default.
SC_PRINT_INVERTLIGHT1If you use a dark screen background this saves ink by inverting the light value of - all colours and printing on a white background.
SC_PRINT_BLACKONWHITE2Print all text as black on a white background.
SC_PRINT_COLOURONWHITE3Everything prints in its own colour on a white background.
SC_PRINT_COLOURONWHITEDEFAULTBG4Everything prints in its own colour on a white background except that line numbers - use their own background colour.
- -

SCI_SETPRINTWRAPMODE(int wrapMode)
- SCI_GETPRINTWRAPMODE
- These two functions get and set the printer wrap mode. wrapMode can be - set to SC_WRAP_NONE (0), SC_WRAP_WORD (1) or - SC_WRAP_CHAR (2). The default is - SC_WRAP_WORD, which wraps printed output so that all characters fit - into the print rectangle. If you set SC_WRAP_NONE, each line of text - generates one line of output and the line is truncated if it is too long to fit - into the print area.
- SC_WRAP_WORD tries to wrap only between words as indicated by - white space or style changes although if a word is longer than a line, it will be wrapped before - the line end. SC_WRAP_CHAR is preferred to - SC_WRAP_WORD for Asian languages where there is no white space - between words.

- -

Direct access

- SCI_GETDIRECTFUNCTION
- SCI_GETDIRECTPOINTER
-
- -

On Windows, the message-passing scheme used to communicate between the container and - Scintilla is mediated by the operating system SendMessage function and can lead to - bad performance when calling intensively. To avoid this overhead, Scintilla provides messages - that allow you to call the Scintilla message function directly. The code to do this in C/C++ is - of the form:

-
-#include "Scintilla.h"
-SciFnDirect pSciMsg = (SciFnDirect)SendMessage(hSciWnd, SCI_GETDIRECTFUNCTION, 0, 0);
-sptr_t pSciWndData = (sptr_t)SendMessage(hSciWnd, SCI_GETDIRECTPOINTER, 0, 0);
-
-// now a wrapper to call Scintilla directly
-sptr_t CallScintilla(unsigned int iMessage, uptr_t wParam, sptr_t lParam){
-    return pSciMsg(pSciWndData, iMessage, wParam, lParam);
-}
-
- -

SciFnDirect, sptr_t and uptr_t are declared in - Scintilla.h. hSciWnd is the window handle returned when you created - the Scintilla window.

- -

While faster, this direct calling will cause problems if performed from a different thread - to the native thread of the Scintilla window in which case SendMessage(hSciWnd, SCI_*, - wParam, lParam) should be used to synchronize with the window's thread.

- -

This feature also works on GTK+ but has no significant impact on speed.

- -

From version 1.47 on Windows, Scintilla exports a function called - Scintilla_DirectFunction that can be used the same as the function returned by - SCI_GETDIRECTFUNCTION. This saves you the call to - SCI_GETDIRECTFUNCTION and the need to call Scintilla indirectly via the function - pointer.

- -

SCI_GETDIRECTFUNCTION
- This message returns the address of the function to call to handle Scintilla messages without - the overhead of passing through the Windows messaging system. You need only call this once, - regardless of the number of Scintilla windows you create.

- -

SCI_GETDIRECTPOINTER
- This returns a pointer to data that identifies which Scintilla window is in use. You must call - this once for each Scintilla window you create. When you call the direct function, you must - pass in the direct pointer associated with the target window.

- -

Multiple views

- -

A Scintilla window and the document that it displays are separate entities. When you create - a new window, you also create a new, empty document. Each document has a reference count that - is initially set to 1. The document also has a list of the Scintilla windows that are linked to - it so when any window changes the document, all other windows in which it appears are notified - to cause them to update. The system is arranged in this way so that you can work with many - documents in a single Scintilla window and so you can display a single document in multiple - windows (for use with splitter windows).

- -

Although these messages use document *pDoc, to ensure compatibility with future - releases of Scintilla you should treat pDoc as an opaque void*. That - is, you can use and store the pointer as described in this section but you should not - dereference it.

- SCI_GETDOCPOINTER
- SCI_SETDOCPOINTER(<unused>, document - *pDoc)
- SCI_CREATEDOCUMENT
- SCI_ADDREFDOCUMENT(<unused>, document - *pDoc)
- SCI_RELEASEDOCUMENT(<unused>, document - *pDoc)
-
- -

SCI_GETDOCPOINTER
- This returns a pointer to the document currently in use by the window. It has no other - effect.

- -

SCI_SETDOCPOINTER(<unused>, document *pDoc)
- This message does the following:
- 1. It removes the current window from the list held by the current document.
- 2. It reduces the reference count of the current document by 1.
- 3. If the reference count reaches 0, the document is deleted.
- 4. pDoc is set as the new document for the window.
- 5. If pDoc was 0, a new, empty document is created and attached to the - window.
- 6. If pDoc was not 0, its reference count is increased by 1.

- -

SCI_CREATEDOCUMENT
- This message creates a new, empty document and returns a pointer to it. This document is not - selected into the editor and starts with a reference count of 1. This means that you have - ownership of it and must either reduce its reference count by 1 after using - SCI_SETDOCPOINTER so that the Scintilla window owns it or you must make sure that - you reduce the reference count by 1 with SCI_RELEASEDOCUMENT before you close the - application to avoid memory leaks.

- -

SCI_ADDREFDOCUMENT(<unused>, document *pDoc)
- This increases the reference count of a document by 1. If you want to replace the current - document in the Scintilla window and take ownership of the current document, for example if you - are editing many documents in one window, do the following:
- 1. Use SCI_GETDOCPOINTER to get a pointer to the document, - pDoc.
- 2. Use SCI_ADDREFDOCUMENT(0, pDoc) to increment the reference count.
- 3. Use SCI_SETDOCPOINTER(0, pNewDoc) to set a different document or - SCI_SETDOCPOINTER(0, 0) to set a new, empty document.

- -

SCI_RELEASEDOCUMENT(<unused>, document *pDoc)
- This message reduces the reference count of the document identified by pDoc. pDoc - must be the result of SCI_GETDOCPOINTER or SCI_CREATEDOCUMENT and - must point at a document that still exists. If you call this on a document with a reference - count of 1 that is still attached to a Scintilla window, bad things will happen. To keep the - world spinning in its orbit you must balance each call to SCI_CREATEDOCUMENT or - SCI_ADDREFDOCUMENT with a call to SCI_RELEASEDOCUMENT.

- -

Folding

- -

The fundamental operation in folding is making lines invisible or visible. Line visibility - is a property of the view rather than the document so each view may be displaying a different - set of lines. From the point of view of the user, lines are hidden and displayed using fold - points. Generally, the fold points of a document are based on the hierarchical structure of the - document contents. In Python, the hierarchy is determined by indentation and in C++ by brace - characters. This hierarchy can be represented within a Scintilla document object by attaching a - numeric "fold level" to each line. The fold level is most easily set by a lexer, but you can - also set it with messages.

- -

It is up to your code to set the connection between user actions and folding and unfolding. - The best way to see how this is done is to search the SciTE source code for the messages used - in this section of the documentation and see how they are used. You will also need to use - markers and a folding margin to complete your folding implementation. - The "fold" property should be set to "1" with - SCI_SETPROPERTY("fold", "1") to enable folding.

- SCI_VISIBLEFROMDOCLINE(int - docLine)
- SCI_DOCLINEFROMVISIBLE(int - displayLine)
- SCI_SHOWLINES(int lineStart, int lineEnd)
- SCI_HIDELINES(int lineStart, int lineEnd)
- SCI_GETLINEVISIBLE(int line)
- SCI_SETFOLDLEVEL(int line, int level)
- SCI_GETFOLDLEVEL(int line)
- SCI_SETFOLDFLAGS(int flags)
- SCI_GETLASTCHILD(int line, int level)
- SCI_GETFOLDPARENT(int line)
- SCI_SETFOLDEXPANDED(int line, bool - expanded)
- SCI_GETFOLDEXPANDED(int line)
- SCI_TOGGLEFOLD(int line)
- SCI_ENSUREVISIBLE(int line)
- SCI_ENSUREVISIBLEENFORCEPOLICY(int - line)
-
- -

SCI_VISIBLEFROMDOCLINE(int docLine)
- When some lines are folded, then a particular line in the document may be displayed at a - different position to its document position. If no lines are folded, this message returns - docLine. Otherwise, this returns the display line (counting the very first visible - line as 0). The display line of an invisible line is the same as the previous visible line. The - display line number of the first line in the document is 0. If there is folding and - docLine is outside the range of lines in the document, the return value is -1. - Lines can occupy more than one display line if they wrap.

- -

SCI_DOCLINEFROMVISIBLE(int displayLine)
- When some lines are hidden, then a particular line in the document may be displayed at a - different position to its document position. This message returns the document line number that - corresponds to a display line (counting the display line of the first line in the document as - 0). If displayLine is less than or equal to 0, the result is 0. If - displayLine is greater than or equal to the number of displayed lines, the result - is the number of lines in the document.

- -

SCI_SHOWLINES(int lineStart, int lineEnd)
- SCI_HIDELINES(int lineStart, int lineEnd)
- SCI_GETLINEVISIBLE(int line)
- The first two messages mark a range of lines as visible or invisible and then redraw the - display. The third message reports on the visible state of a line and returns 1 if it is - visible and 0 if it is not visible. These messages have no effect on fold levels or fold - flags.

- -

SCI_SETFOLDLEVEL(int line, int level)
- SCI_GETFOLDLEVEL(int line)
- These two messages set and get a 32-bit value that contains the fold level of a line and some - flags associated with folding. The fold level is a number in the range 0 to - SC_FOLDLEVELNUMBERMASK (4095). However, the initial fold level is set to - SC_FOLDLEVELBASE (1024) to allow unsigned arithmetic on folding levels. There are - two addition flag bits. SC_FOLDLEVELWHITEFLAG indicates that the line is blank and - allows it to be treated slightly different then its level may indicate. For example, blank - lines should generally not be fold points and will be considered part of the preceding section even though - they may have a lesser fold level. - SC_FOLDLEVELHEADERFLAG indicates that - the line is a header (fold point).

- -

Use SCI_GETFOLDLEVEL(line) & SC_FOLDLEVELNUMBERMASK to get the fold level - of a line. Likewise, use SCI_GETFOLDLEVEL(line) & SC_FOLDLEVEL*FLAG to get the - state of the flags. To set the fold level you must or in the associated flags. For instance, to - set the level to thisLevel and mark a line as being a fold point use: - SCI_SETFOLDLEVEL(line, thisLevel | SC_FOLDLEVELHEADERFLAG).

- If you use a lexer, you should not need to use SCI_SETFOLDLEVEL as this is far - better handled by the lexer. You will need to use SCI_GETFOLDLEVEL to decide how - to handle user folding requests. If you do change the fold levels, the folding margin will - update to match your changes. - -

SCI_SETFOLDFLAGS(int flags)
- In addition to showing markers in the folding margin, you can indicate folds to the user by - drawing lines in the text area. The lines are drawn in the foreground colour set for STYLE_DEFAULT. Bits set in - flags determine where folding lines are drawn:
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ValueEffect
1Experimental - draw boxes if expanded
2Draw above if expanded
4Draw above if not expanded
8Draw below if expanded
16Draw below if not expanded
64display hexadecimal fold levels in line margin to aid debugging of - folding. This feature needs to be redesigned to be sensible.
- -

This message causes the display to redraw.

- -

SCI_GETLASTCHILD(int startLine, int level)
- This message searches for the next line after startLine, that has a folding level - that is less than or equal to level and then returns the previous line number. If - you set level to -1, level is set to the folding level of line - startLine. If from is a fold point, SCI_GETLASTCHILD(from, - -1) returns the last line that would be in made visible or hidden by toggling the fold - state.

- -

SCI_GETFOLDPARENT(int startLine)
- This message returns the line number of the first line before startLine that is - marked as a fold point with SC_FOLDLEVELHEADERFLAG and has a fold level less than - the startLine. If no line is found, or if the header flags and fold levels are - inconsistent, the return value is -1.

- -

SCI_TOGGLEFOLD(int line)
- Each fold point may be either expanded, displaying all its child lines, or contracted, hiding - all the child lines. This message toggles the folding state of the given line as long as it has - the SC_FOLDLEVELHEADERFLAG set. This message takes care of folding or expanding - all the lines that depend on the line. The display updates after this message.

- -

SCI_SETFOLDEXPANDED(int line, bool expanded)
- SCI_GETFOLDEXPANDED(int line)
- These messages set and get the expanded state of a single line. The set message has no effect - on the visible state of the line or any lines that depend on it. It does change the markers in - the folding margin. If you ask for the expansion state of a line that is outside the document, - the result is false (0).

- -

If you just want to toggle the fold state of one line and handle all the lines that are - dependent on it, it is much easier to use SCI_TOGGLEFOLD. You would use the - SCI_SETFOLDEXPANDED message to process many folds without updating the display - until you had finished. See SciTEBase::FoldAll() and - SciTEBase::Expand() for examples of the use of these messages.

- -

SCI_ENSUREVISIBLE(int line)
- SCI_ENSUREVISIBLEENFORCEPOLICY(int line)
- A line may be hidden because more than one of its parent lines is contracted. Both these - message travels up the fold hierarchy, expanding any contracted folds until they reach the top - level. The line will then be visible. If you use SCI_ENSUREVISIBLEENFORCEPOLICY, - the vertical caret policy set by SCI_SETVISIBLEPOLICY is then applied.

- -

Line wrapping

- - SCI_SETWRAPMODE(int wrapMode)
- SCI_GETWRAPMODE
- SCI_SETWRAPVISUALFLAGS(int wrapVisualFlags)
- SCI_GETWRAPVISUALFLAGS
- SCI_SETWRAPSTARTINDENT(int indent)
- SCI_GETWRAPSTARTINDENT
- SCI_SETLAYOUTCACHE(int cacheMode)
- SCI_GETLAYOUTCACHE
- SCI_LINESSPLIT(int pixelWidth)
- SCI_LINESJOIN
- SCI_WRAPCOUNT(int docLine)
-
- -

By default, Scintilla does not wrap lines of text. If you enable line wrapping, lines wider - than the window width are continued on the following lines. Lines are broken after space or tab - characters or between runs of different styles. If this is not possible because a word in one - style is wider than the window then the break occurs after the last character that completely - fits on the line. The horizontal scroll bar does not appear when wrap mode is on.

- -

For wrapped lines Scintilla can draw visual flags (little arrows) at end of a a subline of a - wrapped line and at begin of the next subline. These can be enabled individually, but if Scintilla - draws the visual flag at begin of the next subline this subline will be indented by one char. - Independent from drawing a visual flag at the begin the subline can have an indention.

- -

Much of the time used by Scintilla is spent on laying out and drawing text. The same text - layout calculations may be performed many times even when the data used in these calculations - does not change. To avoid these unnecessary calculations in some circumstances, the line layout - cache can store the results of the calculations. The cache is invalidated whenever the - underlying data, such as the contents or styling of the document changes. Caching the layout of - the whole document has the most effect, making dynamic line wrap as much as 20 times faster but - this requires 7 times the memory required by the document contents plus around 80 bytes per - line.

- -

Wrapping is not performed immediately there is a change but is delayed until the display - is redrawn. This delay improves peformance by allowing a set of changes to be performed - and then wrapped and displayed once. Because of this, some operations may not occur as - expected. If a file is read and the scroll position moved to a particular line in the text, - such as occurs when a container tries to restore a previous editing session, then - the scroll position will have been determined before wrapping so an unexpected range - of text will be displayed. To scroll to the position correctly, delay the scroll until the - wrapping has been performed by waiting for an initial - SCN_PAINTED notification.

- -

SCI_SETWRAPMODE(int wrapMode)
- SCI_GETWRAPMODE
- Set wrapMode to SC_WRAP_WORD (1) to enable wrapping - on word boundaries, SC_WRAP_CHAR (2) to enable wrapping - between any characters, and to SC_WRAP_NONE (0) to disable line - wrapping. SC_WRAP_CHAR is preferred to - SC_WRAP_WORD for Asian languages where there is no white space - between words.

- - -

SCI_SETWRAPVISUALFLAGS(int wrapVisualFlags)
- SCI_GETWRAPVISUALFLAGS
- You can enable the drawing of visual flags to indicate a line is wrapped. Bits set in - wrapVisualFlags determine which visual flags are drawn. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
SymbolValueEffect
SC_WRAPVISUALFLAG_NONE0No visual flags
SC_WRAPVISUALFLAG_END1Visual flag at end of subline of a wrapped line.
SC_WRAPVISUALFLAG_START2Visual flag at begin of subline of a wrapped line.
- Subline is indented by at least 1 to make room for the flag.
-
- -

SCI_SETWRAPVISUALFLAGSLOCATION(int wrapVisualFlagsLocation)
- SCI_GETWRAPVISUALFLAGSLOCATION
- You can set wether the visual flags to indicate a line is wrapped are drawn near the border or near the text. - Bits set in wrapVisualFlagsLocation set the location to near the text for the corresponding visual flag. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
SymbolValueEffect
SC_WRAPVISUALFLAGLOC_DEFAULT0Visual flags drawn near border
SC_WRAPVISUALFLAGLOC_END_BY_TEXT1Visual flag at end of subline drawn near text
SC_WRAPVISUALFLAGLOC_START_BY_TEXT2Visual flag at begin of subline drawn near text
- -
- -

SCI_SETWRAPSTARTINDENT(int indent)
- SCI_GETWRAPSTARTINDENT
- SCI_SETWRAPSTARTINDENT sets the size of indentation of sublines for - wrapped lines in terms of the width of a space in - STYLE_DEFAULT. - There are no limits on indent sizes, but values less than 0 or large values may have - undesirable effects.
- The indention of sublines is independent of visual flags, but if - SC_WRAPVISUALFLAG_START is set an indent of at least 1 is used. -

- -

SCI_SETLAYOUTCACHE(int cacheMode)
- SCI_GETLAYOUTCACHE
- You can set cacheMode to one of the symbols in the table:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
SymbolValueLayout cached for these lines
SC_CACHE_NONE0No lines are cached.
SC_CACHE_CARET1The line containing the text caret. This is the default.
SC_CACHE_PAGE2Visible lines plus the line containing the caret.
SC_CACHE_DOCUMENT3All lines in the document.
-
- -

SCI_LINESSPLIT(int pixelWidth)
- Split a range of lines indicated by the target into lines that are at most pixelWidth wide. - Splitting occurs on word boundaries wherever possible in a similar manner to line wrapping. - When pixelWidth is 0 then the width of the window is used. -

- -

SCI_LINESJOIN
- Join a range of lines indicated by the target into one line by - removing line end characters. - Where this would lead to no space between words, an extra space is inserted. -

- -

SCI_WRAPCOUNT(int docLine)
- Document lines can occupy more than one display line if they wrap and this - returns the number of display lines needed to wrap a document line.

- -

Zooming

- -

Scintilla incorporates a "zoom factor" that lets you make all the text in the document - larger or smaller in steps of one point. The displayed point size never goes below 2, whatever - zoom factor you set. You can set zoom factors in the range -10 to +20 points.

- SCI_ZOOMIN
- SCI_ZOOMOUT
- SCI_SETZOOM(int zoomInPoints)
- SCI_GETZOOM
-
- -

SCI_ZOOMIN
- SCI_ZOOMOUT
- SCI_ZOOMIN increases the zoom factor by one point if the current zoom factor is - less than 20 points. SCI_ZOOMOUT decreases the zoom factor by one point if the - current zoom factor is greater than -10 points.

- -

SCI_SETZOOM(int zoomInPoints)
- SCI_GETZOOM
- These messages let you set and get the zoom factor directly. There is no limit set on the - factors you can set, so limiting yourself to -10 to +20 to match the incremental zoom functions - is a good idea.

- -

Long lines

- -

You can choose to mark lines that exceed a given length by drawing a vertical line or by - colouring the background of characters that exceed the set length.

- SCI_SETEDGEMODE(int mode)
- SCI_GETEDGEMODE
- SCI_SETEDGECOLUMN(int column)
- SCI_GETEDGECOLUMN
- SCI_SETEDGECOLOUR(int colour)
- SCI_GETEDGECOLOUR
-
- -

SCI_SETEDGEMODE(int edgeMode)
- SCI_GETEDGEMODE
- These two messages set and get the mode used to display long lines. You can set one of the - values in the table:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
SymbolValueLong line display mode
EDGE_NONE0Long lines are not marked. This is the default state.
EDGE_LINE1A vertical line is drawn at the column number set by SCI_SETEDGECOLUMN. - This works well for monospaced fonts. The line is drawn at a position based on the width - of a space character in STYLE_DEFAULT, so it may not work very well if - your styles use proportional fonts or if your style have varied font sizes or you use a - mixture of bold, italic and normal text. .
EDGE_BACKGROUND2The background colour of characters after the column limit is changed to the colour - set by SCI_SETEDGECOLOUR. This is recommended for proportional fonts.
-
-
- - -

SCI_SETEDGECOLUMN(int column)
- SCI_GETEDGECOLUMN
- These messages set and get the column number at which to display the long line marker. When - drawing lines, the column sets a position in units of the width of a space character in - STYLE_DEFAULT. When setting the background colour, the column is a character count - (allowing for tabs) into the line.

- -

SCI_SETEDGECOLOUR(int colour)
- SCI_GETEDGECOLOUR
- These messages set and get the colour of the marker used to show that a line has exceeded the - length set by SCI_SETEDGECOLUMN.

- -

Lexer

- -

If you define the symbol SCI_LEXER when building Scintilla, (this is sometimes - called the SciLexer version of Scintilla), lexing support for a wide range programming - languages is included and the messages in this section are supported. If you want to set - styling and fold points for an unsupported language you can either do this in the container or - better still, write your own lexer following the pattern of one of the existing ones.

- -

Scintilla also supports external lexers. These are DLLs (on Windows) or .so modules (on GTK+/Linux) that export four - functions: GetLexerCount, GetLexerName, Lex and - Fold. See externalLexer.cxx for more.

- SCI_SETLEXER(int lexer)
- SCI_GETLEXER
- SCI_SETLEXERLANGUAGE(<unused>, char - *name)
- SCI_LOADLEXERLIBRARY(<unused>, char - *path)
- SCI_COLOURISE(int start, int end)
- SCI_SETPROPERTY(const char *key, const char *value)
- SCI_GETPROPERTY(const char *key, char *value)
- SCI_GETPROPERTYEXPANDED(const char *key, char *value)
- SCI_GETPROPERTYINT(const char *key, int default)
- SCI_SETKEYWORDS(int keyWordSet, const char - *keyWordList)
- SCI_GETSTYLEBITSNEEDED -
-
- -

SCI_SETLEXER(int lexer)
- SCI_GETLEXER
- You can select the lexer to use with an integer code from the SCLEX_* enumeration - in Scintilla.h. There are two codes in this sequence that do not use lexers: - SCLEX_NULL to select no lexing action and SCLEX_CONTAINER which sends - the SCN_STYLENEEDED notification to - the container whenever a range of text needs to be styled. You cannot use the - SCLEX_AUTOMATIC value; this identifies additional external lexers that Scintilla - assigns unused lexer numbers to.

- -

SCI_SETLEXERLANGUAGE(<unused>, const char *name)
- This message lets you select a lexer by name, and is the only method if you are using an - external lexer or if you have written a lexer module for a language of your own and do not wish - to assign it an explicit lexer number. To select an existing lexer, set name to - match the (case sensitive) name given to the module, for example "ada" or "python", not "Ada" - or "Python". To locate the name for the built-in lexers, open the relevant - Lex*.cxx file and search for LexerModule. The third argument in the - LexerModule constructor is the name to use.

- -

To test if your lexer assignment worked, use SCI_GETLEXER before and after setting the new lexer to - see if the lexer number changed.

- -

SCI_LOADLEXERLIBRARY(<unused>, const char *path)
- Load a lexer implemented in a shared library. This is a .so file on GTK+/Linux or a .DLL file on Windows. -

- -

SCI_COLOURISE(int startPos, int endPos)
- This requests the current lexer or the container (if the lexer is set to - SCLEX_CONTAINER) to style the document between startPos and - endPos. If endPos is -1, the document is styled from - startPos to the end. If the "fold" property is set to - "1" and your lexer or container supports folding, fold levels are also set. This - message causes a redraw.

- -

SCI_SETPROPERTY(const char *key, const char *value)
- You can communicate settings to lexers with keyword:value string pairs. There is no limit to - the number of keyword pairs you can set, other than available memory. key is a - case sensitive keyword, value is a string that is associated with the keyword. If - there is already a value string associated with the keyword, it is replaced. If you pass a zero - length string, the message does nothing. Both key and value are used - without modification; extra spaces at the beginning or end of key are - significant.

- -

The value string can refer to other keywords. For example, - SCI_SETPROPERTY("foldTimes10", "$(fold)0") stores the string - "$(fold)0", but when this is accessed, the $(fold) is replaced by the - value of the "fold" keyword (or by nothing if this keyword does not exist).

- -

Currently the "fold" property is defined for most of the lexers to set the fold structure if - set to "1". SCLEX_PYTHON understands "tab.timmy.whinge.level" as a - setting that determines how to indicate bad indentation. Most keywords have values that are - interpreted as integers. Search the lexer sources for GetPropertyInt to see how - properties are used.

- -

SCI_GETPROPERTY(const char *key, char *value)
- Lookup a keyword:value pair using the specified key; if found, copy the value to the user-supplied - buffer and return the length (not including the terminating 0). If not found, copy an empty string - to the buffer and return 0.

- -

Note that "keyword replacement" as described in - SCI_SETPROPERTY will not be performed.

- -

If the value argument is 0 then the length that should be allocated to store the value is returned; - again, the terminating 0 is not included.

- -

SCI_GETPROPERTYEXPANDED(const char *key, char *value)
- Lookup a keyword:value pair using the specified key; if found, copy the value to the user-supplied - buffer and return the length (not including the terminating 0). If not found, copy an empty string - to the buffer and return 0.

- -

Note that "keyword replacement" as described in - SCI_SETPROPERTY will be performed.

- -

If the value argument is 0 then the length that should be allocated to store the value (including any indicated keyword replacement) - is returned; again, the terminating 0 is not included.

- -

SCI_GETPROPERTYINT(const char *key, int default)
- Lookup a keyword:value pair using the specified key; if found, interpret the value as an integer and return it. - If not found (or the value is an empty string) then return the supplied default. If the keyword:value pair is found but is not - a number, then return 0.

- -

Note that "keyword replacement" as described in - SCI_SETPROPERTY will be performed before any numeric interpretation.

- -

SCI_SETKEYWORDS(int keyWordSet, const char *keyWordList)
- You can set up to 9 lists of keywords for use by the current lexer. This was increased from 6 - at revision 1.50. keyWordSet can be 0 to 8 (actually 0 to KEYWORDSET_MAX) - and selects which keyword list to replace. keyWordList is a list of keywords - separated by spaces, tabs, "\n" or "\r" or any combination of these. - It is expected that the keywords will be composed of standard ASCII printing characters, - but there is nothing to stop you using any non-separator character codes from 1 to 255 - (except common sense).

- -

How these keywords are used is entirely up to the lexer. Some languages, such as HTML may - contain embedded languages, VBScript and JavaScript are common for HTML. For HTML, key word set - 0 is for HTML, 1 is for JavaScript and 2 is for VBScript, 3 is for Python, 4 is for PHP and 5 - is for SGML and DTD keywords. Review the lexer code to see examples of keyword list. A fully - conforming lexer sets the fourth argument of the LexerModule constructor to be a - list of strings that describe the uses of the keyword lists.

- -

Alternatively, you might use set 0 for general keywords, set 1 for keywords that cause - indentation and set 2 for keywords that cause unindentation. Yet again, you might have a simple - lexer that colours keywords and you could change languages by changing the keywords in set 0. - There is nothing to stop you building your own keyword lists into the lexer, but this means - that the lexer must be rebuilt if more keywords are added.

- -

SCI_GETSTYLEBITSNEEDED
- Retrieve the number of bits the current lexer needs for styling. This should normally be the argument - to SCI_SETSTYLEBITS. -

- -

Notifications

- -

Notifications are sent (fired) from the Scintilla control to its container when an event has - occurred that may interest the container. Notifications are sent using the - WM_NOTIFY message on Windows and the "notify" signal on GTK+. The container is - passed a SCNotification structure containing information about the event.

-
-struct NotifyHeader {   // This matches the Win32 NMHDR structure
-    void *hwndFrom;     // environment specific window handle/pointer
-    uptr_t idFrom;	// CtrlID of the window issuing the notification
-    unsigned int code;  // The SCN_* notification code
-};
-
-struct SCNotification {
-    struct NotifyHeader nmhdr;
-    int position;
-    // SCN_STYLENEEDED, SCN_DOUBLECLICK, SCN_MODIFIED, SCN_DWELLSTART,
-    // SCN_DWELLEND, SCN_CALLTIPCLICK,
-    // SCN_HOTSPOTCLICK, SCN_HOTSPOTDOUBLECLICK
-    int ch;             // SCN_CHARADDED, SCN_KEY
-    int modifiers;      // SCN_KEY, SCN_HOTSPOTCLICK, SCN_HOTSPOTDOUBLECLICK
-    int modificationType; // SCN_MODIFIED
-    const char *text;   // SCN_MODIFIED, SCN_USERLISTSELECTION, SCN_AUTOCSELECTION
-    int length;         // SCN_MODIFIED
-    int linesAdded;     // SCN_MODIFIED
-    int message;        // SCN_MACRORECORD
-    uptr_t wParam;      // SCN_MACRORECORD
-    sptr_t lParam;      // SCN_MACRORECORD
-    int line;           // SCN_MODIFIED, SCN_DOUBLECLICK
-    int foldLevelNow;   // SCN_MODIFIED
-    int foldLevelPrev;  // SCN_MODIFIED
-    int margin;         // SCN_MARGINCLICK
-    int listType;       // SCN_USERLISTSELECTION, SCN_AUTOCSELECTION
-    int x;              // SCN_DWELLSTART, SCN_DWELLEND
-    int y;              // SCN_DWELLSTART, SCN_DWELLEND
-};
-
- -

The notification messages that your container can choose to handle and the messages - associated with them are:

- SCN_STYLENEEDED
- SCN_CHARADDED
- SCN_SAVEPOINTREACHED
- SCN_SAVEPOINTLEFT
- SCN_MODIFYATTEMPTRO
- SCN_KEY
- SCN_DOUBLECLICK
- SCN_UPDATEUI
- SCN_MODIFIED
- SCN_MACRORECORD
- SCN_MARGINCLICK
- SCN_NEEDSHOWN
- SCN_PAINTED
- SCN_USERLISTSELECTION
- SCN_URIDROPPED
- SCN_DWELLSTART
- SCN_DWELLEND
- SCN_ZOOM
- SCN_HOTSPOTCLICK
- SCN_HOTSPOTDOUBLECLICK
- SCN_CALLTIPCLICK
- SCN_AUTOCSELECTION
-
- -

The following SCI_* messages are associated with these notifications:

- SCI_SETMODEVENTMASK(int - eventMask)
- SCI_GETMODEVENTMASK
- SCI_SETMOUSEDWELLTIME
- SCI_GETMOUSEDWELLTIME
-
- -

The following additional notifications are sent using the WM_COMMAND message on - Windows and the "Command" signal on GTK+. This emulates the Windows Edit control. Only the lower - 16 bits of the control's ID is passed in these notifications.

- SCEN_CHANGE
- SCEN_SETFOCUS
- SCEN_KILLFOCUS
-
- -

SCN_STYLENEEDED
- If you used SCI_SETLEXER(SCLEX_CONTAINER) to make the container act as the - lexer, you will receive this notification when Scintilla is about to display or print text that - requires styling. You are required to style the text from the line that contains the position - returned by SCI_GETENDSTYLED up to - the position passed in SCNotification.position. Symbolically, you need code of the - form:

-
-    startPos = SCI_GETENDSTYLED()
-    lineNumber = SCI_LINEFROMPOSITION(startPos);
-    startPos = SCI_POSITIONFROMLINE(lineNumber);
-    MyStyleRoutine(startPos, SCNotification.position);
-
- -

SCN_CHARADDED
- This is sent when the user types an ordinary text character (as opposed to a command - character) that is entered into the text. The container can use this to decide to display a call tip or an auto - completion list. The character is in SCNotification.ch. - This notification is sent before the character has been styled so processing that depends on - styling should instead be performed in the SCN_UPDATEUI notification.

- -

SCN_SAVEPOINTREACHED
- SCN_SAVEPOINTLEFT
- Sent to the container when the save point is entered or left, allowing the container to - display a "document dirty" indicator and change its menus.
- See also: SCI_SETSAVEPOINT, SCI_GETMODIFY

- -

SCN_MODIFYATTEMPTRO
- When in read-only mode, this notification is sent to the container if the user tries to change - the text. This can be used to check the document out of a version control system. You can set - the read-only state of a document with SCI_SETREADONLY.

- -

SCN_KEY
- Reports all keys pressed but not consumed by Scintilla. Used on GTK+ because of - some problems with keyboard focus and is not sent by the Windows version. SCNotification.ch holds the key code and - SCNotification.modifiers holds the modifiers. This notification is sent if the - modifiers include SCMOD_ALT or SCMOD_CTRL and the key code is less - than 256.

- -

SCN_DOUBLECLICK
- The mouse button was double clicked in editor. The position field is set to the text position of the - double click and the line field is set to the line of the double click.

- -

SCN_UPDATEUI
- Either the text or styling of the document has changed or the selection range has changed. Now - would be a good time to update any container UI elements that depend on document or view state. - This was previously called SCN_CHECKBRACE because a common use is to check whether the - caret is next to a brace and set highlights on this brace and its corresponding matching brace. - This also replaces SCN_POSCHANGED, - which is now deprecated.

- -

SCN_MODIFIED
- This notification is sent when the text or styling of the document changes or is about to - change. You can set a mask for the notifications that are sent to the container with SCI_SETMODEVENTMASK. The - notification structure contains information about what changed, how the change occurred and - whether this changed the number of lines in the document. No modifications may be performed - while in a SCN_MODIFIED event. The SCNotification fields used - are:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
FieldUsage
modificationTypeA set of flags that identify the change(s) made. See the next - table.
positionStart position of a text or styling change. Set to 0 if not used.
lengthLength of the change in cells or characters when the text or styling - changes. Set to 0 if not used.
linesAddedNumber of added lines. If negative, the number of deleted lines. Set to - 0 if not used or no lines added or deleted.
textValid for text changes, not for style changes. If we are collecting undo - information this holds a pointer to the text that is handed to the Undo system, otherwise - it is zero. For user performed SC_MOD_BEFOREDELETE the text field is 0 and - for user performed SC_MOD_BEFOREINSERT the text field points to an array of cells, - not bytes and the length is the number of cells.
lineThe line number at which a fold level or marker change occurred. This is - 0 if unused and may be -1 if more than one line changed.
foldLevelNowThe new fold level applied to the line or 0 if this field is - unused.
foldLevelPrevThe previous folding level of the line or 0 if this field is - unused.
- -

The SCNotification.modificationType field has bits set to tell you what has - been done. The SC_MOD_* bits correspond to actions. The - SC_PERFORMED_* bits tell you if the action was done by the user, or the result of - Undo or Redo of a previous action.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
SymbolValueMeaningSCNotification fields
SC_MOD_INSERTTEXT0x01Text has been inserted into the document.position, length, text, linesAdded
SC_MOD_DELETETEXT0x02Text has been removed from the document.position, length, text, linesAdded
SC_MOD_CHANGESTYLE0x04A style change has occurred.position, length
SC_MOD_CHANGEFOLD0x08A folding change has occurred.line, foldLevelNow, foldLevelPrev
SC_PERFORMED_USER0x10Information: the operation was done by the user.None
SC_PERFORMED_UNDO0x20Information: this was the result of an Undo.None
SC_PERFORMED_REDO0x40Information: this was the result of a Redo.None
SC_MULTISTEPUNDOREDO0x80This is part of a multi-step Undo or Redo.None
SC_LASTSTEPINUNDOREDO0x100This is the final step in an Undo or Redo.None
SC_MOD_CHANGEMARKER0x200One or more markers has changed in a line.line
SC_MOD_BEFOREINSERT0x400Text is about to be inserted into the document.position, if performed by user then text in cells, length in cells
SC_MOD_BEFOREDELETE0x800Text is about to be deleted from the document.position, length
SC_MULTILINEUNDOREDO0x1000This is part of an Undo or Redo with multi-line changes.None
SC_MODEVENTMASKALL0x1fffThis is a mask for all valid flags. This is the default mask state set by SCI_SETMODEVENTMASK.None
- -

SCEN_CHANGE
- SCEN_CHANGE (768) is fired when the text (not the style) of the document changes. - This notification is sent using the WM_COMMAND message on Windows and the - "Command" signal on GTK+ as this is the behavior of the standard Edit control - (SCEN_CHANGE has the same value as the Windows Edit control - EN_CHANGE). No other information is sent. If you need more detailed information - use SCN_MODIFIED. You can filter the - types of changes you are notified about with SCI_SETMODEVENTMASK.

- -

SCI_SETMODEVENTMASK(int eventMask)
- SCI_GETMODEVENTMASK
- These messages set and get an event mask that determines which document change events are - notified to the container with SCN_MODIFIED and SCEN_CHANGE. For example, a container may decide to see - only notifications about changes to text and not styling changes by calling - SCI_SETMODEVENTMASK(SC_MOD_INSERTTEXT|SC_MOD_DELETETEXT).

- -

The possible notification types are the same as the modificationType bit flags - used by SCN_MODIFIED: SC_MOD_INSERTTEXT, - SC_MOD_DELETETEXT, SC_MOD_CHANGESTYLE, - SC_MOD_CHANGEFOLD, SC_PERFORMED_USER, SC_PERFORMED_UNDO, - SC_PERFORMED_REDO, SC_MULTISTEPUNDOREDO, - SC_LASTSTEPINUNDOREDO, SC_MOD_CHANGEMARKER, - SC_MOD_BEFOREINSERT, SC_MOD_BEFOREDELETE, - SC_MULTILINEUNDOREDO, and SC_MODEVENTMASKALL.

- -

SCEN_SETFOCUS
- SCEN_KILLFOCUS
- SCEN_SETFOCUS (512) is fired when Scintilla receives focus and - SCEN_KILLFOCUS (256) when it loses focus. These notifications are sent using the - WM_COMMAND message on Windows and the "Command" signal on GTK+ as this is the - behavior of the standard Edit control. Unfortunately, these codes do not match the Windows Edit - notification codes EN_SETFOCUS (256) and EN_KILLFOCUS (512). It is - now too late to change the Scintilla codes as clients depend on the current values.

- -

SCN_MACRORECORD
- The SCI_STARTRECORD and SCI_STOPRECORD messages enable and - disable macro recording. When enabled, each time a recordable change occurs, the - SCN_MACRORECORD notification is sent to the container. It is up to the container - to record the action. To see the complete list of SCI_* messages that are - recordable, search the Scintilla source Editor.cxx for - Editor::NotifyMacroRecord. The fields of SCNotification set in this - notification are:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
FieldUsage
messageThe SCI_* message that caused the notification.
wParamThe value of wParam in the SCI_* message.
lParamThe value of lParam in the SCI_* message.
- -

SCN_MARGINCLICK
- This notification tells the container that the mouse was clicked inside a margin that was marked as sensitive (see SCI_SETMARGINSENSITIVEN). This can be used to - perform folding or to place breakpoints. The following SCNotification fields are - used:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
FieldUsage
modifiersThe appropriate combination of SCI_SHIFT, - SCI_CTRL and SCI_ALT to indicate the keys that were held down - at the time of the margin click.
positionThe position of the start of the line in the document that corresponds - to the margin click.
marginThe margin number that was clicked.
- -

SCN_NEEDSHOWN
- Scintilla has determined that a range of lines that is currently invisible should be made - visible. An example of where this may be needed is if the end of line of a contracted fold - point is deleted. This message is sent to the container in case it wants to make the line - visible in some unusual way such as making the whole document visible. Most containers will - just ensure each line in the range is visible by calling SCI_ENSUREVISIBLE. The position and - length fields of SCNotification indicate the range of the document - that should be made visible. The container code will be similar to the following code - skeleton:

-
-firstLine = SCI_LINEFROMPOSITION(scn.position)
-lastLine = SCI_LINEFROMPOSITION(scn.position+scn.length-1)
-for line = lineStart to lineEnd do SCI_ENSUREVISIBLE(line) next
-
- -

SCN_PAINTED
- Painting has just been done. Useful when you want to update some other widgets based on a - change in Scintilla, but want to have the paint occur first to appear more responsive. There is - no other information in SCNotification.

- -

SCN_USERLISTSELECTION
- The user has selected an item in a user list. The - SCNotification fields used are:

- - - - - - - - - - - - - - - - - - - - - - - -
FieldUsage
wParamThis is set to the listType parameter from the SCI_USERLISTSHOW message that - initiated the list.
textThe text of the selection.
-
-
- - -

SCN_URIDROPPED
- Only on the GTK+ version. Indicates that the user has dragged a URI such as a file name or Web - address onto Scintilla. The container could interpret this as a request to open the file. The - text field of SCNotification points at the URI text.

- -

SCN_DWELLSTART
- SCN_DWELLEND
- SCN_DWELLSTART is generated when the user keeps the mouse in one position for the - dwell period (see SCI_SETMOUSEDWELLTIME). SCN_DWELLEND is - generated after a SCN_DWELLSTART and the mouse is moved or other activity such as - key press indicates the dwell is over. Both notifications set the same fields in - SCNotification:

- - - - - - - - - - - - - - - - - - - - - - - -
FieldUsage
positionThis is the nearest position in the document to the position where the - mouse pointer was lingering.
x, yWhere the pointer lingered. The position field is set to - SCI_POSITIONFROMPOINTCLOSE(x, y).
-
-
- -

SCI_SETMOUSEDWELLTIME
- SCI_GETMOUSEDWELLTIME
- These two messages set and get the time the mouse must sit still, in milliseconds, to generate - a SCN_DWELLSTART notification. If - set to SC_TIME_FOREVER, the default, no dwell events are generated.

- -

SCN_ZOOM
- This notification is generated when the user zooms the display using the keyboard or the - SCI_SETZOOM method is called. This - notification can be used to recalculate positions, such as the width of the line number margin - to maintain sizes in terms of characters rather than pixels. SCNotification has no - additional information.

- -

- SCN_HOTSPOTCLICK
- SCN_HOTSPOTDOUBLECLICK
- These notifications are generated when the user clicks or double clicks on - text that is in a style with the hotspot attribute set. - This notification can be used to link to variable definitions or web pages. - The position field is set the text position of the click or - double click and the modifiers field set to the key modifiers - held down in a similar manner to SCN_KEY.

- -

SCN_CALLTIPCLICK
- This notification is generated when the user clicks on a calltip. - This notification can be used to display the next function prototype when a - function name is overloaded with different arguments. - The position field is set to 1 if the click is in an up arrow, - 2 if in a down arrow, and 0 if elsewhere.

- -

SCN_AUTOCSELECTION
- The user has selected an item in an autocompletion list. The - notification is sent before the selection is inserted. Automatic insertion can be cancelled by sending a - SCI_AUTOCCANCEL message - before returning from the notification. The SCNotification fields used are:

- - - - - - - - - - - - - - - - - - - - - - -
FieldUsage
lParamThe start position of the word being completed.
textThe text of the selection.
- -

GTK+

-

On GTK+, the following functions create a Scintilla widget, communicate with it and allow - resources to be released after all Scintilla widgets hace been destroyed.

- GtkWidget *scintilla_new()
- void scintilla_set_id(ScintillaObject *sci, uptr_t id)
- sptr_t scintilla_send_message(ScintillaObject *sci,unsigned int iMessage, uptr_t wParam, sptr_t lParam)
- void scintilla_release_resources()
-
- -
- -

HZSE7<_oN*+o_s@_i&cCp@BvVq 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

GtkWidget *scintilla_new()
- Create a new Scintilla widget. The returned pointer can be added to a container and displayed in the same way as other - widgets.

void scintilla_set_id(ScintillaObject *sci, uptr_t id)
- Set the control ID which will be used in the idFrom field of the NotifyHeader structure of all - notifications for this instance. When an application creates multiple Scintilla widgets, this allows - the source of each notification to be found. The value should be small, preferrably less than 16 bits, - rather than a pointer as some of the functions will only transmit 16 or 32 bits.

- -

sptr_t scintilla_send_message(ScintillaObject *sci,unsigned int iMessage, uptr_t wParam, sptr_t lParam)
- The main entry point allows sending any of the messages described in this document.

- -

void scintilla_release_resources()
- Call this to free any remaining resources after all the Scintilla widgets have been destroyed.

- -

Deprecated messages and notifications

- -

The following messages are currently supported to emulate existing Windows controls, but - they will be removed in future versions of Scintilla. If you use these messages you should - replace them with the Scintilla equivalent.

-
-WM_GETTEXT(int length, char *text)
-WM_SETTEXT(<unused>, const char *text)
-EM_GETLINE(int line, char *text)
-EM_REPLACESEL(<unused>, const char *text)
-EM_SETREADONLY
-EM_GETTEXTRANGE(<unused>, TEXTRANGE *tr)
-WM_CUT
-WM_COPY
-WM_PASTE
-WM_CLEAR
-WM_UNDO
-EM_CANUNDO
-EM_EMPTYUNDOBUFFER
-WM_GETTEXTLENGTH
-EM_GETFIRSTVISIBLELINE
-EM_GETLINECOUNT
-EM_GETMODIFY
-EM_SETMODIFY(bool isModified)
-EM_GETRECT(RECT *rect)
-EM_GETSEL(int *start, int *end)
-EM_EXGETSEL(<unused>, CHARRANGE *cr)
-EM_SETSEL(int start, int end)
-EM_EXSETSEL(<unused>, CHARRANGE *cr)
-EM_GETSELTEXT(<unused>, char *text)
-EM_LINEFROMCHAR(int position)
-EM_EXLINEFROMCHAR(int position)
-EM_LINEINDEX(int line)
-EM_LINELENGTH(int position)
-EM_SCROLL(int line)
-EM_LINESCROLL(int column, int line)
-EM_SCROLLCARET()
-EM_CANPASTE
-EM_CHARFROMPOS(<unused>, POINT *location)
-EM_POSFROMCHAR(int position, POINT *location)
-EM_SELECTIONTYPE
-EM_HIDESELECTION(bool hide)
-EM_FINDTEXT(int flags, FINDTEXTEX *ft)
-EM_FINDTEXTEX(int flags, FINDTEXTEX *ft)
-EM_GETMARGINS
-EM_SETMARGINS(EC_LEFTMARGIN or EC_RIGHTMARGIN or EC_USEFONTINFO, int val)
-EM_FORMATRANGE
-
- -

The following are features that are only included if you define - INCLUDE_DEPRECATED_FEATURES in Scintilla.h. To ensure future - compatibility you should change them as indicated.

- -

SCN_POSCHANGED() Deprecated
- Fired when the user moves the cursor to a different position in the text. Use SCN_UPDATEUI instead.

- -

SCN_CHECKBRACE Deprecated
- Either the text or styling of the document has changed or the selection range has changed. - This is replaced by SCN_UPDATEUI. You - can also use SCN_MODIFIED for more - detailed information on text and styling changes,

- -

Edit messages never supported by Scintilla

-
-EM_GETWORDBREAKPROC EM_GETWORDBREAKPROCEX
-EM_SETWORDBREAKPROC EM_SETWORDBREAKPROCEX
-EM_GETWORDWRAPMODE EM_SETWORDWRAPMODE
-EM_LIMITTEXT EM_EXLIMITTEXT
-EM_SETRECT EM_SETRECTNP
-EM_FMTLINES
-EM_GETHANDLE EM_SETHANDLE
-EM_GETPASSWORDCHAR EM_SETPASSWORDCHAR
-EM_SETTABSTOPS
-EM_FINDWORDBREAK
-EM_GETCHARFORMAT EM_SETCHARFORMAT
-EM_GETOLEINTERFACE EM_SETOLEINTERFACE
-EM_SETOLECALLBACK
-EM_GETPARAFORMAT EM_SETPARAFORMAT
-EM_PASTESPECIAL
-EM_REQUESTRESIZE
-EM_GETBKGNDCOLOR EM_SETBKGNDCOLOR
-EM_STREAMIN EM_STREAMOUT
-EM_GETIMECOLOR EM_SETIMECOLOR
-EM_GETIMEOPTIONS EM_SETIMEOPTIONS
-EM_GETOPTIONS EM_SETOPTIONS
-EM_GETPUNCTUATION EM_SETPUNCTUATION
-EM_GETTHUMB
-EM_GETEVENTMASK
-EM_SETEVENTMASK
-EM_DISPLAYBAND
-EM_SETTARGETDEVICE
-
- -

Scintilla tries to be a superset of the standard windows Edit and RichEdit controls wherever - that makes sense. As it is not intended for use in a word processor, some edit messages can not - be sensibly handled. Unsupported messages have no effect.

- -

Building Scintilla

- -

To build Scintilla or SciTE, see the README file present in both the Scintilla and SciTE - directories. For Windows, GCC 3.2, Borland C++ or Microsoft Visual Studio .NET can be used - for building. There is a make file for building Scintilla but not SciTE with Visual C++ 6 at - scintilla/win32/scintilla_vc6.mak. For GTK+, GCC 3.1 should be used. GTK+ 1.2x and 2.0x are - supported. The version of GTK+ installed should be detected automatically. - When both GTK+ 1 and GTK+ 2 are present, building for GTK+ 1.x requires defining GTK1 - on the command line.

- -

Static linking

- -

On Windows, Scintilla is normally used as a dynamic library as a .DLL file. If you want to - link Scintilla directly into your application .EXE or .DLL file, then the - STATIC_BUILD preprocessor symbol should be defined and - Scintilla_RegisterClasses called. STATIC_BUILD prevents compiling the - DllMain function which will conflict with any DllMain defined in your - code. Scintilla_RegisterClasses takes the HINSTANCE of your - application and ensures that the "Scintilla" window class is registered. To make sure that the - right pointing arrow cursor used in the margin is displayed by Scintilla add the - scintilla/win32/Margin.cur file to your application's resources with the ID - IDC_MARGIN which is defined in scintilla/win32/platfromRes.h as - 400.

- -

Ensuring lexers are linked into Scintilla

- -

Depending on the compiler and linker used, the lexers may be stripped out. This is most - often caused when building a static library. To ensure the lexers are linked in, the - Scintilla_LinkLexers() function may be called.

- -

Changing set of lexers

- -

To change the set of lexers in Scintilla, add and remove lexer source files - (Lex*.cxx) from the scintilla/src directory and run the - src/LexGen.py script from the src directory to update the make files - and KeyWords.cxx. LexGen.py requires Python 2.1 or later. If you do - not have access to Python, you can hand edit KeyWords.cxx in a simple-minded way, - following the patterns of other lexers. The important thing is to include - LINK_LEXER(lmMyLexer); to correspond with the LexerModule - lmMyLexer(...); in your lexer source code.

- - - diff --git a/MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/doc/ScintillaDownload.html b/MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/doc/ScintillaDownload.html deleted file mode 100644 index 6e057a6c..00000000 --- a/MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/doc/ScintillaDownload.html +++ /dev/null @@ -1,70 +0,0 @@ - - - - - - - - - Download Scintilla - - - - - - - - -
- Scintilla icon - - Download - Scintilla -
- - - - -
- - Windows   - - GTK+/Linux   - -
-

- Download. -

-

- The license for using Scintilla or SciTE is similar to that of Python - containing very few restrictions. -

-

- Release 1.71 -

-

- Source Code -

- The source code package contains all of the source code for Scintilla but no binary - executable code and is available in -
    -
  • zip format (720K) commonly used on Windows
  • -
  • tgz format (620K) commonly used on Linux and compatible operating systems
  • -
- Instructions for building on both Windows and Linux are included in the readme file. -

- Windows Executable Code -

- There is no download available containing only the Scintilla DLL. - However, it is included in the SciTE - executable full download as SciLexer.DLL. -

- SciTE is a good demonstration of Scintilla. -

-

- Previous versions can be downloaded from the history - page. -

- - diff --git a/MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/doc/ScintillaHistory.html b/MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/doc/ScintillaHistory.html deleted file mode 100644 index 3b4dbdce..00000000 --- a/MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/doc/ScintillaHistory.html +++ /dev/null @@ -1,5296 +0,0 @@ - - - - - - - - - Scintilla and SciTE - - - - - - - - -
- Scintilla icon - - Scintilla - and SciTE -
-

- History of Scintilla and SciTE -

-

- Contributors -

-

- Thanks to all the people that have contributed patches, bug reports and suggestions. -

-

- Source code and documentation have been contributed by -

-
    -
  • Atsuo Ishimoto
  • -
  • Mark Hammond
  • -
  • Francois Le Coguiec
  • -
  • Dale Nagata
  • -
  • Ralf Reinhardt
  • -
  • Philippe Lhoste
  • -
  • Andrew McKinlay
  • -
  • Stephan R. A. Deibel
  • -
  • Hans Eckardt
  • -
  • Vassili Bourdo
  • -
  • Maksim Lin
  • -
  • Robin Dunn
  • -
  • John Ehresman
  • -
  • Steffen Goeldner
  • -
  • Deepak S.
  • -
  • Yann Gaillard
  • -
  • Aubin Paul
  • -
  • Jason Diamond
  • -
  • Ahmad Baitalmal
  • -
  • Paul Winwood
  • -
  • Maxim Baranov
  • -
  • Ragnar Højland
  • -
  • Christian Obrecht
  • -
  • Andreas Neukoetter
  • -
  • Adam Gates
  • -
  • Steve Lhomme
  • -
  • Ferdinand Prantl
  • -
  • Jan Dries
  • -
  • Markus Gritsch
  • -
  • Tahir Karaca
  • -
  • Ahmad Zawawi
  • -
  • Laurent le Tynevez
  • -
  • Walter Braeu
  • -
  • Ashley Cambrell
  • -
  • Garrett Serack
  • -
  • Holger Schmidt
  • -
  • ActiveState
  • -
  • James Larcombe
  • -
  • Alexey Yutkin
  • -
  • Jan Hercek
  • -
  • Richard Pecl
  • -
  • Edward K. Ream
  • -
  • Valery Kondakoff
  • -
  • Smári McCarthy
  • -
  • Clemens Wyss
  • -
  • Simon Steele
  • -
  • Serge A. Baranov
  • -
  • Xavier Nodet
  • -
  • Willy Devaux
  • -
  • David Clain
  • -
  • Brendon Yenson
  • -
  • Vamsi Potluru
  • -
  • Praveen Ambekar
  • -
  • Alan Knowles
  • -
  • Kengo Jinno
  • -
  • Valentin Valchev
  • -
  • Marcos E. Wurzius
  • -
  • Martin Alderson
  • -
  • Robert Gustavsson
  • -
  • José Fonseca
  • -
  • Holger Kiemes
  • -
  • Francis Irving
  • -
  • Scott Kirkwood
  • -
  • Brian Quinlan
  • -
  • Ubi
  • -
  • Michael R. Duerig
  • -
  • Deepak T
  • -
  • Don Paul Beletsky
  • -
  • Gerhard Kalab
  • -
  • Olivier Dagenais
  • -
  • Josh Wingstrom
  • -
  • Bruce Dodson
  • -
  • Sergey Koshcheyev
  • -
  • Chuan-jian Shen
  • -
  • Shane Caraveo
  • -
  • Alexander Scripnik
  • -
  • Ryan Christianson
  • -
  • Martin Steffensen
  • -
  • Jakub Vrána
  • -
  • The Black Horus
  • -
  • Bernd Kreuss
  • -
  • Thomas Lauer
  • -
  • Mike Lansdaal
  • -
  • Yukihiro Nakai
  • -
  • Jochen Tucht
  • -
  • Greg Smith
  • -
  • Steve Schoettler
  • -
  • Mauritius Thinnes
  • -
  • Darren Schroeder
  • -
  • Pedro Guerreiro
  • -
  • Dan Petitt
  • -
  • Biswapesh Chattopadhyay
  • -
  • Kein-Hong Man
  • -
  • Patrizio Bekerle
  • -
  • Nigel Hathaway
  • -
  • Hrishikesh Desai
  • -
  • Sergey Puljajev
  • -
  • Mathias Rauen
  • -
  • Angelo Mandato
  • -
  • Denis Sureau
  • -
  • Kaspar Schiess
  • -
  • Christoph Hösler
  • -
  • João Paulo F Farias
  • -
  • Ron Schofield
  • -
  • Stefan Wosnik
  • -
  • Marius Gheorghe
  • -
  • Naba Kumar
  • -
  • Sean O'Dell
  • -
  • Stefanos Togoulidis
  • -
  • Hans Hagen
  • -
  • Jim Cape
  • -
  • Roland Walter
  • -
  • Brian Mosher
  • -
  • Nicholas Nemtsev
  • -
  • Roy Wood
  • -
  • Peter-Henry Mander
  • -
  • Robert Boucher
  • -
  • Christoph Dalitz
  • -
  • April White
  • -
  • S. Umar
  • -
  • Trent Mick
  • -
  • Filip Yaghob
  • -
  • Avi Yegudin
  • -
  • Vivi Orunitia
  • -
  • Manfred Becker
  • -
  • Dimitris Keletsekis
  • -
  • Yuiga
  • -
  • Davide Scola
  • -
  • Jason Boggs
  • -
  • Reinhold Niesner
  • -
  • Jos van der Zande
  • -
  • Pescuma
  • -
  • Pavol Bosik
  • -
  • Johannes Schmid
  • -
  • Blair McGlashan
  • -
  • Mikael Hultgren
  • -
  • Florian Balmer
  • -
  • Hadar Raz
  • -
  • Herr Pfarrer
  • -
  • Ben Key
  • -
  • Gene Barry
  • -
  • Niki Spahiev
  • -
  • Carsten Sperber
  • -
  • Phil Reid
  • -
  • Iago Rubio
  • -
  • Régis Vaquette
  • -
  • Massimo Corà
  • -
  • Elias Pschernig
  • -
  • Chris Jones
  • -
  • Josiah Reynolds
  • -
  • Robert Roessler rftp.com
  • -
  • Steve Donovan
  • -
  • Jan Martin Pettersen
  • -
  • Sergey Philippov
  • -
  • Borujoa
  • -
  • Michael Owens
  • -
  • Franck Marcia
  • -
  • Massimo Maria Ghisalberti
  • -
  • Frank Wunderlich
  • -
  • Josepmaria Roca
  • -
  • Tobias Engvall
  • -
  • Suzumizaki Kimitaka
  • -
  • Michael Cartmell
  • -
  • Pascal Hurni
  • -
  • Andre
  • -
  • Randy Butler
  • -
  • Georg Ritter
  • -
  • Michael Goffioul
  • -
  • Ben Harper
  • -
  • Adam Strzelecki
  • -
  • Kamen Stanev
  • -
  • Steve Menard
  • -
  • Oliver Yeoh
  • -
  • Eric Promislow
  • -
  • Joseph Galbraith
  • -
  • Jeffrey Ren
  • -
  • Armel Asselin
  • -
  • Jim Pattee
  • -
  • Friedrich Vedder
  • -
  • Sebastian Pipping
  • -
  • Andre Arpin
  • -
  • Stanislav Maslovski
  • -
  • Martin Stone
  • -
  • Fabien Proriol
  • -
  • mimir
  • -
  • Nicola Civran
  • -
-

- Images used in GTK+ version -

-
    -
  • - - Icons Copyright(C) 1998 by Dean S. Jones
    -
  • -
-

- Release 1.71 -

-
    -
  • - Released on 21 August 2006. -
  • -
  • - On GTK+ drag and drop defaults to move rather than copy. -
  • -
  • - Double click notification includes line and position. -
  • -
  • - VB lexer bugs fixed for preprocessor directive below a comment or some other states and - to use string not closed style back to the starting quote when there are internal doubled quotes. -
  • -
  • - C++ lexer allows identifiers to contain '$' and non-ASCII characters such as UTF-8. - The '$' character can be disallowed with lexer.cpp.allow.dollars=0. -
  • -
  • - Perl lexer allows UTF-8 identifiers and has some other small improvements. -
  • -
  • - SciTE's $(CurrentWord) uses word.characters.<filepattern> to define the word - rather than a hardcoded list of word characters. -
  • -
  • - SciTE Export as HTML adds encoding information for UTF-8 file and fixes DOCTYPE. -
  • -
  • - SciTE session and .recent files default to the user properties directory rather than global - properties directory. -
  • -
  • - Left and right scroll events handled correctly on GTK+ and horizontal scroll bar has more sensible - distances for page and arrow clicks. -
  • -
  • - SciTE on GTK+ tab bar fixed to work on recent versions of GTK+. -
  • -
  • - On GTK+, if the approximate character set conversion is unavailable, a second attempt is made - without approximations. This may allow keyboard input and paste to work on older systems. -
  • -
  • - SciTE on GTK+ can redefine the Insert key. -
  • -
  • - SciTE scripting interface bug fixed where some string properties could not be changed. -
  • -
-

- Release 1.70 -

-
    -
  • - Released on 20 June 2006. -
  • -
  • - On GTK+, character set conversion is performed using an option that allows approximate conversions rather - than failures when a character can not be converted. This may lead to similar characters being inserted or - when no similar character is available a '?' may be inserted. -
  • -
  • - On GTK+, the internationalised IM (Input Method) feature is used for all typed input for all character sets. -
  • -
  • - Scintilla has new margin types SC_MARGIN_BACK and SC_MARGIN_FORE that use the default - style's background and foreground colours (normally white and black) as the background to the margin. -
  • -
  • - Scintilla/GTK+ allows file drops on Windows when drop is of type DROPFILES_DND - as well as text/uri-list. -
  • -
  • - Code page can only be set to one of the listed valid values. -
  • -
  • - Text wrapping fixed for cases where insertion was not wide enough to trigger - wrapping before being styled but was after styling. -
  • -
  • - SciTE find marks are removed before printing or exporting to avoid producing incorrect styles. -
  • -
-

- Release 1.69 -

-
    -
  • - Released on 29 May 2006. -
  • -
  • - SciTE supports z-order based buffer switching on Ctrl+Tab. -
  • -
  • - Translucent support for selection and whole line markers. -
  • -
  • - SciTE may have per-language abbreviations files. -
  • -
  • - Support for Spice language. -
  • -
  • - On GTK+ autocompletion lists are optimised and use correct selection colours. -
  • -
  • - On GTK+ the URI data type is preferred in drag and drop so that applications - will see files dragged from the shell rather than dragging the text of the file name - into the document. -
  • -
  • - Increased number of margins to 5. -
  • -
  • - Basic lexer allows include directive $include: "file name". -
  • -
  • - SQL lexer no longer bases folding on indentation. -
  • -
  • - Line ends are transformed when copied to clipboard on - Windows/GTK+2 as well as Windows/GTK+ 1. -
  • -
  • - Lexing code masks off the indicator bits on the start style before calling the lexer - to avoid confusing the lexer when an application has used an indicator. -
  • -
  • - SciTE savebefore:yes only saves the file when it has been changed. -
  • -
  • - SciTE adds output.initial.hide setting to allow setting the size of the output pane - without it showing initially. -
  • -
  • - SciTE on Windows Go To dialog allows line number with more digits. -
  • -
  • - Bug in HTML lexer fixed where a segment of PHP could switch scripting language - based on earlier text on that line. -
  • -
  • - Memory bug fixed when freeing regions on GTK+. - Other minor bugs fixed on GTK+. -
  • -
  • - Deprecated GTK+ calls in Scintilla replaced with current calls. -
  • -
  • - Fixed a SciTE bug where closing the final buffer, if read-only, left the text present in an - untitled buffer. -
  • -
  • - Bug fixed in bash lexer that prevented folding. -
  • -
  • - Crash fixed in bash lexer when backslash at end of file. -
  • -
  • - Crash on recent releases of GTK+ 2.x avoided by changing default font from X - core font to Pango font "!Sans". -
  • -
  • - Fix for SciTE properties files where multiline properties continued over completely blank lines. -
  • -
  • - Bug fixed in SciTE/GTK+ director interface where more data available than - buffer size. -
  • -
  • - Minor visual fixes to SciTE splitter on GTK+. -
  • -
-

- Release 1.68 -

-
    -
  • - Released on 9 March 2006. -
  • -
  • - Translucent drawing implemented for caret line and box indicators. -
  • -
  • - Lexer specifically for TCL is much more accurate than reusing C++ lexer. -
  • -
  • - Support for Inno Setup scripts. -
  • -
  • - Support for Opal language. -
  • -
  • - Calltips may use a new style, STYLE_CALLTIP which allows choosing a - different font for calltips. -
  • -
  • - Python lexer styles comments on decorators. -
  • -
  • - HTML lexer refined handling of "?>" and "%>" within server - side scripts. -
  • -
  • - Batch file lexer improved. -
  • -
  • - Eiffel lexer doesn't treat '.' as a name character. -
  • -
  • - Lua lexer handles length operator, #, and hex literals. -
  • -
  • - Properties file lexer has separate style for keys. -
  • -
  • - PL/SQL folding improved. -
  • -
  • - SciTE Replace dialog always searches in forwards direction. -
  • -
  • - SciTE can detect language of file from initial #! line. -
  • -
  • - SciTE on GTK+ supports output.scroll=2 setting. -
  • -
  • - SciTE can perform an import a properties file from the command line. -
  • -
  • - Set of word characters used for regular expression \< and \>. -
  • -
  • - Bug fixed with SCI_COPYTEXT stopping too early. -
  • -
  • - Bug fixed with splitting lines so that all lines are split. -
  • -
  • - SciTE calls OnSwitchFile when closing one buffer causes a switch to another. -
  • -
  • - SciTE bug fixed where properties were being reevaluated without good reason - after running a macro. -
  • -
  • - Crash fixed when clearing document with some lines contracted in word wrap mode. -
  • -
  • - Palette expands as more entries are needed. -
  • -
  • - SCI_POSITIONFROMPOINT returns more reasonable value when close to - last text on a line. -
  • -
  • - On Windows, long pieces of text may be drawn in segments if they fail to draw - as a whole. -
  • -
  • - Bug fixed with bad drawing when some visual changes made inside SCN_UPDATEUI - notification. -
  • -
  • - SciTE bug fixed with groupundo setting. -
  • -
-

- Release 1.67 -

-
    -
  • - Released on 17 December 2005. -
  • -
  • - Scintilla checks the paint region more accurately when seeing if an area is being - repainted. Platform layer implementations may need to change for this to take - effect. This fixes some drawing and styling bugs. Also optimized some parts of - marker code to only redraw the line of the marker rather than whole of the margin. -
  • -
  • - Quoted identifier style for SQL. SQL folding performed more simply. -
  • -
  • - Ruby lexer improved to better handle here documents and non-ASCII - characters. -
  • -
  • - Lua lexer supports long string and block comment syntax from Lua 5.1. -
  • -
  • - Bash lexer handles here documents better. -
  • -
  • - JavaScript lexing recognises regular expressions more accurately and includes flag - characters in the regular expression style. This is both in JavaScript files and when - JavaScript is embedded in HTML. -
  • -
  • - Scintilla API provided to reveal how many style bits are needed for the - current lexer. -
  • -
  • - Selection duplicate added. -
  • -
  • - Scintilla API for adding a set of markers to a line. -
  • -
  • - DBCS encodings work on Windows 9x. -
  • -
  • - Convention defined for property names to be used by lexers and folders - so they can be automatically discovered and forwarded from containers. -
  • -
  • - Default bookmark in SciTE changed to a blue sphere image. -
  • -
  • - SciTE stores the time of last asking for a save separately for each buffer - which fixes bugs with automatic reloading. -
  • -
  • - On Windows, pasted text has line ends converted to current preference. - GTK+ already did this. -
  • -
  • - Kid template language better handled by HTML lexer by finishing ASP Python - mode when a ?> is found. -
  • -
  • - SciTE counts number of characters in a rectangular selection correctly. -
  • -
  • - 64-bit compatibility improved. One change that may affect user code is that - the notification message header changed to include a pointer-sized id field - to match the current Windows definition. -
  • -
  • - Empty ranges can no longer be dragged. -
  • -
  • - Crash fixed when calls made that use layout inside the painted notification. -
  • -
  • - Bug fixed where Scintilla created pixmap buffers that were too large leading - to failures when many instances used. -
  • -
  • - SciTE sets the directory of a new file to the directory of the currently - active file. -
  • -
  • - SciTE allows choosing a code page for the output pane. -
  • -
  • - SciTE HTML exporter no longer honours monospaced font setting. -
  • -
  • - Line layout cache in page mode caches the line of the caret. An assertion is - now used to ensure that the layout reentrancy problem that caused this - is easier to find. -
  • -
  • - Speed optimized for long lines and lines containing many control characters. -
  • -
  • - Bug fixed in brace matching in DBCS files where byte inside character - is same as brace. -
  • -
  • - Indent command does not indent empty lines. -
  • -
  • - SciTE bug fixed for commands that operate on files with empty extensions. -
  • -
  • - SciTE bug fixed where monospaced option was copied for subsequently opened files. -
  • -
  • - SciTE on Windows bug fixed in the display of a non-ASCII search string - which can not be found. -
  • -
  • - Bugs fixed with nested calls displaying a new calltip while one is already - displayed. -
  • -
  • - Bug fixed when styling PHP strings. -
  • -
  • - Bug fixed when styling C++ continued preprocessor lines. -
  • -
  • - SciTE bug fixed where opening file from recently used list reset choice of - language. -
  • -
  • - SciTE bug fixed when compiled with NO_EXTENSIONS and - closing one file closes the application. -
  • -
  • - SciTE crash fixed for error messages that look like Lua messages but aren't - in the same order. -
  • -
  • - Remaining fold box support deprecated. The symbols SC_FOLDLEVELBOXHEADERFLAG, - SC_FOLDLEVELBOXFOOTERFLAG, SC_FOLDLEVELCONTRACTED, - SC_FOLDLEVELUNINDENT, and SC_FOLDFLAG_BOX are deprecated. -
  • -
-

- Release 1.66 -

-
    -
  • - Released on 26 August 2005. -
  • -
  • - New, more ambitious Ruby lexer. -
  • -
  • - SciTE Find in Files dialog has options for matching case and whole words which are - enabled when the internal find command is used. -
  • -
  • - SciTE output pane can display automatic completion after "$(" typed. - An initial ">" on a line is ignored when Enter pressed. -
  • -
  • - C++ lexer recognises keywords within line doc comments. It continues styles over line - end characters more consistently so that eolfilled style can be used for preprocessor lines - and line comments. -
  • -
  • - VB lexer improves handling of file numbers and date literals. -
  • -
  • - Lua folder handles repeat until, nested comments and nested strings. -
  • -
  • - POV lexer improves handling of comment lines. -
  • -
  • - AU3 lexer and folder updated. COMOBJ style added. -
  • -
  • - Bug fixed with text display on GTK+ with Pango 1.8. -
  • -
  • - Caret painting avoided when not focused. -
  • -
  • - SciTE on GTK+ handles file names used to reference properties as case-sensitive. -
  • -
  • - SciTE on GTK+ Save As and Export commands set the file name field. - On GTK+ the Export commands modify the file name in the same way as on Windows. -
  • -
  • - Fixed SciTE problem where confirmation was not displaying when closing a file where all - contents had been deleted. -
  • -
  • - Middle click on SciTE tab now closes correct buffer on Windows when tool bar is visible. -
  • -
  • - SciTE bugs fixed where files contained in directory that includes '.' character. -
  • -
  • - SciTE bug fixed where import in user options was reading file from directory of - global options. -
  • -
  • - SciTE calltip bug fixed where single line calltips had arrow displayed incorrectly. -
  • -
  • - SciTE folding bug fixed where empty lines were shown for no reason. -
  • -
  • - Bug fixed where 2 byte per pixel XPM images caused crash although they are still not - displayed. -
  • -
  • - Autocompletion list size tweaked. -
  • -
-

- Release 1.65 -

-
    -
  • - Released on 1 August 2005. -
  • -
  • - FreeBasic support. -
  • -
  • - SciTE on Windows handles command line arguments - "-" (read standard input into buffer), - "--" (read standard input into output pane) and - "-@" (read file names from standard input and open each). -
  • -
  • - SciTE includes a simple implementation of Find in Files which is used if no find.command is set. -
  • -
  • - SciTE can close tabs with a mouse middle click. -
  • -
  • - SciTE includes a save.all.for.build setting. -
  • -
  • - Folder for MSSQL. -
  • -
  • - Batch file lexer understands more of the syntax and the behaviour of built in commands. -
  • -
  • - Perl lexer handles here docs better; disambiguates barewords, quote-like delimiters, and repetition operators; - handles Pods after __END__; recognises numbers better; and handles some typeglob special variables. -
  • -
  • - Lisp adds more lexical states. -
  • -
  • - PHP allows spaces after <<<. -
  • -
  • - TADS3 has a simpler set of states and recognizes identifiers. -
  • -
  • - Avenue elseif folds better. -
  • -
  • - Errorlist lexer treats lines starting with '+++' and '---' as separate - styles from '+' and '-' as they indicate file names in diffs. -
  • -
  • - SciTE error recogniser handles file paths in extra explanatory lines from MSVC - and in '+++' and '---' lines from diff. -
  • -
  • - Bugs fixed in SciTE and Scintilla folding behaviour when text pasted before - folded text caused unnecessary - unfolding and cutting text could lead to text being irretrievably hidden. -
  • -
  • - SciTE on Windows uses correct font for dialogs and better font for tab bar - allowing better localisation -
  • -
  • - When Windows is used with a secondary monitor before the primary - monitor, autocompletion lists are not forced onto the primary monitor. -
  • -
  • - Scintilla calltip bug fixed where down arrow setting wrong value in notification - if not in first line. SciTE bug fixed where second arrow only shown on multiple line - calltip and was therefore misinterpreting the notification value. -
  • -
  • - Lexers will no longer be re-entered recursively during, for example, fold level setting. -
  • -
  • - Undo of typing in overwrite mode undoes one character at a time rather than requiring a removal - and addition step for each character. -
  • -
  • - EM_EXSETSEL(0,-1) fixed. -
  • -
  • - Bug fixed where part of a rectangular selection was not shown as selected. -
  • -
  • - Autocomplete window size fixed. -
  • -
-

- Release 1.64 -

-
    -
  • - Released on 6 June 2005. -
  • -
  • - TADS3 support -
  • -
  • - Smalltalk support. -
  • -
  • - Rebol support. -
  • -
  • - Flagship (Clipper / XBase) support. -
  • -
  • - CSound support. -
  • -
  • - SQL enhanced to support SQL*Plus. -
  • -
  • - SC_MARK_FULLRECT margin marker fills the whole marker margin for marked - lines with a colour. -
  • -
  • - Performance improved for some large undo and redo operations and modification flags - added in notifications. -
  • -
  • - SciTE adds command equivalents for fold margin mouse actions. -
  • -
  • - SciTE adds OnUpdateUI to set of events that can be handled by a Lua script. -
  • -
  • - Properties set in Scintilla can be read. -
  • -
  • - GTK+ SciTE exit confirmation adds Cancel button. -
  • -
  • - More accurate lexing of numbers in PHP and Caml. -
  • -
  • - Perl can fold POD and package sections. POD verbatim section style. - Globbing syntax recognized better. -
  • -
  • - Context menu moved slightly on GTK+ so that it will be under the mouse and will - stay open if just clicked rather than held. -
  • -
  • - Rectangular selection paste works the same whichever direction the selection was dragged in. -
  • -
  • - EncodedFromUTF8 handles -1 length argument as documented. -
  • -
  • - Undo and redo can cause SCN_MODIFYATTEMPTRO notifications. -
  • -
  • - Indicators display correctly when they start at the second character on a line. -
  • -
  • - SciTE Export As HTML uses standards compliant CSS. -
  • -
  • - SciTE automatic indentation handles keywords for indentation better. -
  • -
  • - SciTE fold.comment.python property removed as does not work. -
  • -
  • - Fixed problem with character set conversion when pasting on GTK+. -
  • -
  • - SciTE default character set changed from ANSI_CHARSET to DEFAULT_CHARSET. -
  • -
  • - Fixed crash when creating empty autocompletion list. -
  • -
  • - Autocomplete window size made larger under some conditions to make truncation less common. -
  • -
  • - Bug fixed where changing case of a selection did not affect initial character of lines - in multi-byte encodings. -
  • -
  • - Bug fixed where rectangular selection not displayed after Alt+Shift+Click. -
  • -
-

- Release 1.63 -

-
    -
  • - Released on 4 April 2005. -
  • -
  • - Autocompletion on Windows changed to use popup window, be faster, - allow choice of maximum width and height, and to highlight only the text of the - selected item rather than both the text and icon if any. -
  • -
  • - Extra items can be added to the context menu in SciTE. -
  • -
  • - Character wrap mode in Scintilla helps East Asian languages. -
  • -
  • - Lexer added for Haskell. -
  • -
  • - Objective Caml support. -
  • -
  • - BlitzBasic and PureBasic support. -
  • -
  • - CSS support updated to handle CSS2. -
  • -
  • - C++ lexer is more selective about document comment keywords. -
  • -
  • - AutoIt 3 lexer improved. -
  • -
  • - Lua lexer styles end of line characters on comment and preprocessor - lines so that the eolfilled style can be applied to them. -
  • -
  • - NSIS support updated for line continuations, box comments, SectionGroup and - PageEx, and with more up-to-date properties. -
  • -
  • - Clarion lexer updated to perform folding and have more styles. -
  • -
  • - SQL lexer gains second set of keywords. -
  • -
  • - Errorlist lexer recognises Borland Delphi error messages. -
  • -
  • - Method added for determining number of visual lines occupied by a document - line due to wrapping. -
  • -
  • - Sticky caret mode does not modify the preferred caret x position when typing - and may be useful for typing columns of text. -
  • -
  • - Dwell end notification sent when scroll occurs. -
  • -
  • - On GTK+, Scintilla requisition height is screen height rather than large fixed value. -
  • -
  • - Case insensitive autocompletion prefers exact case match. -
  • -
  • - SCI_PARADOWN and SCI_PARAUP treat lines containing only white - space as empty and handle text hidden by folding. -
  • -
  • - Scintilla on Windows supports WM_PRINTCLIENT although there are some - limitations. -
  • -
  • - SCN_AUTOCSELECTION notification sent when user selects from autoselection list. -
  • -
  • - SciTE's standard properties file sets buffers to 10, uses Pango fonts on GTK+ and - has dropped several languages to make the menu fit on screen. -
  • -
  • - SciTE's encoding cookie detection loosened so that common XML files will load - in UTF-8 if that is their declared encoding. -
  • -
  • - SciTE on GTK+ changes menus and toolbars to not be detachable unless turned - on with a property. Menus no longer tear off. The toolbar may be set to use the - default theme icons rather than SciTE's set. Changed key for View | End of Line - because of a conflict. Language menu can contain more items. -
  • -
  • - SciTE on GTK+ 2.x allows the height and width of the file open file chooser to - be set, for the show hidden files check box to be set from an option and for it - to be opened in the directory of the current file explicitly. Enter key works in - save chooser. -
  • -
  • - Scintilla lexers should no longer see bits in style bytes that are outside the set - they modify so should be able to correctly lex documents where the container - has used indicators. -
  • -
  • - SciTE no longer asks to save before performing a revert. -
  • -
  • - SciTE director interface adds a reloadproperties command to reload properties - from files. -
  • -
  • - Allow build on CYGWIN platform. -
  • -
  • - Allow use from LccWin compiler. -
  • -
  • - SCI_COLOURISE for SCLEX_CONTAINER causes a - SCN_STYLENEEDED notification. -
  • -
  • - Bugs fixed in lexing of HTML/ASP/JScript. -
  • -
  • - Fix for folding becoming confused. -
  • -
  • - On Windows, fixes for Japanese Input Method Editor and for 8 bit Katakana - characters. -
  • -
  • - Fixed buffer size bug avoided when typing long words by making buffer bigger. -
  • -
  • - Undo after automatic indentation more sensible. -
  • -
  • - SciTE menus on GTK+ uses Shift and Ctrl rather than old style abbreviations. -
  • -
  • - SciTE full screen mode on Windows calculates size more correctly. -
  • -
  • - SciTE on Windows menus work better with skinning applications. -
  • -
  • - Searching bugs fixed. -
  • -
  • - Colours reallocated when changing image using SCI_REGISTERIMAGE. -
  • -
  • - Caret stays visible when Enter held down. -
  • -
  • - Undo of automatic indentation more reasonable. -
  • -
  • - High processor usage fixed in background wrapping under some - circumstances. -
  • -
  • - Crashing bug fixed on AMD64. -
  • -
  • - SciTE crashing bug fixed when position.height or position.width not set. -
  • -
  • - Crashing bug on GTK+ fixed when setting cursor and window is NULL. -
  • -
  • - Crashing bug on GTK+ preedit window fixed. -
  • -
  • - SciTE crashing bug fixed in incremental search on Windows ME. -
  • -
  • - SciTE on Windows has a optional find and replace dialogs that can search through - all buffers and search within a particular style number. -
  • -
-

- Release 1.62 -

-
    -
  • - Released on 31 October 2004. -
  • -
  • - Lexer added for ASN.1. -
  • -
  • - Lexer added for VHDL. -
  • -
  • - On Windows, an invisible system caret is used to allow screen readers to determine - where the caret is. The visible caret is still drawn by the painting code. -
  • -
  • - On GTK+, Scintilla has methods to read the target as UTF-8 and to convert - a string from UTF-8 to the document encoding. This eases integration with - containers that use the UTF-8 encoding which is the API encoding for GTK+ 2. -
  • -
  • - SciTE on GTK+2 and Windows NT/2000/XP allows search and replace of Unicode text. -
  • -
  • - SciTE calltips allow setting the characters used to start and end parameter lists and - to separate parameters. -
  • -
  • - FindColumn method converts a line and column into a position, taking into account - tabs and multi-byte characters. -
  • -
  • - On Windows, when Scintilla copies text to the clipboard as Unicode, it avoids - adding an ANSI copy as the system will automatically convert as required in - a context-sensitive manner. -
  • -
  • - SciTE indent.auto setting automatically determines indent.size and use.tabs from - document contents. -
  • -
  • - SciTE defines a CurrentMessage property that holds the most recently selected - output pane message. -
  • -
  • - SciTE Lua scripting enhanced with -
      -
    • A Lua table called 'buffer' is associated with each buffer and can be used to - maintain buffer-specific state.
    • -
    • A 'scite' object allows interaction with the application such as opening - files from script.
    • -
    • Dynamic properties can be reset by assigning nil to a given key in - the props table.
    • -
    • An 'OnClear' event fires whenever properties and extension scripts are - about to be reloaded.
    • -
    • On Windows, loadlib is enabled and can be used to access Lua - binary modules / DLLs.
    -
  • -
  • - SciTE Find in Files on Windows can be used in a modeless way and gains a '..' - button to move up to the parent directory. It is also wider so that longer paths - can be seen. -
  • -
  • - Close buttons added to dialogs in SciTE on Windows. -
  • -
  • - SciTE on GTK+ 2 has a "hidden files" check box in file open dialog. -
  • -
  • - SciTE use.monospaced setting removed. More information in the - FAQ. -
  • -
  • - APDL lexer updated with more lexical classes -
  • -
  • - AutoIt3 lexer updated. -
  • -
  • - Ada lexer fixed to support non-ASCII text. -
  • -
  • - Cpp lexer now only matches exactly three slashes as starting a doc-comment so that - lines of slashes are seen as a normal comment. - Line ending characters are appear in default style on preprocessor and single line - comment lines. -
  • -
  • - CSS lexer updated to support CSS2 including second set of keywords. -
  • -
  • - Errorlist lexer now understands Java stack trace lines. -
  • -
  • - SciTE's handling of HTML Tidy messages jumps to column as well as line indicated. -
  • -
  • - Lisp lexer allows multiline strings. -
  • -
  • - Lua lexer treats .. as an operator when between identifiers. -
  • -
  • - PHP lexer handles 'e' in numerical literals. -
  • -
  • - PowerBasic lexer updated for macros and optimised. -
  • -
  • - Properties file folder changed to leave lines before a header at the base level - and thus avoid a vertical line when using connected folding symbols. -
  • -
  • - GTK+ on Windows version uses Alt for rectangular selection to be compatible with - platform convention. -
  • -
  • - SciTE abbreviations file moved from system directory to user directory - so each user can have separate abbreviations. -
  • -
  • - SciTE on GTK+ has improved .desktop file and make install support that may - lead to better integration with system shell. -
  • -
  • - Disabling of themed background drawing on GTK+ extended to all cases. -
  • -
  • - SciTE date formatting on Windows performed with the user setting rather than the - system setting. -
  • -
  • - GTK+ 2 redraw while scrolling fixed. -
  • -
  • - Recursive property definitions are safer, avoiding expansion when detected. -
  • -
  • - SciTE thread synchronization for scripts no longer uses HWND_MESSAGE - so is compatible with older versions of Windows. - Other Lua scripting bugs fixed. -
  • -
  • - SciTE on Windows localisation of menu accelerators changed to be compatible - with alternative UI themes. -
  • -
  • - SciTE on Windows full screen mode now fits better when menu different height - to title bar height. -
  • -
  • - SC_MARK_EMPTY marker is now invisible and does not change the background - colour. -
  • -
  • - Bug fixed in HTML lexer to allow use of <?xml in strings in scripts without - triggering xml mode. -
  • -
  • - Bug fixed in SciTE abbreviation expansion that could break indentation or crash. -
  • -
  • - Bug fixed when searching for a whole word string that ends one character before - end of document. -
  • -
  • - Drawing bug fixed when indicators drawn on wrapped lines. -
  • -
  • - Bug fixed when double clicking a hotspot. -
  • -
  • - Bug fixed where autocompletion would remove typed text if no match found. -
  • -
  • - Bug fixed where display does not scroll when inserting in long wrapped line. -
  • -
  • - Bug fixed where SCI_MARKERDELETEALL would only remove one of the markers - on a line that contained multiple markers with the same number. -
  • -
  • - Bug fixed where markers would move when converting line endings. -
  • -
  • - Bug fixed where SCI_LINEENDWRAP would move too far when line ends are visible. -
  • -
  • - Bugs fixed where calltips with unicode or other non-ASCII text would display - incorrectly. -
  • -
  • - Bug fixed in determining if at save point after undoing from save point and then - performing changes. -
  • -
  • - Bug fixed on GTK+ using unsupported code pages where extraneous text could - be drawn. -
  • -
  • - Bug fixed in drag and drop code on Windows where dragging from SciTE to - Firefox could hang both applications. -
  • -
  • - Crashing bug fixed on GTK+ when no font allocation succeeds. -
  • -
  • - Crashing bug fixed when autocompleting word longer than 1000 characters. -
  • -
  • - SciTE crashing bug fixed when both Find and Replace dialogs shown by disallowing - this situation. -
  • -
-

- Release 1.61 -

-
    -
  • - Released on 29 May 2004. -
  • -
  • - Improvements to selection handling on GTK+. -
  • -
  • - SciTE on GTK+ 2.4 uses the improved file chooser which allows - file extension filters, multiple selection, and remembers favourite - directories. -
  • -
  • - SciTE Load Session and Save Session commands available on GTK+. -
  • -
  • - SciTE lists Lua Startup Script in Options menu when loaded. -
  • -
  • - In SciTE, OnUserListSelection can be implemented in Lua. -
  • -
  • - SciTE on Windows has a context menu on the file tabs. -
  • -
  • - SQL lexer allows '#' comments and optionally '\' quoting inside strings. -
  • -
  • - Mssql lexer improved. -
  • -
  • - AutoIt3 lexer updated. -
  • -
  • - Perl lexer recognizes regular expression use better. -
  • -
  • - Errorlist lexer understands Lua tracebacks and copes with findstr - output for file names that end with digits. -
  • -
  • - Drawing of lines on GTK+ improved and made more like Windows - without final point. -
  • -
  • - SciTE on GTK+ uses a high resolution window icon. -
  • -
  • - SciTE can be set to warn before loading files larger than a particular size. -
  • -
  • - SciTE Lua scripting bugs fixed included a crashing bug when using - an undefined function name that would go before first actual name. -
  • -
  • - SciTE bug fixed where a modified buffer was not saved if it was - the last buffer and was not current when the New command used. -
  • -
  • - SciTE monofont mode no longer affects line numbers. -
  • -
  • - Crashing bug in SciTE avoided by not allowing both the Find and Replace - dialogs to be visible at one time. -
  • -
  • - Crashing bug in SciTE fixed when Lua scripts were being run - concurrently. -
  • -
  • - Bug fixed that caused incorrect line number width in SciTE. -
  • -
  • - PHP folding bug fixed. -
  • -
  • - Regression fixed when setting word characters to not include - some of the standard word characters. -
  • -
-

- Release 1.60 -

-
    -
  • - Released on 1 May 2004. -
  • -
  • - SciTE can be scripted using the Lua programming language. -
  • -
  • - command.mode is a better way to specify tool command options in SciTE. -
  • -
  • - Continuation markers can be displayed so that you can see which lines are wrapped. -
  • -
  • - Lexer for Gui4Cli language. -
  • -
  • - Lexer for Kix language. -
  • -
  • - Lexer for Specman E language. -
  • -
  • - Lexer for AutoIt3 language. -
  • -
  • - Lexer for APDL language. -
  • -
  • - Lexer for Bash language. Also reasonable for other Unix shells. -
  • -
  • - SciTE can load lexers implemented in external shared libraries. -
  • -
  • - Perl treats "." not as part of an identifier and interprets '/' and '->' - correctly in more circumstances. -
  • -
  • - PHP recognises variables within strings. -
  • -
  • - NSIS has properties "nsis.uservars" and "nsis.ignorecase". -
  • -
  • - MSSQL lexer adds keyword list for operators and stored procedures, - defines '(', ')', and ',' as operators and changes some other details. -
  • -
  • - Input method preedit window on GTK+ 2 may support some Asian languages. -
  • -
  • - Platform interface adds an extra platform-specific flag to Font::Create. - Used on wxWidgets to choose antialiased text display but may be used for - any task that a platform needs. -
  • -
  • - OnBeforeSave method added to Extension interface. -
  • -
  • - Scintilla methods that return strings can be called with a NULL pointer - to find out how long the string should be. -
  • -
  • - Visual Studio .NET project file now in VS .NET 2003 format so can not be used - directly in VS .NET 2002. -
  • -
  • - Scintilla can be built with GTK+ 2 on Windows. -
  • -
  • - Updated RPM spec for SciTE on GTK+. -
  • -
  • - GTK+ makefile for SciTE allows selection of destination directory, creates destination - directories and sets file modes and owners better. -
  • -
  • - Tab indents now go to next tab multiple rather than add tab size. -
  • -
  • - SciTE abbreviations now use the longest possible match rather than the shortest. -
  • -
  • - Autocompletion does not remove prefix when actioned with no choice selected. -
  • -
  • - Autocompletion cancels when moving beyond the start position, not at the start position. -
  • -
  • - SciTE now shows only calltips for functions that match exactly, not - those that match as a prefix. -
  • -
  • - SciTE can repair box comment sections where some lines were added without - the box comment middle line prefix. -
  • -
  • - Alt+ works in user.shortcuts on Windows. -
  • -
  • - SciTE on GTK+ enables replace in selection for rectangular selections. -
  • -
  • - Key bindings for command.shortcut implemented in a way that doesn't break - when the menus are localised. -
  • -
  • - Drawing of background on GTK+ faster as theme drawing disabled. -
  • -
  • - On GTK+, calltips are moved back onto the screen if they extend beyond the screen bounds. -
  • -
  • - On Windows, the Scintilla object is destroyed on WM_NCDESTROY rather than - WM_DESTROY which arrives earlier. This fixes some problems when Scintilla was subclassed. -
  • -
  • - The zorder switching feature removed due to number of crashing bugs. -
  • -
  • - Code for XPM images made more robust. -
  • -
  • - Bug fixed with primary selection on GTK+. -
  • -
  • - On GTK+ 2, copied or cut text can still be pasted after the Scintilla widget is destroyed. -
  • -
  • - Styling change not visible problem fixed when line was cached. -
  • -
  • - Bug in SciTE on Windows fixed where clipboard commands stopped working. -
  • -
  • - Crashing bugs in display fixed in line layout cache. -
  • -
  • - Crashing bug may be fixed on AMD64 processor on GTK+. -
  • -
  • - Rare hanging crash fixed in Python lexer. -
  • -
  • - Display bugs fixed with DBCS characters on GTK+. -
  • -
  • - Autocompletion lists on GTK+ 2 are not sorted by the ListModel as the - contents are sorted correctly by Scintilla. -
  • -
  • - SciTE fixed to not open extra untitled buffers with check.if.already.open. -
  • -
  • - Sizing bug fixed on GTK+ when window resized while unmapped. -
  • -
  • - Text drawing crashing bug fixed on GTK+ with non-Pango fonts and long strings. -
  • -
  • - Fixed some issues if characters are unsigned. -
  • -
  • - Fixes in NSIS support. -
  • -
-

- Release 1.59 -

-
    -
  • - Released on 19 February 2004. -
  • -
  • - SciTE Options and Language menus reduced in length by commenting - out some languages. Languages can be enabled by editing the global - properties file. -
  • -
  • - Verilog language supported. -
  • -
  • - Lexer for Microsoft dialect of SQL. SciTE properties file available from extras page. -
  • -
  • - Perl lexer disambiguates '/' better. -
  • -
  • - NSIS lexer improved with a lexical class for numbers, option for ignoring case - of keywords, and folds only occurring when folding keyword first on line. -
  • -
  • - PowerBasic lexer improved with styles for constants and assembler and - folding improvements. -
  • -
  • - On GTK+, input method support only invoked for Asian languages and not - European languages as the old European keyboard code works better. -
  • -
  • - Scintilla can be requested to allocate a certain amount and so avoid repeated - reallocations and memory inefficiencies. SciTE uses this and so should require - less memory. -
  • -
  • - SciTE's "toggle current fold" works when invoked on child line as well as - fold header. -
  • -
  • - SciTE output pane scrolling can be set to not scroll back to start after - completion of command. -
  • -
  • - SciTE has a $(SessionPath) property. -
  • -
  • - SciTE on Windows can use VK_* codes for keys in user.shortcuts. -
  • -
  • - Stack overwrite bug fixed in SciTE's command to move to the end of a - preprocessor conditional. -
  • -
  • - Bug fixed where vertical selection appeared to select a different set of characters - then would be used by, for example, a copy. -
  • -
  • - SciTE memory leak fixed in fold state remembering. -
  • -
  • - Bug fixed where changing the style of some text outside the - standard StyleNeeded notification would not be visible. -
  • -
  • - On GTK+ 2 g_iconv is used in preference to iconv, as it is provided by GTK+ - so should avoid problems finding the iconv library. -
  • -
  • - On GTK+ fixed a style reference count bug. -
  • -
  • - Memory corruption bug fixed with GetSelText. -
  • -
  • - On Windows Scintilla deletes memory on WM_NCDESTROY rather than - the earlier WM_DESTROY to avoid problems when the window is subclassed. -
  • -
-

- Release 1.58 -

-
    -
  • - Released on 11 January 2004. -
  • -
  • - Method to discover the currently highlighted element in an autocompletion list. -
  • -
  • - On GTK+, the lexers are now included in the scintilla.a library file. This - will require changes to the make files of dependent projects. -
  • -
  • - Octave support added alongside related Matlab language and Matlab support improved. -
  • -
  • - VB lexer gains an unterminated string state and 4 sets of keywords. -
  • -
  • - Ruby lexer handles $' correctly. -
  • -
  • - Error line handling improved for FORTRAN compilers from Absoft and Intel. -
  • -
  • - International input enabled on GTK+ 2 although there is no way to choose an - input method. -
  • -
  • - MultiplexExtension in SciTE allows multiple extensions to be used at once. -
  • -
  • - Regular expression replace interprets backslash expressions \a, \b, \f, \n, \r, \t, - and \v in the replacement value. -
  • -
  • - SciTE Replace dialog displays number of replacements made when Replace All or - Replace in Selection performed. -
  • -
  • - Localisation files may contain a translation.encoding setting which is used - on GTK+ 2 to automatically reencode the translation to UTF-8 so it will be - the localised text will be displayed correctly. -
  • -
  • - SciTE on GTK+ implements check.if.already.open. -
  • -
  • - Make files for Mac OS X made more robust. -
  • -
  • - Performance improved in SciTE when switching buffers when there - is a rectangular selection. -
  • -
  • - Fixed failure to display some text when wrapped. -
  • -
  • - SciTE crashes from Ctrl+Tab buffer cycling fixed. - May still be some rare bugs here. -
  • -
  • - Crash fixed when decoding an error message that appears similar to a - Borland error message. -
  • -
  • - Fix to auto-scrolling allows containers to implement enhanced double click selection. -
  • -
  • - Hang fixed in idle word wrap. -
  • -
  • - Crash fixed in hotspot display code.. -
  • -
  • - SciTE on Windows Incremental Search no longer moves caret back. -
  • -
  • - SciTE hang fixed when performing a replace with a find string that - matched zero length strings such as ".*". -
  • -
  • - SciTE no longer styles the whole file when saving buffer fold state - as that was slow. -
  • -
-

- Release 1.57 -

-
    -
  • - Released on 27 November 2003. -
  • -
  • - SciTE remembers folding of each buffer. -
  • -
  • - Lexer for Erlang language. -
  • -
  • - Scintilla allows setting the set of white space characters. -
  • -
  • - Scintilla has 'stuttered' page movement commands to first move - to top or bottom within current visible lines before scrolling. -
  • -
  • - Scintilla commands for moving to end of words. -
  • -
  • - Incremental line wrap enabled on Windows. -
  • -
  • - SciTE PDF exporter produces output that is more compliant with reader - applications, is smaller and allows more configuration. - HTML exporter optimizes size of output files. -
  • -
  • - SciTE defines properties PLAT_WINNT and PLAT_WIN95 on the - corresponding platforms. -
  • -
  • - SciTE can adjust the line margin width to fit the largest line number. - The line.numbers property is split between line.margin.visible and - line.margin.width. -
  • -
  • - SciTE on GTK+ allows user defined menu accelerators. - Alt can be included in user.shortcuts. -
  • -
  • - SciTE Language menu can have items commented out. -
  • -
  • - SciTE on Windows Go to dialog allows choosing a column number as - well as a line number. -
  • -
  • - SciTE on GTK+ make file uses prefix setting more consistently. -
  • -
  • - Bug fixed that caused word wrapping to fail to display all text. -
  • -
  • - Crashing bug fixed in GTK+ version of Scintilla when using GDK fonts - and opening autocompletion. -
  • -
  • - Bug fixed in Scintilla SCI_GETSELTEXT where an extra NUL - was included at end of returned string -
  • -
  • - Crashing bug fixed in SciTE z-order switching implementation. -
  • -
  • - Hanging bug fixed in Perl lexer. -
  • -
  • - SciTE crashing bug fixed for using 'case' without argument in style definition. -
  • -
-

- Release 1.56 -

-
    -
  • - Released on 25 October 2003. -
  • -
  • - Rectangular selection can be performed using the keyboard. - Greater programmatic control over rectangular selection. - This has caused several changes to key bindings. -
  • -
  • - SciTE Replace In Selection works on rectangular selections. -
  • -
  • - Improved lexer for TeX, new lexer for Metapost and other support for these - languages. -
  • -
  • - Lexer for PowerBasic. -
  • -
  • - Lexer for Forth. -
  • -
  • - YAML lexer improved to include error styling. -
  • -
  • - Perl lexer improved to correctly handle more cases. -
  • -
  • - Assembler lexer updated to support single-quote strings and fix some - problems. -
  • -
  • - SciTE on Windows can switch between buffers in order of use (z-order) rather - than static order. -
  • -
  • - SciTE supports adding an extension for "Open Selected Filename". - The openpath setting works on GTK+. -
  • -
  • - SciTE can Export as XML. -
  • -
  • - SciTE $(SelHeight) variable gives a more natural result for empty and whole line - selections. -
  • -
  • - Fixes to wrapping problems, such as only first display line being visible in some - cases. -
  • -
  • - Fixes to hotspot to only highlight when over the hotspot, only use background - colour when set and option to limit hotspots to a single line. -
  • -
  • - Small fixes to FORTRAN lexing and folding. -
  • -
  • - SQL lexer treats single quote strings as a separate class to double quote strings.. -
  • -
  • - Scintilla made compatible with expectations of container widget in GTK+ 2.3. -
  • -
  • - Fix to strip out pixmap ID when automatically choosing from an autocompletion - list with only one element. -
  • -
  • - SciTE bug fixed where UTF-8 files longer than 128K were gaining more than one - BOM. -
  • -
  • - Crashing bug fixed in SciTE on GTK+ where using "Stop Executing" twice leads - to all applications exiting. -
  • -
  • - Bug fixed in autocompletion scrolling on GTK+ 2 with a case sensitive list. - The ListBox::Sort method is no longer needed or available so platform - maintainers should remove it. -
  • -
  • - SciTE check.if.already.open setting removed from GTK+ version as unmaintained. -
  • -
-

- Release 1.55 -

-
    -
  • - Released on 25 September 2003. -
  • -
  • - Fix a crashing bug in indicator display in Scintilla. -
  • -
  • - GTK+ version now defaults to building for GTK+ 2 rather than 1. -
  • -
  • - Mingw make file detects compiler version and avoids options - that are cause problems for some versions. -
  • -
  • - Large performance improvement on GTK+ 2 for long lines. -
  • -
  • - Incremental line wrap on GTK+. -
  • -
  • - International text entry works much better on GTK+ with particular - improvements for Baltic languages and languages that use 'dead' accents. - NUL key events such as those generated by some function keys, ignored. -
  • -
  • - Unicode clipboard support on GTK+. -
  • -
  • - Indicator type INDIC_BOX draws a rectangle around the text. -
  • -
  • - Clarion language support. -
  • -
  • - YAML language support. -
  • -
  • - MPT LOG language support. -
  • -
  • - On Windows, SciTE can switch buffers based on activation order rather - than buffer number. -
  • -
  • - SciTE save.on.deactivate saves all buffers rather than just the current buffer. -
  • -
  • - Lua lexer handles non-ASCII characters correctly. -
  • -
  • - Error lexer understands Borland errors with pathnames that contain space. -
  • -
  • - On GTK+ 2, autocompletion uses TreeView rather than deprecated CList. -
  • -
  • - SciTE autocompletion removed when expand abbreviation command used. -
  • -
  • - SciTE calltips support overloaded functions. -
  • -
  • - When Save fails in SciTE, choice offered to Save As. -
  • -
  • - SciTE message boxes on Windows may be moved to front when needed. -
  • -
  • - Indicators drawn correctly on wrapped lines. -
  • -
  • - Regular expression search no longer matches characters with high bit - set to characters without high bit set. -
  • -
  • - Hang fixed in backwards search in multi byte character documents. -
  • -
  • - Hang fixed in SciTE Mark All command when wrap around turned off. -
  • -
  • - SciTE Incremental Search no longer uses hot keys on Windows. -
  • -
  • - Calltips draw non-ASCII characters correctly rather than as arrows. -
  • -
  • - SciTE crash fixed when going to an error message with empty file name. -
  • -
  • - Bugs fixed in XPM image handling code. -
  • -
-

- Release 1.54 -

-
    -
  • - Released on 12 August 2003. -
  • -
  • - SciTE on GTK+ 2.x can display a tab bar. -
  • -
  • - SciTE on Windows provides incremental search. -
  • -
  • - Lexer for PostScript. -
  • -
  • - Lexer for the NSIS scripting language. -
  • -
  • - New lexer for POV-Ray Scene Description Language - replaces previous implementation. -
  • -
  • - Lexer for the MMIX Assembler language. -
  • -
  • - Lexer for the Scriptol language. -
  • -
  • - Incompatibility: SQL keywords are specified in lower case rather than upper case. - SQL lexer allows double quoted strings. -
  • -
  • - Pascal lexer: character constants that start with '#' understood, - '@' only allowed within assembler blocks, - '$' can be the start of a number, - initial '.' in 0..constant not treated as part of a number, - and assembler blocks made more distinctive. -
  • -
  • - Lua lexer allows '.' in keywords. - Multi-line strings and comments can be folded. -
  • -
  • - CSS lexer handles multiple psuedoclasses. -
  • -
  • - Properties file folder works for INI file format. -
  • -
  • - Hidden indicator style allows the container to mark text within Scintilla - without there being any visual effect. -
  • -
  • - SciTE does not prompt to save changes when the buffer is empty and untitled. -
  • -
  • - Modification notifications caused by SCI_INSERTSTYLEDSTRING - now include the contents of the insertion. -
  • -
  • - SCI_MARKERDELETEALL deletes all the markers on a line - rather than just the first match. -
  • -
  • - Better handling of 'dead' accents on GTK+ 2 for languages - that use accented characters. -
  • -
  • - SciTE now uses value of output.vertical.size property. -
  • -
  • - Crash fixed in SciTE autocompletion on long lines. -
  • -
  • - Crash fixed in SciTE comment command on long lines. -
  • -
  • - Bug fixed with backwards regular expression search skipping - every second match. -
  • -
  • - Hang fixed with regular expression replace where both target and replacement were empty. -
  • -
-

- Release 1.53 -

-
    -
  • - Released on 16 May 2003. -
  • -
  • - On GTK+ 2, encodings other than ASCII, Latin1, and Unicode are - supported for both display and input using iconv. -
  • -
  • - External lexers supported on GTK+/Linux. - External lexers must now be explicitly loaded with SCI_LOADLEXERLIBRARY - rather than relying upon a naming convention and automatic loading. -
  • -
  • - Support of Lout typesetting language. -
  • -
  • - Support of E-Scripts language used in the POL Ultima Online Emulator. -
  • -
  • - Scrolling and drawing performance on GTK+ enhanced, particularly for GTK+ 2.x - with an extra window for the text area avoiding conflicts with the scroll bars. -
  • -
  • - CopyText and CopyRange methods in Scintilla allow container to - easily copy to the system clipboard. -
  • -
  • - Line Copy command implemented and bound to Ctrl+Shift+T. -
  • -
  • - Scintilla APIs PositionBefore and PositionAfter can be used to iterate through - a document taking into account the encoding and multi-byte characters. -
  • -
  • - C++ folder can fold on the "} else {" line of an if statement by setting - fold.at.else property to 1. -
  • -
  • - C++ lexer allows an extra set of keywords. -
  • -
  • - Property names and thus abbreviations may be non-ASCII. -
  • -
  • - Removed attempt to load a file when setting properties that was - part of an old scripting experiment. -
  • -
  • - SciTE no longer warns about a file not existing when opening - properties files from the Options menu as there is a good chance - the user wants to create one. -
  • -
  • - Bug fixed with brace recognition in multi-byte encoded files where a partial - character matched a brace byte. -
  • -
  • - More protection against infinite loops or recursion with recursive property definitions. -
  • -
  • - On Windows, cursor will no longer disappear over margins in custom builds when - cursor resource not present. The Windows default cursor is displayed instead. -
  • -
  • - load.on.activate fixed in SciTE as was broken in 1.52. -
  • -
-

- Release 1.52 -

-
    -
  • - Released on 17 April 2003. -
  • -
  • - Pango font support on GTK+ 2. - Unicode input improved on GTK+ 2. -
  • -
  • - Hotspot style implemented in Scintilla. -
  • -
  • - Small up and down arrows can be displayed in calltips and the container - is notified when the mouse is clicked on a calltip. - Normal and selected calltip text colours can be set. -
  • -
  • - POSIX compatibility flag in Scintilla regular expression search - interprets bare ( and ) as tagged sections. -
  • -
  • - Error message lexer tightened to yield fewer false matches. - Recognition of Lahey and Intel FORTRAN error formats. -
  • -
  • - Scintilla keyboard commands for moving to start and end of - screen lines rather than document lines, unless already there - where these keys move to the start or end of the document line. -
  • -
  • - Line joining command. -
  • -
  • - Lexer for POV-Ray. -
  • -
  • - Calltips on Windows are no longer clipped by the parent window. -
  • -
  • - Autocompletion lists are cancelled when focus leaves their parent window. -
  • -
  • - Move to next/previous empty line delimited paragraph key commands. -
  • -
  • - SciTE hang fixed with recursive property definitions by placing limit - on number of substitutions performed. -
  • -
  • - SciTE Export as PDF reenabled and works. -
  • -
  • - Added loadsession: command line command to SciTE. -
  • -
  • - SciTE option to quit application when last document closed. -
  • -
  • - SciTE option to ask user if it is OK to reload a file that has been - modified outside SciTE. -
  • -
  • - SciTE option to automatically save before running particular command tools - or to ask user or to not save. -
  • -
  • - SciTE on Windows 9x will write a Ctrl+Z to the process input pipe before - closing the pipe when running tool commands that take input. -
  • -
  • - Added a manifest resource to SciTE on Windows to enable Windows XP - themed UI. -
  • -
  • - SciTE calltips handle nested calls and other situations better. -
  • -
  • - CSS lexer improved. -
  • -
  • - Interface to platform layer changed - Surface initialisation now requires - a WindowID parameter. -
  • -
  • - Bug fixed with drawing or measuring long pieces of text on Windows 9x - by truncating the pieces. -
  • -
  • - Bug fixed with SciTE on GTK+ where a user shortcut for a visible character - inserted the character as well as executing the command. -
  • -
  • - Bug fixed where primary selection on GTK+ was reset by - Scintilla during creation. -
  • -
  • - Bug fixed where SciTE would close immediately on startup - when using save.session. -
  • -
  • - Crash fixed when entering '\' in LaTeX file. -
  • -
  • - Hang fixed when '#' last character in VB file. -
  • -
  • - Crash fixed in error message lexer. -
  • -
  • - Crash fixed when searching for long regular expressions. -
  • -
  • - Pressing return when nothing selected in user list sends notification with - empty text rather than random text. -
  • -
  • - Mouse debouncing disabled on Windows as it interfered with some - mouse utilities. -
  • -
  • - Bug fixed where overstrike mode inserted before rather than replaced last - character in document. -
  • -
  • - Bug fixed with syntax highlighting of Japanese text. -
  • -
  • - Bug fixed in split lines function. -
  • -
  • - Cosmetic fix to SciTE tab bar on Windows when window resized. - Focus sticks to either pane more consistently. -
  • -
-

- Release 1.51 -

-
    -
  • - Released on 16 February 2003. -
  • -
  • - Two phase drawing avoids cutting off text that overlaps runs by drawing - all the backgrounds of a line then drawing all the text transparently. - Single phase drawing is an option. -
  • -
  • - Scintilla method to split lines at a particular width by adding new line - characters. -
  • -
  • - The character used in autocompletion lists to separate the text from the image - number can be changed. -
  • -
  • - The scrollbar range will automatically expand when the caret is moved - beyond the current range. - The scroll bar is updated when SCI_SETXOFFSET is called. -
  • -
  • - Mouse cursors on GTK+ improved to be consistent with other applications - and the Windows version. -
  • -
  • - Horizontal scrollbar on GTK+ now disappears in wrapped mode. -
  • -
  • - Scintilla on GTK+ 2: mouse wheel scrolling, cursor over scrollbars, focus, - and syntax highlighting now work. - gtk_selection_notify avoided for compatibility with GTK+ 2.2. -
  • -
  • - Fold margin colours can now be set. -
  • -
  • - SciTE can be built for GTK+ 2. -
  • -
  • - SciTE can optionally preserve the undo history over an automatic file reload. -
  • -
  • - Tags can optionally be case insensitive in XML and HTML. -
  • -
  • - SciTE on Windows handles input to tool commands in a way that should avoid - deadlock. Output from tools can be used to replace the selection. -
  • -
  • - SciTE on GTK+ automatically substitutes '|' for '/' in menu items as '/' - is used to define the menu hierarchy. -
  • -
  • - Optional buffer number in SciTE title bar. -
  • -
  • - Crash fixed in SciTE brace matching. -
  • -
  • - Bug fixed where automatic scrolling past end of document - flipped back to the beginning. -
  • -
  • - Bug fixed where wrapping caused text to disappear. -
  • -
  • - Bug fixed on Windows where images in autocompletion lists were - shown on the wrong item. -
  • -
  • - Crash fixed due to memory bug in autocompletion lists on Windows. -
  • -
  • - Crash fixed when double clicking some error messages. -
  • -
  • - Bug fixed in word part movement where sometimes no movement would occur. -
  • -
  • - Bug fixed on Windows NT where long text runs were truncated by - treating NT differently to 9x where there is a limitation. -
  • -
  • - Text in not-changeable style works better but there remain some cases where - it is still possible to delete text protected this way. -
  • -
-

- Release 1.50 -

-
    -
  • - Released on 24 January 2003. -
  • -
  • - Autocompletion lists may have a per-item pixmap. -
  • -
  • - Autocompletion lists allow Unicode text on Windows. -
  • -
  • - Scintilla documentation rewritten. -
  • -
  • - Additional DBCS encoding support in Scintilla on GTK+ primarily aimed at - Japanese EUC encoding. -
  • -
  • - CSS (Cascading Style Sheets) lexer added. -
  • -
  • - diff lexer understands some more formats. -
  • -
  • - Fold box feature is an alternative way to show the structure of code. -
  • -
  • - Avenue lexer supports multiple keyword lists. -
  • -
  • - The caret may now be made invisible by setting the caret width to 0. -
  • -
  • - Python folder attaches comments before blocks to the next block rather - than the previous block. -
  • -
  • - SciTE openpath property on Windows searches a path for files that are - the subject of the Open Selected Filename command. -
  • -
  • - The localisation file name can be changed with the locale.properties property. -
  • -
  • - On Windows, SciTE can pipe the result of a string expression into a command line tool. -
  • -
  • - On Windows, SciTE's Find dialog has a Mark All button. -
  • -
  • - On Windows, there is an Insert Abbreviation command that allows a choice from - the defined abbreviations and inserts the selection into the abbreviation at the - position of a '|'. -
  • -
  • - Minor fixes to Fortran lexer. -
  • -
  • - fold.html.preprocessor decides whether to fold <? and ?>. - Minor improvements to PHP folding. -
  • -
  • - Maximum number of keyword lists allowed increased from 6 to 9. -
  • -
  • - Duplicate line command added with default assignment to Ctrl+D. -
  • -
  • - SciTE sets $(Replacements) to the number of replacements made by the - Replace All command. $(CurrentWord) is set to the word before the caret if the caret - is at the end of a word. -
  • -
  • - Opening a SciTE session now loads files in remembered order, sets the current file - as remembered, and moves the caret to the remembered line. -
  • -
  • - Bugs fixed with printing on Windows where line wrapping was causing some text - to not print. -
  • -
  • - Bug fixed with Korean Input Method Editor on Windows. -
  • -
  • - Bugs fixed with line wrap which would sometimes choose different break positions - after switching focus away and back. -
  • -
  • - Bug fixed where wheel scrolling had no effect on GTK+ after opening a fold. -
  • -
  • - Bug fixed with file paths containing non-ASCII characters on Windows. -
  • -
  • - Crash fixed with printing on Windows after defining pixmap marker. -
  • -
  • - Crash fixed in makefile lexer when first character on line was '='. -
  • -
  • - Bug fixed where local properties were not always being applied. -
  • -
  • - Ctrl+Keypad* fold command works on GTK+. -
  • -
  • - Hangs fixed in SciTE's Replace All command when replacing regular expressions '^' - or '$'. -
  • -
  • - SciTE monospace setting behaves more sensibly. -
  • -
-

- Release 1.49 -

-
    -
  • - Released on 1 November 2002. -
  • -
  • - Unicode supported on GTK+. To perform well, this added a font cache to GTK+ - and to make that safe, a mutex is used. The mutex requires the application to link in - the threading library by evaluating `glib-config --libs gthread`. A Unicode locale - should also be set up by a call like setlocale(LC_CTYPE, "en_US.UTF-8"). - scintilla_release_resources function added to release mutex. -
  • -
  • - FORTRAN and assembler lexers added along with other support for these - languages in SciTE. -
  • -
  • - Ada lexer improved handling of based numbers, identifier validity and attributes - distinguished from character literals. -
  • -
  • - Lua lexer handles block comments and a deep level of nesting for literal strings - and block comments. -
  • -
  • - Errorlist lexer recognises PHP error messages. -
  • -
  • - Variant of the C++ lexer with case insensitive keywords - called cppnocase. Whitespace in preprocessor text handled more correctly. -
  • -
  • - Folder added for Perl. -
  • -
  • - Compilation with GCC 3.2 supported. -
  • -
  • - Markers can be pixmaps. -
  • -
  • - Lines are wrapped when printing. - Bug fixed which printed line numbers in different styles. -
  • -
  • - Text can be appended to end with AppendText method. -
  • -
  • - ChooseCaretX method added. -
  • -
  • - Vertical scroll bar can be turned off with SetVScrollBar method. -
  • -
  • - SciTE Save All command saves all buffers. -
  • -
  • - SciTE localisation compares keys case insensitively to make translations more flexible. -
  • -
  • - SciTE detects a utf-8 coding cookie "coding: utf-8" in first two - lines and goes into Unicode mode. -
  • -
  • - SciTE key bindings are definable. -
  • -
  • - SciTE Find in Files dialog can display directory browser to - choose directory to search. -
  • -
  • - SciTE enabling of undo and redo toolbar buttons improved. -
  • -
  • - SciTE on Windows file type filters in open dialog sorted. -
  • -
  • - Fixed crashing bug when using automatic tag closing in XML or HTML. -
  • -
  • - Fixed bug on Windows causing very long (>64K) lines to not display. -
  • -
  • - Fixed bug in backwards regular expression searching. -
  • -
  • - Fixed bug in calltips where wrong argument was highlighted. -
  • -
  • - Fixed bug in tab timmy feature when file has line feed line endings. -
  • -
  • - Fixed bug in compiling without INCLUDE_DEPRECATED_FEATURES - defined. -
  • -
-

- Release 1.48 -

-
    -
  • - Released on 9 September 2002. -
  • -
  • - Improved Pascal lexer with context sensitive keywords - and separate folder which handles //{ and //} folding comments and - {$region} and {$end} folding directives. - The "case" statement now folds correctly. -
  • -
  • - C++ lexer correctly handles comments on preprocessor lines. -
  • -
  • - New commands for moving to beginning and end of display lines when in line - wrap mode. Key bindings added for these commands. -
  • -
  • - New marker symbols that look like ">>>" and "..." which can be used for - interactive shell prompts for Python. -
  • -
  • - The foreground and background colours of visible whitespace can be chosen - independent of the colours chosen for the lexical class of that whitespace. -
  • -
  • - Per line data optimised by using an exponential allocation scheme. -
  • -
  • - SciTE API file loading optimised. -
  • -
  • - SciTE for GTK+ subsystem 2 documented. The exit status of commands - is decoded into more understandable fields. -
  • -
  • - SciTE find dialog remembers previous find string when there is no selection. - Find in Selection button disabled when selection is rectangular as command - did not work. -
  • -
  • - Shift+Enter made equivalent to Enter to avoid users having to let go of - the shift key when typing. Avoids the possibility of entering single carriage - returns in a file that contains CR+LF line ends. -
  • -
  • - Autocompletion does not immediately disappear when the length parameter - to SCI_AUTOCSHOW is 0. -
  • -
  • - SciTE focuses on the editor pane when File | New executed and when the - output pane is closed with F8. Double clicking on a non-highlighted output - pane line selects the word under the cursor rather than seeking the next - highlighted line. -
  • -
  • - SciTE director interface implements an "askproperty" command. -
  • -
  • - SciTE's Export as LaTeX output improved. -
  • -
  • - Better choice of autocompletion displaying above the caret rather then - below when that is more sensible. -
  • -
  • - Bug fixed where context menu would not be completely visible if invoked - when cursor near bottom or left of screen. -
  • -
  • - Crashing bug fixed when displaying long strings on GTK+ caused failure of X server - by displaying long text in segments. -
  • -
  • - Crashing bug fixed on GTK+ when a Scintilla window was removed from its parent - but was still the selection owner. -
  • -
  • - Bug fixed on Windows in Unicode mode where not all characters on a line - were displayed when that line contained some characters not in ASCII. -
  • -
  • - Crashing bug fixed in SciTE on Windows with clearing output while running command. -
  • -
  • - Bug fixed in SciTE for GTK+ with command completion not detected when - no output was produced by the command. -
  • -
  • - Bug fixed in SciTE for Windows where menus were not shown translated. -
  • -
  • - Bug fixed where words failed to display in line wrapping mode with visible - line ends. -
  • -
  • - Bug fixed in SciTE where files opened from a session file were not closed. -
  • -
  • - Cosmetic flicker fixed when using Ctrl+Up and Ctrl+Down with some caret policies. -
  • -
-

- Release 1.47 -

-
    -
  • - Released on 1 August 2002. -
  • -
  • - Support for GTK+ 2 in Scintilla. International input methods not supported - on GTK+2. -
  • -
  • - Line wrapping performance improved greatly. -
  • -
  • - New caret policy implementation that treats horizontal and vertical - positioning equivalently and independently. Old caret policy methods - deprecated and not all options work correctly with old methods. -
  • -
  • - Extra fold points for C, C++, Java, ... for fold comments //{ .. //} and - #if / #ifdef .. #endif and the #region .. #endregion feature of C#. -
  • -
  • - Scintilla method to find the height in pixels of a line. Currently returns the - same result for every line as all lines are same height. -
  • -
  • - Separate make file, scintilla_vc6.mak, for Scintilla to use Visual C++ - version 6 since main makefile now assumes VS .NET. - VS .NET project files available for combined Scintilla and - SciTE in scite/boundscheck. -
  • -
  • - SciTE automatically recognises Unicode files based - on their Byte Order Marks and switches to Unicode mode. - On Windows, where SciTE supports Unicode display, this - allows display of non European characters. - The file is saved back into the same character encoding unless - the user decides to switch using the File | Encoding menu. -
  • -
  • - Handling of character input changed so that a fillup character, typically '(' - displays a calltip when an autocompletion list was being displayed. -
  • -
  • - Multiline strings lexed better for C++ and Lua. -
  • -
  • - Regular expressions in JavaScript within hypertext files are lexed better. -
  • -
  • - On Windows, Scintilla exports a function called Scintilla_DirectFunction - that can be used the same as the function returned by GetDirectFunction. -
  • -
  • - Scintilla converts line endings of text obtained from the clipboard to - the current default line endings. -
  • -
  • - New SciTE property ensure.final.line.end can ensure that saved files - always end with a new line as this is required by some tools. - The ensure.consistent.line.ends property ensures all line ends are the - current default when saving files. - The strip.trailing.spaces property now works on the buffer so the - buffer in memory and the file on disk are the same after a save is performed. -
  • -
  • - The SciTE expand abbreviation command again allows '|' characters - in expansions to be quoted by using '||'. -
  • -
  • - SciTE on Windows can send data to the find tool through standard - input rather than using a command line argument to avoid problems - with quoting command line arguments. -
  • -
  • - The Stop Executing command in SciTE on Windows improved to send - a Ctrl+Z character to the tool. Better messages when stopping a tool. -
  • -
  • - Autocompletion can automatically "fill up" when one of a set of characters is - type with the autocomplete.<lexer>.fillups property. -
  • -
  • - New predefined properties in SciTE, SelectionStartColumn, SelectionStartLine, - SelectionEndColumn, SelectionEndLine can be used to integrate with other - applications. -
  • -
  • - Environment variables are available as properties in SciTE. -
  • -
  • - SciTE on Windows keeps status line more current. -
  • -
  • - Abbreviations work in SciTE on Linux when first opened. -
  • -
  • - File saving fixed in SciTE to ensure files are not closed when they can not be - saved because of file permissions. Also fixed a problem with buffers that - caused files to not be saved. -
  • -
  • - SciTE bug fixed where monospace mode not remembered when saving files. - Some searching options now remembered when switching files. -
  • -
  • - SciTE on Linux now waits on child termination when it shuts a child down - to avoid zombies. -
  • -
  • - SciTE on Linux has a Print menu command that defaults to invoking a2ps. -
  • -
  • - Fixed incorrect highlighting of indentation guides in SciTE for Python. -
  • -
  • - Crash fixed in Scintilla when calling GetText for 0 characters. -
  • -
  • - Exporting as LaTeX improved when processing backslashes and tabs - and setting up font. -
  • -
  • - Crash fixed in SciTE when exporting or copying as RTF. -
  • -
  • - SciTE session loading fixed to handle more than 10 files in session. -
  • -
-

- Release 1.46 -

-
    -
  • - Released on 10 May 2002. -
  • -
  • - Set of lexers compiled into Scintilla can now be changed by adding and - removing lexer source files from scintilla/src and running LexGen.py. -
  • -
  • - SCN_ZOOM notification provided by Scintilla when user changes zoom level. - Method to determine width of strings in pixels so that elements can be sized - relative to text size. - SciTE changed to keep line number column displaying a given - number of characters. -
  • -
  • - The logical width of the document used to determine scroll bar range can be set. -
  • -
  • - Setting to allow vertical scrolling to display last line at top rather than - bottom of window. -
  • -
  • - Read-only mode improved to avoid changing the selection in most cases - when a modification is attempted. Drag and drop cursors display correctly - for read-only in some cases. -
  • -
  • - Visual C++ options in make files changed to suit Visual Studio .NET. -
  • -
  • - Scintilla.iface includes feature types for enumerations and lexers. -
  • -
  • - Lua lexer improves handling of literal strings and copes with nested literal strings. -
  • -
  • - Diff lexer changed to treat lines starting with "***" similarly to "---". - Symbolic names defined for lexical classes. -
  • -
  • - nncrontab lexer improved. -
  • -
  • - Turkish fonts (iso8859-9) supported on GTK+. -
  • -
  • - Automatic close tag feature for XML and HTML in SciTE. -
  • -
  • - Automatic indentation in SciTE improved. -
  • -
  • - Maximum number of buffers available in SciTE increased. May be up to 100 - although other restrictions on menu length limit the real maximum. -
  • -
  • - Save a Copy command added to SciTE. -
  • -
  • - Export as TeX command added to SciTE. -
  • -
  • - Export as HTML command in SciTE respects Use Monospaced Font and - background colour settings. -
  • -
  • - Compilation problem on Solaris fixed. -
  • -
  • - Order of files displayed for SciTE's previous and next menu and key commands - are now consistent. -
  • -
  • - Saving of MRU in recent file changed so files open when SciTE quit - are remembered. -
  • -
  • - More variants of ctags tags handled by Open Selected Filename in SciTE. -
  • -
  • - JavaScript embedded in XML highlighted again. -
  • -
  • - SciTE status bar updated after changing parameters in case they are being - displayed in status bar. -
  • -
  • - Crash fixed when handling some multi-byte languages. -
  • -
  • - Crash fixed when replacing end of line characters. -
  • -
  • - Bug in SciTE fixed in multiple buffer mode where automatic loading - turned on could lead to losing file contents. -
  • -
  • - Bug in SciTE on GTK+ fixed where dismissing dialogs with close box led to - those dialogs never being shown again. -
  • -
  • - Bug in SciTE on Windows fixed where position.tile with default positions - led to SciTE being positioned off-screen. -
  • -
  • - Bug fixed in read-only mode, clearing all deletes contraction state data - leading to it not being synchronized with text. -
  • -
  • - Crash fixed in SciTE on Windows when tab bar displayed. -
  • -
-

- Release 1.45 -

-
    -
  • - Released on 15 March 2002. -
  • -
  • - Line layout cache implemented to improve performance by maintaining - the positioning of characters on lines. Can be set to cache nothing, - the line with the caret, the visible page or the whole document. -
  • -
  • - Support, including a new lexer, added for Matlab programs. -
  • -
  • - Lua folder supports folding {} ranges and compact mode. - Lua lexer styles floating point numbers in number style instead of - setting the '.' in operator style. - Up to 6 sets of keywords. - Better support for [[ although only works well - when all on one line. -
  • -
  • - Python lexer improved to handle floating point numbers that contain negative - exponents and that start with '.'. -
  • -
  • - When performing a rectangular paste, the caret now remains at the - insertion point. -
  • -
  • - On Windows with a wheel mouse, page-at-a-time mode is recognised. -
  • -
  • - Read-only mode added to SciTE with a property to initialise it and another property, - $(ReadOnly) available to show this mode in the status bar. -
  • -
  • - SciTE status bar can show the number of lines in the selection - with the $(SelHeight) property. -
  • -
  • - SciTE's "Export as HTML" command uses the current character set to produce - correct output for non-Western-European character sets, such as Russian. -
  • -
  • - SciTE's "Export as RTF" fixed to produce correct output when file contains '\'. -
  • -
  • - SciTE goto command accepts a column as well as a line. - If given a column, it selects the word at that column. -
  • -
  • - SciTE's Build, Compile and Go commands are now disabled if no - action has been assigned to them. -
  • -
  • - The Refresh button in the status bar has been removed from SciTE on Windows. -
  • -
  • - Bug fixed in line wrap mode where cursor up or down command did not work. -
  • -
  • - Some styling bugs fixed that were due to a compilation problem with - gcc and inline functions with same name but different code. -
  • -
  • - The way that lexers loop over text was changed to avoid accessing beyond the - end or setting beyond the end. May fix some bugs and make the code safer but - may also cause new bugs. -
  • -
  • - Bug fixed in HTML lexer's handling of SGML. -
  • -
  • - Bug fixed on GTK+/X where lines wider than 32767 pixels did not display. -
  • -
  • - SciTE bug fixed with file name generation for standard property files. -
  • -
  • - SciTE bug fixed with Open Selected Filename command when used with - file name and line number combination. -
  • -
  • - In SciTE, indentation and tab settings stored with buffers so maintained correctly - as buffers selected. - The properties used to initialise these settings can now be set separately for different - file patterns. -
  • -
  • - Thread safety improved on Windows with a critical section protecting the font - cache and initialisation of globals performed within Scintilla_RegisterClasses. - New Scintilla_ReleaseResources call provided to allow explicit freeing of resources - when statically bound into another application. Resources automatically freed - in DLL version. The window classes are now unregistered as part of resource - freeing which fixes bugs that occurred in some containers such as Internet Explorer. -
  • -
  • - 'make install' fixed on Solaris. -
  • -
  • - Bug fixed that could lead to a file being opened twice in SciTE. -
  • -
-

- Release 1.44 -

-
    -
  • - Released on 4 February 2002. -
  • -
  • - Crashing bug fixed in Editor::Paint. -
  • -
  • - Lua lexer no longer treats '.' as a word character and - handles 6 keyword sets. -
  • -
  • - WordStartPosition and WordEndPosition take an onlyWordCharacters - argument. -
  • -
  • - SciTE option for simplified automatic indentation which repeats - the indentation of the previous line. -
  • -
  • - Compilation fix on Alpha because of 64 bit. -
  • -
  • - Compilation fix for static linking. -
  • -
  • - Limited maximum line length handled to 8000 characters as previous - value of 16000 was causing stack exhaustion crashes for some. -
  • -
  • - When whole document line selected, only the last display line gets - the extra selected rectangle at the right hand side rather than - every display line. -
  • -
  • - Caret disappearing bug fixed for the case that the caret was not on the - first display line of a document line. -
  • -
  • - SciTE bug fixed where untitled buffer containing text was sometimes - deleted without chance to save. -
  • -
  • - SciTE bug fixed where use.monospaced not working with - multiple buffers. -
  • -
-

- Release 1.43 -

-
    -
  • - Released on 19 January 2002. -
  • -
  • - Line wrapping robustness and performance improved in Scintilla. -
  • -
  • - Line wrapping option added to SciTE for both edit and output panes. -
  • -
  • - Static linking on Windows handles cursor resource better. - Documentation of static linking improved. -
  • -
  • - Autocompletion has an option to delete any word characters after the caret - upon selecting an item. -
  • -
  • - FOX version identified by PLAT_FOX in Platform.h. -
  • -
  • - Calltips in SciTE use the calltip.<lexer>.word.characters setting to - correctly find calltips for functions that include characters like '$' which - is not normally considered a word character. -
  • -
  • - SciTE has a command to show help on itself which gets hooked up to displaying - SciTEDoc.html. -
  • -
  • - SciTE option calltip.<lexer>.end.definition to display help text on a - second line of calltip. -
  • -
  • - Fixed the handling of the Buffers menu on GTK+ to ensure current buffer - indicated and no warnings occur. - Changed some menu items on GTK+ version to be same as Windows version. -
  • -
  • - use.monospaced property for SciTE determines initial state of Use Monospaced Font - setting. -
  • -
  • - The SciTE Complete Symbol command now works when there are no word - characters before the caret, even though it is slow to display the whole set of - symbols. -
  • -
  • - Function names removed from SciTE's list of PHP keywords. The full list of - predefined functions is available from another web site mentioned on the - Extras page. -
  • -
  • - Crashing bug at startup on GTK+ for some configurations fixed. -
  • -
  • - Crashing bug on GTK+ on 64 bit platforms fixed. -
  • -
  • - Compilation problem with some compilers fixed in GTK+. -
  • -
  • - Japanese text entry improved on Windows 9x. -
  • -
  • - SciTE recent files directory problem on Windows when HOME and SciTE_HOME - environment variables not set is now the directory of the executable. -
  • -
  • - Session files no longer include untitled buffers. -
  • -
-

- Release 1.42 -

-
    -
  • - Released on 24 December 2001. -
  • -
  • - Better localisation support including context menus and most messages. - Translations of the SciTE user interface available for Bulgarian, - French, German, Italian, Russian, and Turkish. -
  • -
  • - Can specify a character to use to indicate control characters - rather than having them displayed as mnemonics. -
  • -
  • - Scintilla key command for backspace that will not delete line - end characters. -
  • -
  • - Scintilla method to find start and end of words. -
  • -
  • - SciTE on GTK+ now supports the load.on.activate and save.on.deactivate - properties in an equivalent way to the Windows version. -
  • -
  • - The output pane of SciTE on Windows is now interactive so command line - utilities that prompt for input or confirmation can be used. -
  • -
  • - SciTE on Windows can choose directory for a "Find in Files" - command like the GTK+ version could. -
  • -
  • - SciTE can now load a set of API files rather than just one file. -
  • -
  • - ElapsedTime class added to Platform for accurate measurement of durations. - Used for debugging and for showing the user how long commands take in SciTE. -
  • -
  • - Baan lexer added. -
  • -
  • - In C++ lexer, document comment keywords no longer have to be at the start - of the line. -
  • -
  • - PHP lexer changed to match keywords case insensitively. -
  • -
  • - More shell keywords added. -
  • -
  • - SciTE support for VoiceXML added to xml.properties. -
  • -
  • - In SciTE the selection is not copied to the find field of the Search and Replace - dialogs if it contains end of line characters. -
  • -
  • - SciTE on Windows has a menu item to decide whether to respond to other - instances which are performing their check.if.already.open check. -
  • -
  • - SciTE accelerator key for Box Comment command changed to avoid problems - in non-English locales. -
  • -
  • - SciTE context menu includes Close command for the editor pane and - Hide command for the output pane. -
  • -
  • - output: command added to SciTE director interface to add text to the - output pane. The director interface can execute commands (such as tool - commands with subsystem set to 3) by sending a macro:run message. -
  • -
  • - SciTE on GTK+ will defer to the Window Manager for position if position.left or - position.top not set and for size if position.width or position.height not set. -
  • -
  • - SciTE on Windows has a position.tile property to place a second instance - to the right of the first. -
  • -
  • - Scintilla on Windows again supports EM_GETSEL and EM_SETSEL. -
  • -
  • - Problem fixed in Scintilla on Windows where control ID is no longer cached - as it could be changed by external code. -
  • -
  • - Problems fixed in SciTE on Windows when finding any other open instances at - start up when check.if.already.open is true. -
  • -
  • - Bugs fixed in SciTE where command strings were not always having - variables evaluated. -
  • -
  • - Bugs fixed with displaying partial double-byte and Unicode characters - in rectangular selections and at the edge when edge mode is EDGE_BACKGROUND. - Column numbers reported by GetColumn treat multiple byte characters as one column - rather than counting bytes. -
  • -
  • - Bug fixed with caret movement over folded lines. -
  • -
  • - Another bug fixed with tracking selection in secondary views when performing - modifications. -
  • -
  • - Horizontal scrolling and display of long lines optimised. -
  • -
  • - Cursor setting in Scintilla on GTK+ optimised. -
  • -
  • - Experimental changeable style attribute. - Set to false to make text read-only. - Currently only stops caret from being within not-changeable - text and does not yet stop deleting a range that contains - not-changeable text. - Can be used from SciTE by adding notchangeable to style entries. -
  • -
  • - Experimental line wrapping. - Currently has performance and appearence problems. -
  • -
-

- Release 1.41 -

-
    -
  • - Released on 6 November 2001. -
  • -
  • - Changed Platform.h to not include platform headers. This lessens likelihood and impact of - name clashes from system headers and also speeds up compilation. - Renamed DrawText to DrawTextNoClip to avoid name clash. -
  • -
  • - Changed way word functions work to treat a sequence of punctuation as - a word. This is more sensible and also more compatible with other editors. -
  • -
  • - Cursor changes over the margins and selection on GTK+ platform. -
  • -
  • - SC_MARK_BACKGROUND is a marker that only changes the line's background colour. -
  • -
  • - Enhanced Visual Basic lexer handles character date and octal literals, - and bracketed keywords for VB.NET. There are two VB lexers, vb and vbscript - with type indication characters like ! and $ allowed at the end of identifiers - in vb but not vbscript. Lexer states now separate from those used for C++ and - names start with SCE_B. -
  • -
  • - Lexer added for Bullant language. -
  • -
  • - The horizontal scroll position, xOffset, is now exposed through the API. -
  • -
  • - The SCN_POSCHANGED notification is deprecated as it was causing confusion. - Use SCN_UPDATEUI instead. -
  • -
  • - Compilation problems fixed for some versions of gcc. -
  • -
  • - Support for WM_GETTEXT restored on Windows. -
  • -
  • - Double clicking on an autocompletion list entry works on GTK+. -
  • -
  • - Bug fixed with case insensitive sorts for autocompletion lists. -
  • -
  • - Bug fixed with tracking selection in secondary views when performing modifications. -
  • -
  • - SciTE's abbreviation expansion feature will now indent expansions to the current - indentation level if indent.automatic is on. -
  • -
  • - SciTE allows setting up of parameters to commands from a dialog and can also - show this dialog automatically to prompt for arguments when running a command. -
  • -
  • - SciTE's Language menu (formerly Options | Use Lexer) is now defined by the - menu.language property rather than being hardcoded. -
  • -
  • - The user interface of SciTE can be localised to a particular language by editing - a locale.properties file. -
  • -
  • - On Windows, SciTE will try to move to the front when opening a new file from - the shell and using check.if.already.open. -
  • -
  • - SciTE can display the file name and directory in the title bar in the form - "file @ directory" when title.full.path=2. -
  • -
  • - The SciTE time.commands property reports the time taken by a command as well - as its status when completed. -
  • -
  • - The SciTE find.files property is now a list separated by '|' characters and this list is - added into the Files pull down of the Find in Files dialog. -
  • -
-

- Release 1.40 -

-
    -
  • - Released on 23 September 2001. -
  • -
  • - Removal of emulation of Win32 RichEdit control in core of Scintilla. - This change may be incompatible with existing client code. - Some emulation still done in Windows platform layer. -
  • -
  • - SGML support in the HTML/XML lexer. -
  • -
  • - SciTE's "Stop Executing" command will terminate GUI programs on - Windows NT and Windows 2000. -
  • -
  • - StyleContext class helps construct lexers that are simple and accurate. - Used in the C++, Eiffel, and Python lexers. -
  • -
  • - Clipboard operations in GTK+ version convert between platform '\n' line endings and - currently chosen line endings. -
  • -
  • - Any character in range 0..255 can be used as a marker. - This can be used to support numbered bookmarks, for example. -
  • -
  • - The default scripting language for ASP can be set. -
  • -
  • - New lexer and other support for crontab files used with the nncron scheduler. -
  • -
  • - Folding of Python improved. -
  • -
  • - The ` character is treated as a Python operator. -
  • -
  • - Line continuations ("\" at end of line) handled inside Python strings. -
  • -
  • - More consistent handling of line continuation ('\' at end of line) in - C++ lexer. - This fixes macro definitions that span more than one line. -
  • -
  • - C++ lexer can understand Doxygen keywords in doc comments. -
  • -
  • - SciTE on Windows allows choosing to open the "open" dialog on the directory - of the current file rather than in the default directory. -
  • -
  • - SciTE on Windows handles command line arguments in "check.if.already.open" - correctly when the current directory of the new instance is different to the - already open instance of SciTE. -
  • -
  • - "cwd" command (change working directory) defined for SciTE director interface. -
  • -
  • - SciTE "Export As HTML" produces better, more compliant, and shorter files. -
  • -
  • - SciTE on Windows allows several options for determining default file name - for exported files. -
  • -
  • - Automatic indentation of Python in SciTE fixed. -
  • -
  • - Exported HTML can support folding. -
  • -
  • - Bug fixed in SCI_GETTEXT macro command of director interface. -
  • -
  • - Cursor leak fixed on GTK+. -
  • -
  • - During SciTE shutdown, "identity" messages are no longer sent over the director interface. -
  • -
-

- Release 1.39 -

-
    -
  • - Released on 22 August 2001. -
  • -
  • - Windows version requires msvcrt.dll to be available so will not work - on original Windows 95 version 1. The msvcrt.dll file is installed - by almost everything including Internet Explorer so should be available. -
  • -
  • - Flattened tree control style folding margin. The SciTE fold.plus option is - now fold.symbols and has more values for the new styles. -
  • -
  • - Mouse dwell events are generated when the user holds the mouse steady - over Scintilla. -
  • -
  • - PositionFromPointClose is like PositionFromPoint but returns - INVALID_POSITION when point outside window or after end of line. -
  • -
  • - Input of Hungarian and Russian characters in GTK+ version works by - truncating input to 8 bits if in the range of normal characters. -
  • -
  • - Better choices for font descriptors on GTK+ for most character sets. -
  • -
  • - GTK+ Scintilla is destroyed upon receiving destroy signal rather than - destroy_event signal. -
  • -
  • - Style setting that force upper or lower case text. -
  • -
  • - Case-insensitive autocompletion lists work correctly. -
  • -
  • - Keywords can be prefix based so ^GTK_ will treat all words that start - with GTK_ as keywords. -
  • -
  • - Horizontal scrolling can be jumpy rather than gradual. -
  • -
  • - GetSelText places a '\0' in the buffer if the selection is empty.. -
  • -
  • - EnsureVisible split into two methods EnsureVisible which will not scroll to show - the line and EnsureVisibleEnforcePolicy which may scroll. -
  • -
  • - Python folder has options to fold multi-line comments and triple quoted strings. -
  • -
  • - C++ lexer handles keywords before '.' like "this.x" in Java as keywords. - Compact folding mode option chooses whether blank lines after a structure are - folded with that structure. Second set of keywords with separate style supported. -
  • -
  • - Ruby lexer handles multi-line comments. -
  • -
  • - VB has folder. -
  • -
  • - PHP lexer has an operator style, handles "<?" and "?>" inside strings - and some comments. -
  • -
  • - TCL lexer which is just an alias for the C++ lexer so does not really - understand TCL syntax. -
  • -
  • - Error lines lexer has styles for Lua error messages and .NET stack traces. -
  • -
  • - Makefile lexer has a target style. -
  • -
  • - Lua lexer handles some [[]] string literals. -
  • -
  • - HTML and XML lexer have a SCE_H_SGML state for tags that - start with "<!". -
  • -
  • - Fixed Scintilla bugs with folding. When modifications were performed near - folded regions sometimes no unfolding occurred when it should have. Deleting a - fold causing character sometimes failed to update fold information correctly. -
  • -
  • - Better support for Scintilla on GTK+ for Win32 including separate - PLAT_GTK_WIN32 definition and correct handling of rectangular selection - with clipboard operations. -
  • -
  • - SciTE has a Tools | Switch Pane (Ctrl+F6) command to switch focus between - edit and output panes. -
  • -
  • - SciTE option output.scroll allows automatic scrolling of output pane to - be turned off. -
  • -
  • - Commands can be typed into the SciTE output pane similar to a shell window. -
  • -
  • - SciTE properties magnification and output magnification set initial zoom levels. -
  • -
  • - Option for SciTE comment block command to place comments at start of line. -
  • -
  • - SciTE for Win32 has an option to minimize to the tray rather than the task bar. -
  • -
  • - Close button on SciTE tool bar for Win32. -
  • -
  • - SciTE compiles with GCC 3.0. -
  • -
  • - SciTE's automatic indentation of C++ handles braces without preceding keyword - correctly. -
  • -
  • - Bug fixed with GetLine method writing past the end of where it should. -
  • -
  • - Bug fixed with mouse drag automatic scrolling when some lines were folded. -
  • -
  • - Bug fixed because caret XEven setting was inverted. -
  • -
  • - Bug fixed where caret was initially visible even though window was not focussed. -
  • -
  • - Bug fixed where some file names could end with "\\" which caused slow - downs on Windows 9x. -
  • -
  • - On Win32, SciTE Replace dialog starts with focus on replacement text. -
  • -
  • - SciTE Go to dialog displays correct current line. -
  • -
  • - Fixed bug with SciTE opening multiple files at once. -
  • -
  • - Fixed bug with Unicode key values reported to container truncated. -
  • -
  • - Fixed bug with unnecessary save point notifications. -
  • -
  • - Fixed bugs with indenting and unindenting at start of line. -
  • -
  • - Monospace Font setting behaves more consistently. -
  • -
-

- Release 1.38 -

-
    -
  • - Released on 23 May 2001. -
  • -
  • - Loadable lexer plugins on Windows. -
  • -
  • - Ruby lexer and support. -
  • -
  • - Lisp lexer and support. -
  • -
  • - Eiffel lexer and support. -
  • -
  • - Modes for better handling of Tab and BackSpace keys within - indentation. Mode to avoid autocompletion list cancelling when - there are no viable matches. -
  • -
  • - ReplaceTarget replaced with two calls ReplaceTarget - (which is incompatible with previous ReplaceTarget) and - ReplaceTargetRE. Both of these calls have a count first - parameter which allows using strings containing nulls. - SearchInTarget and SetSearchFlags functions allow - specifying a search in several simple steps which helps - some clients which can not create structs or pointers easily. -
  • -
  • - Asian language input through an Input Method Editor works - on Windows 2000. -
  • -
  • - On Windows, control characters can be entered through use of - the numeric keypad in conjunction with the Alt key. -
  • -
  • - Document memory allocation changed to grow exponentially - which reduced time to load a 30 Megabyte file from - 1000 seconds to 25. Change means more memory may be used. -
  • -
  • - Word part movement keys now handled in Scintilla rather than - SciTE. -
  • -
  • - Regular expression '^' and '$' work more often allowing insertion - of text at start or end of line with a replace command. - Backslash quoted control characters \a, \b, \f, \t, and \v - recognised within sets. -
  • -
  • - Session files for SciTE. -
  • -
  • - Export as PDF command hidden in SciTE as it often failed. - Code still present so can be turned on by those willing to cope. -
  • -
  • - Bug fixed in HTML lexer handling % before > as end ASP - even when no start ASP encountered. - Bug fixed when scripts ended with a quoted string and - end tag was not seen. -
  • -
  • - Bug fixed on Windows where context menu key caused menu to - appear in corner of screen rather than within window. -
  • -
  • - Bug fixed in SciTE's Replace All command not processing - whole file when replace string longer than search string. -
  • -
  • - Bug fixed in SciTE's MRU list repeating entries if Ctrl+Tab - used when all entries filled. -
  • -
  • - ConvertEOLs call documentation fixed. -
  • -
-

- Release 1.37 -

-
    -
  • - Released on 17 April 2001. -
  • -
  • - Bug fixed with scroll bars being invisible on GTK+ 1.2.9. -
  • -
  • - Scintilla and SciTE support find and replace using simple regular - expressions with tagged expressions. SciTE supports C '\' escapes - in the Find and Replace dialogs. - Replace in Selection available in SciTE. -
  • -
  • - Scintilla has a 'target' feature for replacing code rapidly without - causing display updates. -
  • -
  • - Scintilla and SciTE on GTK+ support file dropping from file managers - such as Nautilus and gmc. Files or other URIs dropped on Scintilla - result in a URIDropped notification. -
  • -
  • - Lexers may have separate Lex and Fold functions. -
  • -
  • - Lexer infrastructure improved to allow for plug in lexers and for referring - to lexers by name rather than by ID. -
  • -
  • - Ada lexer and support added. -
  • -
  • - Option in both Scintilla and SciTE to treat both left and right margin - as equally important when repositioning visible area in response to - caret movement. Default is to prefer visible area positioning which - minimises the horizontal scroll position thus favouring the left margin. -
  • -
  • - Caret line highlighting. -
  • -
  • - Commands to delete from the caret to the end of line and - from the caret to the beginning of line. -
  • -
  • - SciTE has commands for inserting and removing block comments and - for inserting stream comments. -
  • -
  • - SciTE Director interface uses C++ '\' escapes to send control characters. -
  • -
  • - SciTE Director interface adds more commands including support for macros. -
  • -
  • - SciTE has menu options for recording and playing macros which are visible - when used with a companion program that supports these features. -
  • -
  • - SciTE has an Expand Abbreviation command. - Abbreviations are stored in a global abbrev.properties file. -
  • -
  • - SciTE has a Full Screen command to switch between a normal window - size and using the full screen. On Windows, the menu bar can be turned - off when in full screen mode. -
  • -
  • - SciTE has a Use monospaced font command to switch between the normal - set of fonts and one size of a particular fixed width font. -
  • -
  • - SciTE's use of tabs can be controlled for particular file names - as well as globally. -
  • -
  • - The contents of SciTE's status bar can be defined by a property and - include variables. On Windows, several status bar definitions can be active - with a click on the status bar cycling through them. -
  • -
  • - Copy as RTF command in SciTE on Windows to allow pasting - styled text into word processors. -
  • -
  • - SciTE can allow the use of non-alphabetic characters in - Complete Symbol lists and can automatically display this autocompletion - list when a trigger character such as '.' is typed. - Complete word can be set to pop up when the user is typing a word and - there is only one matching word in the document. -
  • -
  • - SciTE lists the imported properties files on a menu to allow rapid - access to them. -
  • -
  • - SciTE on GTK+ improvements to handling accelerator keys and focus - in dialogs. Message boxes respond to key presses without the Alt key as - they have no text entries to accept normal keystrokes. -
  • -
  • - SciTE on GTK+ sets the application icon. -
  • -
  • - SciTE allows setting the colours used to indicate the current - error line. -
  • -
  • - Variables within PHP strings have own style. Keyword list updated. -
  • -
  • - Keyword list for Lua updated for Lua 4.0. -
  • -
  • - Bug fixed in rectangular selection where rectangle still appeared - selected after using cursor keys to move caret. -
  • -
  • - Bug fixed in C++ lexer when deleting a '{' controlling a folded range - led to that range becoming permanently invisible. -
  • -
  • - Bug fixed in Batch lexer where comments were not recognised. -
  • -
  • - Bug fixed with undo actions coalescing into steps incorrectly. -
  • -
  • - Bug fixed with Scintilla on GTK+ positioning scroll bars 1 pixel - over the Scintilla window leading to their sides being chopped off. -
  • -
  • - Bugs fixed in SciTE when doing some actions led to the start - or end of the file being displayed rather than the current location. -
  • -
  • - Appearance of calltips fixed to look like document text including - any zoom factor. Positioned to be outside current line even when - multiple fonts and sizes used. -
  • -
  • - Bug fixed in Scintilla macro support where typing Enter caused both a newline - command and newline character insertion to be recorded. -
  • -
  • - Bug fixed in SciTE on GTK+ where focus was moving - between widgets incorrectly. -
  • -
  • - Bug fixed with fold symbols sometimes not updating when - the text changed. -
  • -
  • - Bugs fixed in SciTE's handling of folding commands. -
  • -
  • - Deprecated undo collection enumeration removed from API. -
  • -
-

- Release 1.36 -

-
    -
  • - Released on 1 March 2001. -
  • -
  • - Scintilla supports GTK+ on Win32. -
  • -
  • - Some untested work on making Scintilla and SciTE 64 bit compatible. - For users on GTK+ this requires including Scintilla.h before - ScintillaWidget.h. -
  • -
  • - HTML lexer allows folding HTML. -
  • -
  • - New lexer for Avenue files which are used in the ESRI ArcView GIS. -
  • -
  • - DOS Batch file lexer has states for '@', external commands, variables and - operators. -
  • -
  • - C++ lexer can fold comments of /* .. */ form. -
  • -
  • - Better disabling of popup menu items in Scintilla when in read-only mode. -
  • -
  • - Starting to move to Doxygen compatible commenting. -
  • -
  • - Director interface on Windows enables another application to control SciTE. -
  • -
  • - Opening SciTE on Windows 9x sped up greatly for some cases. -
  • -
  • - The command.build.directory property allows SciTE to run the build - command in a different directory to the source files. -
  • -
  • - SciTE on Windows allows setting foreground and background colours - for printed headers and footers. -
  • -
  • - Bug fixed in finding calltips in SciTE which led to no calltips for some identifiers. -
  • -
  • - Documentation added for lexers and for the extension and director interfaces. -
  • -
  • - SciTE menus rearranged with new View menu taking over some of the items that - were under the Options menu. Clear All Bookmarks command added. -
  • -
  • - Clear Output command in SciTE. -
  • -
  • - SciTE on Windows gains an Always On Top command. -
  • -
  • - Bug fixed in SciTE with attempts to define properties recursively. -
  • -
  • - Bug fixed in SciTE properties where only one level of substitution was done. -
  • -
  • - Bug fixed in SciTE properties where extensions were not being - matched in a case insensitive manner. -
  • -
  • - Bug fixed in SciTE on Windows where the Go to dialog displays the correct - line number. -
  • -
  • - In SciTE, if fold.on.open set then switching buffers also performs fold. -
  • -
  • - Bug fixed in Scintilla where ensuring a line was visible in the presence of folding - operated on the document line instead of the visible line. -
  • -
  • - SciTE command line processing modified to operate on arguments in order and in - two phases. First any arguments before the first file name are processed, then the - UI is opened, then the remaining arguments are processed. Actions defined for the - Director interface (currently only "open") may also be used on the command line. - For example, "SciTE -open:x.txt" will start SciTE and open x.txt. -
  • -
  • - Numbered menu items SciTE's Buffers menu and the Most Recently Used portion - of the File menu go from 1..0 rather than 0..9. -
  • -
  • - The tab bar in SciTE for Windows has numbers. - The tab.hide.one option hides the tab bar until there is more than one buffer open. -
  • -
-

- Release 1.35 -

-
    -
  • - Released on 29 January 2001. -
  • -
  • - Rewritten and simplified widget code for the GTK+ version to enhance - solidity and make more fully compliant with platform norms. This includes more - normal handling of keystrokes so they are forwarded to containers correctly. -
  • -
  • - User defined lists can be shown. -
  • -
  • - Many fixes to the Perl lexer. -
  • -
  • - Pascal lexer handles comments more correctly. -
  • -
  • - C/C++/Java/JavaScipt lexer has a state for line doc comments. -
  • -
  • - Error output lexer understands Sun CC messages. -
  • -
  • - Make file lexer has variable, preprocessor, and operator states. -
  • -
  • - Wider area given to an italics character that is at the end of a line to prevent it - being cut off. -
  • -
  • - Call to move the caret inside the currently visible area. -
  • -
  • - Paste Rectangular will space fill on the left hand side of the pasted text as - needed to ensure it is kept rectangular. -
  • -
  • - Cut and Paste Rectangular does nothing in read-only mode. -
  • -
  • - Undo batching changed so that a paste followed by typing creates two undo actions.. -
  • -
  • - A "visibility policy" setting for Scintilla determines which range of lines are displayed - when a particular line is moved to. Also exposed as a property in SciTE. -
  • -
  • - SciTE command line allows property settings. -
  • -
  • - SciTE has a View Output command to hide or show the output pane. -
  • -
  • - SciTE's Edit menu has been split in two with searching commands moved to a - new Search menu. Find Previous and Previous Bookmark are in the Search menu. -
  • -
  • - SciTE on Windows has options for setting print margins, headers and footers. -
  • -
  • - SciTE on Windows has tooltips for toolbar. -
  • -
  • - SciTE on GTK+ has properties for setting size of file selector. -
  • -
  • - Visual and audio cues in SciTE on Windows enhanced. -
  • -
  • - Fixed performance problem in SciTE for GTK+ by dropping the extra 3D - effect on the content windows. -
  • -
  • - Fixed problem in SciTE where choosing a specific lexer then meant - that no lexer was chosen when files opened. -
  • -
  • - Default selection colour changed to be visible on low colour displays. -
  • -
  • - Fixed problems with automatically reloading changed documents in SciTE on - Windows. -
  • -
  • - Fixed problem with uppercase file extensions in SciTE. -
  • -
  • - Fixed some problems when using characters >= 128, some of which were being - incorrectly treated as spaces. -
  • -
  • - Fixed handling multiple line tags, non-inline scripts, and XML end tags /> in HTML/XML lexer. -
  • -
  • - Bookmarks in SciTE no longer disappear when switching between buffers. -
  • -
-

- Release 1.34 -

-
    -
  • - Released on 28 November 2000. -
  • -
  • - Pascal lexer. -
  • -
  • - Export as PDF in SciTE. -
  • -
  • - Support for the OpenVMS operating system in SciTE. -
  • -
  • - SciTE for GTK+ can check for another instance of SciTE - editing a file and switch to it rather than open a second instance - on one file. -
  • -
  • - Fixes to quoting and here documents in the Perl lexer. -
  • -
  • - SciTE on Windows can give extra visual and audio cues when a - warning is shown or find restarts from beginning of file. -
  • -
  • - Open Selected Filename command in SciTE. Also understands some - warning message formats. -
  • -
  • - Wider area for line numbers when printing. -
  • -
  • - Better scrolling performance on GTK+. -
  • -
  • - Fixed problem where rectangles with negative coordinates were - invalidated leading to trouble with platforms that use - unsigned coordinates. -
  • -
  • - GTK+ Scintilla uses more compliant signalling code so that keyboard - events should propagate to containers. -
  • -
  • - Bug fixed with opening full or partial paths. -
  • -
  • - Improved handling of paths in error messages in SciTE. -
  • -
  • - Better handling of F6 in SciTE. -
  • -
-

- Release 1.33 -

-
    -
  • - Released on 6 November 2000. -
  • -
  • - XIM support for the GTK+ version of Scintilla ensures that more non-English - characters can be typed. -
  • -
  • - Caret may be 1, 2, or 3 pixels wide. -
  • -
  • - Cursor may be switched to wait image during lengthy processing. -
  • -
  • - Scintilla's internal focus flag is exposed for clients where focus is handled in - complex ways. -
  • -
  • - Error status defined for Scintilla to hold indication that an operation failed and the reason - for that failure. No detection yet implemented but clients may start using the interface - so as to be ready for when it does. -
  • -
  • - Context sensitive help in SciTE. -
  • -
  • - CurrentWord property available in SciTE holding the value of the word the - caret is within or near. -
  • -
  • - Apache CONF file lexer. -
  • -
  • - Changes to Python lexer to allow 'as' as a context sensitive keyword and the - string forms starting with u, r, and ur to be recognised. -
  • -
  • - SCN_POSCHANGED notification now working and SCN_PAINTED notification added. -
  • -
  • - Word part movement commands for cursoring between the parts of reallyLongCamelIdentifiers and - other_ways_of_making_words. -
  • -
  • - When text on only one line is selected, Shift+Tab moves to the previous tab stop. -
  • -
  • - Tab control available for Windows version of SciTE listing all the buffers - and making it easy to switch between them. -
  • -
  • - SciTE can be set to automatically determine the line ending type from the contents of a - file when it is opened. -
  • -
  • - Dialogs in GTK+ version of SciTE made more modal and have accelerator keys. -
  • -
  • - Find in Files command in GTK+ version of SciTE allows choice of directory. -
  • -
  • - On Windows, multiple files can be opened at once. -
  • -
  • - SciTE source broken up into more files. -
  • -
  • - Scintilla headers made safe for C language, not just C++. -
  • -
  • - New printing modes - force background to white and force default background to white. -
  • -
  • - Automatic unfolding not occurring when Enter pressed at end of line bug fixed. -
  • -
  • - Bugs fixed in line selection. -
  • -
  • - Bug fixed with escapes in PHP strings in the HTML lexer. -
  • -
  • - Bug fixed in SciTE for GTK+ opening files when given full paths. -
  • -
  • - Bug fixed in autocompletion where user backspaces into existing text. -
  • -
  • - Bugs fixed in opening files and ensuring they are saved before running. - A case bug also fixed here. -
  • -
-

- Release 1.32 -

-
    -
  • - Released on 8 September 2000. -
  • -
  • - Fixes bugs in complete word and related code. Protection against a bug when - receiving a bad argument. -
  • -
-

- Release 1.31 -

-
    -
  • - Released on 6 September 2000. -
  • -
  • - Scintilla is available as a COM control from the scintillactrl module in CVS. -
  • -
  • - Style setting to underline text. Exposed in SciTE as "underlined". -
  • -
  • - Style setting to make text invisible. -
  • -
  • - SciTE has an extensibility interface that can be used to implement features such as - a scripting language or remote control. An example use of this is the extlua module - available from CVS which allows SciTE to be scripted in Lua. -
  • -
  • - Many minor fixes to all of the lexers. -
  • -
  • - New lexer for diff and patch files. -
  • -
  • - Error message lexer understands Perl error messages. -
  • -
  • - C/C++/Java lexer now supports C#, specifically verbatim strings and - @ quoting of identifiers that are the same as keywords. SciTE has - a set of keywords for C# and a build command set up for C#. -
  • -
  • - Scintilla property to see whether in overtype or insert state. -
  • -
  • - PosChanged notification fired when caret moved. -
  • -
  • - Comboboxes in dialogs in SciTE on Windows can be horizontally scrolled. -
  • -
  • - Autocompletion and calltips can treat the document as case sensitive or - case insensitive. -
  • -
  • - Autocompletion can be set to automatically choose the only - element in a single element list. -
  • -
  • - Set of characters that automatically complete an autocompletion list - can be set. -
  • -
  • - SciTE command to display calltip - useful when dropped because of - editing. -
  • -
  • - SciTE has a Revert command to go back to the last saved version. -
  • -
  • - SciTE has an Export as RTF command. Save as HTML is renamed - to Export as HTML and is located on the Export sub menu. -
  • -
  • - SciTE command "Complete Word" searches document for any - words starting with characters before caret. -
  • -
  • - SciTE options for changing aspects of the formatting of files exported - as HTML or RTF. -
  • -
  • - SciTE "character.set" option for choosing the character - set for all fonts. -
  • -
  • - SciTE has a "Toggle all folds" command. -
  • -
  • - The makefiles have changed. The makefile_vc and - makefile_bor files in scintilla/win32 and scite/win32 have been - merged into scintilla/win32/scintilla.mak and scite/win32/scite.mak. - DEBUG may be defined for all make files and this will turn on - assertions and for some make files will choose other debugging - options. -
  • -
  • - To make debugging easier and allow good use of BoundsChecker - there is a Visual C++ project file in scite/boundscheck that builds - all of Scintilla and SciTE into one executable. -
  • -
  • - The size of the SciTE output window can be set with the - output.horizontal.size and output.vertical.size settings. -
  • -
  • - SciTE status bar indicator for insert or overwrite mode. -
  • -
  • - Performance improvements to autocompletion and calltips. -
  • -
  • - A caret redraw problem when undoing is fixed. -
  • -
  • - Crash with long lines fixed. -
  • -
  • - Bug fixed with merging markers when lines merged. -
  • -
-

- Release 1.30 -

-
    -
  • - Released on 26 July 2000. -
  • -
  • - Much better support for PHP which is now an integral part of the HTML support. -
  • -
  • - Start replacement of Windows-specific APIs with cross platform APIs. - In 1.30, the new APIs are introduced but the old APIs are still available. - For the GTK+ version, may have to include "WinDefs.h" explicitly to - use the old APIs. -
  • -
  • - "if" and "import" statements in SciTE properties files allows modularisation into - language-specific properties files and choices based upon platform. - This means that SciTE is delivered with 9 language-specific properties files - as well as the standard SciTEGlobal.properties file. -
  • -
  • - Much lower resource usage on Windows 9x. -
  • -
  • - "/p" option in SciTE on Windows for printing a file and then exiting. -
  • -
  • - Options for printing with inverted brightness (when the screen is set to use - a dark background) and to force black on white printing. -
  • -
  • - Option for printing magnified or miniaturised from screen settings. -
  • -
  • - In SciTE, Ctrl+F3 and Ctrl+Shift+F3 find the selection in the forwards and backwards - directions respectively. -
  • -
  • - Auto-completion lists may be set to cancel when the cursor goes before - its start position or before the start of string being completed. -
  • -
  • - Auto-completion lists automatically size more sensibly. -
  • -
  • - SCI_CLEARDOCUMENTSTYLE zeroes all style bytes, ensures all - lines are shown and deletes all folding information. -
  • -
  • - On Windows, auto-completion lists are visually outdented rather than indented. -
  • -
  • - Close all command in SciTE. -
  • -
  • - On Windows multiple files can be dragged into SciTE. -
  • -
  • - When saving a file, the SciTE option save.deletes.first deletes it before doing the save. - This allows saving with a different capitalisation on Windows. -
  • -
  • - When use tabs option is off pressing the tab key inserts spaces. -
  • -
  • - Bug in indicators leading to extra line drawn fixed. -
  • -
-

- Release 1.28 -

-
    -
  • - Released on 27 June 2000. -
  • -
  • - Fixes crash in indentation guides when indent size set to 0. -
  • -
  • - Fixes to installation on GTK+/Linux. User properties file on GTK+ has a dot at front of name: - .SciTEUser.properties. Global properties file location configurable at compile time - defaulting to $prefix/share/scite. $prefix determined from Gnome if present else its - /usr/local and can be overridden by installer. Gnome menu integration performed in - make install if Gnome present. -
  • -
-

- Release 1.27 -

-
    -
  • - Released on 23 June 2000. -
  • -
  • - Indentation guides. View whitespace mode may be set to not display whitespace - in indentation. -
  • -
  • - Set methods have corresponding gets for UndoCollection, BufferedDraw, - CodePage, UsePalette, ReadOnly, CaretFore, and ModEventMask. -
  • -
  • - Caret is continuously on rather than blinking while typing or holding down - delete or backspace. And is now always shown if non blinking when focused on GTK+. -
  • -
  • - Bug fixed in SciTE with file extension comparison now done in case insensitive way. -
  • -
  • - Bugs fixed in SciTE's file path handling on Windows. -
  • -
  • - Bug fixed with preprocessor '#' last visible character causing hang. -
  • -
-

- Release 1.26 -

-
    -
  • - Released on 13 June 2000. -
  • -
  • - Support for the Lua language in both Scintilla and SciTE. -
  • -
  • - Multiple buffers may be open in SciTE. -
  • -
  • - Each style may have a character set configured. This may determine - the characters that are displayed by the style. -
  • -
  • - In the C++ lexer, lexing of preprocessor source may either treat it all as being in - the preprocessor class or only the initial # and preprocessor command word as - being in the preprocessor class. -
  • -
  • - Scintilla provides SCI_CREATEDOCUMENT, SCI_ADDREFDOCUMENT, and - SCI_RELEASEDOCUMENT to make it easier for a container to deal with multiple - documents. -
  • -
  • - GTK+ specific definitions in Scintilla.h were removed to ScintillaWidget.h. All GTK+ clients will need to - #include "ScintillaWidget.h". -
  • -
  • - For GTK+, tools can be executed in the background by setting subsystem to 2. -
  • -
  • - Keys in the properties files are now case sensitive. This leads to a performance increase. -
  • -
  • - Menu to choose which lexer to use on a file. -
  • -
  • - Tab size dialog on Windows. -
  • -
  • - File dialogs enlarged on GTK+. -
  • -
  • - Match Brace command bound to Ctrl+E on both platforms with Ctrl+] a synonym on Windows. - Ctrl+Shift+E is select to matching brace. Brace matching tries to match to either the inside or the - outside, depending on whether the cursor is inside or outside the braces initially. - View End of Line bound to Ctrl+Shift+O. -
  • -
  • - The Home key may be bound to move the caret to either the start of the line or the start of the - text on the line. -
  • -
  • - Visual C++ project file for SciTE. -
  • -
  • - Bug fixed with current x location after Tab key. -
  • -
  • - Bug fixed with hiding fold margin by setting fold.margin.width to 0. -
  • -
  • - Bugs fixed with file name confusion on Windows when long and short names used, or different capitalisations, - or relative paths. -
  • -
-

- Release 1.25 -

-
    -
  • - Released on 9 May 2000. -
  • -
  • - Some Unicode support on Windows. Treats buffer and API as UTF-8 and displays - through UCS-2 of Windows. -
  • -
  • - Automatic indentation. Indentation size can be different to tab size. -
  • -
  • - Tool bar. -
  • -
  • - Status bar now on Windows as well as GTK+. -
  • -
  • - Input fields in Find and Replace dialogs now have history on both Windows and - GTK+. -
  • -
  • - Auto completion list items may be separated by a chosen character to allow spaces - in items. The selected item may be changed through the API. -
  • -
  • - Horizontal scrollbar can be turned off. -
  • -
  • - Property to remove trailing spaces when saving file. -
  • -
  • - On Windows, changed font size calculation to be more compatible with - other applications. -
  • -
  • - On GTK+, SciTE's global properties files are looked for in the directory specified in the - SCITE_HOME environment variable if it is set. This allows hiding in a dot directory. -
  • -
  • - Keyword lists in SciTE updated for JavaScript to include those destined to be used in - the future. IDL includes XPIDL keywords as well as MSIDL keywords. -
  • -
  • - Zoom level can be set and queried through API. -
  • -
  • - New notification sent before insertions and deletions. -
  • -
  • - LaTeX lexer. -
  • -
  • - Fixes to folding including when deletions and additions are performed. -
  • -
  • - Fix for crash with very long lines. -
  • -
  • - Fix to affect all of rectangular selections with deletion and case changing. -
  • -
  • - Removed non-working messages that had been included only for Richedit compatibility. -
  • -
-

- Release 1.24 -

-
    -
  • - Released on 29 March 2000. -
  • -
  • - Added lexing of IDL based on C++ lexer with extra UUID lexical class. -
  • -
  • - Functions and associated keys for Line Delete, Line Cut, Line Transpose, - Selection Lower Case and Selection Upper Case. -
  • -
  • - Property setting for SciTE, eol.mode, chooses initial state of line end characters. -
  • -
  • - Fixed bugs in undo history with small almost-contiguous changes being incorrectly coalesced. -
  • -
  • - Fixed bugs with incorrect expansion of ContractionState data structures causing crash. -
  • -
  • - Fixed bugs relating to null fonts. -
  • -
  • - Fixed bugs where recolourisation was not done sometimes when required. -
  • -
  • - Fixed compilation problems with SVector.h. -
  • -
  • - Fixed bad setting of fold points in Python. -
  • -
-

- Release 1.23 -

-
    -
  • - Released on 21 March 2000. -
  • -
  • - Directory structure to separate on basis of product (Scintilla, SciTE, DMApp) - and environment (Cross-platform, Win32, GTK+). -
  • -
  • - Download packaging to allow download of the source or platform dependent executables. -
  • -
  • - Source code now available from CVS at SourceForge. -
  • -
  • - Very simple Windows-only demonstration application DMApp is available from cvs as dmapp. -
  • -
  • - Lexing functionality may optionally be included in Scintilla rather than be provided by - the container. -
  • -
  • - Set of lexers included is determined at link time by defining which of the Lex* object files - are linked in. -
  • -
  • - On Windows, the SciLexer.DLL extends Scintilla.DLL with the standard lexers. -
  • -
  • - Enhanced HTML lexer styles embedded VBScript and Python. - ASP segments are styled and ASP scripts in JavaScript, VBScript and Python are styled. -
  • -
  • - PLSQL and PHP supported. -
  • -
  • - Maximum number of lexical states extended to 128. -
  • -
  • - Lexers may store per line parse state for multiple line features such as ASP script language choice. -
  • -
  • - Lexing API simplified. -
  • -
  • - Project file for Visual C++. -
  • -
  • - Can now cycle through all recent files with Ctrl+Tab in SciTE. -
  • -
  • - Bookmarks in SciTE. -
  • -
  • - Drag and drop copy works when dragging to the edge of the selection. -
  • -
  • - Fixed bug with value sizes in properties file. -
  • -
  • - Fixed bug with last line in properties file not being used. -
  • -
  • - Bug with multiple views of one document fixed. -
  • -
  • - Keypad now works on GTK+. -
  • -
-

- Release 1.22 -

-
    -
  • - Released on 27 February 2000. -
  • -
  • - wxWindows platform defined. - Implementation for wxWindows will be available separately - from main Scintilla distribution. -
  • -
  • - Line folding in Scintilla. -
  • -
  • - SciTE performs syntax directed folding for C/C++/Java/JavaScript and for Python. -
  • -
  • - Optional macro recording support. -
  • -
  • - User properties file (SciTEUser.properties) allows for customisation by the user - that is not overwritten with each installation of SciTE. -
  • -
  • - Python lexer detects and highlights inconsistent indentation. -
  • -
  • - Margin API made more orthogonal. SCI_SETMARGINWIDTH and SCI_SETLINENUMBERWIDTH - are deprecated in favour of this new API. -
  • -
  • - Margins may be made sensitive to forward mouse click events to container. -
  • -
  • - SQL lexer and styles included. -
  • -
  • - Perl lexer handles regular expressions better. -
  • -
  • - Caret policy determines how closely caret is tracked by visible area. -
  • -
  • - New marker shapes: arrow pointing down, plus and minus. -
  • -
  • - Optionally display full path in title rather than just file name. -
  • -
  • - Container is notified when Scintilla gains or loses focus. -
  • -
  • - SciTE handles focus in a more standard way and applies the main - edit commands to the focused pane. -
  • -
  • - Container is notified when Scintilla determines that a line needs to be made visible. -
  • -
  • - Document watchers receive notification when document about to be deleted. -
  • -
  • - Document interface allows access to list of watchers. -
  • -
  • - Line end determined correctly for lines ending with only a '\n'. -
  • -
  • - Search variant that searches form current selection and sets selection. -
  • -
  • - SciTE understands format of diagnostic messages from WScript. -
  • -
  • - SciTE remembers top line of window for each file in MRU list so switching to a recent file - is more likely to show the same text as when the file was previously visible. -
  • -
  • - Document reference count now initialised correctly. -
  • -
  • - Setting a null document pointer creates an empty document. -
  • -
  • - WM_GETTEXT can no longer overrun buffer. -
  • -
  • - Polygon drawing bug fixed on GTK+. -
  • -
  • - Java and JavaScript lexers merged into C++ lexer. -
  • -
  • - C++ lexer indicates unterminated strings by colouring the end of the line - rather than changing the rest of the file to string style. This is less - obtrusive and helps the folding. -
  • -
-

- Release 1.21 -

-
    -
  • - Released on 2 February 2000. -
  • -
  • - Blank margins on left and right side of text. -
  • -
  • - SCN_CHECKBRACE renamed SCN_UPDATEUI and made more efficient. -
  • -
  • - SciTE source code refactored into platform independent and platform specific classes. -
  • -
  • - XML and Perl subset lexers in SciTE. -
  • -
  • - Large improvement to lexing speed. -
  • -
  • - A new subsystem, 2, allows use of ShellExec on Windows. -
  • -
  • - Borland compatible makefile. -
  • -
  • - Status bar showing caret position in GTK+ version of SciTE. -
  • -
  • - Bug fixes to selection drawing when part of selection outside window, mouse release over - scroll bars, and scroll positioning after deletion. -
  • -
-

- Release 1.2 -

-
    -
  • - Released on 21 January 2000. -
  • -
  • - Multiple views of one document. -
  • -
  • - Rectangular selection, cut, copy, paste, drag and drop. -
  • -
  • - Long line indication. -
  • -
  • - Reverse searching -
  • -
  • - Line end conversion. -
  • -
  • - Generic autocompletion and calltips in SciTE. -
  • -
  • - Call tip background colour can be set. -
  • -
  • - SCI_MARKERPREV for moving to a previous marker. -
  • -
  • - Caret kept more within window where possible. -
  • -
-

- Release 1.15 -

-
    -
  • - Released on 15 December 1999. -
  • -
  • - Brace highlighting and badlighting (for mismatched braces). -
  • -
  • - Visible line ends. -
  • -
  • - Multiple line call tips. -
  • -
  • - Printing now works from SciTE on Windows. -
  • -
  • - SciTE has a global "*" lexer style that is used as the basis for all the lexers' styles. -
  • -
  • - Fixes some warnings on GTK+ 1.2.6. -
  • -
  • - Better handling of modal dialogs on GTK+. -
  • -
  • - Resize handle drawn on pane splitter in SciTE on GTK+ so it looks more like a regular GTK+ - *paned widget. -
  • -
  • - SciTE does not place window origin offscreen if no properties file found on GTK+. -
  • -
  • - File open filter remembered in SciTE on Windows. -
  • -
  • - New mechanism using style numbers 32 to 36 standardises the setting of styles for brace - highlighting, brace badlighting, line numbers, control characters and the default style. -
  • -
  • - Old messages SCI_SETFORE .. SCI_SETFONT have been replaced by the default style 32. The old - messages are deprecated and will disappear in a future version. -
  • -
-

- Release 1.14 -

-
    -
  • - Released on 20 November 1999. -
  • -
  • - Fixes a scrolling bug reported on GTK+. -
  • -
-

- Release 1.13 -

-
    -
  • - Released on 18 November 1999. -
  • -
  • - Fixes compilation problems with the mingw32 GCC 2.95.2 on Windows. -
  • -
  • - Control characters are now visible. -
  • -
  • - Performance has improved, particularly for scrolling. -
  • -
  • - Windows RichEdit emulation is more accurate. This may break client code that uses these - messages: EM_GETLINE, EM_GETLINECOUNT, EM_EXGETSEL, EM_EXSETSEL, EM_EXLINEFROMCHAR, - EM_LINELENGTH, EM_LINEINDEX, EM_CHARFROMPOS, EM_POSFROMCHAR, and EM_GETTEXTRANGE. -
  • -
  • - Menus rearranged and accelerator keys set for all static items. -
  • -
  • - Placement of space indicators in view whitespace mode is more accurate with some fonts. -
  • -
-

- Release 1.12 -

-
    -
  • - Released on 9 November 1999. -
  • -
  • - Packaging error in 1.11 meant that the compilation error was not fixed in that release. - Linux/GTK+ should compile with GCC 2.95 this time. -
  • -
-

- Release 1.11 -

-
    -
  • - Released on 7 November 1999. -
  • -
  • - Fixed a compilation bug in ScintillaGTK.cxx. -
  • -
  • - Added a README file to explain how to build. -
  • -
  • - GTK+/Linux downloads now include documentation. -
  • -
  • - Binary only Sc1.EXE one file download for Windows. -
  • -
-

- Release 1.1 -

-
    -
  • - Released on 6 November 1999. -
  • -
  • - Major restructuring for better modularity and platform independence. -
  • -
  • - Inter-application drag and drop. -
  • -
  • - Printing support in Scintilla on Windows. -
  • -
  • - Styles can select colouring to end of line. This can be used when a file contains more than - one language to differentiate between the areas in each language. An example is the HTML + - JavaScript styling in SciTE. -
  • -
  • - Actions can be grouped in the undo stack, so they will be undone together. This grouping is - hierarchical so higher level actions such as replace all can be undone in one go. Call to - discover whether there are any actions to redo. -
  • -
  • - The set of characters that define words can be changed. -
  • -
  • - Markers now have identifiers and can be found and deleted by their identifier. The empty - marker type can be used to make a marker that is invisible and which is only used to trace - where a particular line moves to. -
  • -
  • - Double click notification. -
  • -
  • - HTML styling in SciTE also styles embedded JavaScript. -
  • -
  • - Additional tool commands can be added to SciTE. -
  • -
  • - SciTE option to allow reloading if changed upon application activation and saving on - application deactivation. Not yet working on GTK+ version. -
  • -
  • - Entry fields in search dialogs remember last 10 user entries. Not working in all cases in - Windows version. -
  • -
  • - SciTE can save a styled copy of the current file in HTML format. As SciTE does not yet - support printing, this can be used to print a file by then using a browser to print the - HTML file. -
  • -
-

- Release 1.02 -

-
    -
  • - Released on 1 October 1999. -
  • -
  • - GTK+ version compiles with GCC 2.95. -
  • -
  • - Properly deleting objects when window destroyed under GTK+. -
  • -
  • - If the selection is not empty backspace deletes the selection. -
  • -
  • - Some X style middle mouse button handling for copying the primary selection to and from - Scintilla. Does not work in all cases. -
  • -
  • - HTML styling in SciTE. -
  • -
  • - Stopped dirty flag being set in SciTE when results pane modified. -
  • -
-

- Release 1.01 -

-
    -
  • - Released on 28 September 1999. -
  • -
  • - Better DBCS support on Windows including IME. -
  • -
  • - Wheel mouse support for scrolling and zooming on Windows. Zooming with Ctrl+KeypadPlus and - Ctrl+KeypadMinus. -
  • -
  • - Performance improvements especially on GTK+. -
  • -
  • - Caret blinking and settable colour on both GTK+ and Windows. -
  • -
  • - Drag and drop within a Scintilla window. On Windows, files can be dragged into SciTE. -
  • -
-

- Release 1.0 -

-
    -
  • - Released on 17 May 1999. -
  • -
  • - Changed name of "Tide" to "SciTE" to avoid clash with a TCL based IDE. "SciTE" is a - SCIntilla based Text Editor and is Latin meaning something like "understanding in a neat - way" and is also an Old English version of the word "shit". -
  • -
  • - There is a SCI_AUTOCSTOPS message for defining a string of characters that will stop - autocompletion mode. Autocompletion mode is cancelled when any cursor movement occurs apart - from backspace. -
  • -
  • - GTK+ version now splits horizontally as well as vertically and all dialogs cancel when the - escape key is pressed. -
  • -
-

- Beta release 0.93 -

-
    -
  • - Released on 12 May 1999. -
  • -
  • - A bit more robust than 0.92 and supports SCI_MARKERNEXT message. -
  • -
-

- Beta release 0.92 -

-
    -
  • - Released on 11 May 1999. -
  • -
  • - GTK+ version now contains all features of Windows version with some very small differences. - Executing programs works much better now. -
  • -
  • - New palette code to allow more colours to be displayed in 256 colour screen modes. A line - number column can be displayed to the left of the selection margin. -
  • -
  • - The code that maps from line numbers to text positions and back has been completely - rewritten to be faster, and to allow markers to move with the text. -
  • -
-

- Beta release 0.91 -

-
    -
  • - Released on 30 April 1999, containing fixes to text measuring to make Scintilla work better - with bitmap fonts. Also some small fixes to make compiling work with Visual C++. -
  • -
-

- Beta release 0.90 -

-
    -
  • - Released on 29 April 1999, containing working GTK+/Linux version. -
  • -
  • - The Java, C++ and Python lexers recognise operators as distinct from default allowing them - to be highlighted. -
  • -
-

- Beta release 0.82 -

-
    -
  • - Released on 1 April 1999, to fix a problem with handling the Enter key in PythonWin. Also - fixes some problems with cmd key mapping. -
  • -
-

- Beta release 0.81 -

-
    -
  • - Released on 30th March 1999, containing bug fixes and a few more features. -
  • -
  • - Static linking supported and Tidy.EXE, a statically linked version of Tide.EXE. Changes to - compiler flags in the makefiles to optimise for size. -
  • -
  • - Scintilla supports a 'savepoint' in the undo stack which can be set by the container when - the document is saved. Notifications are sent to the container when the savepoint is - entered or left, allowing the container to to display a dirty indicator and change its - menus. -
  • -
  • - When Scintilla is set to read-only mode, a notification is sent to the container should the - user try to edit the document. This can be used to check the document out of a version - control system. -
  • -
  • - There is an API for setting the appearance of indicators. -
  • -
  • - The keyboard mapping can be redefined or removed so it can be implemented completely by the - container. All of the keyboard commands are now commands which can be sent by the - container. -
  • -
  • - A home command like Visual C++ with one hit going to the start of the text on the line and - the next going to the left margin is available. I do not personally like this but my - fingers have become trained to it by much repetition. -
  • -
  • - SCI_MARKERDELETEALL has an argument in wParam which is the number of the type marker to - delete with -1 performing the old action of removing all marker types. -
  • -
  • - Tide now understands both the file name and line numbers in error messages in most cases. -
  • -
  • - Tide remembers the current lines of files in the recently used list. -
  • -
  • - Tide has a Find in Files command. -
  • -
-

- Beta release 0.80 -

-
    -
  • - This was the first public release on 14th March 1999, containing a mostly working Win32 - Scintilla DLL and Tide EXE. -
  • -
-

- Beta releases of SciTE were called Tide -

- - - diff --git a/MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/doc/ScintillaRelated.html b/MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/doc/ScintillaRelated.html deleted file mode 100644 index 5fe04213..00000000 --- a/MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/doc/ScintillaRelated.html +++ /dev/null @@ -1,507 +0,0 @@ - - - - - - - - - Scintilla and SciTE Related Sites - - - - - - - - -
- Scintilla icon - - Scintilla - and SciTE -
-

- Related Sites -

-

- Ports and Bindings of Scintilla -

-

- Editawy - is an ActiveX Control wrapper that support all Scintilla functions and additional high level functions. -

-

- Jintilla - is a JNI wrapper that allows Scintilla to be used in Java with - both SWT and AWT. -

-

- Delphi Scintilla Interface Components - is a FREE collection of components that makes it easy to use the - Scintilla source code editing control from within Delphi and C++ Builder. -

-

- wxStEdit - is a library and sample program that provides extra features over wxStyledTextControl. -

-

- CScintillaCtrl, CScintillaView & CScintillaDoc - are freeware MFC classes to encapsulate Scintilla. -

-

- ScintillaNet - is an encapsulation of Scintilla for use within the .NET framework. -

-

- QScintilla - is a port of Scintilla to the Qt platform. It has a similar license to Qt: GPL for use in - free software and commercial for use in close-source applications. -

-

- - GWindows is a Win32 RAD GUI Framework for Ada 95 that - includes a binding of Scintilla. -

-

- - DolphinScintilla is a DolphinSmalltalk wrapper for Scintilla. -

-

- ScintillaVB - is an ActiveX control written in VB that encapsulates Scintilla. -

-

- FXScintilla - is a port of Scintilla to the FOX platform. FXRuby includes Ruby - bindings for FXScintilla. -

-

- Delphi wrapper for - Scintilla which is also usable from Borland C++ Builder. -

-

- The wxStyledTextCtrl editor component in the - wxWindows cross platform toolkit is based on Scintilla.
- A Python binding for wxStyledTextCtrl is part of wxPython. -

-

- gtkscintilla - is an alternative GTK class implementation for scintilla. - This implementation acts more like a Gtk+ object, with many methods rather - than just scintilla_send_message() and is available as a shared library. - This implementation works with GTK 1.x. -

-

- gtkscintilla2 - is an alternative GTK class implementation for scintilla - similar to the above, but for GTK 2.x. -

-

- pyscintilla - is the original Python binding for Scintilla's default GTK - 1.x class. Includes some additional support, such as native printing on - Windows. The binding is hand-written rather than auto-generated from the - Scintilla.iface file. -

-

- pygtkscintilla - is a Python binding for gtk1.x scintilla that uses - gtkscintilla instead of the default GTK class. -

-

- pyscintilla2 - is a Python binding for GTK 2.x scintilla that uses - gtkscintilla2. -

-

- ScintillaCtrl - is an unmaintained ActiveX control wrapper for Scintilla. -

-

- Projects using Scintilla -

-

- PyPE - is an editor written in Python with the wxPython GUI toolkit. -

-

- Sciboo - is an editor based on ScintillaNET. -

-

- The Scite Config Tool - is a graphical user interface for changing SciTE properties files. -

-

- Scintilla Lister - is a plugin for Total Commander allowing viewing all documents with syntax highlighting - inside Total Commander. -

-

- ChSciTE - is a free IDE for C/C++ interpreter Ch. It runs cross platform. - Ch is for cross-platform scripting, shell - programming, 2D/3D plotting, numerical computing, and embedded - scripting. -

-

- - Code::Blocks is an open source, cross platform free C++ IDE. -

-

- - Notepad++ is a free source code editor under Windows. -

-

- - Gubed is a cross platform program to debug PHP scripts. -

-

- - LSW DotNet-Lab is a development environment for the .NET platform. -

-

- - GLIntercept is an OpenGL function call interceptor that uses SciTE as a - run-time shader editor. -

-

- - Xin is an open-source XML editor for Windows. -

-

- - wyoEditor is "A nice editor with a well designed and consistent look and feel". -

-

- - Notepad2 is "Yet another Notepad replacement". -

-

- - PyCrash Viewer can examine crash dumps of Python programs. -

-

- - MPT series Wire Analyzers use Scintilla and SciTE. -

-

- MyGeneration - is a .NET based code generator. -

-

- CSSED - is a tiny GTK2 CSS editor. -

-

- DIDE - is a free IDE for the D language on Windows. -

-

- - IdePS - is a free Integrated Development Environment for PostScript -

-

- - CUTE - is a user-friendly source code editor easily extended using Python. -

-

- - Venis IX, - the Visual Environment for NSIS (Nullsoft Scriptable Install System). -

-

- - MinGW Developer Studio - is a simple C/C++ IDE for the MinGW compiler on Windows. -

-

- Eric3 - is a Python IDE written using PyQt and QScintilla. -

-

- TemplateTamer - is a tool for development of template based PHP web pages. -

-

- SciTE|Flash - is a free Scintilla-based ActionScript editor for Windows. -

-

- CPPIDE - is part of some commercial high-school oriented programming course software. -

-

- phpSciTE - is a free distribution of SciTE for Windows customised for use with PHP - and bundled with a PHP API file and online help. -

-

- Instant Source - is a commercial tool for looking at the HTML on web sites. -

-

- RAD.On++ - is a free C++ Rapid Application Developer for Win32. -

-

- wxLua is both - a binding of the wxWindows classes for Lua and a small IDE that works on Linux - and Windows. -

-

- wxBasic is an open source - Basic interpreter that uses the wxWindows toolkit. A small IDE is under construction. -

-

- FreeRIDE will be a - cross-platform IDE for the Ruby programming language. -

-

- Visual MinGW is an - IDE for the MinGW compiler system.This runs on Windows with gcc. -

-

- The Wing IDE is a - complete integrated development environment for the Python programming - language. - Available on Intel based Linux and Windows and on MacOS X through XDarwin. -

-

- LuaIDE - is an IDE for Lua on Windows. -

-

- Sphere - is 2D RPG engine with a development environment. -

-

- Practical Ruby - is an IDE for Ruby on Windows. -

-

- GNUe - is a suite of tools and applications for solving the needs of the enterprise. -

-

- SilverCity - is a lexing package that can provide lexical analysis for over 20 programming - and markup languages. -

-

- Php mole - is an integrated development enviroment for developing (primarily) - web based and phpgtk based applications. -

-

- HAP Python Remote Debugger - is a Python debugger that can run on one Windows machine debugging a Python program running - on either the same or another machine. -

-

- pyeditor and wxEditor - are scriptable editors implemented in Python. pyeditor is based on GTK+ and - the pyscintilla wrapper. wxEditor is based on wxWindows, wxPython and - wxStyledTextControl. -

-

- Ruby installation - that includes SciTE set up for Ruby using an included copy of the "Programming Ruby" book for help. -

-

- Interactive LuaSpace Development - is a graphical environment for LuaSpace which combines the CORBA platform - with the language Lua. -

-

- PyCrust is an interactive - Python shell based on wxPython. -

-

- Black Adder is a - Qt based development environment for Python and Ruby. -

-

- Komodo - is a cross-platform multi-language development environment built - as an application of Mozilla. -

-

- titmouse - is a Lua editor/debugger for Windows. It is available as both a component - and an application. -

-

- Filerx - is a project manager for SciTE on Windows. - Open source and includes an implementation of SciTE's Director interface so - will be of interest to others wanting to control SciTE. -

-

- Anjuta - is an open source C/C++ IDE for Linux/GNOME. -

-

- Gen<X> - is a code generalisation product for Win32 that uses Scintilla in the X-Code Editor (which - can also be used for general purpose editing) and for editing HTML in the HTML Dialog - Editor. -

-

- Moleskine is a Scintilla - based editor for GTK+. More ambitious than SciTE with plans - for MDI, printing, and session management. - Includes a new GTK+ wrapper widget for Scintilla. -

-

- A version of SciTE for Win32 enhanced - with a tab control to allow easy movement between buffers. - Go to the "Goodies" area on this site. -

-

- - Suneido is an integrated application platform currently available for Win32 that includes an - object-oriented language, client-server database, and user interface and reporting frameworks. -

-

- - BitLeaf is a new GNOME based development environment. - Currently at an early stage of development. -

-

- - Agast is an authoring system for adventure games which includes - a customised version of SciTE. -

-

- - SashXB for Linux is an open source application development tool by - IBM that uses Scintilla. -

-

- Boa Constructor is a RAD GUI - Building IDE for the wxWindows cross platform platform. Written using wxPython with the - wxStyledTextCtrl used as its editor. -

-

- PythonWin, a Win32 IDE for Python, uses - Scintilla for both its editing and interactive windows. -

-

- Editing Components -

-

- GtkSourceView - is a text widget that extends the standard GTK+ 2.x text widget and improves it - by implementing syntax highlighting and other features typical of a source editor. -

-

- AEditor - is a free source code editing component implemented in Ruby. -

-

- SyntaxEditor - is a commercial native .Net source code editing component. -

-

- jEdit is a good Open Source syntax colouring - editor written in and for Java. -

-

- GTK+, the GIMP Toolkit, contains a rich text editing - widget.
- Gedit is an editor for GTK+/GNOME.
- -

-

- CodeGuru has source code for several Win32 MFC based - editors. -

- SynEdit is a Win32 edit control written - in Delphi. -

- SourceView is a commercial editing - component for Win32. -

-

- CodeMax is another commercial component for Win32. -

-

- Documents -

-

- The Craft of Text Editing - describes how EMACS works, Craig A. Finseth -

-

- Span Tables - are another data structure that can be used to represent documents in memory in a way - that performs well when data is inserted and deleted, James Brown -

-

- Data Structures in a Bit-Mapped Text - Editor, Wilfred J. Hanson, Byte January 1987 -

-

- Text Editors: Algorithms and Architectures, Ray Valdés, Dr. Dobbs Journal - April 1993 -

-

- Macintosh User Interface Guidelines and TextEdit chapters of Inside Macintosh -

-

- Development Tools -

-

- Scintilla and SciTE were developed using the - Mingw version of GCC. -

-

- AStyle is a source code formatter for C++ and - Java code. SciTE has an Indent command defined for .cxx files that uses AStyle. -

-

- WinMerge is an interactive diff / merge - for Windows. I prefer code submissions in the form of source files rather than diffs and then run - WinMerge over the files to work out how to merge. -

-

- Python is my favourite programming language. Scintilla - was started after I tried to improve the editor built into PythonWin, but was frustrated by the limitations of - the Windows Richedit control which PythonWin used. -

-

- regex is a public domain - implementation of regular expression pattern matching used in Scintilla. -

- -

- - Inspirational coding soundscapes by David Bridie. -

-

- Get away from hacking without any of that tedious standing up bother: Virtually There ;). -

- - - diff --git a/MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/doc/ScintillaToDo.html b/MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/doc/ScintillaToDo.html deleted file mode 100644 index a8098006..00000000 --- a/MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/doc/ScintillaToDo.html +++ /dev/null @@ -1,178 +0,0 @@ - - - - - - - - - Scintilla and SciTE To Do - - - - - - - - -
- Scintilla icon - - Scintilla - and SciTE -
-

- Bugs and To Do List -

-

- Feedback -

-

- Issues can be reported on the Bug Tracker - and features requested on the Feature Request Tracker. -

-

- Scintilla Bugs -

-

- At the end of italics style runs characters can be chopped off. An example - is using Verdana 12 point italics for strings makes an ending double quote - half visible and an ending single quote invisible. This is hard to solve - completely, may be better to avoid these situations by, for example, - choosing a font like Times New Roman for strings. There is a specific kluge - for the end of line which adds some room for italics but this does not - work elsewhere. -

-

- Dragging over bold text in some fonts will ripple because of the difference in - size between drawing all of a string at once and drawing it in parts. -

-

- Automatic scrolling when text dragged near edge of window. -

-

- GTK+ Version Bugs -

-

- Scintilla To Do -

-

- Folding for languages that don't have it yet and good folding for languages - that inherited poor folding from another languages folding code. -

-

- Simple pattern based styling. -

-

- Different height lines based upon tallest text on the line rather than on the tallest style - possible. -

-

- Composition of lexing for mixed languages (such as ASP+ over COBOL) by - combining lexers. -

-

- Printing support on GTK+. Maybe Postscript output or use Gnome? -

-

- Stream folding which could be used to fold up the contents of HTML elements. -

-

- Persisting view state such as current folding into a stream or blob so it is easy - to restore. -

-

- Move line up and move line down keys or move selected lines up / down. -

-

- Printing of highlight lines and folding margin. -

-

- Flow diagrams inside editor similar to - - GRASP. -

-

- A VCL component wrapper around Scintilla so it can be used with Delphi or - Borland C++ Builder. - There is some work - on this available. -

-

- Port to MacOS X. -

-

- More lexers for other languages. -

-

- Automatically calculated range for horizontal scrolling. -

-

- Virtual space at the end of lines so the caret can be moved beyond the end - of lines with the cursor keys. May also make rectangular operations easier - to perform. -

-

- SciTE To Do -

-

- Good regular expression support through a plugin. -

-

- Allow tools to transform the selection, performing an operation like - indentation or sorting. -

-

- Allow file name based selection on all properties rather than just a chosen few. -

-

- Opening from and saving to FTP servers. -

-

- Setting to fold away comments upon opening. -

-

- User defined fold ranges. -

-

- Silent mode that does not display any message boxes. -

-

- Features I am unlikely to do -

-

- These are features I don't like or don't think are important enough to work on. - Implementations are welcome from others though. -

-

- Automatically saving modified menu shortcuts on exit. -

-

- Mouse wheel panning (press the mouse wheel and then move the mouse) on - Windows. -

-

- Adding options to the save dialog to save in a particular encoding or with a - chosen line ending. -

-

- Directions -

-

- The main point of this development is Scintilla, and this is where most effort will - go. SciTE will get new features, but only when they make my life easier - I am - not intending to make it grow up to be a huge full-function IDE like Visual - Cafe. The lines I've currently decided not to step over in SciTE are any sort of - project facility and any configuration dialogs. SciTE for Windows now has a - Director interface for communicating with a separate project manager - application. -

-

- If you are interested in contributing code, do not feel any need to make it cross - platform. - Just code it for your platform and I'll either reimplement for the other platform or - ensure that there is no effect on the other platform. -

- - diff --git a/MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/doc/ScintillaUsage.html b/MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/doc/ScintillaUsage.html deleted file mode 100644 index c19cbc55..00000000 --- a/MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/doc/ScintillaUsage.html +++ /dev/null @@ -1,375 +0,0 @@ - - - - - - - - - Scintilla Usage Notes - - - - - - - - - -
- Scintilla icon - - Scintilla - Usage Notes -
-

- Implementing Auto-Indent -

-

- The key idea is to use the SCN_CHARADDED notification to add indentation after a newline. -

-

- The lParam on the notification is a pointer to a SCNotification structure whose ch member - specifies the character added. If a newline was added, the previous line can be retrieved and - the same indentation can be added to the new line. -

-

- Here is the relevant portion of code from SciTE: (SciTE.cxx SciTEWindow::CharAdded) -

- if  (ch  ==  '\r'  ||  ch  ==  '\n')  {
-     
char  - linebuf[1000];
-     
int  - curLine  =  GetCurrentLineNumber();
-     
int  - lineLength  - =  SendEditor(SCI_LINELENGTH,  curLine);
-     
- //Platform::DebugPrintf("[CR] %d len = %d\n", curLine, lineLength);
-     
if  (curLine  >  0  &&  - lineLength  - <=  2)  {
-     
int  - prevLineLength  - =  SendEditor(SCI_LINELENGTH,  curLine  -  1);
-     
if  (prevLineLength  <  sizeof(linebuf))  {
-         
WORD  buflen  =  sizeof(linebuf);
-         
memcpy(linebuf,  &buflen,  sizeof(buflen));
-         
- SendEditor(EM_GETLINE,  curLine  -  1,
-                    
- reinterpret_cast<LPARAM>(static_cast<char  *>(linebuf)));
-         
linebuf[prevLineLength]  =  '\0';
-         
for  (int  pos  =  0;  linebuf[pos];  pos++)  {
-             
if  (linebuf[pos]  !=  ' '  &&  - linebuf[pos]  !=  '\t')
-                 
- linebuf[pos]  =  '\0';
-         
}
-         
- SendEditor(EM_REPLACESEL,  0,  - reinterpret_cast<LPARAM>(static_cast<char  *>(linebuf)));
-     
}
-
}
- -

- Of course, fancier handling could be implemented. For example, if the previous line was the - start of a control construct, the next line could be automatically indented one tab further. - (Assuming that is your indenting style.) -

-

- Implementing Syntax Styling -

-

- Syntax styling is handled by the SCN_STYLENEEDED notification. Scintilla keeps track of the - end of the styled text - this is retrieved with SCI_GETENDSTYLED. In response to the - SCN_STYLENEEDED notification, you should apply styles to the text from ENDSTYLED to the - position specified by the notification. -

-

- Here is the relevant portion of code from SciTE: (SciTE.cxx) -

- void  - SciTEWindow::Notify(SCNotification  *notification)  {
-     
switch  - (notification->nmhdr.code)  {
-     
case  - SCN_STYLENEEDED:  {
-             
if  (notification->nmhdr.idFrom  ==  IDM_SRCWIN)  {
-                 
- int  - endStyled  =  SendEditor(SCI_GETENDSTYLED);
-                 
- int  - lineEndStyled  =  SendEditor(EM_LINEFROMCHAR,  - endStyled);
-                 
- endStyled  - =  SendEditor(EM_LINEINDEX,  lineEndStyled);
-                 
- Colourise(endStyled,  notification->position);
- -

- Colourize(start, end) retrieves the specified range of text and then calls ColourizeDoc in - keywords.cxx. It starts the process by calling: -

-     SendMessage(hwnd,  SCI_STARTSTYLING,  - startPos,  31);
- -

- and then for each token of the text, calling: -

-     SendMessage(hwnd,  SCI_SETSTYLING,  length,  style);
- -

- where style is a number from 0 to 31 whose appearance has been defined using the - SCI_STYLESET... messages. -

-

- Implementing Calltips -

-

- Again, the SCN_CHARADDED notification is used to catch when an opening parenthesis is added. - The preceding word can then be retrieved from the current line: -

-     char  linebuf[1000];
-
    int  current  =  SendEditor(SCI_GETCURLINE,  sizeof(linebuf),
-         
- reinterpret_cast<LPARAM>(static_cast<char  *>(linebuf)));
-
    int  pos  =  SendEditor(SCI_GETCURRENTPOS);
-
-
    int  startword  =  current  -  1;
-
    while  - (startword  - >  0  &&  - isalpha(linebuf[startword  -  1]))
-         
- startword--;
-
    linebuf[current  -  1]  =  '\0';
-
    char*  word  =  linebuf  +  startword;
- -

- Then if a calltip is available it can be displayed. The calltip appears immediately below - the position specified. The calltip can be multiple lines separated by newlines (\n). -

-     pos  =  SendMessage(hwnd,  SCI_GETCURRENTPOS,  0,  0);
-
    SendMessageText(hwnd,  SCI_CALLTIPSHOW,  pos  -  wordLen  -  1,  calltip);
- -

- The calltip can be removed when a closing parenthesis is entered: -

-     if  (SendMessage(hwnd,  SCI_CALLTIPACTIVE,  - 0,  0))
-         
- SendMessage(hwnd,  - SCI_CALLTIPCANCEL,  0,  - 0);
- -

- Obviously, it is up the application to look after supplying the appropriate calltip text. -

-

- SciTE goes one step further, counting the commas between arguments and highlighting the - corresponding part of the calltip. This code is in ContinueCallTip. -

-

- Page contributed by Andrew McKinlay. -

- - - diff --git a/MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/doc/Steps.html b/MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/doc/Steps.html deleted file mode 100644 index 765268da..00000000 --- a/MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/doc/Steps.html +++ /dev/null @@ -1,142 +0,0 @@ - -How to use the Scintilla Edit Control in windows? -

How to use the Scintilla Edit Control in windows?

-

- This should be a little step by step explanation how to use Scintilla in the windows environment. -

-

-

How to create Scintilla Edit Control?

-

- First of all, load the Scintilla DLL with something like: -

-
-
-	hmod = LoadLibrary("SciLexer.DLL");
-		if (hmod==NULL)
-		{
-			MessageBox(hwndParent,
-			"The Scintilla DLL could not be loaded.",
-			"Error loading Scintilla",
-			MB_OK | MB_ICONERROR);
-		}
-		
-

- If the DLL was loaded successfully, then the DLL has registered (yes, by itself) a new - window class. The new class called "Scintilla" is the new scintilla edit control. -

-

- Now you can use this new control just like any other windows control. -

-
-
-	hwndScintilla = CreateWindowEx(0,
-		"Scintilla","", WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_CLIPCHILDREN,
-		10,10,500,400,hwndParent,(HMENU)GuiID, hInstance,NULL);
-		
-

- Note the new window class name: "Scintilla". By reaching this point you actually included - a Scintilla Edit Control to your windows program. -

-

-

How to control the Scintilla Edit Control?

-

- You can control Scintilla by sending commands to the Edit Control. - There a 2 ways of doing this. A simple and fast way. -

-

The simple way to control Scintilla

-

- The simple way is just like with any other windows control. You can send messages to the - Scintilla Edit Control and receive notifications from the control. (Note that the notifications - are sent to the parent window of the Scintilla Edit Control.) -

-

- The Scintilla Edit Control knows a special message for each command. - To send commands to the Scintilla Edit Control you can use the SendMessage function. -

-
-
-	SendMessage(hwndScintilla,sci_command,wparam,lparam);
-			
-

- like: -

-
-
-	SendMessage(hwndScintilla,SCI_CREATEDOCUMENT, 0, 0);
-			
-

- Some of the commands will return a value and unused parameters should be set to NULL. -

-

-

The fast way to control Scintilla

-

- The fast way of controlling the Scintilla Edit Control is to call message handling function by yourself. - You can retrieve a pointer to the message handling function of the Scintilla Edit Control and - call it directly to execute a command. This way is much more faster than the SendMessage() way. -

-

- 1st you have to use the SCI_GETDIRECTFUNCTION and SCI_GETDIRECTPOINTER commands to - retrieve the pointer to the function and a pointer which must be the first parameter when calling the retrieved - function pointer. - You have to do this with the SendMessage way :) -

-

- The whole thing has to look like this: -

-
-
-	int (*fn)(void*,int,int,int);
-	void * ptr;
-	int canundo;
-
-	fn = (int (__cdecl *)(void *,int,int,int))SendMessage(
-		hwndScintilla,SCI_GETDIRECTFUNCTION,0,0);
-	ptr = (void *)SendMessage(hwndScintilla,SCI_GETDIRECTPOINTER,0,0);
-
-	canundo = fn(ptr,SCI_CANUNDO,0,0);
-			
-

- with "fn" as the function pointer to the message handling function of the Scintilla Control - and "ptr" as the pointer that must be used as 1st parameter. - The next parameters are the Scintilla Command with its two (optional) parameters. -

- -

-

How will I receive notifications?

-

- Whenever an event occurs where Scintilla wants to inform you about something, the Scintilla Edit Control - will send notification to the parent window. This is done by a WM_NOTITY message. - When receiving that message, you have to look in the xxx struct for the actual message. -

-

- So in Scintillas parent window message handling function you have to include some code like this: -

-
-	NMHDR *lpnmhdr;
-
-	[...]
-
-	case WM_NOTIFY:
-		lpnmhdr = (LPNMHDR) lParam;
-
-		if(lpnmhdr->hwndFrom==hwndScintilla)
-		{
-			switch(lpnmhdr->code)
-			{
-				case SCN_CHARADDED:
-					/* Hey, Scintilla just told me that a new */
-					/* character was added to the Edit Control.*/
-					/* Now i do something cool with that char. */
-				break;
-			}
-		}
-	break;
-			
-

-

- -

- Page contributed by Holger Schmidt. -

- - diff --git a/MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/doc/index.html b/MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/doc/index.html deleted file mode 100644 index 5c891001..00000000 --- a/MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/doc/index.html +++ /dev/null @@ -1,198 +0,0 @@ - - - - - - - - - - - - - - Scintilla and SciTE - - - - - - - - - - -
- Scintilla - - A free source code editing component for Win32 and - GTK+ - - Release version 1.71
- Site last modified August 21 2006
-
-   -
- - - - -
- Sci Break -
- - - - - - - - - - - - - - - - - - - -
- Version 1.71 defaults mouse drag to be move on GTK+ - and GTK+ also has some internationalisation fixes. -
- Version 1.70 allows, on GTK+, approximate character set conversions - for pasting and uses internationalised input at all times. -
- Version 1.69 supports the Spice language and can draw - the selection and whole line markers translucently. -
- Version 1.68 can draw the caret line - and box indicators translucently and has an accurate TCL lexer. -
- Version 1.67 enhances some lexers and fixes bugs. -
- Version 1.66 has a new Ruby lexer and fixes bugs on GTK+ - with Pango 1.8. -
- - - - -
- - - Documentation   - Bugs   - - - History   Related   -
-

- Scintilla is a free source code editing component. - It comes with complete source code and a license that - permits use in any free project or commercial product. -

-

- As well as features found in standard text editing components, Scintilla includes features - especially useful when editing and debugging source code. - These include support for syntax styling, error indicators, code completion and call tips. - The selection margin can contain markers like those used in debuggers to indicate - breakpoints and the current line. Styling choices are more open than with many editors, - allowing the use of proportional fonts, bold and italics, multiple foreground and background - colours and multiple fonts. -

-

- The SinkWorld project - investigates possible future directions for Scintilla to make it more flexible, robust, perform - better and run on the .NET and Java virtual machines. -

-

- SciTE is a SCIntilla based Text Editor. Originally built to - demonstrate Scintilla, it has grown to be a generally useful editor with facilities for - building and running programs. It is best used for jobs with simple configurations - I use it - for building test and demonstration programs as well as SciTE and Scintilla, themselves. -

-

- Development of Scintilla started as an effort to improve the text editor in PythonWin. After - being frustrated by problems in the Richedit control used by PythonWin, it looked like the - best way forward was to write a new edit control. The biggest problem with Richedit and other - similar controls is that they treat styling changes as important persistent changes to the - document so they are saved into the undo stack and set the document's dirty flag. For source - code, styling should not be persisted as it can be mechanically recreated. -

-

- Scintilla and SciTE are currently available for Intel Win32 and Linux compatible operating - systems with GTK+. They have been run on Windows 95, NT 4.0, Windows 2000, and on Red Hat - Linux 8 and 9 with GTK+ 1.2 and 2.0. Here is a screenshot of - SciTE.
-

-

- You can download Scintilla. -

-

- The source code can be downloaded via CVS at the Source Forge - Scintilla project page. -

-

- Related sites. -

-

- Bugs and To Do list. -

-

- History and contribution credits. -

-

- Icons that can be used with Scintilla. -

-

- Questions and comments about Scintilla should be directed to the - scintilla-interest - mailing list, - which is for discussion of Scintilla and related projects, their bugs and future features. - This is a low traffic list, averaging less than 50 messages per week. - To avoid spam, only list members can write to the list. - Announcements of new versions of Scintilla go to both the scintilla-interest list and - scintilla-announce. - Messages sent to my personal email address that could have been sent to the list - may receive no response. -
-

- - - - diff --git a/MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/include/Accessor.h b/MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/include/Accessor.h deleted file mode 100644 index 5364b9e3..00000000 --- a/MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/include/Accessor.h +++ /dev/null @@ -1,78 +0,0 @@ -// Scintilla source code edit control -/** @file Accessor.h - ** Rapid easy access to contents of a Scintilla. - **/ -// Copyright 1998-2001 by Neil Hodgson -// The License.txt file describes the conditions under which this software may be distributed. - -enum { wsSpace = 1, wsTab = 2, wsSpaceTab = 4, wsInconsistent=8}; - -class Accessor; - -typedef bool (*PFNIsCommentLeader)(Accessor &styler, int pos, int len); - -/** - * Interface to data in a Scintilla. - */ -class Accessor { -protected: - enum {extremePosition=0x7FFFFFFF}; - /** @a bufferSize is a trade off between time taken to copy the characters - * and retrieval overhead. - * @a slopSize positions the buffer before the desired position - * in case there is some backtracking. */ - enum {bufferSize=4000, slopSize=bufferSize/8}; - char buf[bufferSize+1]; - int startPos; - int endPos; - int codePage; - - virtual bool InternalIsLeadByte(char ch)=0; - virtual void Fill(int position)=0; - -public: - Accessor() : startPos(extremePosition), endPos(0), codePage(0) {} - virtual ~Accessor() {} - char operator[](int position) { - if (position < startPos || position >= endPos) { - Fill(position); - } - return buf[position - startPos]; - } - /** Safe version of operator[], returning a defined value for invalid position. */ - char SafeGetCharAt(int position, char chDefault=' ') { - if (position < startPos || position >= endPos) { - Fill(position); - if (position < startPos || position >= endPos) { - // Position is outside range of document - return chDefault; - } - } - return buf[position - startPos]; - } - bool IsLeadByte(char ch) { - return codePage && InternalIsLeadByte(ch); - } - void SetCodePage(int codePage_) { codePage = codePage_; } - - virtual bool Match(int pos, const char *s)=0; - virtual char StyleAt(int position)=0; - virtual int GetLine(int position)=0; - virtual int LineStart(int line)=0; - virtual int LevelAt(int line)=0; - virtual int Length()=0; - virtual void Flush()=0; - virtual int GetLineState(int line)=0; - virtual int SetLineState(int line, int state)=0; - virtual int GetPropertyInt(const char *key, int defaultValue=0)=0; - virtual char *GetProperties()=0; - - // Style setting - virtual void StartAt(unsigned int start, char chMask=31)=0; - virtual void SetFlags(char chFlags_, char chWhile_)=0; - virtual unsigned int GetStartSegment()=0; - virtual void StartSegment(unsigned int pos)=0; - virtual void ColourTo(unsigned int pos, int chAttr)=0; - virtual void SetLevel(int line, int level)=0; - virtual int IndentAmount(int line, int *flags, PFNIsCommentLeader pfnIsCommentLeader = 0)=0; -}; diff --git a/MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/include/Face.py b/MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/include/Face.py deleted file mode 100644 index 59ada3dc..00000000 --- a/MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/include/Face.py +++ /dev/null @@ -1,107 +0,0 @@ -# Module for reading and parsing Scintilla.iface file -import string - -def sanitiseLine(line): - if line[-1:] == '\n': line = line[:-1] - if string.find(line, "##") != -1: - line = line[:string.find(line, "##")] - line = string.strip(line) - return line - -def decodeFunction(featureVal): - retType, rest = string.split(featureVal, " ", 1) - nameIdent, params = string.split(rest, "(") - name, value = string.split(nameIdent, "=") - params, rest = string.split(params, ")") - param1, param2 = string.split(params, ",")[0:2] - return retType, name, value, param1, param2 - -def decodeEvent(featureVal): - retType, rest = string.split(featureVal, " ", 1) - nameIdent, params = string.split(rest, "(") - name, value = string.split(nameIdent, "=") - return retType, name, value - -def decodeParam(p): - param = string.strip(p) - type = "" - name = "" - value = "" - if " " in param: - type, nv = string.split(param, " ") - if "=" in nv: - name, value = string.split(nv, "=") - else: - name = nv - return type, name, value - -class Face: - - def __init__(self): - self.order = [] - self.features = {} - self.values = {} - self.events = {} - - def ReadFromFile(self, name): - currentCategory = "" - currentComment = [] - currentCommentFinished = 0 - file = open(name) - for line in file.readlines(): - line = sanitiseLine(line) - if line: - if line[0] == "#": - if line[1] == " ": - if currentCommentFinished: - currentComment = [] - currentCommentFinished = 0 - currentComment.append(line[2:]) - else: - currentCommentFinished = 1 - featureType, featureVal = string.split(line, " ", 1) - if featureType in ["fun", "get", "set"]: - retType, name, value, param1, param2 = decodeFunction(featureVal) - p1 = decodeParam(param1) - p2 = decodeParam(param2) - self.features[name] = { - "FeatureType": featureType, - "ReturnType": retType, - "Value": value, - "Param1Type": p1[0], "Param1Name": p1[1], "Param1Value": p1[2], - "Param2Type": p2[0], "Param2Name": p2[1], "Param2Value": p2[2], - "Category": currentCategory, "Comment": currentComment - } - if self.values.has_key(value): - raise "Duplicate value " + value + " " + name - self.values[value] = 1 - self.order.append(name) - elif featureType == "evt": - retType, name, value = decodeEvent(featureVal) - self.features[name] = { - "FeatureType": featureType, - "ReturnType": retType, - "Value": value, - "Category": currentCategory, "Comment": currentComment - } - if self.events.has_key(value): - raise "Duplicate event " + value + " " + name - self.events[value] = 1 - self.order.append(name) - elif featureType == "cat": - currentCategory = featureVal - elif featureType == "val": - name, value = string.split(featureVal, "=", 1) - self.features[name] = { - "FeatureType": featureType, - "Category": currentCategory, - "Value": value } - self.order.append(name) - elif featureType == "enu" or featureType == "lex": - name, value = string.split(featureVal, "=", 1) - self.features[name] = { - "FeatureType": featureType, - "Category": currentCategory, - "Value": value } - self.order.append(name) - diff --git a/MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/include/HFacer.py b/MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/include/HFacer.py deleted file mode 100644 index 5639bcf7..00000000 --- a/MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/include/HFacer.py +++ /dev/null @@ -1,76 +0,0 @@ -# HFacer.py - regenerate the Scintilla.h and SciLexer.h files from the Scintilla.iface interface -# definition file. -# The header files are copied to a temporary file apart from the section between a //++Autogenerated -# comment and a //--Autogenerated comment which is generated by the printHFile and printLexHFile -# functions. After the temporary file is created, it is copied back to the original file name. - -import string -import sys -import os -import Face - -def Contains(s,sub): - return string.find(s, sub) != -1 - -def printLexHFile(f,out): - for name in f.order: - v = f.features[name] - if v["FeatureType"] in ["val"]: - if Contains(name, "SCE_") or Contains(name, "SCLEX_"): - out.write("#define " + name + " " + v["Value"] + "\n") - -def printHFile(f,out): - for name in f.order: - v = f.features[name] - if v["Category"] != "Deprecated": - if v["FeatureType"] in ["fun", "get", "set"]: - featureDefineName = "SCI_" + string.upper(name) - out.write("#define " + featureDefineName + " " + v["Value"] + "\n") - elif v["FeatureType"] in ["evt"]: - featureDefineName = "SCN_" + string.upper(name) - out.write("#define " + featureDefineName + " " + v["Value"] + "\n") - elif v["FeatureType"] in ["val"]: - if not (Contains(name, "SCE_") or Contains(name, "SCLEX_")): - out.write("#define " + name + " " + v["Value"] + "\n") - -def CopyWithInsertion(input, output, genfn, definition): - copying = 1 - for line in input.readlines(): - if copying: - output.write(line) - if Contains(line, "//++Autogenerated"): - copying = 0 - genfn(definition, output) - if Contains(line, "//--Autogenerated"): - copying = 1 - output.write(line) - -def contents(filename): - f = file(filename) - t = f.read() - f.close() - return t - -def Regenerate(filename, genfn, definition): - inText = contents(filename) - tempname = "HFacer.tmp" - out = open(tempname,"w") - hfile = open(filename) - CopyWithInsertion(hfile, out, genfn, definition) - out.close() - hfile.close() - outText = contents(tempname) - if inText == outText: - os.unlink(tempname) - else: - os.unlink(filename) - os.rename(tempname, filename) - -f = Face.Face() -try: - f.ReadFromFile("Scintilla.iface") - Regenerate("Scintilla.h", printHFile, f) - Regenerate("SciLexer.h", printLexHFile, f) - print "Maximum ID is", max(x for x in f.values if int(x) < 3000) -except: - raise diff --git a/MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/include/KeyWords.h b/MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/include/KeyWords.h deleted file mode 100644 index 2f173e0e..00000000 --- a/MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/include/KeyWords.h +++ /dev/null @@ -1,82 +0,0 @@ -// Scintilla source code edit control -/** @file KeyWords.h - ** Colourise for particular languages. - **/ -// Copyright 1998-2001 by Neil Hodgson -// The License.txt file describes the conditions under which this software may be distributed. - -typedef void (*LexerFunction)(unsigned int startPos, int lengthDoc, int initStyle, - WordList *keywordlists[], Accessor &styler); - -/** - * A LexerModule is responsible for lexing and folding a particular language. - * The class maintains a list of LexerModules which can be searched to find a - * module appropriate to a particular language. - */ -class LexerModule { -protected: - const LexerModule *next; - int language; - LexerFunction fnLexer; - LexerFunction fnFolder; - const char * const * wordListDescriptions; - int styleBits; - - static const LexerModule *base; - static int nextLanguage; - -public: - const char *languageName; - LexerModule(int language_, - LexerFunction fnLexer_, - const char *languageName_=0, - LexerFunction fnFolder_=0, - const char * const wordListDescriptions_[] = NULL, - int styleBits_=5); - virtual ~LexerModule() { - } - int GetLanguage() const { return language; } - - // -1 is returned if no WordList information is available - int GetNumWordLists() const; - const char *GetWordListDescription(int index) const; - - int GetStyleBitsNeeded() const; - - virtual void Lex(unsigned int startPos, int lengthDoc, int initStyle, - WordList *keywordlists[], Accessor &styler) const; - virtual void Fold(unsigned int startPos, int lengthDoc, int initStyle, - WordList *keywordlists[], Accessor &styler) const; - static const LexerModule *Find(int language); - static const LexerModule *Find(const char *languageName); -}; - -/** - * Check if a character is a space. - * This is ASCII specific but is safe with chars >= 0x80. - */ -inline bool isspacechar(unsigned char ch) { - return (ch == ' ') || ((ch >= 0x09) && (ch <= 0x0d)); -} - -inline bool iswordchar(char ch) { - return isascii(ch) && (isalnum(ch) || ch == '.' || ch == '_'); -} - -inline bool iswordstart(char ch) { - return isascii(ch) && (isalnum(ch) || ch == '_'); -} - -inline bool isoperator(char ch) { - if (isascii(ch) && isalnum(ch)) - return false; - // '.' left out as it is used to make up numbers - if (ch == '%' || ch == '^' || ch == '&' || ch == '*' || - ch == '(' || ch == ')' || ch == '-' || ch == '+' || - ch == '=' || ch == '|' || ch == '{' || ch == '}' || - ch == '[' || ch == ']' || ch == ':' || ch == ';' || - ch == '<' || ch == '>' || ch == ',' || ch == '/' || - ch == '?' || ch == '!' || ch == '.' || ch == '~') - return true; - return false; -} diff --git a/MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/include/Platform.h b/MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/include/Platform.h deleted file mode 100644 index b713a528..00000000 --- a/MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/include/Platform.h +++ /dev/null @@ -1,517 +0,0 @@ -// Scintilla source code edit control -/** @file Platform.h - ** Interface to platform facilities. Also includes some basic utilities. - ** Implemented in PlatGTK.cxx for GTK+/Linux, PlatWin.cxx for Windows, and PlatWX.cxx for wxWindows. - **/ -// Copyright 1998-2003 by Neil Hodgson -// The License.txt file describes the conditions under which this software may be distributed. - -#ifndef PLATFORM_H -#define PLATFORM_H - -// PLAT_GTK = GTK+ on Linux or Win32 -// PLAT_GTK_WIN32 is defined additionally when running PLAT_GTK under Win32 -// PLAT_WIN = Win32 API on Win32 OS -// PLAT_WX is wxWindows on any supported platform - -#define PLAT_GTK 0 -#define PLAT_GTK_WIN32 0 -#define PLAT_WIN 0 -#define PLAT_WX 0 -#define PLAT_FOX 0 - -#if defined(FOX) -#undef PLAT_FOX -#define PLAT_FOX 1 - -#elif defined(__WX__) -#undef PLAT_WX -#define PLAT_WX 1 - -#elif defined(GTK) -#undef PLAT_GTK -#define PLAT_GTK 1 - -#ifdef _MSC_VER -#undef PLAT_GTK_WIN32 -#define PLAT_GTK_WIN32 1 -#endif - -#else -#undef PLAT_WIN -#define PLAT_WIN 1 - -#endif - - -// Underlying the implementation of the platform classes are platform specific types. -// Sometimes these need to be passed around by client code so they are defined here - -typedef void *FontID; -typedef void *SurfaceID; -typedef void *WindowID; -typedef void *MenuID; -typedef void *TickerID; -typedef void *Function; -typedef void *IdlerID; - -/** - * A geometric point class. - * Point is exactly the same as the Win32 POINT and GTK+ GdkPoint so can be used interchangeably. - */ -class Point { -public: - int x; - int y; - - explicit Point(int x_=0, int y_=0) : x(x_), y(y_) { - } - - // Other automatically defined methods (assignment, copy constructor, destructor) are fine - - static Point FromLong(long lpoint); -}; - -/** - * A geometric rectangle class. - * PRectangle is exactly the same as the Win32 RECT so can be used interchangeably. - * PRectangles contain their top and left sides, but not their right and bottom sides. - */ -class PRectangle { -public: - int left; - int top; - int right; - int bottom; - - PRectangle(int left_=0, int top_=0, int right_=0, int bottom_ = 0) : - left(left_), top(top_), right(right_), bottom(bottom_) { - } - - // Other automatically defined methods (assignment, copy constructor, destructor) are fine - - bool operator==(PRectangle &rc) { - return (rc.left == left) && (rc.right == right) && - (rc.top == top) && (rc.bottom == bottom); - } - bool Contains(Point pt) { - return (pt.x >= left) && (pt.x <= right) && - (pt.y >= top) && (pt.y <= bottom); - } - bool Contains(PRectangle rc) { - return (rc.left >= left) && (rc.right <= right) && - (rc.top >= top) && (rc.bottom <= bottom); - } - bool Intersects(PRectangle other) { - return (right > other.left) && (left < other.right) && - (bottom > other.top) && (top < other.bottom); - } - void Move(int xDelta, int yDelta) { - left += xDelta; - top += yDelta; - right += xDelta; - bottom += yDelta; - } - int Width() { return right - left; } - int Height() { return bottom - top; } -}; - -/** - * In some circumstances, including Win32 in paletted mode and GTK+, each colour - * must be allocated before use. The desired colours are held in the ColourDesired class, - * and after allocation the allocation entry is stored in the ColourAllocated class. In other - * circumstances, such as Win32 in true colour mode, the allocation process just copies - * the RGB values from the desired to the allocated class. - * As each desired colour requires allocation before it can be used, the ColourPair class - * holds both a ColourDesired and a ColourAllocated - * The Palette class is responsible for managing the palette of colours which contains a - * list of ColourPair objects and performs the allocation. - */ - -/** - * Holds a desired RGB colour. - */ -class ColourDesired { - long co; -public: - ColourDesired(long lcol=0) { - co = lcol; - } - - ColourDesired(unsigned int red, unsigned int green, unsigned int blue) { - Set(red, green, blue); - } - - bool operator==(const ColourDesired &other) const { - return co == other.co; - } - - void Set(long lcol) { - co = lcol; - } - - void Set(unsigned int red, unsigned int green, unsigned int blue) { - co = red | (green << 8) | (blue << 16); - } - - static inline unsigned int ValueOfHex(const char ch) { - if (ch >= '0' && ch <= '9') - return ch - '0'; - else if (ch >= 'A' && ch <= 'F') - return ch - 'A' + 10; - else if (ch >= 'a' && ch <= 'f') - return ch - 'a' + 10; - else - return 0; - } - - void Set(const char *val) { - if (*val == '#') { - val++; - } - unsigned int r = ValueOfHex(val[0]) * 16 + ValueOfHex(val[1]); - unsigned int g = ValueOfHex(val[2]) * 16 + ValueOfHex(val[3]); - unsigned int b = ValueOfHex(val[4]) * 16 + ValueOfHex(val[5]); - Set(r, g, b); - } - - long AsLong() const { - return co; - } - - unsigned int GetRed() { - return co & 0xff; - } - - unsigned int GetGreen() { - return (co >> 8) & 0xff; - } - - unsigned int GetBlue() { - return (co >> 16) & 0xff; - } -}; - -/** - * Holds an allocated RGB colour which may be an approximation to the desired colour. - */ -class ColourAllocated { - long coAllocated; - -public: - - ColourAllocated(long lcol=0) { - coAllocated = lcol; - } - - void Set(long lcol) { - coAllocated = lcol; - } - - long AsLong() const { - return coAllocated; - } -}; - -/** - * Colour pairs hold a desired colour and an allocated colour. - */ -struct ColourPair { - ColourDesired desired; - ColourAllocated allocated; - - ColourPair(ColourDesired desired_=ColourDesired(0,0,0)) { - desired = desired_; - allocated.Set(desired.AsLong()); - } - void Copy() { - allocated.Set(desired.AsLong()); - } -}; - -class Window; // Forward declaration for Palette - -/** - * Colour palette management. - */ -class Palette { - int used; - int size; - ColourPair *entries; -#if PLAT_GTK - void *allocatedPalette; // GdkColor * - int allocatedLen; -#endif - // Private so Palette objects can not be copied - Palette(const Palette &) {} - Palette &operator=(const Palette &) { return *this; } -public: -#if PLAT_WIN - void *hpal; -#endif - bool allowRealization; - - Palette(); - ~Palette(); - - void Release(); - - /** - * This method either adds a colour to the list of wanted colours (want==true) - * or retrieves the allocated colour back to the ColourPair. - * This is one method to make it easier to keep the code for wanting and retrieving in sync. - */ - void WantFind(ColourPair &cp, bool want); - - void Allocate(Window &w); -}; - -/** - * Font management. - */ -class Font { -protected: - FontID id; -#if PLAT_WX - int ascent; -#endif - // Private so Font objects can not be copied - Font(const Font &) {} - Font &operator=(const Font &) { id=0; return *this; } -public: - Font(); - virtual ~Font(); - - virtual void Create(const char *faceName, int characterSet, int size, - bool bold, bool italic, bool extraFontFlag=false); - virtual void Release(); - - FontID GetID() { return id; } - // Alias another font - caller guarantees not to Release - void SetID(FontID id_) { id = id_; } - friend class Surface; - friend class SurfaceImpl; -}; - -/** - * A surface abstracts a place to draw. - */ -class Surface { -private: - // Private so Surface objects can not be copied - Surface(const Surface &) {} - Surface &operator=(const Surface &) { return *this; } -public: - Surface() {}; - virtual ~Surface() {}; - static Surface *Allocate(); - - virtual void Init(WindowID wid)=0; - virtual void Init(SurfaceID sid, WindowID wid)=0; - virtual void InitPixMap(int width, int height, Surface *surface_, WindowID wid)=0; - - virtual void Release()=0; - virtual bool Initialised()=0; - virtual void PenColour(ColourAllocated fore)=0; - virtual int LogPixelsY()=0; - virtual int DeviceHeightFont(int points)=0; - virtual void MoveTo(int x_, int y_)=0; - virtual void LineTo(int x_, int y_)=0; - virtual void Polygon(Point *pts, int npts, ColourAllocated fore, ColourAllocated back)=0; - virtual void RectangleDraw(PRectangle rc, ColourAllocated fore, ColourAllocated back)=0; - virtual void FillRectangle(PRectangle rc, ColourAllocated back)=0; - virtual void FillRectangle(PRectangle rc, Surface &surfacePattern)=0; - virtual void RoundedRectangle(PRectangle rc, ColourAllocated fore, ColourAllocated back)=0; - virtual void AlphaRectangle(PRectangle rc, int cornerSize, ColourAllocated fill, int alphaFill, - ColourAllocated outline, int alphaOutline, int flags)=0; - virtual void Ellipse(PRectangle rc, ColourAllocated fore, ColourAllocated back)=0; - virtual void Copy(PRectangle rc, Point from, Surface &surfaceSource)=0; - - virtual void DrawTextNoClip(PRectangle rc, Font &font_, int ybase, const char *s, int len, ColourAllocated fore, ColourAllocated back)=0; - virtual void DrawTextClipped(PRectangle rc, Font &font_, int ybase, const char *s, int len, ColourAllocated fore, ColourAllocated back)=0; - virtual void DrawTextTransparent(PRectangle rc, Font &font_, int ybase, const char *s, int len, ColourAllocated fore)=0; - virtual void MeasureWidths(Font &font_, const char *s, int len, int *positions)=0; - virtual int WidthText(Font &font_, const char *s, int len)=0; - virtual int WidthChar(Font &font_, char ch)=0; - virtual int Ascent(Font &font_)=0; - virtual int Descent(Font &font_)=0; - virtual int InternalLeading(Font &font_)=0; - virtual int ExternalLeading(Font &font_)=0; - virtual int Height(Font &font_)=0; - virtual int AverageCharWidth(Font &font_)=0; - - virtual int SetPalette(Palette *pal, bool inBackGround)=0; - virtual void SetClip(PRectangle rc)=0; - virtual void FlushCachedState()=0; - - virtual void SetUnicodeMode(bool unicodeMode_)=0; - virtual void SetDBCSMode(int codePage)=0; -}; - -/** - * A simple callback action passing one piece of untyped user data. - */ -typedef void (*CallBackAction)(void*); - -/** - * Class to hide the details of window manipulation. - * Does not own the window which will normally have a longer life than this object. - */ -class Window { -protected: - WindowID id; -public: - Window() : id(0), cursorLast(cursorInvalid) {} - Window(const Window &source) : id(source.id), cursorLast(cursorInvalid) {} - virtual ~Window(); - Window &operator=(WindowID id_) { - id = id_; - return *this; - } - WindowID GetID() const { return id; } - bool Created() const { return id != 0; } - void Destroy(); - bool HasFocus(); - PRectangle GetPosition(); - void SetPosition(PRectangle rc); - void SetPositionRelative(PRectangle rc, Window relativeTo); - PRectangle GetClientPosition(); - void Show(bool show=true); - void InvalidateAll(); - void InvalidateRectangle(PRectangle rc); - virtual void SetFont(Font &font); - enum Cursor { cursorInvalid, cursorText, cursorArrow, cursorUp, cursorWait, cursorHoriz, cursorVert, cursorReverseArrow, cursorHand }; - void SetCursor(Cursor curs); - void SetTitle(const char *s); -private: - Cursor cursorLast; -}; - -/** - * Listbox management. - */ - -class ListBox : public Window { -public: - ListBox(); - virtual ~ListBox(); - static ListBox *Allocate(); - - virtual void SetFont(Font &font)=0; - virtual void Create(Window &parent, int ctrlID, Point location, int lineHeight_, bool unicodeMode_)=0; - virtual void SetAverageCharWidth(int width)=0; - virtual void SetVisibleRows(int rows)=0; - virtual int GetVisibleRows() const=0; - virtual PRectangle GetDesiredRect()=0; - virtual int CaretFromEdge()=0; - virtual void Clear()=0; - virtual void Append(char *s, int type = -1)=0; - virtual int Length()=0; - virtual void Select(int n)=0; - virtual int GetSelection()=0; - virtual int Find(const char *prefix)=0; - virtual void GetValue(int n, char *value, int len)=0; - virtual void RegisterImage(int type, const char *xpm_data)=0; - virtual void ClearRegisteredImages()=0; - virtual void SetDoubleClickAction(CallBackAction, void *)=0; - virtual void SetList(const char* list, char separator, char typesep)=0; -}; - -/** - * Menu management. - */ -class Menu { - MenuID id; -public: - Menu(); - MenuID GetID() { return id; } - void CreatePopUp(); - void Destroy(); - void Show(Point pt, Window &w); -}; - -class ElapsedTime { - long bigBit; - long littleBit; -public: - ElapsedTime(); - double Duration(bool reset=false); -}; - -/** - * Dynamic Library (DLL/SO/...) loading - */ -class DynamicLibrary { -public: - virtual ~DynamicLibrary() {}; - - /// @return Pointer to function "name", or NULL on failure. - virtual Function FindFunction(const char *name) = 0; - - /// @return true if the library was loaded successfully. - virtual bool IsValid() = 0; - - /// @return An instance of a DynamicLibrary subclass with "modulePath" loaded. - static DynamicLibrary *Load(const char *modulePath); -}; - -/** - * Platform class used to retrieve system wide parameters such as double click speed - * and chrome colour. Not a creatable object, more of a module with several functions. - */ -class Platform { - // Private so Platform objects can not be copied - Platform(const Platform &) {} - Platform &operator=(const Platform &) { return *this; } -public: - // Should be private because no new Platforms are ever created - // but gcc warns about this - Platform() {} - ~Platform() {} - static ColourDesired Chrome(); - static ColourDesired ChromeHighlight(); - static const char *DefaultFont(); - static int DefaultFontSize(); - static unsigned int DoubleClickTime(); - static bool MouseButtonBounce(); - static void DebugDisplay(const char *s); - static bool IsKeyDown(int key); - static long SendScintilla( - WindowID w, unsigned int msg, unsigned long wParam=0, long lParam=0); - static long SendScintillaPointer( - WindowID w, unsigned int msg, unsigned long wParam=0, void *lParam=0); - static bool IsDBCSLeadByte(int codePage, char ch); - static int DBCSCharLength(int codePage, const char *s); - static int DBCSCharMaxLength(); - - // These are utility functions not really tied to a platform - static int Minimum(int a, int b); - static int Maximum(int a, int b); - // Next three assume 16 bit shorts and 32 bit longs - static long LongFromTwoShorts(short a,short b) { - return (a) | ((b) << 16); - } - static short HighShortFromLong(long x) { - return static_cast(x >> 16); - } - static short LowShortFromLong(long x) { - return static_cast(x & 0xffff); - } - static void DebugPrintf(const char *format, ...); - static bool ShowAssertionPopUps(bool assertionPopUps_); - static void Assert(const char *c, const char *file, int line); - static int Clamp(int val, int minVal, int maxVal); -}; - -#ifdef NDEBUG -#define PLATFORM_ASSERT(c) ((void)0) -#else -#define PLATFORM_ASSERT(c) ((c) ? (void)(0) : Platform::Assert(#c, __FILE__, __LINE__)) -#endif - -// Shut up annoying Visual C++ warnings: -#ifdef _MSC_VER -#pragma warning(disable: 4244 4309 4514 4710) -#endif - -#endif diff --git a/MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/include/PropSet.h b/MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/include/PropSet.h deleted file mode 100644 index 563a3291..00000000 --- a/MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/include/PropSet.h +++ /dev/null @@ -1,114 +0,0 @@ -// Scintilla source code edit control -/** @file PropSet.h - ** A Java style properties file module. - **/ -// Copyright 1998-2002 by Neil Hodgson -// The License.txt file describes the conditions under which this software may be distributed. - -#ifndef PROPSET_H -#define PROPSET_H -#include "SString.h" - -bool EqualCaseInsensitive(const char *a, const char *b); - -bool isprefix(const char *target, const char *prefix); - -struct Property { - unsigned int hash; - char *key; - char *val; - Property *next; - Property() : hash(0), key(0), val(0), next(0) {} -}; - -/** - */ -class PropSet { -protected: - enum { hashRoots=31 }; - Property *props[hashRoots]; - Property *enumnext; - int enumhash; - static bool caseSensitiveFilenames; - static unsigned int HashString(const char *s, size_t len) { - unsigned int ret = 0; - while (len--) { - ret <<= 4; - ret ^= *s; - s++; - } - return ret; - } - static bool IncludesVar(const char *value, const char *key); - -public: - PropSet *superPS; - PropSet(); - ~PropSet(); - void Set(const char *key, const char *val, int lenKey=-1, int lenVal=-1); - void Set(const char *keyVal); - void Unset(const char *key, int lenKey=-1); - void SetMultiple(const char *s); - SString Get(const char *key); - SString GetExpanded(const char *key); - SString Expand(const char *withVars, int maxExpands=100); - int GetInt(const char *key, int defaultValue=0); - SString GetWild(const char *keybase, const char *filename); - SString GetNewExpand(const char *keybase, const char *filename=""); - void Clear(); - char *ToString(); // Caller must delete[] the return value - bool GetFirst(char **key, char **val); - bool GetNext(char **key, char **val); - static void SetCaseSensitiveFilenames(bool caseSensitiveFilenames_) { - caseSensitiveFilenames = caseSensitiveFilenames_; - } - -private: - // copy-value semantics not implemented - PropSet(const PropSet ©); - void operator=(const PropSet &assign); -}; - -/** - */ -class WordList { -public: - // Each word contains at least one character - a empty word acts as sentinel at the end. - char **words; - char **wordsNoCase; - char *list; - int len; - bool onlyLineEnds; ///< Delimited by any white space or only line ends - bool sorted; - bool sortedNoCase; - int starts[256]; - WordList(bool onlyLineEnds_ = false) : - words(0), wordsNoCase(0), list(0), len(0), onlyLineEnds(onlyLineEnds_), - sorted(false), sortedNoCase(false) {} - ~WordList() { Clear(); } - operator bool() { return len ? true : false; } - char *operator[](int ind) { return words[ind]; } - void Clear(); - void Set(const char *s); - char *Allocate(int size); - void SetFromAllocated(); - bool InList(const char *s); - bool InListAbbreviated(const char *s, const char marker); - const char *GetNearestWord(const char *wordStart, int searchLen, - bool ignoreCase = false, SString wordCharacters="", int wordIndex = -1); - char *GetNearestWords(const char *wordStart, int searchLen, - bool ignoreCase=false, char otherSeparator='\0', bool exactLen=false); -}; - -inline bool IsAlphabetic(unsigned int ch) { - return ((ch >= 'A') && (ch <= 'Z')) || ((ch >= 'a') && (ch <= 'z')); -} - - -#ifdef _MSC_VER -// Visual C++ doesn't like the private copy idiom for disabling -// the default copy constructor and operator=, but it's fine. -#pragma warning(disable: 4511 4512) -#endif - -#endif diff --git a/MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/include/SString.h b/MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/include/SString.h deleted file mode 100644 index 780d1a11..00000000 --- a/MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/include/SString.h +++ /dev/null @@ -1,280 +0,0 @@ -// SciTE - Scintilla based Text Editor -/** @file SString.h - ** A simple string class. - **/ -// Copyright 1998-2004 by Neil Hodgson -// The License.txt file describes the conditions under which this software may be distributed. - -#ifndef SSTRING_H -#define SSTRING_H - -// These functions are implemented because each platform calls them something different. -int CompareCaseInsensitive(const char *a, const char *b); -int CompareNCaseInsensitive(const char *a, const char *b, size_t len); -bool EqualCaseInsensitive(const char *a, const char *b); - -// Define another string class. -// While it would be 'better' to use std::string, that doubles the executable size. -// An SString may contain embedded nul characters. - -/** - * Base class from which the two other classes (SBuffer & SString) - * are derived. - */ -class SContainer { -public: - /** Type of string lengths (sizes) and positions (indexes). */ - typedef size_t lenpos_t; - /** Out of bounds value indicating that the string argument should be measured. */ - enum { measure_length=0xffffffffU}; - -protected: - char *s; ///< The C string - lenpos_t sSize; ///< The size of the buffer, less 1: ie. the maximum size of the string - - SContainer() : s(0), sSize(0) {} - ~SContainer() { - delete []s; // Suppose it was allocated using StringAllocate - s = 0; - sSize = 0; - } - /** Size of buffer. */ - lenpos_t size() const { - if (s) { - return sSize; - } else { - return 0; - } - } -public: - /** - * Allocate uninitialized memory big enough to fit a string of the given length. - * @return the pointer to the new string - */ - static char *StringAllocate(lenpos_t len); - /** - * Duplicate a buffer/C string. - * Allocate memory of the given size, or big enough to fit the string if length isn't given; - * then copy the given string in the allocated memory. - * @return the pointer to the new string - */ - static char *StringAllocate( - const char *s, ///< The string to duplicate - lenpos_t len=measure_length); ///< The length of memory to allocate. Optional. -}; - - -/** - * @brief A string buffer class. - * - * Main use is to ask an API the length of a string it can provide, - * then to allocate a buffer of the given size, and to provide this buffer - * to the API to put the string. - * This class is intended to be shortlived, to be transformed as SString - * as soon as it holds the string, so it has little members. - * Note: we assume the buffer is filled by the API. If the length can be shorter, - * we should set sLen to strlen(sb.ptr()) in related SString constructor and assignment. - */ -class SBuffer : protected SContainer { -public: - SBuffer(lenpos_t len) { - s = StringAllocate(len); - if (s) { - *s = '\0'; - sSize = len; - } else { - sSize = 0; - } - } -private: - /// Copy constructor - // Here only to be on the safe size, user should avoid returning SBuffer values. - SBuffer(const SBuffer &source) : SContainer() { - s = StringAllocate(source.s, source.sSize); - sSize = (s) ? source.sSize : 0; - } - /// Default assignment operator - // Same here, shouldn't be used - SBuffer &operator=(const SBuffer &source) { - if (this != &source) { - delete []s; - s = StringAllocate(source.s, source.sSize); - sSize = (s) ? source.sSize : 0; - } - return *this; - } -public: - /** Provide direct read/write access to buffer. */ - char *ptr() { - return s; - } - /** Ownership of the buffer have been taken, so release it. */ - void reset() { - s = 0; - sSize = 0; - } - /** Size of buffer. */ - lenpos_t size() const { - return SContainer::size(); - } -}; - - -/** - * @brief A simple string class. - * - * Hold the length of the string for quick operations, - * can have a buffer bigger than the string to avoid too many memory allocations and copies. - * May have embedded zeroes as a result of @a substitute, but relies too heavily on C string - * functions to allow reliable manipulations of these strings, other than simple appends, etc. - */ -class SString : protected SContainer { - lenpos_t sLen; ///< The size of the string in s - lenpos_t sizeGrowth; ///< Minimum growth size when appending strings - enum { sizeGrowthDefault = 64 }; - - bool grow(lenpos_t lenNew); - SString &assign(const char *sOther, lenpos_t sSize_=measure_length); - -public: - SString() : sLen(0), sizeGrowth(sizeGrowthDefault) {} - SString(const SString &source) : SContainer(), sizeGrowth(sizeGrowthDefault) { - s = StringAllocate(source.s, source.sLen); - sSize = sLen = (s) ? source.sLen : 0; - } - SString(const char *s_) : sizeGrowth(sizeGrowthDefault) { - s = StringAllocate(s_); - sSize = sLen = (s) ? strlen(s) : 0; - } - SString(SBuffer &buf) : sizeGrowth(sizeGrowthDefault) { - s = buf.ptr(); - sSize = sLen = buf.size(); - // Consumes the given buffer! - buf.reset(); - } - SString(const char *s_, lenpos_t first, lenpos_t last) : sizeGrowth(sizeGrowthDefault) { - // note: expects the "last" argument to point one beyond the range end (a la STL iterators) - s = StringAllocate(s_ + first, last - first); - sSize = sLen = (s) ? last - first : 0; - } - SString(int i); - SString(double d, int precision); - ~SString() { - sLen = 0; - } - void clear() { - if (s) { - *s = '\0'; - } - sLen = 0; - } - /** Size of buffer. */ - lenpos_t size() const { - return SContainer::size(); - } - /** Size of string in buffer. */ - lenpos_t length() const { - return sLen; - } - /** Read access to a character of the string. */ - char operator[](lenpos_t i) const { - return (s && i < sSize) ? s[i] : '\0'; - } - SString &operator=(const char *source) { - return assign(source); - } - SString &operator=(const SString &source) { - if (this != &source) { - assign(source.s, source.sLen); - } - return *this; - } - bool operator==(const SString &sOther) const; - bool operator!=(const SString &sOther) const { - return !operator==(sOther); - } - bool operator==(const char *sOther) const; - bool operator!=(const char *sOther) const { - return !operator==(sOther); - } - bool contains(char ch) const { - return (s && *s) ? strchr(s, ch) != 0 : false; - } - void setsizegrowth(lenpos_t sizeGrowth_) { - sizeGrowth = sizeGrowth_; - } - const char *c_str() const { - return s ? s : ""; - } - /** Give ownership of buffer to caller which must use delete[] to free buffer. */ - char *detach() { - char *sRet = s; - s = 0; - sSize = 0; - sLen = 0; - return sRet; - } - SString substr(lenpos_t subPos, lenpos_t subLen=measure_length) const; - SString &lowercase(lenpos_t subPos = 0, lenpos_t subLen=measure_length); - SString &uppercase(lenpos_t subPos = 0, lenpos_t subLen=measure_length); - SString &append(const char *sOther, lenpos_t sLenOther=measure_length, char sep = '\0'); - SString &operator+=(const char *sOther) { - return append(sOther, static_cast(measure_length)); - } - SString &operator+=(const SString &sOther) { - return append(sOther.s, sOther.sLen); - } - SString &operator+=(char ch) { - return append(&ch, 1); - } - SString &appendwithseparator(const char *sOther, char sep) { - return append(sOther, strlen(sOther), sep); - } - SString &insert(lenpos_t pos, const char *sOther, lenpos_t sLenOther=measure_length); - - /** - * Remove @a len characters from the @a pos position, included. - * Characters at pos + len and beyond replace characters at pos. - * If @a len is 0, or greater than the length of the string - * starting at @a pos, the string is just truncated at @a pos. - */ - void remove(lenpos_t pos, lenpos_t len); - - SString &change(lenpos_t pos, char ch) { - if (pos < sLen) { // character changed must be in string bounds - *(s + pos) = ch; - } - return *this; - } - /** Read an integral numeric value from the string. */ - int value() const { - return s ? atoi(s) : 0; - } - bool startswith(const char *prefix); - bool endswith(const char *suffix); - int search(const char *sFind, lenpos_t start=0) const; - bool contains(const char *sFind) const { - return search(sFind) >= 0; - } - int substitute(char chFind, char chReplace); - int substitute(const char *sFind, const char *sReplace); - int remove(const char *sFind) { - return substitute(sFind, ""); - } -}; - - -/** - * Duplicate a C string. - * Allocate memory of the given size, or big enough to fit the string if length isn't given; - * then copy the given string in the allocated memory. - * @return the pointer to the new string - */ -inline char *StringDup( - const char *s, ///< The string to duplicate - SContainer::lenpos_t len=SContainer::measure_length) ///< The length of memory to allocate. Optional. -{ - return SContainer::StringAllocate(s, len); -} - -#endif diff --git a/MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/include/SciLexer.h b/MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/include/SciLexer.h deleted file mode 100644 index 9fda1180..00000000 --- a/MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/include/SciLexer.h +++ /dev/null @@ -1,1074 +0,0 @@ -// Scintilla source code edit control -/** @file SciLexer.h - ** Interface to the added lexer functions in the SciLexer version of the edit control. - **/ -// Copyright 1998-2002 by Neil Hodgson -// The License.txt file describes the conditions under which this software may be distributed. - -// Most of this file is automatically generated from the Scintilla.iface interface definition -// file which contains any comments about the definitions. HFacer.py does the generation. - -#ifndef SCILEXER_H -#define SCILEXER_H - -// SciLexer features - not in standard Scintilla - -//++Autogenerated -- start of section automatically generated from Scintilla.iface -#define SCLEX_CONTAINER 0 -#define SCLEX_NULL 1 -#define SCLEX_PYTHON 2 -#define SCLEX_CPP 3 -#define SCLEX_HTML 4 -#define SCLEX_XML 5 -#define SCLEX_PERL 6 -#define SCLEX_SQL 7 -#define SCLEX_VB 8 -#define SCLEX_PROPERTIES 9 -#define SCLEX_ERRORLIST 10 -#define SCLEX_MAKEFILE 11 -#define SCLEX_BATCH 12 -#define SCLEX_XCODE 13 -#define SCLEX_LATEX 14 -#define SCLEX_LUA 15 -#define SCLEX_DIFF 16 -#define SCLEX_CONF 17 -#define SCLEX_PASCAL 18 -#define SCLEX_AVE 19 -#define SCLEX_ADA 20 -#define SCLEX_LISP 21 -#define SCLEX_RUBY 22 -#define SCLEX_EIFFEL 23 -#define SCLEX_EIFFELKW 24 -#define SCLEX_TCL 25 -#define SCLEX_NNCRONTAB 26 -#define SCLEX_BULLANT 27 -#define SCLEX_VBSCRIPT 28 -#define SCLEX_BAAN 31 -#define SCLEX_MATLAB 32 -#define SCLEX_SCRIPTOL 33 -#define SCLEX_ASM 34 -#define SCLEX_CPPNOCASE 35 -#define SCLEX_FORTRAN 36 -#define SCLEX_F77 37 -#define SCLEX_CSS 38 -#define SCLEX_POV 39 -#define SCLEX_LOUT 40 -#define SCLEX_ESCRIPT 41 -#define SCLEX_PS 42 -#define SCLEX_NSIS 43 -#define SCLEX_MMIXAL 44 -#define SCLEX_CLW 45 -#define SCLEX_CLWNOCASE 46 -#define SCLEX_LOT 47 -#define SCLEX_YAML 48 -#define SCLEX_TEX 49 -#define SCLEX_METAPOST 50 -#define SCLEX_POWERBASIC 51 -#define SCLEX_FORTH 52 -#define SCLEX_ERLANG 53 -#define SCLEX_OCTAVE 54 -#define SCLEX_MSSQL 55 -#define SCLEX_VERILOG 56 -#define SCLEX_KIX 57 -#define SCLEX_GUI4CLI 58 -#define SCLEX_SPECMAN 59 -#define SCLEX_AU3 60 -#define SCLEX_APDL 61 -#define SCLEX_BASH 62 -#define SCLEX_ASN1 63 -#define SCLEX_VHDL 64 -#define SCLEX_CAML 65 -#define SCLEX_BLITZBASIC 66 -#define SCLEX_PUREBASIC 67 -#define SCLEX_HASKELL 68 -#define SCLEX_PHPSCRIPT 69 -#define SCLEX_TADS3 70 -#define SCLEX_REBOL 71 -#define SCLEX_SMALLTALK 72 -#define SCLEX_FLAGSHIP 73 -#define SCLEX_CSOUND 74 -#define SCLEX_FREEBASIC 75 -#define SCLEX_INNOSETUP 76 -#define SCLEX_OPAL 77 -#define SCLEX_SPICE 78 -#define SCLEX_AUTOMATIC 1000 -#define SCE_P_DEFAULT 0 -#define SCE_P_COMMENTLINE 1 -#define SCE_P_NUMBER 2 -#define SCE_P_STRING 3 -#define SCE_P_CHARACTER 4 -#define SCE_P_WORD 5 -#define SCE_P_TRIPLE 6 -#define SCE_P_TRIPLEDOUBLE 7 -#define SCE_P_CLASSNAME 8 -#define SCE_P_DEFNAME 9 -#define SCE_P_OPERATOR 10 -#define SCE_P_IDENTIFIER 11 -#define SCE_P_COMMENTBLOCK 12 -#define SCE_P_STRINGEOL 13 -#define SCE_P_WORD2 14 -#define SCE_P_DECORATOR 15 -#define SCE_C_DEFAULT 0 -#define SCE_C_COMMENT 1 -#define SCE_C_COMMENTLINE 2 -#define SCE_C_COMMENTDOC 3 -#define SCE_C_NUMBER 4 -#define SCE_C_WORD 5 -#define SCE_C_STRING 6 -#define SCE_C_CHARACTER 7 -#define SCE_C_UUID 8 -#define SCE_C_PREPROCESSOR 9 -#define SCE_C_OPERATOR 10 -#define SCE_C_IDENTIFIER 11 -#define SCE_C_STRINGEOL 12 -#define SCE_C_VERBATIM 13 -#define SCE_C_REGEX 14 -#define SCE_C_COMMENTLINEDOC 15 -#define SCE_C_WORD2 16 -#define SCE_C_COMMENTDOCKEYWORD 17 -#define SCE_C_COMMENTDOCKEYWORDERROR 18 -#define SCE_C_GLOBALCLASS 19 -#define SCE_TCL_DEFAULT 0 -#define SCE_TCL_COMMENT 1 -#define SCE_TCL_COMMENTLINE 2 -#define SCE_TCL_NUMBER 3 -#define SCE_TCL_WORD_IN_QUOTE 4 -#define SCE_TCL_IN_QUOTE 5 -#define SCE_TCL_OPERATOR 6 -#define SCE_TCL_IDENTIFIER 7 -#define SCE_TCL_SUBSTITUTION 8 -#define SCE_TCL_SUB_BRACE 9 -#define SCE_TCL_MODIFIER 10 -#define SCE_TCL_EXPAND 11 -#define SCE_TCL_WORD 12 -#define SCE_TCL_WORD2 13 -#define SCE_TCL_WORD3 14 -#define SCE_TCL_WORD4 15 -#define SCE_TCL_WORD5 16 -#define SCE_TCL_WORD6 17 -#define SCE_TCL_WORD7 18 -#define SCE_TCL_WORD8 19 -#define SCE_TCL_COMMENT_BOX 20 -#define SCE_TCL_BLOCK_COMMENT 21 -#define SCE_H_DEFAULT 0 -#define SCE_H_TAG 1 -#define SCE_H_TAGUNKNOWN 2 -#define SCE_H_ATTRIBUTE 3 -#define SCE_H_ATTRIBUTEUNKNOWN 4 -#define SCE_H_NUMBER 5 -#define SCE_H_DOUBLESTRING 6 -#define SCE_H_SINGLESTRING 7 -#define SCE_H_OTHER 8 -#define SCE_H_COMMENT 9 -#define SCE_H_ENTITY 10 -#define SCE_H_TAGEND 11 -#define SCE_H_XMLSTART 12 -#define SCE_H_XMLEND 13 -#define SCE_H_SCRIPT 14 -#define SCE_H_ASP 15 -#define SCE_H_ASPAT 16 -#define SCE_H_CDATA 17 -#define SCE_H_QUESTION 18 -#define SCE_H_VALUE 19 -#define SCE_H_XCCOMMENT 20 -#define SCE_H_SGML_DEFAULT 21 -#define SCE_H_SGML_COMMAND 22 -#define SCE_H_SGML_1ST_PARAM 23 -#define SCE_H_SGML_DOUBLESTRING 24 -#define SCE_H_SGML_SIMPLESTRING 25 -#define SCE_H_SGML_ERROR 26 -#define SCE_H_SGML_SPECIAL 27 -#define SCE_H_SGML_ENTITY 28 -#define SCE_H_SGML_COMMENT 29 -#define SCE_H_SGML_1ST_PARAM_COMMENT 30 -#define SCE_H_SGML_BLOCK_DEFAULT 31 -#define SCE_HJ_START 40 -#define SCE_HJ_DEFAULT 41 -#define SCE_HJ_COMMENT 42 -#define SCE_HJ_COMMENTLINE 43 -#define SCE_HJ_COMMENTDOC 44 -#define SCE_HJ_NUMBER 45 -#define SCE_HJ_WORD 46 -#define SCE_HJ_KEYWORD 47 -#define SCE_HJ_DOUBLESTRING 48 -#define SCE_HJ_SINGLESTRING 49 -#define SCE_HJ_SYMBOLS 50 -#define SCE_HJ_STRINGEOL 51 -#define SCE_HJ_REGEX 52 -#define SCE_HJA_START 55 -#define SCE_HJA_DEFAULT 56 -#define SCE_HJA_COMMENT 57 -#define SCE_HJA_COMMENTLINE 58 -#define SCE_HJA_COMMENTDOC 59 -#define SCE_HJA_NUMBER 60 -#define SCE_HJA_WORD 61 -#define SCE_HJA_KEYWORD 62 -#define SCE_HJA_DOUBLESTRING 63 -#define SCE_HJA_SINGLESTRING 64 -#define SCE_HJA_SYMBOLS 65 -#define SCE_HJA_STRINGEOL 66 -#define SCE_HJA_REGEX 67 -#define SCE_HB_START 70 -#define SCE_HB_DEFAULT 71 -#define SCE_HB_COMMENTLINE 72 -#define SCE_HB_NUMBER 73 -#define SCE_HB_WORD 74 -#define SCE_HB_STRING 75 -#define SCE_HB_IDENTIFIER 76 -#define SCE_HB_STRINGEOL 77 -#define SCE_HBA_START 80 -#define SCE_HBA_DEFAULT 81 -#define SCE_HBA_COMMENTLINE 82 -#define SCE_HBA_NUMBER 83 -#define SCE_HBA_WORD 84 -#define SCE_HBA_STRING 85 -#define SCE_HBA_IDENTIFIER 86 -#define SCE_HBA_STRINGEOL 87 -#define SCE_HP_START 90 -#define SCE_HP_DEFAULT 91 -#define SCE_HP_COMMENTLINE 92 -#define SCE_HP_NUMBER 93 -#define SCE_HP_STRING 94 -#define SCE_HP_CHARACTER 95 -#define SCE_HP_WORD 96 -#define SCE_HP_TRIPLE 97 -#define SCE_HP_TRIPLEDOUBLE 98 -#define SCE_HP_CLASSNAME 99 -#define SCE_HP_DEFNAME 100 -#define SCE_HP_OPERATOR 101 -#define SCE_HP_IDENTIFIER 102 -#define SCE_HPHP_COMPLEX_VARIABLE 104 -#define SCE_HPA_START 105 -#define SCE_HPA_DEFAULT 106 -#define SCE_HPA_COMMENTLINE 107 -#define SCE_HPA_NUMBER 108 -#define SCE_HPA_STRING 109 -#define SCE_HPA_CHARACTER 110 -#define SCE_HPA_WORD 111 -#define SCE_HPA_TRIPLE 112 -#define SCE_HPA_TRIPLEDOUBLE 113 -#define SCE_HPA_CLASSNAME 114 -#define SCE_HPA_DEFNAME 115 -#define SCE_HPA_OPERATOR 116 -#define SCE_HPA_IDENTIFIER 117 -#define SCE_HPHP_DEFAULT 118 -#define SCE_HPHP_HSTRING 119 -#define SCE_HPHP_SIMPLESTRING 120 -#define SCE_HPHP_WORD 121 -#define SCE_HPHP_NUMBER 122 -#define SCE_HPHP_VARIABLE 123 -#define SCE_HPHP_COMMENT 124 -#define SCE_HPHP_COMMENTLINE 125 -#define SCE_HPHP_HSTRING_VARIABLE 126 -#define SCE_HPHP_OPERATOR 127 -#define SCE_PL_DEFAULT 0 -#define SCE_PL_ERROR 1 -#define SCE_PL_COMMENTLINE 2 -#define SCE_PL_POD 3 -#define SCE_PL_NUMBER 4 -#define SCE_PL_WORD 5 -#define SCE_PL_STRING 6 -#define SCE_PL_CHARACTER 7 -#define SCE_PL_PUNCTUATION 8 -#define SCE_PL_PREPROCESSOR 9 -#define SCE_PL_OPERATOR 10 -#define SCE_PL_IDENTIFIER 11 -#define SCE_PL_SCALAR 12 -#define SCE_PL_ARRAY 13 -#define SCE_PL_HASH 14 -#define SCE_PL_SYMBOLTABLE 15 -#define SCE_PL_VARIABLE_INDEXER 16 -#define SCE_PL_REGEX 17 -#define SCE_PL_REGSUBST 18 -#define SCE_PL_LONGQUOTE 19 -#define SCE_PL_BACKTICKS 20 -#define SCE_PL_DATASECTION 21 -#define SCE_PL_HERE_DELIM 22 -#define SCE_PL_HERE_Q 23 -#define SCE_PL_HERE_QQ 24 -#define SCE_PL_HERE_QX 25 -#define SCE_PL_STRING_Q 26 -#define SCE_PL_STRING_QQ 27 -#define SCE_PL_STRING_QX 28 -#define SCE_PL_STRING_QR 29 -#define SCE_PL_STRING_QW 30 -#define SCE_PL_POD_VERB 31 -#define SCE_RB_DEFAULT 0 -#define SCE_RB_ERROR 1 -#define SCE_RB_COMMENTLINE 2 -#define SCE_RB_POD 3 -#define SCE_RB_NUMBER 4 -#define SCE_RB_WORD 5 -#define SCE_RB_STRING 6 -#define SCE_RB_CHARACTER 7 -#define SCE_RB_CLASSNAME 8 -#define SCE_RB_DEFNAME 9 -#define SCE_RB_OPERATOR 10 -#define SCE_RB_IDENTIFIER 11 -#define SCE_RB_REGEX 12 -#define SCE_RB_GLOBAL 13 -#define SCE_RB_SYMBOL 14 -#define SCE_RB_MODULE_NAME 15 -#define SCE_RB_INSTANCE_VAR 16 -#define SCE_RB_CLASS_VAR 17 -#define SCE_RB_BACKTICKS 18 -#define SCE_RB_DATASECTION 19 -#define SCE_RB_HERE_DELIM 20 -#define SCE_RB_HERE_Q 21 -#define SCE_RB_HERE_QQ 22 -#define SCE_RB_HERE_QX 23 -#define SCE_RB_STRING_Q 24 -#define SCE_RB_STRING_QQ 25 -#define SCE_RB_STRING_QX 26 -#define SCE_RB_STRING_QR 27 -#define SCE_RB_STRING_QW 28 -#define SCE_RB_WORD_DEMOTED 29 -#define SCE_RB_STDIN 30 -#define SCE_RB_STDOUT 31 -#define SCE_RB_STDERR 40 -#define SCE_RB_UPPER_BOUND 41 -#define SCE_B_DEFAULT 0 -#define SCE_B_COMMENT 1 -#define SCE_B_NUMBER 2 -#define SCE_B_KEYWORD 3 -#define SCE_B_STRING 4 -#define SCE_B_PREPROCESSOR 5 -#define SCE_B_OPERATOR 6 -#define SCE_B_IDENTIFIER 7 -#define SCE_B_DATE 8 -#define SCE_B_STRINGEOL 9 -#define SCE_B_KEYWORD2 10 -#define SCE_B_KEYWORD3 11 -#define SCE_B_KEYWORD4 12 -#define SCE_B_CONSTANT 13 -#define SCE_B_ASM 14 -#define SCE_B_LABEL 15 -#define SCE_B_ERROR 16 -#define SCE_B_HEXNUMBER 17 -#define SCE_B_BINNUMBER 18 -#define SCE_PROPS_DEFAULT 0 -#define SCE_PROPS_COMMENT 1 -#define SCE_PROPS_SECTION 2 -#define SCE_PROPS_ASSIGNMENT 3 -#define SCE_PROPS_DEFVAL 4 -#define SCE_PROPS_KEY 5 -#define SCE_L_DEFAULT 0 -#define SCE_L_COMMAND 1 -#define SCE_L_TAG 2 -#define SCE_L_MATH 3 -#define SCE_L_COMMENT 4 -#define SCE_LUA_DEFAULT 0 -#define SCE_LUA_COMMENT 1 -#define SCE_LUA_COMMENTLINE 2 -#define SCE_LUA_COMMENTDOC 3 -#define SCE_LUA_NUMBER 4 -#define SCE_LUA_WORD 5 -#define SCE_LUA_STRING 6 -#define SCE_LUA_CHARACTER 7 -#define SCE_LUA_LITERALSTRING 8 -#define SCE_LUA_PREPROCESSOR 9 -#define SCE_LUA_OPERATOR 10 -#define SCE_LUA_IDENTIFIER 11 -#define SCE_LUA_STRINGEOL 12 -#define SCE_LUA_WORD2 13 -#define SCE_LUA_WORD3 14 -#define SCE_LUA_WORD4 15 -#define SCE_LUA_WORD5 16 -#define SCE_LUA_WORD6 17 -#define SCE_LUA_WORD7 18 -#define SCE_LUA_WORD8 19 -#define SCE_ERR_DEFAULT 0 -#define SCE_ERR_PYTHON 1 -#define SCE_ERR_GCC 2 -#define SCE_ERR_MS 3 -#define SCE_ERR_CMD 4 -#define SCE_ERR_BORLAND 5 -#define SCE_ERR_PERL 6 -#define SCE_ERR_NET 7 -#define SCE_ERR_LUA 8 -#define SCE_ERR_CTAG 9 -#define SCE_ERR_DIFF_CHANGED 10 -#define SCE_ERR_DIFF_ADDITION 11 -#define SCE_ERR_DIFF_DELETION 12 -#define SCE_ERR_DIFF_MESSAGE 13 -#define SCE_ERR_PHP 14 -#define SCE_ERR_ELF 15 -#define SCE_ERR_IFC 16 -#define SCE_ERR_IFORT 17 -#define SCE_ERR_ABSF 18 -#define SCE_ERR_TIDY 19 -#define SCE_ERR_JAVA_STACK 20 -#define SCE_BAT_DEFAULT 0 -#define SCE_BAT_COMMENT 1 -#define SCE_BAT_WORD 2 -#define SCE_BAT_LABEL 3 -#define SCE_BAT_HIDE 4 -#define SCE_BAT_COMMAND 5 -#define SCE_BAT_IDENTIFIER 6 -#define SCE_BAT_OPERATOR 7 -#define SCE_MAKE_DEFAULT 0 -#define SCE_MAKE_COMMENT 1 -#define SCE_MAKE_PREPROCESSOR 2 -#define SCE_MAKE_IDENTIFIER 3 -#define SCE_MAKE_OPERATOR 4 -#define SCE_MAKE_TARGET 5 -#define SCE_MAKE_IDEOL 9 -#define SCE_DIFF_DEFAULT 0 -#define SCE_DIFF_COMMENT 1 -#define SCE_DIFF_COMMAND 2 -#define SCE_DIFF_HEADER 3 -#define SCE_DIFF_POSITION 4 -#define SCE_DIFF_DELETED 5 -#define SCE_DIFF_ADDED 6 -#define SCE_CONF_DEFAULT 0 -#define SCE_CONF_COMMENT 1 -#define SCE_CONF_NUMBER 2 -#define SCE_CONF_IDENTIFIER 3 -#define SCE_CONF_EXTENSION 4 -#define SCE_CONF_PARAMETER 5 -#define SCE_CONF_STRING 6 -#define SCE_CONF_OPERATOR 7 -#define SCE_CONF_IP 8 -#define SCE_CONF_DIRECTIVE 9 -#define SCE_AVE_DEFAULT 0 -#define SCE_AVE_COMMENT 1 -#define SCE_AVE_NUMBER 2 -#define SCE_AVE_WORD 3 -#define SCE_AVE_STRING 6 -#define SCE_AVE_ENUM 7 -#define SCE_AVE_STRINGEOL 8 -#define SCE_AVE_IDENTIFIER 9 -#define SCE_AVE_OPERATOR 10 -#define SCE_AVE_WORD1 11 -#define SCE_AVE_WORD2 12 -#define SCE_AVE_WORD3 13 -#define SCE_AVE_WORD4 14 -#define SCE_AVE_WORD5 15 -#define SCE_AVE_WORD6 16 -#define SCE_ADA_DEFAULT 0 -#define SCE_ADA_WORD 1 -#define SCE_ADA_IDENTIFIER 2 -#define SCE_ADA_NUMBER 3 -#define SCE_ADA_DELIMITER 4 -#define SCE_ADA_CHARACTER 5 -#define SCE_ADA_CHARACTEREOL 6 -#define SCE_ADA_STRING 7 -#define SCE_ADA_STRINGEOL 8 -#define SCE_ADA_LABEL 9 -#define SCE_ADA_COMMENTLINE 10 -#define SCE_ADA_ILLEGAL 11 -#define SCE_BAAN_DEFAULT 0 -#define SCE_BAAN_COMMENT 1 -#define SCE_BAAN_COMMENTDOC 2 -#define SCE_BAAN_NUMBER 3 -#define SCE_BAAN_WORD 4 -#define SCE_BAAN_STRING 5 -#define SCE_BAAN_PREPROCESSOR 6 -#define SCE_BAAN_OPERATOR 7 -#define SCE_BAAN_IDENTIFIER 8 -#define SCE_BAAN_STRINGEOL 9 -#define SCE_BAAN_WORD2 10 -#define SCE_LISP_DEFAULT 0 -#define SCE_LISP_COMMENT 1 -#define SCE_LISP_NUMBER 2 -#define SCE_LISP_KEYWORD 3 -#define SCE_LISP_KEYWORD_KW 4 -#define SCE_LISP_SYMBOL 5 -#define SCE_LISP_STRING 6 -#define SCE_LISP_STRINGEOL 8 -#define SCE_LISP_IDENTIFIER 9 -#define SCE_LISP_OPERATOR 10 -#define SCE_LISP_SPECIAL 11 -#define SCE_LISP_MULTI_COMMENT 12 -#define SCE_EIFFEL_DEFAULT 0 -#define SCE_EIFFEL_COMMENTLINE 1 -#define SCE_EIFFEL_NUMBER 2 -#define SCE_EIFFEL_WORD 3 -#define SCE_EIFFEL_STRING 4 -#define SCE_EIFFEL_CHARACTER 5 -#define SCE_EIFFEL_OPERATOR 6 -#define SCE_EIFFEL_IDENTIFIER 7 -#define SCE_EIFFEL_STRINGEOL 8 -#define SCE_NNCRONTAB_DEFAULT 0 -#define SCE_NNCRONTAB_COMMENT 1 -#define SCE_NNCRONTAB_TASK 2 -#define SCE_NNCRONTAB_SECTION 3 -#define SCE_NNCRONTAB_KEYWORD 4 -#define SCE_NNCRONTAB_MODIFIER 5 -#define SCE_NNCRONTAB_ASTERISK 6 -#define SCE_NNCRONTAB_NUMBER 7 -#define SCE_NNCRONTAB_STRING 8 -#define SCE_NNCRONTAB_ENVIRONMENT 9 -#define SCE_NNCRONTAB_IDENTIFIER 10 -#define SCE_FORTH_DEFAULT 0 -#define SCE_FORTH_COMMENT 1 -#define SCE_FORTH_COMMENT_ML 2 -#define SCE_FORTH_IDENTIFIER 3 -#define SCE_FORTH_CONTROL 4 -#define SCE_FORTH_KEYWORD 5 -#define SCE_FORTH_DEFWORD 6 -#define SCE_FORTH_PREWORD1 7 -#define SCE_FORTH_PREWORD2 8 -#define SCE_FORTH_NUMBER 9 -#define SCE_FORTH_STRING 10 -#define SCE_FORTH_LOCALE 11 -#define SCE_MATLAB_DEFAULT 0 -#define SCE_MATLAB_COMMENT 1 -#define SCE_MATLAB_COMMAND 2 -#define SCE_MATLAB_NUMBER 3 -#define SCE_MATLAB_KEYWORD 4 -#define SCE_MATLAB_STRING 5 -#define SCE_MATLAB_OPERATOR 6 -#define SCE_MATLAB_IDENTIFIER 7 -#define SCE_MATLAB_DOUBLEQUOTESTRING 8 -#define SCE_SCRIPTOL_DEFAULT 0 -#define SCE_SCRIPTOL_WHITE 1 -#define SCE_SCRIPTOL_COMMENTLINE 2 -#define SCE_SCRIPTOL_PERSISTENT 3 -#define SCE_SCRIPTOL_CSTYLE 4 -#define SCE_SCRIPTOL_COMMENTBLOCK 5 -#define SCE_SCRIPTOL_NUMBER 6 -#define SCE_SCRIPTOL_STRING 7 -#define SCE_SCRIPTOL_CHARACTER 8 -#define SCE_SCRIPTOL_STRINGEOL 9 -#define SCE_SCRIPTOL_KEYWORD 10 -#define SCE_SCRIPTOL_OPERATOR 11 -#define SCE_SCRIPTOL_IDENTIFIER 12 -#define SCE_SCRIPTOL_TRIPLE 13 -#define SCE_SCRIPTOL_CLASSNAME 14 -#define SCE_SCRIPTOL_PREPROCESSOR 15 -#define SCE_ASM_DEFAULT 0 -#define SCE_ASM_COMMENT 1 -#define SCE_ASM_NUMBER 2 -#define SCE_ASM_STRING 3 -#define SCE_ASM_OPERATOR 4 -#define SCE_ASM_IDENTIFIER 5 -#define SCE_ASM_CPUINSTRUCTION 6 -#define SCE_ASM_MATHINSTRUCTION 7 -#define SCE_ASM_REGISTER 8 -#define SCE_ASM_DIRECTIVE 9 -#define SCE_ASM_DIRECTIVEOPERAND 10 -#define SCE_ASM_COMMENTBLOCK 11 -#define SCE_ASM_CHARACTER 12 -#define SCE_ASM_STRINGEOL 13 -#define SCE_ASM_EXTINSTRUCTION 14 -#define SCE_F_DEFAULT 0 -#define SCE_F_COMMENT 1 -#define SCE_F_NUMBER 2 -#define SCE_F_STRING1 3 -#define SCE_F_STRING2 4 -#define SCE_F_STRINGEOL 5 -#define SCE_F_OPERATOR 6 -#define SCE_F_IDENTIFIER 7 -#define SCE_F_WORD 8 -#define SCE_F_WORD2 9 -#define SCE_F_WORD3 10 -#define SCE_F_PREPROCESSOR 11 -#define SCE_F_OPERATOR2 12 -#define SCE_F_LABEL 13 -#define SCE_F_CONTINUATION 14 -#define SCE_CSS_DEFAULT 0 -#define SCE_CSS_TAG 1 -#define SCE_CSS_CLASS 2 -#define SCE_CSS_PSEUDOCLASS 3 -#define SCE_CSS_UNKNOWN_PSEUDOCLASS 4 -#define SCE_CSS_OPERATOR 5 -#define SCE_CSS_IDENTIFIER 6 -#define SCE_CSS_UNKNOWN_IDENTIFIER 7 -#define SCE_CSS_VALUE 8 -#define SCE_CSS_COMMENT 9 -#define SCE_CSS_ID 10 -#define SCE_CSS_IMPORTANT 11 -#define SCE_CSS_DIRECTIVE 12 -#define SCE_CSS_DOUBLESTRING 13 -#define SCE_CSS_SINGLESTRING 14 -#define SCE_CSS_IDENTIFIER2 15 -#define SCE_CSS_ATTRIBUTE 16 -#define SCE_POV_DEFAULT 0 -#define SCE_POV_COMMENT 1 -#define SCE_POV_COMMENTLINE 2 -#define SCE_POV_NUMBER 3 -#define SCE_POV_OPERATOR 4 -#define SCE_POV_IDENTIFIER 5 -#define SCE_POV_STRING 6 -#define SCE_POV_STRINGEOL 7 -#define SCE_POV_DIRECTIVE 8 -#define SCE_POV_BADDIRECTIVE 9 -#define SCE_POV_WORD2 10 -#define SCE_POV_WORD3 11 -#define SCE_POV_WORD4 12 -#define SCE_POV_WORD5 13 -#define SCE_POV_WORD6 14 -#define SCE_POV_WORD7 15 -#define SCE_POV_WORD8 16 -#define SCE_LOUT_DEFAULT 0 -#define SCE_LOUT_COMMENT 1 -#define SCE_LOUT_NUMBER 2 -#define SCE_LOUT_WORD 3 -#define SCE_LOUT_WORD2 4 -#define SCE_LOUT_WORD3 5 -#define SCE_LOUT_WORD4 6 -#define SCE_LOUT_STRING 7 -#define SCE_LOUT_OPERATOR 8 -#define SCE_LOUT_IDENTIFIER 9 -#define SCE_LOUT_STRINGEOL 10 -#define SCE_ESCRIPT_DEFAULT 0 -#define SCE_ESCRIPT_COMMENT 1 -#define SCE_ESCRIPT_COMMENTLINE 2 -#define SCE_ESCRIPT_COMMENTDOC 3 -#define SCE_ESCRIPT_NUMBER 4 -#define SCE_ESCRIPT_WORD 5 -#define SCE_ESCRIPT_STRING 6 -#define SCE_ESCRIPT_OPERATOR 7 -#define SCE_ESCRIPT_IDENTIFIER 8 -#define SCE_ESCRIPT_BRACE 9 -#define SCE_ESCRIPT_WORD2 10 -#define SCE_ESCRIPT_WORD3 11 -#define SCE_PS_DEFAULT 0 -#define SCE_PS_COMMENT 1 -#define SCE_PS_DSC_COMMENT 2 -#define SCE_PS_DSC_VALUE 3 -#define SCE_PS_NUMBER 4 -#define SCE_PS_NAME 5 -#define SCE_PS_KEYWORD 6 -#define SCE_PS_LITERAL 7 -#define SCE_PS_IMMEVAL 8 -#define SCE_PS_PAREN_ARRAY 9 -#define SCE_PS_PAREN_DICT 10 -#define SCE_PS_PAREN_PROC 11 -#define SCE_PS_TEXT 12 -#define SCE_PS_HEXSTRING 13 -#define SCE_PS_BASE85STRING 14 -#define SCE_PS_BADSTRINGCHAR 15 -#define SCE_NSIS_DEFAULT 0 -#define SCE_NSIS_COMMENT 1 -#define SCE_NSIS_STRINGDQ 2 -#define SCE_NSIS_STRINGLQ 3 -#define SCE_NSIS_STRINGRQ 4 -#define SCE_NSIS_FUNCTION 5 -#define SCE_NSIS_VARIABLE 6 -#define SCE_NSIS_LABEL 7 -#define SCE_NSIS_USERDEFINED 8 -#define SCE_NSIS_SECTIONDEF 9 -#define SCE_NSIS_SUBSECTIONDEF 10 -#define SCE_NSIS_IFDEFINEDEF 11 -#define SCE_NSIS_MACRODEF 12 -#define SCE_NSIS_STRINGVAR 13 -#define SCE_NSIS_NUMBER 14 -#define SCE_NSIS_SECTIONGROUP 15 -#define SCE_NSIS_PAGEEX 16 -#define SCE_NSIS_FUNCTIONDEF 17 -#define SCE_NSIS_COMMENTBOX 18 -#define SCE_MMIXAL_LEADWS 0 -#define SCE_MMIXAL_COMMENT 1 -#define SCE_MMIXAL_LABEL 2 -#define SCE_MMIXAL_OPCODE 3 -#define SCE_MMIXAL_OPCODE_PRE 4 -#define SCE_MMIXAL_OPCODE_VALID 5 -#define SCE_MMIXAL_OPCODE_UNKNOWN 6 -#define SCE_MMIXAL_OPCODE_POST 7 -#define SCE_MMIXAL_OPERANDS 8 -#define SCE_MMIXAL_NUMBER 9 -#define SCE_MMIXAL_REF 10 -#define SCE_MMIXAL_CHAR 11 -#define SCE_MMIXAL_STRING 12 -#define SCE_MMIXAL_REGISTER 13 -#define SCE_MMIXAL_HEX 14 -#define SCE_MMIXAL_OPERATOR 15 -#define SCE_MMIXAL_SYMBOL 16 -#define SCE_MMIXAL_INCLUDE 17 -#define SCE_CLW_DEFAULT 0 -#define SCE_CLW_LABEL 1 -#define SCE_CLW_COMMENT 2 -#define SCE_CLW_STRING 3 -#define SCE_CLW_USER_IDENTIFIER 4 -#define SCE_CLW_INTEGER_CONSTANT 5 -#define SCE_CLW_REAL_CONSTANT 6 -#define SCE_CLW_PICTURE_STRING 7 -#define SCE_CLW_KEYWORD 8 -#define SCE_CLW_COMPILER_DIRECTIVE 9 -#define SCE_CLW_RUNTIME_EXPRESSIONS 10 -#define SCE_CLW_BUILTIN_PROCEDURES_FUNCTION 11 -#define SCE_CLW_STRUCTURE_DATA_TYPE 12 -#define SCE_CLW_ATTRIBUTE 13 -#define SCE_CLW_STANDARD_EQUATE 14 -#define SCE_CLW_ERROR 15 -#define SCE_CLW_DEPRECATED 16 -#define SCE_LOT_DEFAULT 0 -#define SCE_LOT_HEADER 1 -#define SCE_LOT_BREAK 2 -#define SCE_LOT_SET 3 -#define SCE_LOT_PASS 4 -#define SCE_LOT_FAIL 5 -#define SCE_LOT_ABORT 6 -#define SCE_YAML_DEFAULT 0 -#define SCE_YAML_COMMENT 1 -#define SCE_YAML_IDENTIFIER 2 -#define SCE_YAML_KEYWORD 3 -#define SCE_YAML_NUMBER 4 -#define SCE_YAML_REFERENCE 5 -#define SCE_YAML_DOCUMENT 6 -#define SCE_YAML_TEXT 7 -#define SCE_YAML_ERROR 8 -#define SCE_TEX_DEFAULT 0 -#define SCE_TEX_SPECIAL 1 -#define SCE_TEX_GROUP 2 -#define SCE_TEX_SYMBOL 3 -#define SCE_TEX_COMMAND 4 -#define SCE_TEX_TEXT 5 -#define SCE_METAPOST_DEFAULT 0 -#define SCE_METAPOST_SPECIAL 1 -#define SCE_METAPOST_GROUP 2 -#define SCE_METAPOST_SYMBOL 3 -#define SCE_METAPOST_COMMAND 4 -#define SCE_METAPOST_TEXT 5 -#define SCE_METAPOST_EXTRA 6 -#define SCE_ERLANG_DEFAULT 0 -#define SCE_ERLANG_COMMENT 1 -#define SCE_ERLANG_VARIABLE 2 -#define SCE_ERLANG_NUMBER 3 -#define SCE_ERLANG_KEYWORD 4 -#define SCE_ERLANG_STRING 5 -#define SCE_ERLANG_OPERATOR 6 -#define SCE_ERLANG_ATOM 7 -#define SCE_ERLANG_FUNCTION_NAME 8 -#define SCE_ERLANG_CHARACTER 9 -#define SCE_ERLANG_MACRO 10 -#define SCE_ERLANG_RECORD 11 -#define SCE_ERLANG_SEPARATOR 12 -#define SCE_ERLANG_NODE_NAME 13 -#define SCE_ERLANG_UNKNOWN 31 -#define SCE_MSSQL_DEFAULT 0 -#define SCE_MSSQL_COMMENT 1 -#define SCE_MSSQL_LINE_COMMENT 2 -#define SCE_MSSQL_NUMBER 3 -#define SCE_MSSQL_STRING 4 -#define SCE_MSSQL_OPERATOR 5 -#define SCE_MSSQL_IDENTIFIER 6 -#define SCE_MSSQL_VARIABLE 7 -#define SCE_MSSQL_COLUMN_NAME 8 -#define SCE_MSSQL_STATEMENT 9 -#define SCE_MSSQL_DATATYPE 10 -#define SCE_MSSQL_SYSTABLE 11 -#define SCE_MSSQL_GLOBAL_VARIABLE 12 -#define SCE_MSSQL_FUNCTION 13 -#define SCE_MSSQL_STORED_PROCEDURE 14 -#define SCE_MSSQL_DEFAULT_PREF_DATATYPE 15 -#define SCE_MSSQL_COLUMN_NAME_2 16 -#define SCE_V_DEFAULT 0 -#define SCE_V_COMMENT 1 -#define SCE_V_COMMENTLINE 2 -#define SCE_V_COMMENTLINEBANG 3 -#define SCE_V_NUMBER 4 -#define SCE_V_WORD 5 -#define SCE_V_STRING 6 -#define SCE_V_WORD2 7 -#define SCE_V_WORD3 8 -#define SCE_V_PREPROCESSOR 9 -#define SCE_V_OPERATOR 10 -#define SCE_V_IDENTIFIER 11 -#define SCE_V_STRINGEOL 12 -#define SCE_V_USER 19 -#define SCE_KIX_DEFAULT 0 -#define SCE_KIX_COMMENT 1 -#define SCE_KIX_STRING1 2 -#define SCE_KIX_STRING2 3 -#define SCE_KIX_NUMBER 4 -#define SCE_KIX_VAR 5 -#define SCE_KIX_MACRO 6 -#define SCE_KIX_KEYWORD 7 -#define SCE_KIX_FUNCTIONS 8 -#define SCE_KIX_OPERATOR 9 -#define SCE_KIX_IDENTIFIER 31 -#define SCE_GC_DEFAULT 0 -#define SCE_GC_COMMENTLINE 1 -#define SCE_GC_COMMENTBLOCK 2 -#define SCE_GC_GLOBAL 3 -#define SCE_GC_EVENT 4 -#define SCE_GC_ATTRIBUTE 5 -#define SCE_GC_CONTROL 6 -#define SCE_GC_COMMAND 7 -#define SCE_GC_STRING 8 -#define SCE_GC_OPERATOR 9 -#define SCE_SN_DEFAULT 0 -#define SCE_SN_CODE 1 -#define SCE_SN_COMMENTLINE 2 -#define SCE_SN_COMMENTLINEBANG 3 -#define SCE_SN_NUMBER 4 -#define SCE_SN_WORD 5 -#define SCE_SN_STRING 6 -#define SCE_SN_WORD2 7 -#define SCE_SN_WORD3 8 -#define SCE_SN_PREPROCESSOR 9 -#define SCE_SN_OPERATOR 10 -#define SCE_SN_IDENTIFIER 11 -#define SCE_SN_STRINGEOL 12 -#define SCE_SN_REGEXTAG 13 -#define SCE_SN_SIGNAL 14 -#define SCE_SN_USER 19 -#define SCE_AU3_DEFAULT 0 -#define SCE_AU3_COMMENT 1 -#define SCE_AU3_COMMENTBLOCK 2 -#define SCE_AU3_NUMBER 3 -#define SCE_AU3_FUNCTION 4 -#define SCE_AU3_KEYWORD 5 -#define SCE_AU3_MACRO 6 -#define SCE_AU3_STRING 7 -#define SCE_AU3_OPERATOR 8 -#define SCE_AU3_VARIABLE 9 -#define SCE_AU3_SENT 10 -#define SCE_AU3_PREPROCESSOR 11 -#define SCE_AU3_SPECIAL 12 -#define SCE_AU3_EXPAND 13 -#define SCE_AU3_COMOBJ 14 -#define SCE_AU3_UDF 15 -#define SCE_APDL_DEFAULT 0 -#define SCE_APDL_COMMENT 1 -#define SCE_APDL_COMMENTBLOCK 2 -#define SCE_APDL_NUMBER 3 -#define SCE_APDL_STRING 4 -#define SCE_APDL_OPERATOR 5 -#define SCE_APDL_WORD 6 -#define SCE_APDL_PROCESSOR 7 -#define SCE_APDL_COMMAND 8 -#define SCE_APDL_SLASHCOMMAND 9 -#define SCE_APDL_STARCOMMAND 10 -#define SCE_APDL_ARGUMENT 11 -#define SCE_APDL_FUNCTION 12 -#define SCE_SH_DEFAULT 0 -#define SCE_SH_ERROR 1 -#define SCE_SH_COMMENTLINE 2 -#define SCE_SH_NUMBER 3 -#define SCE_SH_WORD 4 -#define SCE_SH_STRING 5 -#define SCE_SH_CHARACTER 6 -#define SCE_SH_OPERATOR 7 -#define SCE_SH_IDENTIFIER 8 -#define SCE_SH_SCALAR 9 -#define SCE_SH_PARAM 10 -#define SCE_SH_BACKTICKS 11 -#define SCE_SH_HERE_DELIM 12 -#define SCE_SH_HERE_Q 13 -#define SCE_ASN1_DEFAULT 0 -#define SCE_ASN1_COMMENT 1 -#define SCE_ASN1_IDENTIFIER 2 -#define SCE_ASN1_STRING 3 -#define SCE_ASN1_OID 4 -#define SCE_ASN1_SCALAR 5 -#define SCE_ASN1_KEYWORD 6 -#define SCE_ASN1_ATTRIBUTE 7 -#define SCE_ASN1_DESCRIPTOR 8 -#define SCE_ASN1_TYPE 9 -#define SCE_ASN1_OPERATOR 10 -#define SCE_VHDL_DEFAULT 0 -#define SCE_VHDL_COMMENT 1 -#define SCE_VHDL_COMMENTLINEBANG 2 -#define SCE_VHDL_NUMBER 3 -#define SCE_VHDL_STRING 4 -#define SCE_VHDL_OPERATOR 5 -#define SCE_VHDL_IDENTIFIER 6 -#define SCE_VHDL_STRINGEOL 7 -#define SCE_VHDL_KEYWORD 8 -#define SCE_VHDL_STDOPERATOR 9 -#define SCE_VHDL_ATTRIBUTE 10 -#define SCE_VHDL_STDFUNCTION 11 -#define SCE_VHDL_STDPACKAGE 12 -#define SCE_VHDL_STDTYPE 13 -#define SCE_VHDL_USERWORD 14 -#define SCE_CAML_DEFAULT 0 -#define SCE_CAML_IDENTIFIER 1 -#define SCE_CAML_TAGNAME 2 -#define SCE_CAML_KEYWORD 3 -#define SCE_CAML_KEYWORD2 4 -#define SCE_CAML_KEYWORD3 5 -#define SCE_CAML_LINENUM 6 -#define SCE_CAML_OPERATOR 7 -#define SCE_CAML_NUMBER 8 -#define SCE_CAML_CHAR 9 -#define SCE_CAML_STRING 11 -#define SCE_CAML_COMMENT 12 -#define SCE_CAML_COMMENT1 13 -#define SCE_CAML_COMMENT2 14 -#define SCE_CAML_COMMENT3 15 -#define SCE_HA_DEFAULT 0 -#define SCE_HA_IDENTIFIER 1 -#define SCE_HA_KEYWORD 2 -#define SCE_HA_NUMBER 3 -#define SCE_HA_STRING 4 -#define SCE_HA_CHARACTER 5 -#define SCE_HA_CLASS 6 -#define SCE_HA_MODULE 7 -#define SCE_HA_CAPITAL 8 -#define SCE_HA_DATA 9 -#define SCE_HA_IMPORT 10 -#define SCE_HA_OPERATOR 11 -#define SCE_HA_INSTANCE 12 -#define SCE_HA_COMMENTLINE 13 -#define SCE_HA_COMMENTBLOCK 14 -#define SCE_HA_COMMENTBLOCK2 15 -#define SCE_HA_COMMENTBLOCK3 16 -#define SCE_T3_DEFAULT 0 -#define SCE_T3_X_DEFAULT 1 -#define SCE_T3_PREPROCESSOR 2 -#define SCE_T3_BLOCK_COMMENT 3 -#define SCE_T3_LINE_COMMENT 4 -#define SCE_T3_OPERATOR 5 -#define SCE_T3_KEYWORD 6 -#define SCE_T3_NUMBER 7 -#define SCE_T3_IDENTIFIER 8 -#define SCE_T3_S_STRING 9 -#define SCE_T3_D_STRING 10 -#define SCE_T3_X_STRING 11 -#define SCE_T3_LIB_DIRECTIVE 12 -#define SCE_T3_MSG_PARAM 13 -#define SCE_T3_HTML_TAG 14 -#define SCE_T3_HTML_DEFAULT 15 -#define SCE_T3_HTML_STRING 16 -#define SCE_T3_USER1 17 -#define SCE_T3_USER2 18 -#define SCE_T3_USER3 19 -#define SCE_REBOL_DEFAULT 0 -#define SCE_REBOL_COMMENTLINE 1 -#define SCE_REBOL_COMMENTBLOCK 2 -#define SCE_REBOL_PREFACE 3 -#define SCE_REBOL_OPERATOR 4 -#define SCE_REBOL_CHARACTER 5 -#define SCE_REBOL_QUOTEDSTRING 6 -#define SCE_REBOL_BRACEDSTRING 7 -#define SCE_REBOL_NUMBER 8 -#define SCE_REBOL_PAIR 9 -#define SCE_REBOL_TUPLE 10 -#define SCE_REBOL_BINARY 11 -#define SCE_REBOL_MONEY 12 -#define SCE_REBOL_ISSUE 13 -#define SCE_REBOL_TAG 14 -#define SCE_REBOL_FILE 15 -#define SCE_REBOL_EMAIL 16 -#define SCE_REBOL_URL 17 -#define SCE_REBOL_DATE 18 -#define SCE_REBOL_TIME 19 -#define SCE_REBOL_IDENTIFIER 20 -#define SCE_REBOL_WORD 21 -#define SCE_REBOL_WORD2 22 -#define SCE_REBOL_WORD3 23 -#define SCE_REBOL_WORD4 24 -#define SCE_REBOL_WORD5 25 -#define SCE_REBOL_WORD6 26 -#define SCE_REBOL_WORD7 27 -#define SCE_REBOL_WORD8 28 -#define SCE_SQL_DEFAULT 0 -#define SCE_SQL_COMMENT 1 -#define SCE_SQL_COMMENTLINE 2 -#define SCE_SQL_COMMENTDOC 3 -#define SCE_SQL_NUMBER 4 -#define SCE_SQL_WORD 5 -#define SCE_SQL_STRING 6 -#define SCE_SQL_CHARACTER 7 -#define SCE_SQL_SQLPLUS 8 -#define SCE_SQL_SQLPLUS_PROMPT 9 -#define SCE_SQL_OPERATOR 10 -#define SCE_SQL_IDENTIFIER 11 -#define SCE_SQL_SQLPLUS_COMMENT 13 -#define SCE_SQL_COMMENTLINEDOC 15 -#define SCE_SQL_WORD2 16 -#define SCE_SQL_COMMENTDOCKEYWORD 17 -#define SCE_SQL_COMMENTDOCKEYWORDERROR 18 -#define SCE_SQL_USER1 19 -#define SCE_SQL_USER2 20 -#define SCE_SQL_USER3 21 -#define SCE_SQL_USER4 22 -#define SCE_SQL_QUOTEDIDENTIFIER 23 -#define SCE_ST_DEFAULT 0 -#define SCE_ST_STRING 1 -#define SCE_ST_NUMBER 2 -#define SCE_ST_COMMENT 3 -#define SCE_ST_SYMBOL 4 -#define SCE_ST_BINARY 5 -#define SCE_ST_BOOL 6 -#define SCE_ST_SELF 7 -#define SCE_ST_SUPER 8 -#define SCE_ST_NIL 9 -#define SCE_ST_GLOBAL 10 -#define SCE_ST_RETURN 11 -#define SCE_ST_SPECIAL 12 -#define SCE_ST_KWSEND 13 -#define SCE_ST_ASSIGN 14 -#define SCE_ST_CHARACTER 15 -#define SCE_ST_SPEC_SEL 16 -#define SCE_FS_DEFAULT 0 -#define SCE_FS_COMMENT 1 -#define SCE_FS_COMMENTLINE 2 -#define SCE_FS_COMMENTDOC 3 -#define SCE_FS_COMMENTLINEDOC 4 -#define SCE_FS_COMMENTDOCKEYWORD 5 -#define SCE_FS_COMMENTDOCKEYWORDERROR 6 -#define SCE_FS_KEYWORD 7 -#define SCE_FS_KEYWORD2 8 -#define SCE_FS_KEYWORD3 9 -#define SCE_FS_KEYWORD4 10 -#define SCE_FS_NUMBER 11 -#define SCE_FS_STRING 12 -#define SCE_FS_PREPROCESSOR 13 -#define SCE_FS_OPERATOR 14 -#define SCE_FS_IDENTIFIER 15 -#define SCE_FS_DATE 16 -#define SCE_FS_STRINGEOL 17 -#define SCE_FS_CONSTANT 18 -#define SCE_FS_ASM 19 -#define SCE_FS_LABEL 20 -#define SCE_FS_ERROR 21 -#define SCE_FS_HEXNUMBER 22 -#define SCE_FS_BINNUMBER 23 -#define SCE_CSOUND_DEFAULT 0 -#define SCE_CSOUND_COMMENT 1 -#define SCE_CSOUND_NUMBER 2 -#define SCE_CSOUND_OPERATOR 3 -#define SCE_CSOUND_INSTR 4 -#define SCE_CSOUND_IDENTIFIER 5 -#define SCE_CSOUND_OPCODE 6 -#define SCE_CSOUND_HEADERSTMT 7 -#define SCE_CSOUND_USERKEYWORD 8 -#define SCE_CSOUND_COMMENTBLOCK 9 -#define SCE_CSOUND_PARAM 10 -#define SCE_CSOUND_ARATE_VAR 11 -#define SCE_CSOUND_KRATE_VAR 12 -#define SCE_CSOUND_IRATE_VAR 13 -#define SCE_CSOUND_GLOBAL_VAR 14 -#define SCE_CSOUND_STRINGEOL 15 -#define SCE_INNO_DEFAULT 0 -#define SCE_INNO_COMMENT 1 -#define SCE_INNO_KEYWORD 2 -#define SCE_INNO_PARAMETER 3 -#define SCE_INNO_SECTION 4 -#define SCE_INNO_PREPROC 5 -#define SCE_INNO_PREPROC_INLINE 6 -#define SCE_INNO_COMMENT_PASCAL 7 -#define SCE_INNO_KEYWORD_PASCAL 8 -#define SCE_INNO_KEYWORD_USER 9 -#define SCE_INNO_STRING_DOUBLE 10 -#define SCE_INNO_STRING_SINGLE 11 -#define SCE_INNO_IDENTIFIER 12 -#define SCE_OPAL_SPACE 0 -#define SCE_OPAL_COMMENT_BLOCK 1 -#define SCE_OPAL_COMMENT_LINE 2 -#define SCE_OPAL_INTEGER 3 -#define SCE_OPAL_KEYWORD 4 -#define SCE_OPAL_SORT 5 -#define SCE_OPAL_STRING 6 -#define SCE_OPAL_PAR 7 -#define SCE_OPAL_BOOL_CONST 8 -#define SCE_OPAL_DEFAULT 32 -#define SCE_SPICE_DEFAULT 0 -#define SCE_SPICE_IDENTIFIER 1 -#define SCE_SPICE_KEYWORD 2 -#define SCE_SPICE_KEYWORD2 3 -#define SCE_SPICE_KEYWORD3 4 -#define SCE_SPICE_NUMBER 5 -#define SCE_SPICE_DELIMITER 6 -#define SCE_SPICE_VALUE 7 -#define SCE_SPICE_COMMENTLINE 8 -#define SCLEX_ASP 29 -#define SCLEX_PHP 30 -//--Autogenerated -- end of section automatically generated from Scintilla.iface - -#endif diff --git a/MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/include/Scintilla.h b/MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/include/Scintilla.h deleted file mode 100644 index 792f037e..00000000 --- a/MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/include/Scintilla.h +++ /dev/null @@ -1,780 +0,0 @@ -// Scintilla source code edit control -/** @file Scintilla.h - ** Interface to the edit control. - **/ -// Copyright 1998-2003 by Neil Hodgson -// The License.txt file describes the conditions under which this software may be distributed. - -// Most of this file is automatically generated from the Scintilla.iface interface definition -// file which contains any comments about the definitions. HFacer.py does the generation. - -#ifndef SCINTILLA_H -#define SCINTILLA_H - -#if LCCWIN -typedef BOOL bool; -#endif - -#if PLAT_WIN -// Return false on failure: -bool Scintilla_RegisterClasses(void *hInstance); -bool Scintilla_ReleaseResources(); -#endif -int Scintilla_LinkLexers(); - -// Here should be placed typedefs for uptr_t, an unsigned integer type large enough to -// hold a pointer and sptr_t, a signed integer large enough to hold a pointer. -// May need to be changed for 64 bit platforms. -#if _MSC_VER >= 1300 -#include -#endif -#ifdef MAXULONG_PTR -typedef ULONG_PTR uptr_t; -typedef LONG_PTR sptr_t; -#else -typedef unsigned long uptr_t; -typedef long sptr_t; -#endif - -typedef sptr_t (*SciFnDirect)(sptr_t ptr, unsigned int iMessage, uptr_t wParam, sptr_t lParam); - -//++Autogenerated -- start of section automatically generated from Scintilla.iface -#define INVALID_POSITION -1 -#define SCI_START 2000 -#define SCI_OPTIONAL_START 3000 -#define SCI_LEXER_START 4000 -#define SCI_ADDTEXT 2001 -#define SCI_ADDSTYLEDTEXT 2002 -#define SCI_INSERTTEXT 2003 -#define SCI_CLEARALL 2004 -#define SCI_CLEARDOCUMENTSTYLE 2005 -#define SCI_GETLENGTH 2006 -#define SCI_GETCHARAT 2007 -#define SCI_GETCURRENTPOS 2008 -#define SCI_GETANCHOR 2009 -#define SCI_GETSTYLEAT 2010 -#define SCI_REDO 2011 -#define SCI_SETUNDOCOLLECTION 2012 -#define SCI_SELECTALL 2013 -#define SCI_SETSAVEPOINT 2014 -#define SCI_GETSTYLEDTEXT 2015 -#define SCI_CANREDO 2016 -#define SCI_MARKERLINEFROMHANDLE 2017 -#define SCI_MARKERDELETEHANDLE 2018 -#define SCI_GETUNDOCOLLECTION 2019 -#define SCWS_INVISIBLE 0 -#define SCWS_VISIBLEALWAYS 1 -#define SCWS_VISIBLEAFTERINDENT 2 -#define SCI_GETVIEWWS 2020 -#define SCI_SETVIEWWS 2021 -#define SCI_POSITIONFROMPOINT 2022 -#define SCI_POSITIONFROMPOINTCLOSE 2023 -#define SCI_GOTOLINE 2024 -#define SCI_GOTOPOS 2025 -#define SCI_SETANCHOR 2026 -#define SCI_GETCURLINE 2027 -#define SCI_GETENDSTYLED 2028 -#define SC_EOL_CRLF 0 -#define SC_EOL_CR 1 -#define SC_EOL_LF 2 -#define SCI_CONVERTEOLS 2029 -#define SCI_GETEOLMODE 2030 -#define SCI_SETEOLMODE 2031 -#define SCI_STARTSTYLING 2032 -#define SCI_SETSTYLING 2033 -#define SCI_GETBUFFEREDDRAW 2034 -#define SCI_SETBUFFEREDDRAW 2035 -#define SCI_SETTABWIDTH 2036 -#define SCI_GETTABWIDTH 2121 -#define SC_CP_UTF8 65001 -#define SC_CP_DBCS 1 -#define SCI_SETCODEPAGE 2037 -#define SCI_SETUSEPALETTE 2039 -#define MARKER_MAX 31 -#define SC_MARK_CIRCLE 0 -#define SC_MARK_ROUNDRECT 1 -#define SC_MARK_ARROW 2 -#define SC_MARK_SMALLRECT 3 -#define SC_MARK_SHORTARROW 4 -#define SC_MARK_EMPTY 5 -#define SC_MARK_ARROWDOWN 6 -#define SC_MARK_MINUS 7 -#define SC_MARK_PLUS 8 -#define SC_MARK_VLINE 9 -#define SC_MARK_LCORNER 10 -#define SC_MARK_TCORNER 11 -#define SC_MARK_BOXPLUS 12 -#define SC_MARK_BOXPLUSCONNECTED 13 -#define SC_MARK_BOXMINUS 14 -#define SC_MARK_BOXMINUSCONNECTED 15 -#define SC_MARK_LCORNERCURVE 16 -#define SC_MARK_TCORNERCURVE 17 -#define SC_MARK_CIRCLEPLUS 18 -#define SC_MARK_CIRCLEPLUSCONNECTED 19 -#define SC_MARK_CIRCLEMINUS 20 -#define SC_MARK_CIRCLEMINUSCONNECTED 21 -#define SC_MARK_BACKGROUND 22 -#define SC_MARK_DOTDOTDOT 23 -#define SC_MARK_ARROWS 24 -#define SC_MARK_PIXMAP 25 -#define SC_MARK_FULLRECT 26 -#define SC_MARK_CHARACTER 10000 -#define SC_MARKNUM_FOLDEREND 25 -#define SC_MARKNUM_FOLDEROPENMID 26 -#define SC_MARKNUM_FOLDERMIDTAIL 27 -#define SC_MARKNUM_FOLDERTAIL 28 -#define SC_MARKNUM_FOLDERSUB 29 -#define SC_MARKNUM_FOLDER 30 -#define SC_MARKNUM_FOLDEROPEN 31 -#define SC_MASK_FOLDERS 0xFE000000 -#define SCI_MARKERDEFINE 2040 -#define SCI_MARKERSETFORE 2041 -#define SCI_MARKERSETBACK 2042 -#define SCI_MARKERADD 2043 -#define SCI_MARKERDELETE 2044 -#define SCI_MARKERDELETEALL 2045 -#define SCI_MARKERGET 2046 -#define SCI_MARKERNEXT 2047 -#define SCI_MARKERPREVIOUS 2048 -#define SCI_MARKERDEFINEPIXMAP 2049 -#define SCI_MARKERADDSET 2466 -#define SCI_MARKERSETALPHA 2476 -#define SC_MARGIN_SYMBOL 0 -#define SC_MARGIN_NUMBER 1 -#define SC_MARGIN_BACK 2 -#define SC_MARGIN_FORE 3 -#define SCI_SETMARGINTYPEN 2240 -#define SCI_GETMARGINTYPEN 2241 -#define SCI_SETMARGINWIDTHN 2242 -#define SCI_GETMARGINWIDTHN 2243 -#define SCI_SETMARGINMASKN 2244 -#define SCI_GETMARGINMASKN 2245 -#define SCI_SETMARGINSENSITIVEN 2246 -#define SCI_GETMARGINSENSITIVEN 2247 -#define STYLE_DEFAULT 32 -#define STYLE_LINENUMBER 33 -#define STYLE_BRACELIGHT 34 -#define STYLE_BRACEBAD 35 -#define STYLE_CONTROLCHAR 36 -#define STYLE_INDENTGUIDE 37 -#define STYLE_CALLTIP 38 -#define STYLE_LASTPREDEFINED 39 -#define STYLE_MAX 127 -#define SC_CHARSET_ANSI 0 -#define SC_CHARSET_DEFAULT 1 -#define SC_CHARSET_BALTIC 186 -#define SC_CHARSET_CHINESEBIG5 136 -#define SC_CHARSET_EASTEUROPE 238 -#define SC_CHARSET_GB2312 134 -#define SC_CHARSET_GREEK 161 -#define SC_CHARSET_HANGUL 129 -#define SC_CHARSET_MAC 77 -#define SC_CHARSET_OEM 255 -#define SC_CHARSET_RUSSIAN 204 -#define SC_CHARSET_CYRILLIC 1251 -#define SC_CHARSET_SHIFTJIS 128 -#define SC_CHARSET_SYMBOL 2 -#define SC_CHARSET_TURKISH 162 -#define SC_CHARSET_JOHAB 130 -#define SC_CHARSET_HEBREW 177 -#define SC_CHARSET_ARABIC 178 -#define SC_CHARSET_VIETNAMESE 163 -#define SC_CHARSET_THAI 222 -#define SC_CHARSET_8859_15 1000 -#define SCI_STYLECLEARALL 2050 -#define SCI_STYLESETFORE 2051 -#define SCI_STYLESETBACK 2052 -#define SCI_STYLESETBOLD 2053 -#define SCI_STYLESETITALIC 2054 -#define SCI_STYLESETSIZE 2055 -#define SCI_STYLESETFONT 2056 -#define SCI_STYLESETEOLFILLED 2057 -#define SCI_STYLERESETDEFAULT 2058 -#define SCI_STYLESETUNDERLINE 2059 -#define SC_CASE_MIXED 0 -#define SC_CASE_UPPER 1 -#define SC_CASE_LOWER 2 -#define SCI_STYLESETCASE 2060 -#define SCI_STYLESETCHARACTERSET 2066 -#define SCI_STYLESETHOTSPOT 2409 -#define SCI_SETSELFORE 2067 -#define SCI_SETSELBACK 2068 -#define SCI_GETSELALPHA 2477 -#define SCI_SETSELALPHA 2478 -#define SCI_SETCARETFORE 2069 -#define SCI_ASSIGNCMDKEY 2070 -#define SCI_CLEARCMDKEY 2071 -#define SCI_CLEARALLCMDKEYS 2072 -#define SCI_SETSTYLINGEX 2073 -#define SCI_STYLESETVISIBLE 2074 -#define SCI_GETCARETPERIOD 2075 -#define SCI_SETCARETPERIOD 2076 -#define SCI_SETWORDCHARS 2077 -#define SCI_BEGINUNDOACTION 2078 -#define SCI_ENDUNDOACTION 2079 -#define INDIC_MAX 7 -#define INDIC_PLAIN 0 -#define INDIC_SQUIGGLE 1 -#define INDIC_TT 2 -#define INDIC_DIAGONAL 3 -#define INDIC_STRIKE 4 -#define INDIC_HIDDEN 5 -#define INDIC_BOX 6 -#define INDIC_ROUNDBOX 7 -#define INDIC0_MASK 0x20 -#define INDIC1_MASK 0x40 -#define INDIC2_MASK 0x80 -#define INDICS_MASK 0xE0 -#define SCI_INDICSETSTYLE 2080 -#define SCI_INDICGETSTYLE 2081 -#define SCI_INDICSETFORE 2082 -#define SCI_INDICGETFORE 2083 -#define SCI_SETWHITESPACEFORE 2084 -#define SCI_SETWHITESPACEBACK 2085 -#define SCI_SETSTYLEBITS 2090 -#define SCI_GETSTYLEBITS 2091 -#define SCI_SETLINESTATE 2092 -#define SCI_GETLINESTATE 2093 -#define SCI_GETMAXLINESTATE 2094 -#define SCI_GETCARETLINEVISIBLE 2095 -#define SCI_SETCARETLINEVISIBLE 2096 -#define SCI_GETCARETLINEBACK 2097 -#define SCI_SETCARETLINEBACK 2098 -#define SCI_STYLESETCHANGEABLE 2099 -#define SCI_AUTOCSHOW 2100 -#define SCI_AUTOCCANCEL 2101 -#define SCI_AUTOCACTIVE 2102 -#define SCI_AUTOCPOSSTART 2103 -#define SCI_AUTOCCOMPLETE 2104 -#define SCI_AUTOCSTOPS 2105 -#define SCI_AUTOCSETSEPARATOR 2106 -#define SCI_AUTOCGETSEPARATOR 2107 -#define SCI_AUTOCSELECT 2108 -#define SCI_AUTOCSETCANCELATSTART 2110 -#define SCI_AUTOCGETCANCELATSTART 2111 -#define SCI_AUTOCSETFILLUPS 2112 -#define SCI_AUTOCSETCHOOSESINGLE 2113 -#define SCI_AUTOCGETCHOOSESINGLE 2114 -#define SCI_AUTOCSETIGNORECASE 2115 -#define SCI_AUTOCGETIGNORECASE 2116 -#define SCI_USERLISTSHOW 2117 -#define SCI_AUTOCSETAUTOHIDE 2118 -#define SCI_AUTOCGETAUTOHIDE 2119 -#define SCI_AUTOCSETDROPRESTOFWORD 2270 -#define SCI_AUTOCGETDROPRESTOFWORD 2271 -#define SCI_REGISTERIMAGE 2405 -#define SCI_CLEARREGISTEREDIMAGES 2408 -#define SCI_AUTOCGETTYPESEPARATOR 2285 -#define SCI_AUTOCSETTYPESEPARATOR 2286 -#define SCI_AUTOCSETMAXWIDTH 2208 -#define SCI_AUTOCGETMAXWIDTH 2209 -#define SCI_AUTOCSETMAXHEIGHT 2210 -#define SCI_AUTOCGETMAXHEIGHT 2211 -#define SCI_SETINDENT 2122 -#define SCI_GETINDENT 2123 -#define SCI_SETUSETABS 2124 -#define SCI_GETUSETABS 2125 -#define SCI_SETLINEINDENTATION 2126 -#define SCI_GETLINEINDENTATION 2127 -#define SCI_GETLINEINDENTPOSITION 2128 -#define SCI_GETCOLUMN 2129 -#define SCI_SETHSCROLLBAR 2130 -#define SCI_GETHSCROLLBAR 2131 -#define SCI_SETINDENTATIONGUIDES 2132 -#define SCI_GETINDENTATIONGUIDES 2133 -#define SCI_SETHIGHLIGHTGUIDE 2134 -#define SCI_GETHIGHLIGHTGUIDE 2135 -#define SCI_GETLINEENDPOSITION 2136 -#define SCI_GETCODEPAGE 2137 -#define SCI_GETCARETFORE 2138 -#define SCI_GETUSEPALETTE 2139 -#define SCI_GETREADONLY 2140 -#define SCI_SETCURRENTPOS 2141 -#define SCI_SETSELECTIONSTART 2142 -#define SCI_GETSELECTIONSTART 2143 -#define SCI_SETSELECTIONEND 2144 -#define SCI_GETSELECTIONEND 2145 -#define SCI_SETPRINTMAGNIFICATION 2146 -#define SCI_GETPRINTMAGNIFICATION 2147 -#define SC_PRINT_NORMAL 0 -#define SC_PRINT_INVERTLIGHT 1 -#define SC_PRINT_BLACKONWHITE 2 -#define SC_PRINT_COLOURONWHITE 3 -#define SC_PRINT_COLOURONWHITEDEFAULTBG 4 -#define SCI_SETPRINTCOLOURMODE 2148 -#define SCI_GETPRINTCOLOURMODE 2149 -#define SCFIND_WHOLEWORD 2 -#define SCFIND_MATCHCASE 4 -#define SCFIND_WORDSTART 0x00100000 -#define SCFIND_REGEXP 0x00200000 -#define SCFIND_POSIX 0x00400000 -#define SCI_FINDTEXT 2150 -#define SCI_FORMATRANGE 2151 -#define SCI_GETFIRSTVISIBLELINE 2152 -#define SCI_GETLINE 2153 -#define SCI_GETLINECOUNT 2154 -#define SCI_SETMARGINLEFT 2155 -#define SCI_GETMARGINLEFT 2156 -#define SCI_SETMARGINRIGHT 2157 -#define SCI_GETMARGINRIGHT 2158 -#define SCI_GETMODIFY 2159 -#define SCI_SETSEL 2160 -#define SCI_GETSELTEXT 2161 -#define SCI_GETTEXTRANGE 2162 -#define SCI_HIDESELECTION 2163 -#define SCI_POINTXFROMPOSITION 2164 -#define SCI_POINTYFROMPOSITION 2165 -#define SCI_LINEFROMPOSITION 2166 -#define SCI_POSITIONFROMLINE 2167 -#define SCI_LINESCROLL 2168 -#define SCI_SCROLLCARET 2169 -#define SCI_REPLACESEL 2170 -#define SCI_SETREADONLY 2171 -#define SCI_NULL 2172 -#define SCI_CANPASTE 2173 -#define SCI_CANUNDO 2174 -#define SCI_EMPTYUNDOBUFFER 2175 -#define SCI_UNDO 2176 -#define SCI_CUT 2177 -#define SCI_COPY 2178 -#define SCI_PASTE 2179 -#define SCI_CLEAR 2180 -#define SCI_SETTEXT 2181 -#define SCI_GETTEXT 2182 -#define SCI_GETTEXTLENGTH 2183 -#define SCI_GETDIRECTFUNCTION 2184 -#define SCI_GETDIRECTPOINTER 2185 -#define SCI_SETOVERTYPE 2186 -#define SCI_GETOVERTYPE 2187 -#define SCI_SETCARETWIDTH 2188 -#define SCI_GETCARETWIDTH 2189 -#define SCI_SETTARGETSTART 2190 -#define SCI_GETTARGETSTART 2191 -#define SCI_SETTARGETEND 2192 -#define SCI_GETTARGETEND 2193 -#define SCI_REPLACETARGET 2194 -#define SCI_REPLACETARGETRE 2195 -#define SCI_SEARCHINTARGET 2197 -#define SCI_SETSEARCHFLAGS 2198 -#define SCI_GETSEARCHFLAGS 2199 -#define SCI_CALLTIPSHOW 2200 -#define SCI_CALLTIPCANCEL 2201 -#define SCI_CALLTIPACTIVE 2202 -#define SCI_CALLTIPPOSSTART 2203 -#define SCI_CALLTIPSETHLT 2204 -#define SCI_CALLTIPSETBACK 2205 -#define SCI_CALLTIPSETFORE 2206 -#define SCI_CALLTIPSETFOREHLT 2207 -#define SCI_CALLTIPUSESTYLE 2212 -#define SCI_VISIBLEFROMDOCLINE 2220 -#define SCI_DOCLINEFROMVISIBLE 2221 -#define SCI_WRAPCOUNT 2235 -#define SC_FOLDLEVELBASE 0x400 -#define SC_FOLDLEVELWHITEFLAG 0x1000 -#define SC_FOLDLEVELHEADERFLAG 0x2000 -#define SC_FOLDLEVELBOXHEADERFLAG 0x4000 -#define SC_FOLDLEVELBOXFOOTERFLAG 0x8000 -#define SC_FOLDLEVELCONTRACTED 0x10000 -#define SC_FOLDLEVELUNINDENT 0x20000 -#define SC_FOLDLEVELNUMBERMASK 0x0FFF -#define SCI_SETFOLDLEVEL 2222 -#define SCI_GETFOLDLEVEL 2223 -#define SCI_GETLASTCHILD 2224 -#define SCI_GETFOLDPARENT 2225 -#define SCI_SHOWLINES 2226 -#define SCI_HIDELINES 2227 -#define SCI_GETLINEVISIBLE 2228 -#define SCI_SETFOLDEXPANDED 2229 -#define SCI_GETFOLDEXPANDED 2230 -#define SCI_TOGGLEFOLD 2231 -#define SCI_ENSUREVISIBLE 2232 -#define SC_FOLDFLAG_LINEBEFORE_EXPANDED 0x0002 -#define SC_FOLDFLAG_LINEBEFORE_CONTRACTED 0x0004 -#define SC_FOLDFLAG_LINEAFTER_EXPANDED 0x0008 -#define SC_FOLDFLAG_LINEAFTER_CONTRACTED 0x0010 -#define SC_FOLDFLAG_LEVELNUMBERS 0x0040 -#define SC_FOLDFLAG_BOX 0x0001 -#define SCI_SETFOLDFLAGS 2233 -#define SCI_ENSUREVISIBLEENFORCEPOLICY 2234 -#define SCI_SETTABINDENTS 2260 -#define SCI_GETTABINDENTS 2261 -#define SCI_SETBACKSPACEUNINDENTS 2262 -#define SCI_GETBACKSPACEUNINDENTS 2263 -#define SC_TIME_FOREVER 10000000 -#define SCI_SETMOUSEDWELLTIME 2264 -#define SCI_GETMOUSEDWELLTIME 2265 -#define SCI_WORDSTARTPOSITION 2266 -#define SCI_WORDENDPOSITION 2267 -#define SC_WRAP_NONE 0 -#define SC_WRAP_WORD 1 -#define SC_WRAP_CHAR 2 -#define SCI_SETWRAPMODE 2268 -#define SCI_GETWRAPMODE 2269 -#define SC_WRAPVISUALFLAG_NONE 0x0000 -#define SC_WRAPVISUALFLAG_END 0x0001 -#define SC_WRAPVISUALFLAG_START 0x0002 -#define SCI_SETWRAPVISUALFLAGS 2460 -#define SCI_GETWRAPVISUALFLAGS 2461 -#define SC_WRAPVISUALFLAGLOC_DEFAULT 0x0000 -#define SC_WRAPVISUALFLAGLOC_END_BY_TEXT 0x0001 -#define SC_WRAPVISUALFLAGLOC_START_BY_TEXT 0x0002 -#define SCI_SETWRAPVISUALFLAGSLOCATION 2462 -#define SCI_GETWRAPVISUALFLAGSLOCATION 2463 -#define SCI_SETWRAPSTARTINDENT 2464 -#define SCI_GETWRAPSTARTINDENT 2465 -#define SC_CACHE_NONE 0 -#define SC_CACHE_CARET 1 -#define SC_CACHE_PAGE 2 -#define SC_CACHE_DOCUMENT 3 -#define SCI_SETLAYOUTCACHE 2272 -#define SCI_GETLAYOUTCACHE 2273 -#define SCI_SETSCROLLWIDTH 2274 -#define SCI_GETSCROLLWIDTH 2275 -#define SCI_TEXTWIDTH 2276 -#define SCI_SETENDATLASTLINE 2277 -#define SCI_GETENDATLASTLINE 2278 -#define SCI_TEXTHEIGHT 2279 -#define SCI_SETVSCROLLBAR 2280 -#define SCI_GETVSCROLLBAR 2281 -#define SCI_APPENDTEXT 2282 -#define SCI_GETTWOPHASEDRAW 2283 -#define SCI_SETTWOPHASEDRAW 2284 -#define SCI_TARGETFROMSELECTION 2287 -#define SCI_LINESJOIN 2288 -#define SCI_LINESSPLIT 2289 -#define SCI_SETFOLDMARGINCOLOUR 2290 -#define SCI_SETFOLDMARGINHICOLOUR 2291 -#define SCI_LINEDOWN 2300 -#define SCI_LINEDOWNEXTEND 2301 -#define SCI_LINEUP 2302 -#define SCI_LINEUPEXTEND 2303 -#define SCI_CHARLEFT 2304 -#define SCI_CHARLEFTEXTEND 2305 -#define SCI_CHARRIGHT 2306 -#define SCI_CHARRIGHTEXTEND 2307 -#define SCI_WORDLEFT 2308 -#define SCI_WORDLEFTEXTEND 2309 -#define SCI_WORDRIGHT 2310 -#define SCI_WORDRIGHTEXTEND 2311 -#define SCI_HOME 2312 -#define SCI_HOMEEXTEND 2313 -#define SCI_LINEEND 2314 -#define SCI_LINEENDEXTEND 2315 -#define SCI_DOCUMENTSTART 2316 -#define SCI_DOCUMENTSTARTEXTEND 2317 -#define SCI_DOCUMENTEND 2318 -#define SCI_DOCUMENTENDEXTEND 2319 -#define SCI_PAGEUP 2320 -#define SCI_PAGEUPEXTEND 2321 -#define SCI_PAGEDOWN 2322 -#define SCI_PAGEDOWNEXTEND 2323 -#define SCI_EDITTOGGLEOVERTYPE 2324 -#define SCI_CANCEL 2325 -#define SCI_DELETEBACK 2326 -#define SCI_TAB 2327 -#define SCI_BACKTAB 2328 -#define SCI_NEWLINE 2329 -#define SCI_FORMFEED 2330 -#define SCI_VCHOME 2331 -#define SCI_VCHOMEEXTEND 2332 -#define SCI_ZOOMIN 2333 -#define SCI_ZOOMOUT 2334 -#define SCI_DELWORDLEFT 2335 -#define SCI_DELWORDRIGHT 2336 -#define SCI_LINECUT 2337 -#define SCI_LINEDELETE 2338 -#define SCI_LINETRANSPOSE 2339 -#define SCI_LINEDUPLICATE 2404 -#define SCI_LOWERCASE 2340 -#define SCI_UPPERCASE 2341 -#define SCI_LINESCROLLDOWN 2342 -#define SCI_LINESCROLLUP 2343 -#define SCI_DELETEBACKNOTLINE 2344 -#define SCI_HOMEDISPLAY 2345 -#define SCI_HOMEDISPLAYEXTEND 2346 -#define SCI_LINEENDDISPLAY 2347 -#define SCI_LINEENDDISPLAYEXTEND 2348 -#define SCI_HOMEWRAP 2349 -#define SCI_HOMEWRAPEXTEND 2450 -#define SCI_LINEENDWRAP 2451 -#define SCI_LINEENDWRAPEXTEND 2452 -#define SCI_VCHOMEWRAP 2453 -#define SCI_VCHOMEWRAPEXTEND 2454 -#define SCI_LINECOPY 2455 -#define SCI_MOVECARETINSIDEVIEW 2401 -#define SCI_LINELENGTH 2350 -#define SCI_BRACEHIGHLIGHT 2351 -#define SCI_BRACEBADLIGHT 2352 -#define SCI_BRACEMATCH 2353 -#define SCI_GETVIEWEOL 2355 -#define SCI_SETVIEWEOL 2356 -#define SCI_GETDOCPOINTER 2357 -#define SCI_SETDOCPOINTER 2358 -#define SCI_SETMODEVENTMASK 2359 -#define EDGE_NONE 0 -#define EDGE_LINE 1 -#define EDGE_BACKGROUND 2 -#define SCI_GETEDGECOLUMN 2360 -#define SCI_SETEDGECOLUMN 2361 -#define SCI_GETEDGEMODE 2362 -#define SCI_SETEDGEMODE 2363 -#define SCI_GETEDGECOLOUR 2364 -#define SCI_SETEDGECOLOUR 2365 -#define SCI_SEARCHANCHOR 2366 -#define SCI_SEARCHNEXT 2367 -#define SCI_SEARCHPREV 2368 -#define SCI_LINESONSCREEN 2370 -#define SCI_USEPOPUP 2371 -#define SCI_SELECTIONISRECTANGLE 2372 -#define SCI_SETZOOM 2373 -#define SCI_GETZOOM 2374 -#define SCI_CREATEDOCUMENT 2375 -#define SCI_ADDREFDOCUMENT 2376 -#define SCI_RELEASEDOCUMENT 2377 -#define SCI_GETMODEVENTMASK 2378 -#define SCI_SETFOCUS 2380 -#define SCI_GETFOCUS 2381 -#define SCI_SETSTATUS 2382 -#define SCI_GETSTATUS 2383 -#define SCI_SETMOUSEDOWNCAPTURES 2384 -#define SCI_GETMOUSEDOWNCAPTURES 2385 -#define SC_CURSORNORMAL -1 -#define SC_CURSORWAIT 4 -#define SCI_SETCURSOR 2386 -#define SCI_GETCURSOR 2387 -#define SCI_SETCONTROLCHARSYMBOL 2388 -#define SCI_GETCONTROLCHARSYMBOL 2389 -#define SCI_WORDPARTLEFT 2390 -#define SCI_WORDPARTLEFTEXTEND 2391 -#define SCI_WORDPARTRIGHT 2392 -#define SCI_WORDPARTRIGHTEXTEND 2393 -#define VISIBLE_SLOP 0x01 -#define VISIBLE_STRICT 0x04 -#define SCI_SETVISIBLEPOLICY 2394 -#define SCI_DELLINELEFT 2395 -#define SCI_DELLINERIGHT 2396 -#define SCI_SETXOFFSET 2397 -#define SCI_GETXOFFSET 2398 -#define SCI_CHOOSECARETX 2399 -#define SCI_GRABFOCUS 2400 -#define CARET_SLOP 0x01 -#define CARET_STRICT 0x04 -#define CARET_JUMPS 0x10 -#define CARET_EVEN 0x08 -#define SCI_SETXCARETPOLICY 2402 -#define SCI_SETYCARETPOLICY 2403 -#define SCI_SETPRINTWRAPMODE 2406 -#define SCI_GETPRINTWRAPMODE 2407 -#define SCI_SETHOTSPOTACTIVEFORE 2410 -#define SCI_SETHOTSPOTACTIVEBACK 2411 -#define SCI_SETHOTSPOTACTIVEUNDERLINE 2412 -#define SCI_SETHOTSPOTSINGLELINE 2421 -#define SCI_PARADOWN 2413 -#define SCI_PARADOWNEXTEND 2414 -#define SCI_PARAUP 2415 -#define SCI_PARAUPEXTEND 2416 -#define SCI_POSITIONBEFORE 2417 -#define SCI_POSITIONAFTER 2418 -#define SCI_COPYRANGE 2419 -#define SCI_COPYTEXT 2420 -#define SC_SEL_STREAM 0 -#define SC_SEL_RECTANGLE 1 -#define SC_SEL_LINES 2 -#define SCI_SETSELECTIONMODE 2422 -#define SCI_GETSELECTIONMODE 2423 -#define SCI_GETLINESELSTARTPOSITION 2424 -#define SCI_GETLINESELENDPOSITION 2425 -#define SCI_LINEDOWNRECTEXTEND 2426 -#define SCI_LINEUPRECTEXTEND 2427 -#define SCI_CHARLEFTRECTEXTEND 2428 -#define SCI_CHARRIGHTRECTEXTEND 2429 -#define SCI_HOMERECTEXTEND 2430 -#define SCI_VCHOMERECTEXTEND 2431 -#define SCI_LINEENDRECTEXTEND 2432 -#define SCI_PAGEUPRECTEXTEND 2433 -#define SCI_PAGEDOWNRECTEXTEND 2434 -#define SCI_STUTTEREDPAGEUP 2435 -#define SCI_STUTTEREDPAGEUPEXTEND 2436 -#define SCI_STUTTEREDPAGEDOWN 2437 -#define SCI_STUTTEREDPAGEDOWNEXTEND 2438 -#define SCI_WORDLEFTEND 2439 -#define SCI_WORDLEFTENDEXTEND 2440 -#define SCI_WORDRIGHTEND 2441 -#define SCI_WORDRIGHTENDEXTEND 2442 -#define SCI_SETWHITESPACECHARS 2443 -#define SCI_SETCHARSDEFAULT 2444 -#define SCI_AUTOCGETCURRENT 2445 -#define SCI_ALLOCATE 2446 -#define SCI_TARGETASUTF8 2447 -#define SCI_SETLENGTHFORENCODE 2448 -#define SCI_ENCODEDFROMUTF8 2449 -#define SCI_FINDCOLUMN 2456 -#define SCI_GETCARETSTICKY 2457 -#define SCI_SETCARETSTICKY 2458 -#define SCI_TOGGLECARETSTICKY 2459 -#define SCI_SETPASTECONVERTENDINGS 2467 -#define SCI_GETPASTECONVERTENDINGS 2468 -#define SCI_SELECTIONDUPLICATE 2469 -#define SC_ALPHA_TRANSPARENT 0 -#define SC_ALPHA_OPAQUE 255 -#define SC_ALPHA_NOALPHA 256 -#define SCI_SETCARETLINEBACKALPHA 2470 -#define SCI_GETCARETLINEBACKALPHA 2471 -#define SCI_STARTRECORD 3001 -#define SCI_STOPRECORD 3002 -#define SCI_SETLEXER 4001 -#define SCI_GETLEXER 4002 -#define SCI_COLOURISE 4003 -#define SCI_SETPROPERTY 4004 -#define KEYWORDSET_MAX 8 -#define SCI_SETKEYWORDS 4005 -#define SCI_SETLEXERLANGUAGE 4006 -#define SCI_LOADLEXERLIBRARY 4007 -#define SCI_GETPROPERTY 4008 -#define SCI_GETPROPERTYEXPANDED 4009 -#define SCI_GETPROPERTYINT 4010 -#define SCI_GETSTYLEBITSNEEDED 4011 -#define SC_MOD_INSERTTEXT 0x1 -#define SC_MOD_DELETETEXT 0x2 -#define SC_MOD_CHANGESTYLE 0x4 -#define SC_MOD_CHANGEFOLD 0x8 -#define SC_PERFORMED_USER 0x10 -#define SC_PERFORMED_UNDO 0x20 -#define SC_PERFORMED_REDO 0x40 -#define SC_MULTISTEPUNDOREDO 0x80 -#define SC_LASTSTEPINUNDOREDO 0x100 -#define SC_MOD_CHANGEMARKER 0x200 -#define SC_MOD_BEFOREINSERT 0x400 -#define SC_MOD_BEFOREDELETE 0x800 -#define SC_MULTILINEUNDOREDO 0x1000 -#define SC_MODEVENTMASKALL 0x1FFF -#define SCEN_CHANGE 768 -#define SCEN_SETFOCUS 512 -#define SCEN_KILLFOCUS 256 -#define SCK_DOWN 300 -#define SCK_UP 301 -#define SCK_LEFT 302 -#define SCK_RIGHT 303 -#define SCK_HOME 304 -#define SCK_END 305 -#define SCK_PRIOR 306 -#define SCK_NEXT 307 -#define SCK_DELETE 308 -#define SCK_INSERT 309 -#define SCK_ESCAPE 7 -#define SCK_BACK 8 -#define SCK_TAB 9 -#define SCK_RETURN 13 -#define SCK_ADD 310 -#define SCK_SUBTRACT 311 -#define SCK_DIVIDE 312 -#define SCMOD_NORM 0 -#define SCMOD_SHIFT 1 -#define SCMOD_CTRL 2 -#define SCMOD_ALT 4 -#define SCN_STYLENEEDED 2000 -#define SCN_CHARADDED 2001 -#define SCN_SAVEPOINTREACHED 2002 -#define SCN_SAVEPOINTLEFT 2003 -#define SCN_MODIFYATTEMPTRO 2004 -#define SCN_KEY 2005 -#define SCN_DOUBLECLICK 2006 -#define SCN_UPDATEUI 2007 -#define SCN_MODIFIED 2008 -#define SCN_MACRORECORD 2009 -#define SCN_MARGINCLICK 2010 -#define SCN_NEEDSHOWN 2011 -#define SCN_PAINTED 2013 -#define SCN_USERLISTSELECTION 2014 -#define SCN_URIDROPPED 2015 -#define SCN_DWELLSTART 2016 -#define SCN_DWELLEND 2017 -#define SCN_ZOOM 2018 -#define SCN_HOTSPOTCLICK 2019 -#define SCN_HOTSPOTDOUBLECLICK 2020 -#define SCN_CALLTIPCLICK 2021 -#define SCN_AUTOCSELECTION 2022 -//--Autogenerated -- end of section automatically generated from Scintilla.iface - -// These structures are defined to be exactly the same shape as the Win32 -// CHARRANGE, TEXTRANGE, FINDTEXTEX, FORMATRANGE, and NMHDR structs. -// So older code that treats Scintilla as a RichEdit will work. - -struct CharacterRange { - long cpMin; - long cpMax; -}; - -struct TextRange { - struct CharacterRange chrg; - char *lpstrText; -}; - -struct TextToFind { - struct CharacterRange chrg; - char *lpstrText; - struct CharacterRange chrgText; -}; - -#ifdef PLATFORM_H - -// This structure is used in printing and requires some of the graphics types -// from Platform.h. Not needed by most client code. - -struct RangeToFormat { - SurfaceID hdc; - SurfaceID hdcTarget; - PRectangle rc; - PRectangle rcPage; - CharacterRange chrg; -}; - -#endif - -struct NotifyHeader { - // Compatible with Windows NMHDR. - // hwndFrom is really an environment specific window handle or pointer - // but most clients of Scintilla.h do not have this type visible. - void *hwndFrom; - uptr_t idFrom; - unsigned int code; -}; - -struct SCNotification { - struct NotifyHeader nmhdr; - int position; // SCN_STYLENEEDED, SCN_MODIFIED, SCN_DWELLSTART, SCN_DWELLEND - int ch; // SCN_CHARADDED, SCN_KEY - int modifiers; // SCN_KEY - int modificationType; // SCN_MODIFIED - const char *text; // SCN_MODIFIED, SCN_USERLISTSELECTION, SCN_AUTOCSELECTION - int length; // SCN_MODIFIED - int linesAdded; // SCN_MODIFIED - int message; // SCN_MACRORECORD - uptr_t wParam; // SCN_MACRORECORD - sptr_t lParam; // SCN_MACRORECORD - int line; // SCN_MODIFIED - int foldLevelNow; // SCN_MODIFIED - int foldLevelPrev; // SCN_MODIFIED - int margin; // SCN_MARGINCLICK - int listType; // SCN_USERLISTSELECTION - int x; // SCN_DWELLSTART, SCN_DWELLEND - int y; // SCN_DWELLSTART, SCN_DWELLEND -}; - -// Deprecation section listing all API features that are deprecated and will -// will be removed completely in a future version. -// To enable these features define INCLUDE_DEPRECATED_FEATURES - -#ifdef INCLUDE_DEPRECATED_FEATURES - -#define SCI_SETCARETPOLICY 2369 -#define CARET_CENTER 0x02 -#define CARET_XEVEN 0x08 -#define CARET_XJUMPS 0x10 - -#define SCN_POSCHANGED 2012 -#define SCN_CHECKBRACE 2007 - -#endif - -#endif diff --git a/MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/include/Scintilla.iface b/MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/include/Scintilla.iface deleted file mode 100644 index d8f1923c..00000000 --- a/MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/include/Scintilla.iface +++ /dev/null @@ -1,3012 +0,0 @@ -## First line may be used for shbang - -## This file defines the interface to Scintilla - -## Copyright 2000-2003 by Neil Hodgson -## The License.txt file describes the conditions under which this software may be distributed. - -## A line starting with ## is a pure comment and should be stripped by readers. -## A line starting with #! is for future shbang use -## A line starting with # followed by a space is a documentation comment and refers -## to the next feature definition. - -## Each feature is defined by a line starting with fun, get, set, val or evt. -## cat -> start a category -## fun -> a function -## get -> a property get function -## set -> a property set function -## val -> definition of a constant -## evt -> an event -## enu -> associate an enumeration with a set of vals with a prefix -## lex -> associate a lexer with the lexical classes it produces -## -## All other feature names should be ignored. They may be defined in the future. -## A property may have a set function, a get function or both. Each will have -## "Get" or "Set" in their names and the corresponding name will have the obvious switch. -## A property may be subscripted, in which case the first parameter is the subscript. -## fun, get, and set features have a strict syntax: -## [=,) -## where stands for white space. -## param may be empty (null value) or is [=] -## Additional white space is allowed between elements. -## The syntax for evt is [=[,]*]) -## Feature names that contain an underscore are defined by Windows, so in these -## cases, using the Windows definition is preferred where available. -## The feature numbers are stable so features will not be renumbered. -## Features may be removed but they will go through a period of deprecation -## before removal which is signalled by moving them into the Deprecated category. -## -## enu has the syntax enu=[]* where all the val -## features in this file starting with a given are considered part of the -## enumeration. -## -## lex has the syntax lex=[]* -## where name is a reasonably capitalised (Python, XML) identifier or UI name, -## lexerVal is the val used to specify the lexer, and the list of prefixes is similar -## to enu. The name may not be the same as that used within the lexer so the lexerVal -## should be used to tie these entities together. - -## Types: -## void -## int -## bool -> integer, 1=true, 0=false -## position -> integer position in a document -## colour -> colour integer containing red, green and blue bytes. -## string -> pointer to const character -## stringresult -> pointer to character, NULL-> return size of result -## cells -> pointer to array of cells, each cell containing a style byte and character byte -## textrange -> range of a min and a max position with an output string -## findtext -> searchrange, text -> foundposition -## keymod -> integer containing key in low half and modifiers in high half -## formatrange -## Types no longer used: -## findtextex -> searchrange -## charrange -> range of a min and a max position -## charrangeresult -> like charrange, but output param -## countedstring -## point -> x,y -## pointresult -> like point, but output param -## rectangle -> left,top,right,bottom -## Client code should ignore definitions containing types it does not understand, except -## for possibly #defining the constants - -## Line numbers and positions start at 0. -## String arguments may contain NUL ('\0') characters where the calls provide a length -## argument and retrieve NUL characters. All retrieved strings except for those retrieved -## by GetLine also have a NUL appended but client code should calculate the size that -## will be returned rather than relying upon the NUL whenever possible. Allow for the -## extra NUL character when allocating buffers. The size to allocate for a stringresult -## can be determined by calling with a NULL (0) pointer. - -cat Basics - -################################################ -## For Scintilla.h -val INVALID_POSITION=-1 -# Define start of Scintilla messages to be greater than all Windows edit (EM_*) messages -# as many EM_ messages can be used although that use is deprecated. -val SCI_START=2000 -val SCI_OPTIONAL_START=3000 -val SCI_LEXER_START=4000 - -# Add text to the document at current position. -fun void AddText=2001(int length, string text) - -# Add array of cells to document. -fun void AddStyledText=2002(int length, cells c) - -# Insert string at a position. -fun void InsertText=2003(position pos, string text) - -# Delete all text in the document. -fun void ClearAll=2004(,) - -# Set all style bytes to 0, remove all folding information. -fun void ClearDocumentStyle=2005(,) - -# Returns the number of characters in the document. -get int GetLength=2006(,) - -# Returns the character byte at the position. -get int GetCharAt=2007(position pos,) - -# Returns the position of the caret. -get position GetCurrentPos=2008(,) - -# Returns the position of the opposite end of the selection to the caret. -get position GetAnchor=2009(,) - -# Returns the style byte at the position. -get int GetStyleAt=2010(position pos,) - -# Redoes the next action on the undo history. -fun void Redo=2011(,) - -# Choose between collecting actions into the undo -# history and discarding them. -set void SetUndoCollection=2012(bool collectUndo,) - -# Select all the text in the document. -fun void SelectAll=2013(,) - -# Remember the current position in the undo history as the position -# at which the document was saved. -fun void SetSavePoint=2014(,) - -# Retrieve a buffer of cells. -# Returns the number of bytes in the buffer not including terminating NULs. -fun int GetStyledText=2015(, textrange tr) - -# Are there any redoable actions in the undo history? -fun bool CanRedo=2016(,) - -# Retrieve the line number at which a particular marker is located. -fun int MarkerLineFromHandle=2017(int handle,) - -# Delete a marker. -fun void MarkerDeleteHandle=2018(int handle,) - -# Is undo history being collected? -get bool GetUndoCollection=2019(,) - -enu WhiteSpace=SCWS_ -val SCWS_INVISIBLE=0 -val SCWS_VISIBLEALWAYS=1 -val SCWS_VISIBLEAFTERINDENT=2 - -# Are white space characters currently visible? -# Returns one of SCWS_* constants. -get int GetViewWS=2020(,) - -# Make white space characters invisible, always visible or visible outside indentation. -set void SetViewWS=2021(int viewWS,) - -# Find the position from a point within the window. -fun position PositionFromPoint=2022(int x, int y) - -# Find the position from a point within the window but return -# INVALID_POSITION if not close to text. -fun position PositionFromPointClose=2023(int x, int y) - -# Set caret to start of a line and ensure it is visible. -fun void GotoLine=2024(int line,) - -# Set caret to a position and ensure it is visible. -fun void GotoPos=2025(position pos,) - -# Set the selection anchor to a position. The anchor is the opposite -# end of the selection from the caret. -set void SetAnchor=2026(position posAnchor,) - -# Retrieve the text of the line containing the caret. -# Returns the index of the caret on the line. -fun int GetCurLine=2027(int length, stringresult text) - -# Retrieve the position of the last correctly styled character. -get position GetEndStyled=2028(,) - -enu EndOfLine=SC_EOL_ -val SC_EOL_CRLF=0 -val SC_EOL_CR=1 -val SC_EOL_LF=2 - -# Convert all line endings in the document to one mode. -fun void ConvertEOLs=2029(int eolMode,) - -# Retrieve the current end of line mode - one of CRLF, CR, or LF. -get int GetEOLMode=2030(,) - -# Set the current end of line mode. -set void SetEOLMode=2031(int eolMode,) - -# Set the current styling position to pos and the styling mask to mask. -# The styling mask can be used to protect some bits in each styling byte from modification. -fun void StartStyling=2032(position pos, int mask) - -# Change style from current styling position for length characters to a style -# and move the current styling position to after this newly styled segment. -fun void SetStyling=2033(int length, int style) - -# Is drawing done first into a buffer or direct to the screen? -get bool GetBufferedDraw=2034(,) - -# If drawing is buffered then each line of text is drawn into a bitmap buffer -# before drawing it to the screen to avoid flicker. -set void SetBufferedDraw=2035(bool buffered,) - -# Change the visible size of a tab to be a multiple of the width of a space character. -set void SetTabWidth=2036(int tabWidth,) - -# Retrieve the visible size of a tab. -get int GetTabWidth=2121(,) - -# The SC_CP_UTF8 value can be used to enter Unicode mode. -# This is the same value as CP_UTF8 in Windows -val SC_CP_UTF8=65001 - -# The SC_CP_DBCS value can be used to indicate a DBCS mode for GTK+. -val SC_CP_DBCS=1 - -# Set the code page used to interpret the bytes of the document as characters. -# The SC_CP_UTF8 value can be used to enter Unicode mode. -set void SetCodePage=2037(int codePage,) - -# In palette mode, Scintilla uses the environment's palette calls to display -# more colours. This may lead to ugly displays. -set void SetUsePalette=2039(bool usePalette,) - -enu MarkerSymbol=SC_MARK_ -val MARKER_MAX=31 -val SC_MARK_CIRCLE=0 -val SC_MARK_ROUNDRECT=1 -val SC_MARK_ARROW=2 -val SC_MARK_SMALLRECT=3 -val SC_MARK_SHORTARROW=4 -val SC_MARK_EMPTY=5 -val SC_MARK_ARROWDOWN=6 -val SC_MARK_MINUS=7 -val SC_MARK_PLUS=8 - -# Shapes used for outlining column. -val SC_MARK_VLINE=9 -val SC_MARK_LCORNER=10 -val SC_MARK_TCORNER=11 -val SC_MARK_BOXPLUS=12 -val SC_MARK_BOXPLUSCONNECTED=13 -val SC_MARK_BOXMINUS=14 -val SC_MARK_BOXMINUSCONNECTED=15 -val SC_MARK_LCORNERCURVE=16 -val SC_MARK_TCORNERCURVE=17 -val SC_MARK_CIRCLEPLUS=18 -val SC_MARK_CIRCLEPLUSCONNECTED=19 -val SC_MARK_CIRCLEMINUS=20 -val SC_MARK_CIRCLEMINUSCONNECTED=21 - -# Invisible mark that only sets the line background color. -val SC_MARK_BACKGROUND=22 -val SC_MARK_DOTDOTDOT=23 -val SC_MARK_ARROWS=24 -val SC_MARK_PIXMAP=25 -val SC_MARK_FULLRECT=26 - -val SC_MARK_CHARACTER=10000 - -enu MarkerOutline=SC_MARKNUM_ -# Markers used for outlining column. -val SC_MARKNUM_FOLDEREND=25 -val SC_MARKNUM_FOLDEROPENMID=26 -val SC_MARKNUM_FOLDERMIDTAIL=27 -val SC_MARKNUM_FOLDERTAIL=28 -val SC_MARKNUM_FOLDERSUB=29 -val SC_MARKNUM_FOLDER=30 -val SC_MARKNUM_FOLDEROPEN=31 - -val SC_MASK_FOLDERS=0xFE000000 - -# Set the symbol used for a particular marker number. -fun void MarkerDefine=2040(int markerNumber, int markerSymbol) - -# Set the foreground colour used for a particular marker number. -fun void MarkerSetFore=2041(int markerNumber, colour fore) - -# Set the background colour used for a particular marker number. -fun void MarkerSetBack=2042(int markerNumber, colour back) - -# Add a marker to a line, returning an ID which can be used to find or delete the marker. -fun int MarkerAdd=2043(int line, int markerNumber) - -# Delete a marker from a line. -fun void MarkerDelete=2044(int line, int markerNumber) - -# Delete all markers with a particular number from all lines. -fun void MarkerDeleteAll=2045(int markerNumber,) - -# Get a bit mask of all the markers set on a line. -fun int MarkerGet=2046(int line,) - -# Find the next line after lineStart that includes a marker in mask. -fun int MarkerNext=2047(int lineStart, int markerMask) - -# Find the previous line before lineStart that includes a marker in mask. -fun int MarkerPrevious=2048(int lineStart, int markerMask) - -# Define a marker from a pixmap. -fun void MarkerDefinePixmap=2049(int markerNumber, string pixmap) - -# Add a set of markers to a line. -fun void MarkerAddSet=2466(int line, int set) - -# Set the alpha used for a marker that is drawn in the text area, not the margin. -fun void MarkerSetAlpha=2476(int markerNumber, int alpha) - -enu MarginType=SC_MARGIN_ -val SC_MARGIN_SYMBOL=0 -val SC_MARGIN_NUMBER=1 -val SC_MARGIN_BACK=2 -val SC_MARGIN_FORE=3 - -# Set a margin to be either numeric or symbolic. -set void SetMarginTypeN=2240(int margin, int marginType) - -# Retrieve the type of a margin. -get int GetMarginTypeN=2241(int margin,) - -# Set the width of a margin to a width expressed in pixels. -set void SetMarginWidthN=2242(int margin, int pixelWidth) - -# Retrieve the width of a margin in pixels. -get int GetMarginWidthN=2243(int margin,) - -# Set a mask that determines which markers are displayed in a margin. -set void SetMarginMaskN=2244(int margin, int mask) - -# Retrieve the marker mask of a margin. -get int GetMarginMaskN=2245(int margin,) - -# Make a margin sensitive or insensitive to mouse clicks. -set void SetMarginSensitiveN=2246(int margin, bool sensitive) - -# Retrieve the mouse click sensitivity of a margin. -get bool GetMarginSensitiveN=2247(int margin,) - -# Styles in range 32..38 are predefined for parts of the UI and are not used as normal styles. -# Style 39 is for future use. -enu StylesCommon=STYLE_ -val STYLE_DEFAULT=32 -val STYLE_LINENUMBER=33 -val STYLE_BRACELIGHT=34 -val STYLE_BRACEBAD=35 -val STYLE_CONTROLCHAR=36 -val STYLE_INDENTGUIDE=37 -val STYLE_CALLTIP=38 -val STYLE_LASTPREDEFINED=39 -val STYLE_MAX=127 - -# Character set identifiers are used in StyleSetCharacterSet. -# The values are the same as the Windows *_CHARSET values. -enu CharacterSet=SC_CHARSET_ -val SC_CHARSET_ANSI=0 -val SC_CHARSET_DEFAULT=1 -val SC_CHARSET_BALTIC=186 -val SC_CHARSET_CHINESEBIG5=136 -val SC_CHARSET_EASTEUROPE=238 -val SC_CHARSET_GB2312=134 -val SC_CHARSET_GREEK=161 -val SC_CHARSET_HANGUL=129 -val SC_CHARSET_MAC=77 -val SC_CHARSET_OEM=255 -val SC_CHARSET_RUSSIAN=204 -val SC_CHARSET_CYRILLIC=1251 -val SC_CHARSET_SHIFTJIS=128 -val SC_CHARSET_SYMBOL=2 -val SC_CHARSET_TURKISH=162 -val SC_CHARSET_JOHAB=130 -val SC_CHARSET_HEBREW=177 -val SC_CHARSET_ARABIC=178 -val SC_CHARSET_VIETNAMESE=163 -val SC_CHARSET_THAI=222 -val SC_CHARSET_8859_15=1000 - -# Clear all the styles and make equivalent to the global default style. -set void StyleClearAll=2050(,) - -# Set the foreground colour of a style. -set void StyleSetFore=2051(int style, colour fore) - -# Set the background colour of a style. -set void StyleSetBack=2052(int style, colour back) - -# Set a style to be bold or not. -set void StyleSetBold=2053(int style, bool bold) - -# Set a style to be italic or not. -set void StyleSetItalic=2054(int style, bool italic) - -# Set the size of characters of a style. -set void StyleSetSize=2055(int style, int sizePoints) - -# Set the font of a style. -set void StyleSetFont=2056(int style, string fontName) - -# Set a style to have its end of line filled or not. -set void StyleSetEOLFilled=2057(int style, bool filled) - -# Reset the default style to its state at startup -fun void StyleResetDefault=2058(,) - -# Set a style to be underlined or not. -set void StyleSetUnderline=2059(int style, bool underline) - -enu CaseVisible=SC_CASE_ -val SC_CASE_MIXED=0 -val SC_CASE_UPPER=1 -val SC_CASE_LOWER=2 -# Set a style to be mixed case, or to force upper or lower case. -set void StyleSetCase=2060(int style, int caseForce) - -# Set the character set of the font in a style. -set void StyleSetCharacterSet=2066(int style, int characterSet) - -# Set a style to be a hotspot or not. -set void StyleSetHotSpot=2409(int style, bool hotspot) - -# Set the foreground colour of the selection and whether to use this setting. -fun void SetSelFore=2067(bool useSetting, colour fore) - -# Set the background colour of the selection and whether to use this setting. -fun void SetSelBack=2068(bool useSetting, colour back) - -# Get the alpha of the selection. -get int GetSelAlpha=2477(,) - -# Set the alpha of the selection. -set void SetSelAlpha=2478(int alpha,) - -# Set the foreground colour of the caret. -set void SetCaretFore=2069(colour fore,) - -# When key+modifier combination km is pressed perform msg. -fun void AssignCmdKey=2070(keymod km, int msg) - -# When key+modifier combination km is pressed do nothing. -fun void ClearCmdKey=2071(keymod km,) - -# Drop all key mappings. -fun void ClearAllCmdKeys=2072(,) - -# Set the styles for a segment of the document. -fun void SetStylingEx=2073(int length, string styles) - -# Set a style to be visible or not. -set void StyleSetVisible=2074(int style, bool visible) - -# Get the time in milliseconds that the caret is on and off. -get int GetCaretPeriod=2075(,) - -# Get the time in milliseconds that the caret is on and off. 0 = steady on. -set void SetCaretPeriod=2076(int periodMilliseconds,) - -# Set the set of characters making up words for when moving or selecting by word. -# First sets deaults like SetCharsDefault. -set void SetWordChars=2077(, string characters) - -# Start a sequence of actions that is undone and redone as a unit. -# May be nested. -fun void BeginUndoAction=2078(,) - -# End a sequence of actions that is undone and redone as a unit. -fun void EndUndoAction=2079(,) - -enu IndicatorStyle=INDIC_ -val INDIC_MAX=7 -val INDIC_PLAIN=0 -val INDIC_SQUIGGLE=1 -val INDIC_TT=2 -val INDIC_DIAGONAL=3 -val INDIC_STRIKE=4 -val INDIC_HIDDEN=5 -val INDIC_BOX=6 -val INDIC_ROUNDBOX=7 -val INDIC0_MASK=0x20 -val INDIC1_MASK=0x40 -val INDIC2_MASK=0x80 -val INDICS_MASK=0xE0 - -# Set an indicator to plain, squiggle or TT. -set void IndicSetStyle=2080(int indic, int style) - -# Retrieve the style of an indicator. -get int IndicGetStyle=2081(int indic,) - -# Set the foreground colour of an indicator. -set void IndicSetFore=2082(int indic, colour fore) - -# Retrieve the foreground colour of an indicator. -get colour IndicGetFore=2083(int indic,) - -# Set the foreground colour of all whitespace and whether to use this setting. -fun void SetWhitespaceFore=2084(bool useSetting, colour fore) - -# Set the background colour of all whitespace and whether to use this setting. -fun void SetWhitespaceBack=2085(bool useSetting, colour back) - -# Divide each styling byte into lexical class bits (default: 5) and indicator -# bits (default: 3). If a lexer requires more than 32 lexical states, then this -# is used to expand the possible states. -set void SetStyleBits=2090(int bits,) - -# Retrieve number of bits in style bytes used to hold the lexical state. -get int GetStyleBits=2091(,) - -# Used to hold extra styling information for each line. -set void SetLineState=2092(int line, int state) - -# Retrieve the extra styling information for a line. -get int GetLineState=2093(int line,) - -# Retrieve the last line number that has line state. -get int GetMaxLineState=2094(,) - -# Is the background of the line containing the caret in a different colour? -get bool GetCaretLineVisible=2095(,) - -# Display the background of the line containing the caret in a different colour. -set void SetCaretLineVisible=2096(bool show,) - -# Get the colour of the background of the line containing the caret. -get colour GetCaretLineBack=2097(,) - -# Set the colour of the background of the line containing the caret. -set void SetCaretLineBack=2098(colour back,) - -# Set a style to be changeable or not (read only). -# Experimental feature, currently buggy. -set void StyleSetChangeable=2099(int style, bool changeable) - -# Display a auto-completion list. -# The lenEntered parameter indicates how many characters before -# the caret should be used to provide context. -fun void AutoCShow=2100(int lenEntered, string itemList) - -# Remove the auto-completion list from the screen. -fun void AutoCCancel=2101(,) - -# Is there an auto-completion list visible? -fun bool AutoCActive=2102(,) - -# Retrieve the position of the caret when the auto-completion list was displayed. -fun position AutoCPosStart=2103(,) - -# User has selected an item so remove the list and insert the selection. -fun void AutoCComplete=2104(,) - -# Define a set of character that when typed cancel the auto-completion list. -fun void AutoCStops=2105(, string characterSet) - -# Change the separator character in the string setting up an auto-completion list. -# Default is space but can be changed if items contain space. -set void AutoCSetSeparator=2106(int separatorCharacter,) - -# Retrieve the auto-completion list separator character. -get int AutoCGetSeparator=2107(,) - -# Select the item in the auto-completion list that starts with a string. -fun void AutoCSelect=2108(, string text) - -# Should the auto-completion list be cancelled if the user backspaces to a -# position before where the box was created. -set void AutoCSetCancelAtStart=2110(bool cancel,) - -# Retrieve whether auto-completion cancelled by backspacing before start. -get bool AutoCGetCancelAtStart=2111(,) - -# Define a set of characters that when typed will cause the autocompletion to -# choose the selected item. -set void AutoCSetFillUps=2112(, string characterSet) - -# Should a single item auto-completion list automatically choose the item. -set void AutoCSetChooseSingle=2113(bool chooseSingle,) - -# Retrieve whether a single item auto-completion list automatically choose the item. -get bool AutoCGetChooseSingle=2114(,) - -# Set whether case is significant when performing auto-completion searches. -set void AutoCSetIgnoreCase=2115(bool ignoreCase,) - -# Retrieve state of ignore case flag. -get bool AutoCGetIgnoreCase=2116(,) - -# Display a list of strings and send notification when user chooses one. -fun void UserListShow=2117(int listType, string itemList) - -# Set whether or not autocompletion is hidden automatically when nothing matches. -set void AutoCSetAutoHide=2118(bool autoHide,) - -# Retrieve whether or not autocompletion is hidden automatically when nothing matches. -get bool AutoCGetAutoHide=2119(,) - -# Set whether or not autocompletion deletes any word characters -# after the inserted text upon completion. -set void AutoCSetDropRestOfWord=2270(bool dropRestOfWord,) - -# Retrieve whether or not autocompletion deletes any word characters -# after the inserted text upon completion. -get bool AutoCGetDropRestOfWord=2271(,) - -# Register an XPM image for use in autocompletion lists. -fun void RegisterImage=2405(int type, string xpmData) - -# Clear all the registered XPM images. -fun void ClearRegisteredImages=2408(,) - -# Retrieve the auto-completion list type-separator character. -get int AutoCGetTypeSeparator=2285(,) - -# Change the type-separator character in the string setting up an auto-completion list. -# Default is '?' but can be changed if items contain '?'. -set void AutoCSetTypeSeparator=2286(int separatorCharacter,) - -# Set the maximum width, in characters, of auto-completion and user lists. -# Set to 0 to autosize to fit longest item, which is the default. -set void AutoCSetMaxWidth=2208(int characterCount,) - -# Get the maximum width, in characters, of auto-completion and user lists. -get int AutoCGetMaxWidth=2209(,) - -# Set the maximum height, in rows, of auto-completion and user lists. -# The default is 5 rows. -set void AutoCSetMaxHeight=2210(int rowCount,) - -# Set the maximum height, in rows, of auto-completion and user lists. -get int AutoCGetMaxHeight=2211(,) - -# Set the number of spaces used for one level of indentation. -set void SetIndent=2122(int indentSize,) - -# Retrieve indentation size. -get int GetIndent=2123(,) - -# Indentation will only use space characters if useTabs is false, otherwise -# it will use a combination of tabs and spaces. -set void SetUseTabs=2124(bool useTabs,) - -# Retrieve whether tabs will be used in indentation. -get bool GetUseTabs=2125(,) - -# Change the indentation of a line to a number of columns. -set void SetLineIndentation=2126(int line, int indentSize) - -# Retrieve the number of columns that a line is indented. -get int GetLineIndentation=2127(int line,) - -# Retrieve the position before the first non indentation character on a line. -get position GetLineIndentPosition=2128(int line,) - -# Retrieve the column number of a position, taking tab width into account. -get int GetColumn=2129(position pos,) - -# Show or hide the horizontal scroll bar. -set void SetHScrollBar=2130(bool show,) - -# Is the horizontal scroll bar visible? -get bool GetHScrollBar=2131(,) - -# Show or hide indentation guides. -set void SetIndentationGuides=2132(bool show,) - -# Are the indentation guides visible? -get bool GetIndentationGuides=2133(,) - -# Set the highlighted indentation guide column. -# 0 = no highlighted guide. -set void SetHighlightGuide=2134(int column,) - -# Get the highlighted indentation guide column. -get int GetHighlightGuide=2135(,) - -# Get the position after the last visible characters on a line. -get int GetLineEndPosition=2136(int line,) - -# Get the code page used to interpret the bytes of the document as characters. -get int GetCodePage=2137(,) - -# Get the foreground colour of the caret. -get colour GetCaretFore=2138(,) - -# In palette mode? -get bool GetUsePalette=2139(,) - -# In read-only mode? -get bool GetReadOnly=2140(,) - -# Sets the position of the caret. -set void SetCurrentPos=2141(position pos,) - -# Sets the position that starts the selection - this becomes the anchor. -set void SetSelectionStart=2142(position pos,) - -# Returns the position at the start of the selection. -get position GetSelectionStart=2143(,) - -# Sets the position that ends the selection - this becomes the currentPosition. -set void SetSelectionEnd=2144(position pos,) - -# Returns the position at the end of the selection. -get position GetSelectionEnd=2145(,) - -# Sets the print magnification added to the point size of each style for printing. -set void SetPrintMagnification=2146(int magnification,) - -# Returns the print magnification. -get int GetPrintMagnification=2147(,) - -enu PrintOption=SC_PRINT_ -# PrintColourMode - use same colours as screen. -val SC_PRINT_NORMAL=0 -# PrintColourMode - invert the light value of each style for printing. -val SC_PRINT_INVERTLIGHT=1 -# PrintColourMode - force black text on white background for printing. -val SC_PRINT_BLACKONWHITE=2 -# PrintColourMode - text stays coloured, but all background is forced to be white for printing. -val SC_PRINT_COLOURONWHITE=3 -# PrintColourMode - only the default-background is forced to be white for printing. -val SC_PRINT_COLOURONWHITEDEFAULTBG=4 - -# Modify colours when printing for clearer printed text. -set void SetPrintColourMode=2148(int mode,) - -# Returns the print colour mode. -get int GetPrintColourMode=2149(,) - -enu FindOption=SCFIND_ -val SCFIND_WHOLEWORD=2 -val SCFIND_MATCHCASE=4 -val SCFIND_WORDSTART=0x00100000 -val SCFIND_REGEXP=0x00200000 -val SCFIND_POSIX=0x00400000 - -# Find some text in the document. -fun position FindText=2150(int flags, findtext ft) - -# On Windows, will draw the document into a display context such as a printer. -fun position FormatRange=2151(bool draw, formatrange fr) - -# Retrieve the display line at the top of the display. -get int GetFirstVisibleLine=2152(,) - -# Retrieve the contents of a line. -# Returns the length of the line. -fun int GetLine=2153(int line, stringresult text) - -# Returns the number of lines in the document. There is always at least one. -get int GetLineCount=2154(,) - -# Sets the size in pixels of the left margin. -set void SetMarginLeft=2155(, int pixelWidth) - -# Returns the size in pixels of the left margin. -get int GetMarginLeft=2156(,) - -# Sets the size in pixels of the right margin. -set void SetMarginRight=2157(, int pixelWidth) - -# Returns the size in pixels of the right margin. -get int GetMarginRight=2158(,) - -# Is the document different from when it was last saved? -get bool GetModify=2159(,) - -# Select a range of text. -fun void SetSel=2160(position start, position end) - -# Retrieve the selected text. -# Return the length of the text. -fun int GetSelText=2161(, stringresult text) - -# Retrieve a range of text. -# Return the length of the text. -fun int GetTextRange=2162(, textrange tr) - -# Draw the selection in normal style or with selection highlighted. -fun void HideSelection=2163(bool normal,) - -# Retrieve the x value of the point in the window where a position is displayed. -fun int PointXFromPosition=2164(, position pos) - -# Retrieve the y value of the point in the window where a position is displayed. -fun int PointYFromPosition=2165(, position pos) - -# Retrieve the line containing a position. -fun int LineFromPosition=2166(position pos,) - -# Retrieve the position at the start of a line. -fun position PositionFromLine=2167(int line,) - -# Scroll horizontally and vertically. -fun void LineScroll=2168(int columns, int lines) - -# Ensure the caret is visible. -fun void ScrollCaret=2169(,) - -# Replace the selected text with the argument text. -fun void ReplaceSel=2170(, string text) - -# Set to read only or read write. -set void SetReadOnly=2171(bool readOnly,) - -# Null operation. -fun void Null=2172(,) - -# Will a paste succeed? -fun bool CanPaste=2173(,) - -# Are there any undoable actions in the undo history? -fun bool CanUndo=2174(,) - -# Delete the undo history. -fun void EmptyUndoBuffer=2175(,) - -# Undo one action in the undo history. -fun void Undo=2176(,) - -# Cut the selection to the clipboard. -fun void Cut=2177(,) - -# Copy the selection to the clipboard. -fun void Copy=2178(,) - -# Paste the contents of the clipboard into the document replacing the selection. -fun void Paste=2179(,) - -# Clear the selection. -fun void Clear=2180(,) - -# Replace the contents of the document with the argument text. -fun void SetText=2181(, string text) - -# Retrieve all the text in the document. -# Returns number of characters retrieved. -fun int GetText=2182(int length, stringresult text) - -# Retrieve the number of characters in the document. -get int GetTextLength=2183(,) - -# Retrieve a pointer to a function that processes messages for this Scintilla. -get int GetDirectFunction=2184(,) - -# Retrieve a pointer value to use as the first argument when calling -# the function returned by GetDirectFunction. -get int GetDirectPointer=2185(,) - -# Set to overtype (true) or insert mode. -set void SetOvertype=2186(bool overtype,) - -# Returns true if overtype mode is active otherwise false is returned. -get bool GetOvertype=2187(,) - -# Set the width of the insert mode caret. -set void SetCaretWidth=2188(int pixelWidth,) - -# Returns the width of the insert mode caret. -get int GetCaretWidth=2189(,) - -# Sets the position that starts the target which is used for updating the -# document without affecting the scroll position. -set void SetTargetStart=2190(position pos,) - -# Get the position that starts the target. -get position GetTargetStart=2191(,) - -# Sets the position that ends the target which is used for updating the -# document without affecting the scroll position. -set void SetTargetEnd=2192(position pos,) - -# Get the position that ends the target. -get position GetTargetEnd=2193(,) - -# Replace the target text with the argument text. -# Text is counted so it can contain NULs. -# Returns the length of the replacement text. -fun int ReplaceTarget=2194(int length, string text) - -# Replace the target text with the argument text after \d processing. -# Text is counted so it can contain NULs. -# Looks for \d where d is between 1 and 9 and replaces these with the strings -# matched in the last search operation which were surrounded by \( and \). -# Returns the length of the replacement text including any change -# caused by processing the \d patterns. -fun int ReplaceTargetRE=2195(int length, string text) - -# Search for a counted string in the target and set the target to the found -# range. Text is counted so it can contain NULs. -# Returns length of range or -1 for failure in which case target is not moved. -fun int SearchInTarget=2197(int length, string text) - -# Set the search flags used by SearchInTarget. -set void SetSearchFlags=2198(int flags,) - -# Get the search flags used by SearchInTarget. -get int GetSearchFlags=2199(,) - -# Show a call tip containing a definition near position pos. -fun void CallTipShow=2200(position pos, string definition) - -# Remove the call tip from the screen. -fun void CallTipCancel=2201(,) - -# Is there an active call tip? -fun bool CallTipActive=2202(,) - -# Retrieve the position where the caret was before displaying the call tip. -fun position CallTipPosStart=2203(,) - -# Highlight a segment of the definition. -fun void CallTipSetHlt=2204(int start, int end) - -# Set the background colour for the call tip. -set void CallTipSetBack=2205(colour back,) - -# Set the foreground colour for the call tip. -set void CallTipSetFore=2206(colour fore,) - -# Set the foreground colour for the highlighted part of the call tip. -set void CallTipSetForeHlt=2207(colour fore,) - -# Enable use of STYLE_CALLTIP and set call tip tab size in pixels. -set void CallTipUseStyle=2212(int tabSize,) - -# Find the display line of a document line taking hidden lines into account. -fun int VisibleFromDocLine=2220(int line,) - -# Find the document line of a display line taking hidden lines into account. -fun int DocLineFromVisible=2221(int lineDisplay,) - -# The number of display lines needed to wrap a document line -fun int WrapCount=2235(int line,) - -enu FoldLevel=SC_FOLDLEVEL -val SC_FOLDLEVELBASE=0x400 -val SC_FOLDLEVELWHITEFLAG=0x1000 -val SC_FOLDLEVELHEADERFLAG=0x2000 -val SC_FOLDLEVELBOXHEADERFLAG=0x4000 -val SC_FOLDLEVELBOXFOOTERFLAG=0x8000 -val SC_FOLDLEVELCONTRACTED=0x10000 -val SC_FOLDLEVELUNINDENT=0x20000 -val SC_FOLDLEVELNUMBERMASK=0x0FFF - -# Set the fold level of a line. -# This encodes an integer level along with flags indicating whether the -# line is a header and whether it is effectively white space. -set void SetFoldLevel=2222(int line, int level) - -# Retrieve the fold level of a line. -get int GetFoldLevel=2223(int line,) - -# Find the last child line of a header line. -get int GetLastChild=2224(int line, int level) - -# Find the parent line of a child line. -get int GetFoldParent=2225(int line,) - -# Make a range of lines visible. -fun void ShowLines=2226(int lineStart, int lineEnd) - -# Make a range of lines invisible. -fun void HideLines=2227(int lineStart, int lineEnd) - -# Is a line visible? -get bool GetLineVisible=2228(int line,) - -# Show the children of a header line. -set void SetFoldExpanded=2229(int line, bool expanded) - -# Is a header line expanded? -get bool GetFoldExpanded=2230(int line,) - -# Switch a header line between expanded and contracted. -fun void ToggleFold=2231(int line,) - -# Ensure a particular line is visible by expanding any header line hiding it. -fun void EnsureVisible=2232(int line,) - -enu FoldFlag=SC_FOLDFLAG_ -val SC_FOLDFLAG_LINEBEFORE_EXPANDED=0x0002 -val SC_FOLDFLAG_LINEBEFORE_CONTRACTED=0x0004 -val SC_FOLDFLAG_LINEAFTER_EXPANDED=0x0008 -val SC_FOLDFLAG_LINEAFTER_CONTRACTED=0x0010 -val SC_FOLDFLAG_LEVELNUMBERS=0x0040 -val SC_FOLDFLAG_BOX=0x0001 - -# Set some style options for folding. -fun void SetFoldFlags=2233(int flags,) - -# Ensure a particular line is visible by expanding any header line hiding it. -# Use the currently set visibility policy to determine which range to display. -fun void EnsureVisibleEnforcePolicy=2234(int line,) - -# Sets whether a tab pressed when caret is within indentation indents. -set void SetTabIndents=2260(bool tabIndents,) - -# Does a tab pressed when caret is within indentation indent? -get bool GetTabIndents=2261(,) - -# Sets whether a backspace pressed when caret is within indentation unindents. -set void SetBackSpaceUnIndents=2262(bool bsUnIndents,) - -# Does a backspace pressed when caret is within indentation unindent? -get bool GetBackSpaceUnIndents=2263(,) - -val SC_TIME_FOREVER=10000000 - -# Sets the time the mouse must sit still to generate a mouse dwell event. -set void SetMouseDwellTime=2264(int periodMilliseconds,) - -# Retrieve the time the mouse must sit still to generate a mouse dwell event. -get int GetMouseDwellTime=2265(,) - -# Get position of start of word. -fun int WordStartPosition=2266(position pos, bool onlyWordCharacters) - -# Get position of end of word. -fun int WordEndPosition=2267(position pos, bool onlyWordCharacters) - -enu Wrap=SC_WRAP_ -val SC_WRAP_NONE=0 -val SC_WRAP_WORD=1 -val SC_WRAP_CHAR=2 - -# Sets whether text is word wrapped. -set void SetWrapMode=2268(int mode,) - -# Retrieve whether text is word wrapped. -get int GetWrapMode=2269(,) - -enu WrapVisualFlag=SC_WRAPVISUALFLAG_ -val SC_WRAPVISUALFLAG_NONE=0x0000 -val SC_WRAPVISUALFLAG_END=0x0001 -val SC_WRAPVISUALFLAG_START=0x0002 - -# Set the display mode of visual flags for wrapped lines. -set void SetWrapVisualFlags=2460(int wrapVisualFlags,) - -# Retrive the display mode of visual flags for wrapped lines. -get int GetWrapVisualFlags=2461(,) - -enu WrapVisualLocation=SC_WRAPVISUALFLAGLOC_ -val SC_WRAPVISUALFLAGLOC_DEFAULT=0x0000 -val SC_WRAPVISUALFLAGLOC_END_BY_TEXT=0x0001 -val SC_WRAPVISUALFLAGLOC_START_BY_TEXT=0x0002 - -# Set the location of visual flags for wrapped lines. -set void SetWrapVisualFlagsLocation=2462(int wrapVisualFlagsLocation,) - -# Retrive the location of visual flags for wrapped lines. -get int GetWrapVisualFlagsLocation=2463(,) - -# Set the start indent for wrapped lines. -set void SetWrapStartIndent=2464(int indent,) - -# Retrive the start indent for wrapped lines. -get int GetWrapStartIndent=2465(,) - -enu LineCache=SC_CACHE_ -val SC_CACHE_NONE=0 -val SC_CACHE_CARET=1 -val SC_CACHE_PAGE=2 -val SC_CACHE_DOCUMENT=3 - -# Sets the degree of caching of layout information. -set void SetLayoutCache=2272(int mode,) - -# Retrieve the degree of caching of layout information. -get int GetLayoutCache=2273(,) - -# Sets the document width assumed for scrolling. -set void SetScrollWidth=2274(int pixelWidth,) - -# Retrieve the document width assumed for scrolling. -get int GetScrollWidth=2275(,) - -# Measure the pixel width of some text in a particular style. -# NUL terminated text argument. -# Does not handle tab or control characters. -fun int TextWidth=2276(int style, string text) - -# Sets the scroll range so that maximum scroll position has -# the last line at the bottom of the view (default). -# Setting this to false allows scrolling one page below the last line. -set void SetEndAtLastLine=2277(bool endAtLastLine,) - -# Retrieve whether the maximum scroll position has the last -# line at the bottom of the view. -get bool GetEndAtLastLine=2278(,) - -# Retrieve the height of a particular line of text in pixels. -fun int TextHeight=2279(int line,) - -# Show or hide the vertical scroll bar. -set void SetVScrollBar=2280(bool show,) - -# Is the vertical scroll bar visible? -get bool GetVScrollBar=2281(,) - -# Append a string to the end of the document without changing the selection. -fun void AppendText=2282(int length, string text) - -# Is drawing done in two phases with backgrounds drawn before faoregrounds? -get bool GetTwoPhaseDraw=2283(,) - -# In twoPhaseDraw mode, drawing is performed in two phases, first the background -# and then the foreground. This avoids chopping off characters that overlap the next run. -set void SetTwoPhaseDraw=2284(bool twoPhase,) - -# Make the target range start and end be the same as the selection range start and end. -fun void TargetFromSelection=2287(,) - -# Join the lines in the target. -fun void LinesJoin=2288(,) - -# Split the lines in the target into lines that are less wide than pixelWidth -# where possible. -fun void LinesSplit=2289(int pixelWidth,) - -# Set the colours used as a chequerboard pattern in the fold margin -fun void SetFoldMarginColour=2290(bool useSetting, colour back) -fun void SetFoldMarginHiColour=2291(bool useSetting, colour fore) - -## New messages go here - -## Start of key messages -# Move caret down one line. -fun void LineDown=2300(,) - -# Move caret down one line extending selection to new caret position. -fun void LineDownExtend=2301(,) - -# Move caret up one line. -fun void LineUp=2302(,) - -# Move caret up one line extending selection to new caret position. -fun void LineUpExtend=2303(,) - -# Move caret left one character. -fun void CharLeft=2304(,) - -# Move caret left one character extending selection to new caret position. -fun void CharLeftExtend=2305(,) - -# Move caret right one character. -fun void CharRight=2306(,) - -# Move caret right one character extending selection to new caret position. -fun void CharRightExtend=2307(,) - -# Move caret left one word. -fun void WordLeft=2308(,) - -# Move caret left one word extending selection to new caret position. -fun void WordLeftExtend=2309(,) - -# Move caret right one word. -fun void WordRight=2310(,) - -# Move caret right one word extending selection to new caret position. -fun void WordRightExtend=2311(,) - -# Move caret to first position on line. -fun void Home=2312(,) - -# Move caret to first position on line extending selection to new caret position. -fun void HomeExtend=2313(,) - -# Move caret to last position on line. -fun void LineEnd=2314(,) - -# Move caret to last position on line extending selection to new caret position. -fun void LineEndExtend=2315(,) - -# Move caret to first position in document. -fun void DocumentStart=2316(,) - -# Move caret to first position in document extending selection to new caret position. -fun void DocumentStartExtend=2317(,) - -# Move caret to last position in document. -fun void DocumentEnd=2318(,) - -# Move caret to last position in document extending selection to new caret position. -fun void DocumentEndExtend=2319(,) - -# Move caret one page up. -fun void PageUp=2320(,) - -# Move caret one page up extending selection to new caret position. -fun void PageUpExtend=2321(,) - -# Move caret one page down. -fun void PageDown=2322(,) - -# Move caret one page down extending selection to new caret position. -fun void PageDownExtend=2323(,) - -# Switch from insert to overtype mode or the reverse. -fun void EditToggleOvertype=2324(,) - -# Cancel any modes such as call tip or auto-completion list display. -fun void Cancel=2325(,) - -# Delete the selection or if no selection, the character before the caret. -fun void DeleteBack=2326(,) - -# If selection is empty or all on one line replace the selection with a tab character. -# If more than one line selected, indent the lines. -fun void Tab=2327(,) - -# Dedent the selected lines. -fun void BackTab=2328(,) - -# Insert a new line, may use a CRLF, CR or LF depending on EOL mode. -fun void NewLine=2329(,) - -# Insert a Form Feed character. -fun void FormFeed=2330(,) - -# Move caret to before first visible character on line. -# If already there move to first character on line. -fun void VCHome=2331(,) - -# Like VCHome but extending selection to new caret position. -fun void VCHomeExtend=2332(,) - -# Magnify the displayed text by increasing the sizes by 1 point. -fun void ZoomIn=2333(,) - -# Make the displayed text smaller by decreasing the sizes by 1 point. -fun void ZoomOut=2334(,) - -# Delete the word to the left of the caret. -fun void DelWordLeft=2335(,) - -# Delete the word to the right of the caret. -fun void DelWordRight=2336(,) - -# Cut the line containing the caret. -fun void LineCut=2337(,) - -# Delete the line containing the caret. -fun void LineDelete=2338(,) - -# Switch the current line with the previous. -fun void LineTranspose=2339(,) - -# Duplicate the current line. -fun void LineDuplicate=2404(,) - -# Transform the selection to lower case. -fun void LowerCase=2340(,) - -# Transform the selection to upper case. -fun void UpperCase=2341(,) - -# Scroll the document down, keeping the caret visible. -fun void LineScrollDown=2342(,) - -# Scroll the document up, keeping the caret visible. -fun void LineScrollUp=2343(,) - -# Delete the selection or if no selection, the character before the caret. -# Will not delete the character before at the start of a line. -fun void DeleteBackNotLine=2344(,) - -# Move caret to first position on display line. -fun void HomeDisplay=2345(,) - -# Move caret to first position on display line extending selection to -# new caret position. -fun void HomeDisplayExtend=2346(,) - -# Move caret to last position on display line. -fun void LineEndDisplay=2347(,) - -# Move caret to last position on display line extending selection to new -# caret position. -fun void LineEndDisplayExtend=2348(,) - -# These are like their namesakes Home(Extend)?, LineEnd(Extend)?, VCHome(Extend)? -# except they behave differently when word-wrap is enabled: -# They go first to the start / end of the display line, like (Home|LineEnd)Display -# The difference is that, the cursor is already at the point, it goes on to the start -# or end of the document line, as appropriate for (Home|LineEnd|VCHome)(Extend)?. - -fun void HomeWrap=2349(,) -fun void HomeWrapExtend=2450(,) -fun void LineEndWrap=2451(,) -fun void LineEndWrapExtend=2452(,) -fun void VCHomeWrap=2453(,) -fun void VCHomeWrapExtend=2454(,) - -# Copy the line containing the caret. -fun void LineCopy=2455(,) - -# Move the caret inside current view if it's not there already. -fun void MoveCaretInsideView=2401(,) - -# How many characters are on a line, not including end of line characters? -fun int LineLength=2350(int line,) - -# Highlight the characters at two positions. -fun void BraceHighlight=2351(position pos1, position pos2) - -# Highlight the character at a position indicating there is no matching brace. -fun void BraceBadLight=2352(position pos,) - -# Find the position of a matching brace or INVALID_POSITION if no match. -fun position BraceMatch=2353(position pos,) - -# Are the end of line characters visible? -get bool GetViewEOL=2355(,) - -# Make the end of line characters visible or invisible. -set void SetViewEOL=2356(bool visible,) - -# Retrieve a pointer to the document object. -get int GetDocPointer=2357(,) - -# Change the document object used. -set void SetDocPointer=2358(, int pointer) - -# Set which document modification events are sent to the container. -set void SetModEventMask=2359(int mask,) - -enu EdgeVisualStyle=EDGE_ -val EDGE_NONE=0 -val EDGE_LINE=1 -val EDGE_BACKGROUND=2 - -# Retrieve the column number which text should be kept within. -get int GetEdgeColumn=2360(,) - -# Set the column number of the edge. -# If text goes past the edge then it is highlighted. -set void SetEdgeColumn=2361(int column,) - -# Retrieve the edge highlight mode. -get int GetEdgeMode=2362(,) - -# The edge may be displayed by a line (EDGE_LINE) or by highlighting text that -# goes beyond it (EDGE_BACKGROUND) or not displayed at all (EDGE_NONE). -set void SetEdgeMode=2363(int mode,) - -# Retrieve the colour used in edge indication. -get colour GetEdgeColour=2364(,) - -# Change the colour used in edge indication. -set void SetEdgeColour=2365(colour edgeColour,) - -# Sets the current caret position to be the search anchor. -fun void SearchAnchor=2366(,) - -# Find some text starting at the search anchor. -# Does not ensure the selection is visible. -fun int SearchNext=2367(int flags, string text) - -# Find some text starting at the search anchor and moving backwards. -# Does not ensure the selection is visible. -fun int SearchPrev=2368(int flags, string text) - -# Retrieves the number of lines completely visible. -get int LinesOnScreen=2370(,) - -# Set whether a pop up menu is displayed automatically when the user presses -# the wrong mouse button. -fun void UsePopUp=2371(bool allowPopUp,) - -# Is the selection rectangular? The alternative is the more common stream selection. -get bool SelectionIsRectangle=2372(,) - -# Set the zoom level. This number of points is added to the size of all fonts. -# It may be positive to magnify or negative to reduce. -set void SetZoom=2373(int zoom,) -# Retrieve the zoom level. -get int GetZoom=2374(,) - -# Create a new document object. -# Starts with reference count of 1 and not selected into editor. -fun int CreateDocument=2375(,) -# Extend life of document. -fun void AddRefDocument=2376(, int doc) -# Release a reference to the document, deleting document if it fades to black. -fun void ReleaseDocument=2377(, int doc) - -# Get which document modification events are sent to the container. -get int GetModEventMask=2378(,) - -# Change internal focus flag. -set void SetFocus=2380(bool focus,) -# Get internal focus flag. -get bool GetFocus=2381(,) - -# Change error status - 0 = OK. -set void SetStatus=2382(int statusCode,) -# Get error status. -get int GetStatus=2383(,) - -# Set whether the mouse is captured when its button is pressed. -set void SetMouseDownCaptures=2384(bool captures,) -# Get whether mouse gets captured. -get bool GetMouseDownCaptures=2385(,) - -enu CursorShape=SC_CURSOR -val SC_CURSORNORMAL=-1 -val SC_CURSORWAIT=4 -# Sets the cursor to one of the SC_CURSOR* values. -set void SetCursor=2386(int cursorType,) -# Get cursor type. -get int GetCursor=2387(,) - -# Change the way control characters are displayed: -# If symbol is < 32, keep the drawn way, else, use the given character. -set void SetControlCharSymbol=2388(int symbol,) -# Get the way control characters are displayed. -get int GetControlCharSymbol=2389(,) - -# Move to the previous change in capitalisation. -fun void WordPartLeft=2390(,) -# Move to the previous change in capitalisation extending selection -# to new caret position. -fun void WordPartLeftExtend=2391(,) -# Move to the change next in capitalisation. -fun void WordPartRight=2392(,) -# Move to the next change in capitalisation extending selection -# to new caret position. -fun void WordPartRightExtend=2393(,) - -# Constants for use with SetVisiblePolicy, similar to SetCaretPolicy. -val VISIBLE_SLOP=0x01 -val VISIBLE_STRICT=0x04 -# Set the way the display area is determined when a particular line -# is to be moved to by Find, FindNext, GotoLine, etc. -fun void SetVisiblePolicy=2394(int visiblePolicy, int visibleSlop) - -# Delete back from the current position to the start of the line. -fun void DelLineLeft=2395(,) - -# Delete forwards from the current position to the end of the line. -fun void DelLineRight=2396(,) - -# Get and Set the xOffset (ie, horizonal scroll position). -set void SetXOffset=2397(int newOffset,) -get int GetXOffset=2398(,) - -# Set the last x chosen value to be the caret x position. -fun void ChooseCaretX=2399(,) - -# Set the focus to this Scintilla widget. -fun void GrabFocus=2400(,) - -enu CaretPolicy = CARET_ -# Caret policy, used by SetXCaretPolicy and SetYCaretPolicy. -# If CARET_SLOP is set, we can define a slop value: caretSlop. -# This value defines an unwanted zone (UZ) where the caret is... unwanted. -# This zone is defined as a number of pixels near the vertical margins, -# and as a number of lines near the horizontal margins. -# By keeping the caret away from the edges, it is seen within its context, -# so it is likely that the identifier that the caret is on can be completely seen, -# and that the current line is seen with some of the lines following it which are -# often dependent on that line. -val CARET_SLOP=0x01 -# If CARET_STRICT is set, the policy is enforced... strictly. -# The caret is centred on the display if slop is not set, -# and cannot go in the UZ if slop is set. -val CARET_STRICT=0x04 -# If CARET_JUMPS is set, the display is moved more energetically -# so the caret can move in the same direction longer before the policy is applied again. -val CARET_JUMPS=0x10 -# If CARET_EVEN is not set, instead of having symmetrical UZs, -# the left and bottom UZs are extended up to right and top UZs respectively. -# This way, we favour the displaying of useful information: the begining of lines, -# where most code reside, and the lines after the caret, eg. the body of a function. -val CARET_EVEN=0x08 - -# Set the way the caret is kept visible when going sideway. -# The exclusion zone is given in pixels. -fun void SetXCaretPolicy=2402(int caretPolicy, int caretSlop) - -# Set the way the line the caret is on is kept visible. -# The exclusion zone is given in lines. -fun void SetYCaretPolicy=2403(int caretPolicy, int caretSlop) - -# Set printing to line wrapped (SC_WRAP_WORD) or not line wrapped (SC_WRAP_NONE). -set void SetPrintWrapMode=2406(int mode,) - -# Is printing line wrapped? -get int GetPrintWrapMode=2407(,) - -# Set a fore colour for active hotspots. -set void SetHotspotActiveFore=2410(bool useSetting, colour fore) - -# Set a back colour for active hotspots. -set void SetHotspotActiveBack=2411(bool useSetting, colour back) - -# Enable / Disable underlining active hotspots. -set void SetHotspotActiveUnderline=2412(bool underline,) - -# Limit hotspots to single line so hotspots on two lines don't merge. -set void SetHotspotSingleLine=2421(bool singleLine,) - -# Move caret between paragraphs (delimited by empty lines). -fun void ParaDown=2413(,) -fun void ParaDownExtend=2414(,) -fun void ParaUp=2415(,) -fun void ParaUpExtend=2416(,) - -# Given a valid document position, return the previous position taking code -# page into account. Returns 0 if passed 0. -fun position PositionBefore=2417(position pos,) - -# Given a valid document position, return the next position taking code -# page into account. Maximum value returned is the last position in the document. -fun position PositionAfter=2418(position pos,) - -# Copy a range of text to the clipboard. Positions are clipped into the document. -fun void CopyRange=2419(position start, position end) - -# Copy argument text to the clipboard. -fun void CopyText=2420(int length, string text) - -enu SelectionMode=SC_SEL_ -val SC_SEL_STREAM=0 -val SC_SEL_RECTANGLE=1 -val SC_SEL_LINES=2 - -# Set the selection mode to stream (SC_SEL_STREAM) or rectangular (SC_SEL_RECTANGLE) or -# by lines (SC_SEL_LINES). -set void SetSelectionMode=2422(int mode,) - -# Get the mode of the current selection. -get int GetSelectionMode=2423(,) - -# Retrieve the position of the start of the selection at the given line (INVALID_POSITION if no selection on this line). -fun position GetLineSelStartPosition=2424(int line,) - -# Retrieve the position of the end of the selection at the given line (INVALID_POSITION if no selection on this line). -fun position GetLineSelEndPosition=2425(int line,) - -## RectExtended rectangular selection moves -# Move caret down one line, extending rectangular selection to new caret position. -fun void LineDownRectExtend=2426(,) - -# Move caret up one line, extending rectangular selection to new caret position. -fun void LineUpRectExtend=2427(,) - -# Move caret left one character, extending rectangular selection to new caret position. -fun void CharLeftRectExtend=2428(,) - -# Move caret right one character, extending rectangular selection to new caret position. -fun void CharRightRectExtend=2429(,) - -# Move caret to first position on line, extending rectangular selection to new caret position. -fun void HomeRectExtend=2430(,) - -# Move caret to before first visible character on line. -# If already there move to first character on line. -# In either case, extend rectangular selection to new caret position. -fun void VCHomeRectExtend=2431(,) - -# Move caret to last position on line, extending rectangular selection to new caret position. -fun void LineEndRectExtend=2432(,) - -# Move caret one page up, extending rectangular selection to new caret position. -fun void PageUpRectExtend=2433(,) - -# Move caret one page down, extending rectangular selection to new caret position. -fun void PageDownRectExtend=2434(,) - - -# Move caret to top of page, or one page up if already at top of page. -fun void StutteredPageUp=2435(,) - -# Move caret to top of page, or one page up if already at top of page, extending selection to new caret position. -fun void StutteredPageUpExtend=2436(,) - -# Move caret to bottom of page, or one page down if already at bottom of page. -fun void StutteredPageDown=2437(,) - -# Move caret to bottom of page, or one page down if already at bottom of page, extending selection to new caret position. -fun void StutteredPageDownExtend=2438(,) - - -# Move caret left one word, position cursor at end of word. -fun void WordLeftEnd=2439(,) - -# Move caret left one word, position cursor at end of word, extending selection to new caret position. -fun void WordLeftEndExtend=2440(,) - -# Move caret right one word, position cursor at end of word. -fun void WordRightEnd=2441(,) - -# Move caret right one word, position cursor at end of word, extending selection to new caret position. -fun void WordRightEndExtend=2442(,) - -# Set the set of characters making up whitespace for when moving or selecting by word. -# Should be called after SetWordChars. -set void SetWhitespaceChars=2443(, string characters) - -# Reset the set of characters for whitespace and word characters to the defaults. -fun void SetCharsDefault=2444(,) - -# Get currently selected item position in the auto-completion list -fun int AutoCGetCurrent=2445(,) - -# Enlarge the document to a particular size of text bytes. -fun void Allocate=2446(int bytes,) - -# Returns the target converted to UTF8. -# Return the length in bytes. -fun int TargetAsUTF8=2447(, stringresult s) - -# Set the length of the utf8 argument for calling EncodedFromUTF8. -# Set to -1 and the string will be measured to the first nul. -fun void SetLengthForEncode=2448(int bytes,) - -# Translates a UTF8 string into the document encoding. -# Return the length of the result in bytes. -# On error return 0. -fun int EncodedFromUTF8=2449(string utf8, stringresult encoded) - -# Find the position of a column on a line taking into account tabs and -# multi-byte characters. If beyond end of line, return line end position. -fun int FindColumn=2456(int line, int column) - -# Can the caret preferred x position only be changed by explicit movement commands? -get bool GetCaretSticky=2457(,) - -# Stop the caret preferred x position changing when the user types. -set void SetCaretSticky=2458(bool useCaretStickyBehaviour,) - -# Switch between sticky and non-sticky: meant to be bound to a key. -fun void ToggleCaretSticky=2459(,) - -# Enable/Disable convert-on-paste for line endings -set void SetPasteConvertEndings=2467(bool convert,) - -# Get convert-on-paste setting -get bool GetPasteConvertEndings=2468(,) - -# Duplicate the selection. If selection empty duplicate the line containing the caret. -fun void SelectionDuplicate=2469(,) - -val SC_ALPHA_TRANSPARENT=0 -val SC_ALPHA_OPAQUE=255 -val SC_ALPHA_NOALPHA=256 - -# Set background alpha of the caret line. -set void SetCaretLineBackAlpha=2470(int alpha,) - -# Get the background alpha of the caret line. -get int GetCaretLineBackAlpha=2471(,) - -# Start notifying the container of all key presses and commands. -fun void StartRecord=3001(,) - -# Stop notifying the container of all key presses and commands. -fun void StopRecord=3002(,) - -# Set the lexing language of the document. -set void SetLexer=4001(int lexer,) - -# Retrieve the lexing language of the document. -get int GetLexer=4002(,) - -# Colourise a segment of the document using the current lexing language. -fun void Colourise=4003(position start, position end) - -# Set up a value that may be used by a lexer for some optional feature. -set void SetProperty=4004(string key, string value) - -# Maximum value of keywordSet parameter of SetKeyWords. -val KEYWORDSET_MAX=8 - -# Set up the key words used by the lexer. -set void SetKeyWords=4005(int keywordSet, string keyWords) - -# Set the lexing language of the document based on string name. -set void SetLexerLanguage=4006(, string language) - -# Load a lexer library (dll / so). -fun void LoadLexerLibrary=4007(, string path) - -# Retrieve a "property" value previously set with SetProperty. -fun int GetProperty=4008(string key, stringresult buf) - -# Retrieve a "property" value previously set with SetProperty, -# with "$()" variable replacement on returned buffer. -fun int GetPropertyExpanded=4009(string key, stringresult buf) - -# Retrieve a "property" value previously set with SetProperty, -# interpreted as an int AFTER any "$()" variable replacement. -get int GetPropertyInt=4010(string key,) - -# Retrieve the number of bits the current lexer needs for styling. -get int GetStyleBitsNeeded=4011(,) - -# Notifications -# Type of modification and the action which caused the modification. -# These are defined as a bit mask to make it easy to specify which notifications are wanted. -# One bit is set from each of SC_MOD_* and SC_PERFORMED_*. -enu ModificationFlags=SC_MOD_ SC_PERFORMED_ SC_LAST -val SC_MOD_INSERTTEXT=0x1 -val SC_MOD_DELETETEXT=0x2 -val SC_MOD_CHANGESTYLE=0x4 -val SC_MOD_CHANGEFOLD=0x8 -val SC_PERFORMED_USER=0x10 -val SC_PERFORMED_UNDO=0x20 -val SC_PERFORMED_REDO=0x40 -val SC_MULTISTEPUNDOREDO=0x80 -val SC_LASTSTEPINUNDOREDO=0x100 -val SC_MOD_CHANGEMARKER=0x200 -val SC_MOD_BEFOREINSERT=0x400 -val SC_MOD_BEFOREDELETE=0x800 -val SC_MULTILINEUNDOREDO=0x1000 -val SC_MODEVENTMASKALL=0x1FFF - -# For compatibility, these go through the COMMAND notification rather than NOTIFY -# and should have had exactly the same values as the EN_* constants. -# Unfortunately the SETFOCUS and KILLFOCUS are flipped over from EN_* -# As clients depend on these constants, this will not be changed. -val SCEN_CHANGE=768 -val SCEN_SETFOCUS=512 -val SCEN_KILLFOCUS=256 - -# Symbolic key codes and modifier flags. -# ASCII and other printable characters below 256. -# Extended keys above 300. - -enu Keys=SCK_ -val SCK_DOWN=300 -val SCK_UP=301 -val SCK_LEFT=302 -val SCK_RIGHT=303 -val SCK_HOME=304 -val SCK_END=305 -val SCK_PRIOR=306 -val SCK_NEXT=307 -val SCK_DELETE=308 -val SCK_INSERT=309 -val SCK_ESCAPE=7 -val SCK_BACK=8 -val SCK_TAB=9 -val SCK_RETURN=13 -val SCK_ADD=310 -val SCK_SUBTRACT=311 -val SCK_DIVIDE=312 - -enu KeyMod=SCMOD_ -val SCMOD_NORM=0 -val SCMOD_SHIFT=1 -val SCMOD_CTRL=2 -val SCMOD_ALT=4 - -################################################ -# For SciLexer.h -enu Lexer=SCLEX_ -val SCLEX_CONTAINER=0 -val SCLEX_NULL=1 -val SCLEX_PYTHON=2 -val SCLEX_CPP=3 -val SCLEX_HTML=4 -val SCLEX_XML=5 -val SCLEX_PERL=6 -val SCLEX_SQL=7 -val SCLEX_VB=8 -val SCLEX_PROPERTIES=9 -val SCLEX_ERRORLIST=10 -val SCLEX_MAKEFILE=11 -val SCLEX_BATCH=12 -val SCLEX_XCODE=13 -val SCLEX_LATEX=14 -val SCLEX_LUA=15 -val SCLEX_DIFF=16 -val SCLEX_CONF=17 -val SCLEX_PASCAL=18 -val SCLEX_AVE=19 -val SCLEX_ADA=20 -val SCLEX_LISP=21 -val SCLEX_RUBY=22 -val SCLEX_EIFFEL=23 -val SCLEX_EIFFELKW=24 -val SCLEX_TCL=25 -val SCLEX_NNCRONTAB=26 -val SCLEX_BULLANT=27 -val SCLEX_VBSCRIPT=28 -val SCLEX_BAAN=31 -val SCLEX_MATLAB=32 -val SCLEX_SCRIPTOL=33 -val SCLEX_ASM=34 -val SCLEX_CPPNOCASE=35 -val SCLEX_FORTRAN=36 -val SCLEX_F77=37 -val SCLEX_CSS=38 -val SCLEX_POV=39 -val SCLEX_LOUT=40 -val SCLEX_ESCRIPT=41 -val SCLEX_PS=42 -val SCLEX_NSIS=43 -val SCLEX_MMIXAL=44 -val SCLEX_CLW=45 -val SCLEX_CLWNOCASE=46 -val SCLEX_LOT=47 -val SCLEX_YAML=48 -val SCLEX_TEX=49 -val SCLEX_METAPOST=50 -val SCLEX_POWERBASIC=51 -val SCLEX_FORTH=52 -val SCLEX_ERLANG=53 -val SCLEX_OCTAVE=54 -val SCLEX_MSSQL=55 -val SCLEX_VERILOG=56 -val SCLEX_KIX=57 -val SCLEX_GUI4CLI=58 -val SCLEX_SPECMAN=59 -val SCLEX_AU3=60 -val SCLEX_APDL=61 -val SCLEX_BASH=62 -val SCLEX_ASN1=63 -val SCLEX_VHDL=64 -val SCLEX_CAML=65 -val SCLEX_BLITZBASIC=66 -val SCLEX_PUREBASIC=67 -val SCLEX_HASKELL=68 -val SCLEX_PHPSCRIPT=69 -val SCLEX_TADS3=70 -val SCLEX_REBOL=71 -val SCLEX_SMALLTALK=72 -val SCLEX_FLAGSHIP=73 -val SCLEX_CSOUND=74 -val SCLEX_FREEBASIC=75 -val SCLEX_INNOSETUP=76 -val SCLEX_OPAL=77 -val SCLEX_SPICE=78 - -# When a lexer specifies its language as SCLEX_AUTOMATIC it receives a -# value assigned in sequence from SCLEX_AUTOMATIC+1. -val SCLEX_AUTOMATIC=1000 -# Lexical states for SCLEX_PYTHON -lex Python=SCLEX_PYTHON SCE_P_ -val SCE_P_DEFAULT=0 -val SCE_P_COMMENTLINE=1 -val SCE_P_NUMBER=2 -val SCE_P_STRING=3 -val SCE_P_CHARACTER=4 -val SCE_P_WORD=5 -val SCE_P_TRIPLE=6 -val SCE_P_TRIPLEDOUBLE=7 -val SCE_P_CLASSNAME=8 -val SCE_P_DEFNAME=9 -val SCE_P_OPERATOR=10 -val SCE_P_IDENTIFIER=11 -val SCE_P_COMMENTBLOCK=12 -val SCE_P_STRINGEOL=13 -val SCE_P_WORD2=14 -val SCE_P_DECORATOR=15 -# Lexical states for SCLEX_CPP -lex Cpp=SCLEX_CPP SCE_C_ -lex Pascal=SCLEX_PASCAL SCE_C_ -lex BullAnt=SCLEX_BULLANT SCE_C_ -val SCE_C_DEFAULT=0 -val SCE_C_COMMENT=1 -val SCE_C_COMMENTLINE=2 -val SCE_C_COMMENTDOC=3 -val SCE_C_NUMBER=4 -val SCE_C_WORD=5 -val SCE_C_STRING=6 -val SCE_C_CHARACTER=7 -val SCE_C_UUID=8 -val SCE_C_PREPROCESSOR=9 -val SCE_C_OPERATOR=10 -val SCE_C_IDENTIFIER=11 -val SCE_C_STRINGEOL=12 -val SCE_C_VERBATIM=13 -val SCE_C_REGEX=14 -val SCE_C_COMMENTLINEDOC=15 -val SCE_C_WORD2=16 -val SCE_C_COMMENTDOCKEYWORD=17 -val SCE_C_COMMENTDOCKEYWORDERROR=18 -val SCE_C_GLOBALCLASS=19 -# Lexical states for SCLEX_TCL -lex TCL=SCLEX_TCL SCE_TCL_ -val SCE_TCL_DEFAULT=0 -val SCE_TCL_COMMENT=1 -val SCE_TCL_COMMENTLINE=2 -val SCE_TCL_NUMBER=3 -val SCE_TCL_WORD_IN_QUOTE=4 -val SCE_TCL_IN_QUOTE=5 -val SCE_TCL_OPERATOR=6 -val SCE_TCL_IDENTIFIER=7 -val SCE_TCL_SUBSTITUTION=8 -val SCE_TCL_SUB_BRACE=9 -val SCE_TCL_MODIFIER=10 -val SCE_TCL_EXPAND=11 -val SCE_TCL_WORD=12 -val SCE_TCL_WORD2=13 -val SCE_TCL_WORD3=14 -val SCE_TCL_WORD4=15 -val SCE_TCL_WORD5=16 -val SCE_TCL_WORD6=17 -val SCE_TCL_WORD7=18 -val SCE_TCL_WORD8=19 -val SCE_TCL_COMMENT_BOX=20 -val SCE_TCL_BLOCK_COMMENT=21 -# Lexical states for SCLEX_HTML, SCLEX_XML -lex HTML=SCLEX_HTML SCE_H -lex XML=SCLEX_XML SCE_H -lex ASP=SCLEX_ASP SCE_H -lex PHP=SCLEX_PHP SCE_H -val SCE_H_DEFAULT=0 -val SCE_H_TAG=1 -val SCE_H_TAGUNKNOWN=2 -val SCE_H_ATTRIBUTE=3 -val SCE_H_ATTRIBUTEUNKNOWN=4 -val SCE_H_NUMBER=5 -val SCE_H_DOUBLESTRING=6 -val SCE_H_SINGLESTRING=7 -val SCE_H_OTHER=8 -val SCE_H_COMMENT=9 -val SCE_H_ENTITY=10 -# XML and ASP -val SCE_H_TAGEND=11 -val SCE_H_XMLSTART=12 -val SCE_H_XMLEND=13 -val SCE_H_SCRIPT=14 -val SCE_H_ASP=15 -val SCE_H_ASPAT=16 -val SCE_H_CDATA=17 -val SCE_H_QUESTION=18 -# More HTML -val SCE_H_VALUE=19 -# X-Code -val SCE_H_XCCOMMENT=20 -# SGML -val SCE_H_SGML_DEFAULT=21 -val SCE_H_SGML_COMMAND=22 -val SCE_H_SGML_1ST_PARAM=23 -val SCE_H_SGML_DOUBLESTRING=24 -val SCE_H_SGML_SIMPLESTRING=25 -val SCE_H_SGML_ERROR=26 -val SCE_H_SGML_SPECIAL=27 -val SCE_H_SGML_ENTITY=28 -val SCE_H_SGML_COMMENT=29 -val SCE_H_SGML_1ST_PARAM_COMMENT=30 -val SCE_H_SGML_BLOCK_DEFAULT=31 -# Embedded Javascript -val SCE_HJ_START=40 -val SCE_HJ_DEFAULT=41 -val SCE_HJ_COMMENT=42 -val SCE_HJ_COMMENTLINE=43 -val SCE_HJ_COMMENTDOC=44 -val SCE_HJ_NUMBER=45 -val SCE_HJ_WORD=46 -val SCE_HJ_KEYWORD=47 -val SCE_HJ_DOUBLESTRING=48 -val SCE_HJ_SINGLESTRING=49 -val SCE_HJ_SYMBOLS=50 -val SCE_HJ_STRINGEOL=51 -val SCE_HJ_REGEX=52 -# ASP Javascript -val SCE_HJA_START=55 -val SCE_HJA_DEFAULT=56 -val SCE_HJA_COMMENT=57 -val SCE_HJA_COMMENTLINE=58 -val SCE_HJA_COMMENTDOC=59 -val SCE_HJA_NUMBER=60 -val SCE_HJA_WORD=61 -val SCE_HJA_KEYWORD=62 -val SCE_HJA_DOUBLESTRING=63 -val SCE_HJA_SINGLESTRING=64 -val SCE_HJA_SYMBOLS=65 -val SCE_HJA_STRINGEOL=66 -val SCE_HJA_REGEX=67 -# Embedded VBScript -val SCE_HB_START=70 -val SCE_HB_DEFAULT=71 -val SCE_HB_COMMENTLINE=72 -val SCE_HB_NUMBER=73 -val SCE_HB_WORD=74 -val SCE_HB_STRING=75 -val SCE_HB_IDENTIFIER=76 -val SCE_HB_STRINGEOL=77 -# ASP VBScript -val SCE_HBA_START=80 -val SCE_HBA_DEFAULT=81 -val SCE_HBA_COMMENTLINE=82 -val SCE_HBA_NUMBER=83 -val SCE_HBA_WORD=84 -val SCE_HBA_STRING=85 -val SCE_HBA_IDENTIFIER=86 -val SCE_HBA_STRINGEOL=87 -# Embedded Python -val SCE_HP_START=90 -val SCE_HP_DEFAULT=91 -val SCE_HP_COMMENTLINE=92 -val SCE_HP_NUMBER=93 -val SCE_HP_STRING=94 -val SCE_HP_CHARACTER=95 -val SCE_HP_WORD=96 -val SCE_HP_TRIPLE=97 -val SCE_HP_TRIPLEDOUBLE=98 -val SCE_HP_CLASSNAME=99 -val SCE_HP_DEFNAME=100 -val SCE_HP_OPERATOR=101 -val SCE_HP_IDENTIFIER=102 -# PHP -val SCE_HPHP_COMPLEX_VARIABLE=104 -# ASP Python -val SCE_HPA_START=105 -val SCE_HPA_DEFAULT=106 -val SCE_HPA_COMMENTLINE=107 -val SCE_HPA_NUMBER=108 -val SCE_HPA_STRING=109 -val SCE_HPA_CHARACTER=110 -val SCE_HPA_WORD=111 -val SCE_HPA_TRIPLE=112 -val SCE_HPA_TRIPLEDOUBLE=113 -val SCE_HPA_CLASSNAME=114 -val SCE_HPA_DEFNAME=115 -val SCE_HPA_OPERATOR=116 -val SCE_HPA_IDENTIFIER=117 -# PHP -val SCE_HPHP_DEFAULT=118 -val SCE_HPHP_HSTRING=119 -val SCE_HPHP_SIMPLESTRING=120 -val SCE_HPHP_WORD=121 -val SCE_HPHP_NUMBER=122 -val SCE_HPHP_VARIABLE=123 -val SCE_HPHP_COMMENT=124 -val SCE_HPHP_COMMENTLINE=125 -val SCE_HPHP_HSTRING_VARIABLE=126 -val SCE_HPHP_OPERATOR=127 -# Lexical states for SCLEX_PERL -lex Perl=SCLEX_PERL SCE_PL_ -val SCE_PL_DEFAULT=0 -val SCE_PL_ERROR=1 -val SCE_PL_COMMENTLINE=2 -val SCE_PL_POD=3 -val SCE_PL_NUMBER=4 -val SCE_PL_WORD=5 -val SCE_PL_STRING=6 -val SCE_PL_CHARACTER=7 -val SCE_PL_PUNCTUATION=8 -val SCE_PL_PREPROCESSOR=9 -val SCE_PL_OPERATOR=10 -val SCE_PL_IDENTIFIER=11 -val SCE_PL_SCALAR=12 -val SCE_PL_ARRAY=13 -val SCE_PL_HASH=14 -val SCE_PL_SYMBOLTABLE=15 -val SCE_PL_VARIABLE_INDEXER=16 -val SCE_PL_REGEX=17 -val SCE_PL_REGSUBST=18 -val SCE_PL_LONGQUOTE=19 -val SCE_PL_BACKTICKS=20 -val SCE_PL_DATASECTION=21 -val SCE_PL_HERE_DELIM=22 -val SCE_PL_HERE_Q=23 -val SCE_PL_HERE_QQ=24 -val SCE_PL_HERE_QX=25 -val SCE_PL_STRING_Q=26 -val SCE_PL_STRING_QQ=27 -val SCE_PL_STRING_QX=28 -val SCE_PL_STRING_QR=29 -val SCE_PL_STRING_QW=30 -val SCE_PL_POD_VERB=31 -# Lexical states for SCLEX_RUBY -lex Ruby=SCLEX_RUBY SCE_RB_ -val SCE_RB_DEFAULT=0 -val SCE_RB_ERROR=1 -val SCE_RB_COMMENTLINE=2 -val SCE_RB_POD=3 -val SCE_RB_NUMBER=4 -val SCE_RB_WORD=5 -val SCE_RB_STRING=6 -val SCE_RB_CHARACTER=7 -val SCE_RB_CLASSNAME=8 -val SCE_RB_DEFNAME=9 -val SCE_RB_OPERATOR=10 -val SCE_RB_IDENTIFIER=11 -val SCE_RB_REGEX=12 -val SCE_RB_GLOBAL=13 -val SCE_RB_SYMBOL=14 -val SCE_RB_MODULE_NAME=15 -val SCE_RB_INSTANCE_VAR=16 -val SCE_RB_CLASS_VAR=17 -val SCE_RB_BACKTICKS=18 -val SCE_RB_DATASECTION=19 -val SCE_RB_HERE_DELIM=20 -val SCE_RB_HERE_Q=21 -val SCE_RB_HERE_QQ=22 -val SCE_RB_HERE_QX=23 -val SCE_RB_STRING_Q=24 -val SCE_RB_STRING_QQ=25 -val SCE_RB_STRING_QX=26 -val SCE_RB_STRING_QR=27 -val SCE_RB_STRING_QW=28 -val SCE_RB_WORD_DEMOTED=29 -val SCE_RB_STDIN=30 -val SCE_RB_STDOUT=31 -val SCE_RB_STDERR=40 -val SCE_RB_UPPER_BOUND=41 -# Lexical states for SCLEX_VB, SCLEX_VBSCRIPT, SCLEX_POWERBASIC -lex VB=SCLEX_VB SCE_B_ -lex VBScript=SCLEX_VBSCRIPT SCE_B_ -lex PowerBasic=SCLEX_POWERBASIC SCE_B_ -val SCE_B_DEFAULT=0 -val SCE_B_COMMENT=1 -val SCE_B_NUMBER=2 -val SCE_B_KEYWORD=3 -val SCE_B_STRING=4 -val SCE_B_PREPROCESSOR=5 -val SCE_B_OPERATOR=6 -val SCE_B_IDENTIFIER=7 -val SCE_B_DATE=8 -val SCE_B_STRINGEOL=9 -val SCE_B_KEYWORD2=10 -val SCE_B_KEYWORD3=11 -val SCE_B_KEYWORD4=12 -val SCE_B_CONSTANT=13 -val SCE_B_ASM=14 -val SCE_B_LABEL=15 -val SCE_B_ERROR=16 -val SCE_B_HEXNUMBER=17 -val SCE_B_BINNUMBER=18 -# Lexical states for SCLEX_PROPERTIES -lex Properties=SCLEX_PROPERTIES SCE_PROPS_ -val SCE_PROPS_DEFAULT=0 -val SCE_PROPS_COMMENT=1 -val SCE_PROPS_SECTION=2 -val SCE_PROPS_ASSIGNMENT=3 -val SCE_PROPS_DEFVAL=4 -val SCE_PROPS_KEY=5 -# Lexical states for SCLEX_LATEX -lex LaTeX=SCLEX_LATEX SCE_L_ -val SCE_L_DEFAULT=0 -val SCE_L_COMMAND=1 -val SCE_L_TAG=2 -val SCE_L_MATH=3 -val SCE_L_COMMENT=4 -# Lexical states for SCLEX_LUA -lex Lua=SCLEX_LUA SCE_LUA_ -val SCE_LUA_DEFAULT=0 -val SCE_LUA_COMMENT=1 -val SCE_LUA_COMMENTLINE=2 -val SCE_LUA_COMMENTDOC=3 -val SCE_LUA_NUMBER=4 -val SCE_LUA_WORD=5 -val SCE_LUA_STRING=6 -val SCE_LUA_CHARACTER=7 -val SCE_LUA_LITERALSTRING=8 -val SCE_LUA_PREPROCESSOR=9 -val SCE_LUA_OPERATOR=10 -val SCE_LUA_IDENTIFIER=11 -val SCE_LUA_STRINGEOL=12 -val SCE_LUA_WORD2=13 -val SCE_LUA_WORD3=14 -val SCE_LUA_WORD4=15 -val SCE_LUA_WORD5=16 -val SCE_LUA_WORD6=17 -val SCE_LUA_WORD7=18 -val SCE_LUA_WORD8=19 -# Lexical states for SCLEX_ERRORLIST -lex ErrorList=SCLEX_ERRORLIST SCE_ERR_ -val SCE_ERR_DEFAULT=0 -val SCE_ERR_PYTHON=1 -val SCE_ERR_GCC=2 -val SCE_ERR_MS=3 -val SCE_ERR_CMD=4 -val SCE_ERR_BORLAND=5 -val SCE_ERR_PERL=6 -val SCE_ERR_NET=7 -val SCE_ERR_LUA=8 -val SCE_ERR_CTAG=9 -val SCE_ERR_DIFF_CHANGED=10 -val SCE_ERR_DIFF_ADDITION=11 -val SCE_ERR_DIFF_DELETION=12 -val SCE_ERR_DIFF_MESSAGE=13 -val SCE_ERR_PHP=14 -val SCE_ERR_ELF=15 -val SCE_ERR_IFC=16 -val SCE_ERR_IFORT=17 -val SCE_ERR_ABSF=18 -val SCE_ERR_TIDY=19 -val SCE_ERR_JAVA_STACK=20 -# Lexical states for SCLEX_BATCH -lex Batch=SCLEX_BATCH SCE_BAT_ -val SCE_BAT_DEFAULT=0 -val SCE_BAT_COMMENT=1 -val SCE_BAT_WORD=2 -val SCE_BAT_LABEL=3 -val SCE_BAT_HIDE=4 -val SCE_BAT_COMMAND=5 -val SCE_BAT_IDENTIFIER=6 -val SCE_BAT_OPERATOR=7 -# Lexical states for SCLEX_MAKEFILE -lex MakeFile=SCLEX_MAKEFILE SCE_MAKE_ -val SCE_MAKE_DEFAULT=0 -val SCE_MAKE_COMMENT=1 -val SCE_MAKE_PREPROCESSOR=2 -val SCE_MAKE_IDENTIFIER=3 -val SCE_MAKE_OPERATOR=4 -val SCE_MAKE_TARGET=5 -val SCE_MAKE_IDEOL=9 -# Lexical states for SCLEX_DIFF -lex Diff=SCLEX_DIFF SCE_DIFF_ -val SCE_DIFF_DEFAULT=0 -val SCE_DIFF_COMMENT=1 -val SCE_DIFF_COMMAND=2 -val SCE_DIFF_HEADER=3 -val SCE_DIFF_POSITION=4 -val SCE_DIFF_DELETED=5 -val SCE_DIFF_ADDED=6 -# Lexical states for SCLEX_CONF (Apache Configuration Files Lexer) -lex Conf=SCLEX_CONF SCE_CONF_ -val SCE_CONF_DEFAULT=0 -val SCE_CONF_COMMENT=1 -val SCE_CONF_NUMBER=2 -val SCE_CONF_IDENTIFIER=3 -val SCE_CONF_EXTENSION=4 -val SCE_CONF_PARAMETER=5 -val SCE_CONF_STRING=6 -val SCE_CONF_OPERATOR=7 -val SCE_CONF_IP=8 -val SCE_CONF_DIRECTIVE=9 -# Lexical states for SCLEX_AVE, Avenue -lex Avenue=SCLEX_AVE SCE_AVE_ -val SCE_AVE_DEFAULT=0 -val SCE_AVE_COMMENT=1 -val SCE_AVE_NUMBER=2 -val SCE_AVE_WORD=3 -val SCE_AVE_STRING=6 -val SCE_AVE_ENUM=7 -val SCE_AVE_STRINGEOL=8 -val SCE_AVE_IDENTIFIER=9 -val SCE_AVE_OPERATOR=10 -val SCE_AVE_WORD1=11 -val SCE_AVE_WORD2=12 -val SCE_AVE_WORD3=13 -val SCE_AVE_WORD4=14 -val SCE_AVE_WORD5=15 -val SCE_AVE_WORD6=16 -# Lexical states for SCLEX_ADA -lex Ada=SCLEX_ADA SCE_ADA_ -val SCE_ADA_DEFAULT=0 -val SCE_ADA_WORD=1 -val SCE_ADA_IDENTIFIER=2 -val SCE_ADA_NUMBER=3 -val SCE_ADA_DELIMITER=4 -val SCE_ADA_CHARACTER=5 -val SCE_ADA_CHARACTEREOL=6 -val SCE_ADA_STRING=7 -val SCE_ADA_STRINGEOL=8 -val SCE_ADA_LABEL=9 -val SCE_ADA_COMMENTLINE=10 -val SCE_ADA_ILLEGAL=11 -# Lexical states for SCLEX_BAAN -lex Baan=SCLEX_BAAN SCE_BAAN_ -val SCE_BAAN_DEFAULT=0 -val SCE_BAAN_COMMENT=1 -val SCE_BAAN_COMMENTDOC=2 -val SCE_BAAN_NUMBER=3 -val SCE_BAAN_WORD=4 -val SCE_BAAN_STRING=5 -val SCE_BAAN_PREPROCESSOR=6 -val SCE_BAAN_OPERATOR=7 -val SCE_BAAN_IDENTIFIER=8 -val SCE_BAAN_STRINGEOL=9 -val SCE_BAAN_WORD2=10 -# Lexical states for SCLEX_LISP -lex Lisp=SCLEX_LISP SCE_LISP_ -val SCE_LISP_DEFAULT=0 -val SCE_LISP_COMMENT=1 -val SCE_LISP_NUMBER=2 -val SCE_LISP_KEYWORD=3 -val SCE_LISP_KEYWORD_KW=4 -val SCE_LISP_SYMBOL=5 -val SCE_LISP_STRING=6 -val SCE_LISP_STRINGEOL=8 -val SCE_LISP_IDENTIFIER=9 -val SCE_LISP_OPERATOR=10 -val SCE_LISP_SPECIAL=11 -val SCE_LISP_MULTI_COMMENT=12 -# Lexical states for SCLEX_EIFFEL and SCLEX_EIFFELKW -lex Eiffel=SCLEX_EIFFEL SCE_EIFFEL_ -lex EiffelKW=SCLEX_EIFFELKW SCE_EIFFEL_ -val SCE_EIFFEL_DEFAULT=0 -val SCE_EIFFEL_COMMENTLINE=1 -val SCE_EIFFEL_NUMBER=2 -val SCE_EIFFEL_WORD=3 -val SCE_EIFFEL_STRING=4 -val SCE_EIFFEL_CHARACTER=5 -val SCE_EIFFEL_OPERATOR=6 -val SCE_EIFFEL_IDENTIFIER=7 -val SCE_EIFFEL_STRINGEOL=8 -# Lexical states for SCLEX_NNCRONTAB (nnCron crontab Lexer) -lex NNCronTab=SCLEX_NNCRONTAB SCE_NNCRONTAB_ -val SCE_NNCRONTAB_DEFAULT=0 -val SCE_NNCRONTAB_COMMENT=1 -val SCE_NNCRONTAB_TASK=2 -val SCE_NNCRONTAB_SECTION=3 -val SCE_NNCRONTAB_KEYWORD=4 -val SCE_NNCRONTAB_MODIFIER=5 -val SCE_NNCRONTAB_ASTERISK=6 -val SCE_NNCRONTAB_NUMBER=7 -val SCE_NNCRONTAB_STRING=8 -val SCE_NNCRONTAB_ENVIRONMENT=9 -val SCE_NNCRONTAB_IDENTIFIER=10 -# Lexical states for SCLEX_FORTH (Forth Lexer) -lex Forth=SCLEX_FORTH SCE_FORTH_ -val SCE_FORTH_DEFAULT=0 -val SCE_FORTH_COMMENT=1 -val SCE_FORTH_COMMENT_ML=2 -val SCE_FORTH_IDENTIFIER=3 -val SCE_FORTH_CONTROL=4 -val SCE_FORTH_KEYWORD=5 -val SCE_FORTH_DEFWORD=6 -val SCE_FORTH_PREWORD1=7 -val SCE_FORTH_PREWORD2=8 -val SCE_FORTH_NUMBER=9 -val SCE_FORTH_STRING=10 -val SCE_FORTH_LOCALE=11 -# Lexical states for SCLEX_MATLAB -lex MatLab=SCLEX_MATLAB SCE_MATLAB_ -val SCE_MATLAB_DEFAULT=0 -val SCE_MATLAB_COMMENT=1 -val SCE_MATLAB_COMMAND=2 -val SCE_MATLAB_NUMBER=3 -val SCE_MATLAB_KEYWORD=4 -# single quoted string -val SCE_MATLAB_STRING=5 -val SCE_MATLAB_OPERATOR=6 -val SCE_MATLAB_IDENTIFIER=7 -val SCE_MATLAB_DOUBLEQUOTESTRING=8 -# Lexical states for SCLEX_SCRIPTOL -lex Sol=SCLEX_SCRIPTOL SCE_SCRIPTOL_ -val SCE_SCRIPTOL_DEFAULT=0 -val SCE_SCRIPTOL_WHITE=1 -val SCE_SCRIPTOL_COMMENTLINE=2 -val SCE_SCRIPTOL_PERSISTENT=3 -val SCE_SCRIPTOL_CSTYLE=4 -val SCE_SCRIPTOL_COMMENTBLOCK=5 -val SCE_SCRIPTOL_NUMBER=6 -val SCE_SCRIPTOL_STRING=7 -val SCE_SCRIPTOL_CHARACTER=8 -val SCE_SCRIPTOL_STRINGEOL=9 -val SCE_SCRIPTOL_KEYWORD=10 -val SCE_SCRIPTOL_OPERATOR=11 -val SCE_SCRIPTOL_IDENTIFIER=12 -val SCE_SCRIPTOL_TRIPLE=13 -val SCE_SCRIPTOL_CLASSNAME=14 -val SCE_SCRIPTOL_PREPROCESSOR=15 -# Lexical states for SCLEX_ASM -lex Asm=SCLEX_ASM SCE_ASM_ -val SCE_ASM_DEFAULT=0 -val SCE_ASM_COMMENT=1 -val SCE_ASM_NUMBER=2 -val SCE_ASM_STRING=3 -val SCE_ASM_OPERATOR=4 -val SCE_ASM_IDENTIFIER=5 -val SCE_ASM_CPUINSTRUCTION=6 -val SCE_ASM_MATHINSTRUCTION=7 -val SCE_ASM_REGISTER=8 -val SCE_ASM_DIRECTIVE=9 -val SCE_ASM_DIRECTIVEOPERAND=10 -val SCE_ASM_COMMENTBLOCK=11 -val SCE_ASM_CHARACTER=12 -val SCE_ASM_STRINGEOL=13 -val SCE_ASM_EXTINSTRUCTION=14 -# Lexical states for SCLEX_FORTRAN -lex Fortran=SCLEX_FORTRAN SCE_F_ -lex F77=SCLEX_F77 SCE_F_ -val SCE_F_DEFAULT=0 -val SCE_F_COMMENT=1 -val SCE_F_NUMBER=2 -val SCE_F_STRING1=3 -val SCE_F_STRING2=4 -val SCE_F_STRINGEOL=5 -val SCE_F_OPERATOR=6 -val SCE_F_IDENTIFIER=7 -val SCE_F_WORD=8 -val SCE_F_WORD2=9 -val SCE_F_WORD3=10 -val SCE_F_PREPROCESSOR=11 -val SCE_F_OPERATOR2=12 -val SCE_F_LABEL=13 -val SCE_F_CONTINUATION=14 -# Lexical states for SCLEX_CSS -lex CSS=SCLEX_CSS SCE_CSS_ -val SCE_CSS_DEFAULT=0 -val SCE_CSS_TAG=1 -val SCE_CSS_CLASS=2 -val SCE_CSS_PSEUDOCLASS=3 -val SCE_CSS_UNKNOWN_PSEUDOCLASS=4 -val SCE_CSS_OPERATOR=5 -val SCE_CSS_IDENTIFIER=6 -val SCE_CSS_UNKNOWN_IDENTIFIER=7 -val SCE_CSS_VALUE=8 -val SCE_CSS_COMMENT=9 -val SCE_CSS_ID=10 -val SCE_CSS_IMPORTANT=11 -val SCE_CSS_DIRECTIVE=12 -val SCE_CSS_DOUBLESTRING=13 -val SCE_CSS_SINGLESTRING=14 -val SCE_CSS_IDENTIFIER2=15 -val SCE_CSS_ATTRIBUTE=16 -# Lexical states for SCLEX_POV -lex POV=SCLEX_POV SCE_POV_ -val SCE_POV_DEFAULT=0 -val SCE_POV_COMMENT=1 -val SCE_POV_COMMENTLINE=2 -val SCE_POV_NUMBER=3 -val SCE_POV_OPERATOR=4 -val SCE_POV_IDENTIFIER=5 -val SCE_POV_STRING=6 -val SCE_POV_STRINGEOL=7 -val SCE_POV_DIRECTIVE=8 -val SCE_POV_BADDIRECTIVE=9 -val SCE_POV_WORD2=10 -val SCE_POV_WORD3=11 -val SCE_POV_WORD4=12 -val SCE_POV_WORD5=13 -val SCE_POV_WORD6=14 -val SCE_POV_WORD7=15 -val SCE_POV_WORD8=16 -# Lexical states for SCLEX_LOUT -lex LOUT=SCLEX_LOUT SCE_LOUT_ -val SCE_LOUT_DEFAULT=0 -val SCE_LOUT_COMMENT=1 -val SCE_LOUT_NUMBER=2 -val SCE_LOUT_WORD=3 -val SCE_LOUT_WORD2=4 -val SCE_LOUT_WORD3=5 -val SCE_LOUT_WORD4=6 -val SCE_LOUT_STRING=7 -val SCE_LOUT_OPERATOR=8 -val SCE_LOUT_IDENTIFIER=9 -val SCE_LOUT_STRINGEOL=10 -# Lexical states for SCLEX_ESCRIPT -lex ESCRIPT=SCLEX_ESCRIPT SCE_ESCRIPT_ -val SCE_ESCRIPT_DEFAULT=0 -val SCE_ESCRIPT_COMMENT=1 -val SCE_ESCRIPT_COMMENTLINE=2 -val SCE_ESCRIPT_COMMENTDOC=3 -val SCE_ESCRIPT_NUMBER=4 -val SCE_ESCRIPT_WORD=5 -val SCE_ESCRIPT_STRING=6 -val SCE_ESCRIPT_OPERATOR=7 -val SCE_ESCRIPT_IDENTIFIER=8 -val SCE_ESCRIPT_BRACE=9 -val SCE_ESCRIPT_WORD2=10 -val SCE_ESCRIPT_WORD3=11 -# Lexical states for SCLEX_PS -lex PS=SCLEX_PS SCE_PS_ -val SCE_PS_DEFAULT=0 -val SCE_PS_COMMENT=1 -val SCE_PS_DSC_COMMENT=2 -val SCE_PS_DSC_VALUE=3 -val SCE_PS_NUMBER=4 -val SCE_PS_NAME=5 -val SCE_PS_KEYWORD=6 -val SCE_PS_LITERAL=7 -val SCE_PS_IMMEVAL=8 -val SCE_PS_PAREN_ARRAY=9 -val SCE_PS_PAREN_DICT=10 -val SCE_PS_PAREN_PROC=11 -val SCE_PS_TEXT=12 -val SCE_PS_HEXSTRING=13 -val SCE_PS_BASE85STRING=14 -val SCE_PS_BADSTRINGCHAR=15 -# Lexical states for SCLEX_NSIS -lex NSIS=SCLEX_NSIS SCE_NSIS_ -val SCE_NSIS_DEFAULT=0 -val SCE_NSIS_COMMENT=1 -val SCE_NSIS_STRINGDQ=2 -val SCE_NSIS_STRINGLQ=3 -val SCE_NSIS_STRINGRQ=4 -val SCE_NSIS_FUNCTION=5 -val SCE_NSIS_VARIABLE=6 -val SCE_NSIS_LABEL=7 -val SCE_NSIS_USERDEFINED=8 -val SCE_NSIS_SECTIONDEF=9 -val SCE_NSIS_SUBSECTIONDEF=10 -val SCE_NSIS_IFDEFINEDEF=11 -val SCE_NSIS_MACRODEF=12 -val SCE_NSIS_STRINGVAR=13 -val SCE_NSIS_NUMBER=14 -val SCE_NSIS_SECTIONGROUP=15 -val SCE_NSIS_PAGEEX=16 -val SCE_NSIS_FUNCTIONDEF=17 -val SCE_NSIS_COMMENTBOX=18 -# Lexical states for SCLEX_MMIXAL -lex MMIXAL=SCLEX_MMIXAL SCE_MMIXAL_ -val SCE_MMIXAL_LEADWS=0 -val SCE_MMIXAL_COMMENT=1 -val SCE_MMIXAL_LABEL=2 -val SCE_MMIXAL_OPCODE=3 -val SCE_MMIXAL_OPCODE_PRE=4 -val SCE_MMIXAL_OPCODE_VALID=5 -val SCE_MMIXAL_OPCODE_UNKNOWN=6 -val SCE_MMIXAL_OPCODE_POST=7 -val SCE_MMIXAL_OPERANDS=8 -val SCE_MMIXAL_NUMBER=9 -val SCE_MMIXAL_REF=10 -val SCE_MMIXAL_CHAR=11 -val SCE_MMIXAL_STRING=12 -val SCE_MMIXAL_REGISTER=13 -val SCE_MMIXAL_HEX=14 -val SCE_MMIXAL_OPERATOR=15 -val SCE_MMIXAL_SYMBOL=16 -val SCE_MMIXAL_INCLUDE=17 -# Lexical states for SCLEX_CLW -lex Clarion=SCLEX_CLW SCE_CLW_ -val SCE_CLW_DEFAULT=0 -val SCE_CLW_LABEL=1 -val SCE_CLW_COMMENT=2 -val SCE_CLW_STRING=3 -val SCE_CLW_USER_IDENTIFIER=4 -val SCE_CLW_INTEGER_CONSTANT=5 -val SCE_CLW_REAL_CONSTANT=6 -val SCE_CLW_PICTURE_STRING=7 -val SCE_CLW_KEYWORD=8 -val SCE_CLW_COMPILER_DIRECTIVE=9 -val SCE_CLW_RUNTIME_EXPRESSIONS=10 -val SCE_CLW_BUILTIN_PROCEDURES_FUNCTION=11 -val SCE_CLW_STRUCTURE_DATA_TYPE=12 -val SCE_CLW_ATTRIBUTE=13 -val SCE_CLW_STANDARD_EQUATE=14 -val SCE_CLW_ERROR=15 -val SCE_CLW_DEPRECATED=16 -# Lexical states for SCLEX_LOT -lex LOT=SCLEX_LOT SCE_LOT_ -val SCE_LOT_DEFAULT=0 -val SCE_LOT_HEADER=1 -val SCE_LOT_BREAK=2 -val SCE_LOT_SET=3 -val SCE_LOT_PASS=4 -val SCE_LOT_FAIL=5 -val SCE_LOT_ABORT=6 -# Lexical states for SCLEX_YAML -lex YAML=SCLEX_YAML SCE_YAML_ -val SCE_YAML_DEFAULT=0 -val SCE_YAML_COMMENT=1 -val SCE_YAML_IDENTIFIER=2 -val SCE_YAML_KEYWORD=3 -val SCE_YAML_NUMBER=4 -val SCE_YAML_REFERENCE=5 -val SCE_YAML_DOCUMENT=6 -val SCE_YAML_TEXT=7 -val SCE_YAML_ERROR=8 -# Lexical states for SCLEX_TEX -lex TeX=SCLEX_TEX SCE_TEX_ -val SCE_TEX_DEFAULT=0 -val SCE_TEX_SPECIAL=1 -val SCE_TEX_GROUP=2 -val SCE_TEX_SYMBOL=3 -val SCE_TEX_COMMAND=4 -val SCE_TEX_TEXT=5 -lex Metapost=SCLEX_METAPOST SCE_METAPOST_ -val SCE_METAPOST_DEFAULT=0 -val SCE_METAPOST_SPECIAL=1 -val SCE_METAPOST_GROUP=2 -val SCE_METAPOST_SYMBOL=3 -val SCE_METAPOST_COMMAND=4 -val SCE_METAPOST_TEXT=5 -val SCE_METAPOST_EXTRA=6 -# Lexical states for SCLEX_ERLANG -lex Erlang=SCLEX_ERLANG SCE_ERLANG_ -val SCE_ERLANG_DEFAULT=0 -val SCE_ERLANG_COMMENT=1 -val SCE_ERLANG_VARIABLE=2 -val SCE_ERLANG_NUMBER=3 -val SCE_ERLANG_KEYWORD=4 -val SCE_ERLANG_STRING=5 -val SCE_ERLANG_OPERATOR=6 -val SCE_ERLANG_ATOM=7 -val SCE_ERLANG_FUNCTION_NAME=8 -val SCE_ERLANG_CHARACTER=9 -val SCE_ERLANG_MACRO=10 -val SCE_ERLANG_RECORD=11 -val SCE_ERLANG_SEPARATOR=12 -val SCE_ERLANG_NODE_NAME=13 -val SCE_ERLANG_UNKNOWN=31 -# Lexical states for SCLEX_OCTAVE are identical to MatLab -lex Octave=SCLEX_OCTAVE SCE_MATLAB_ -# Lexical states for SCLEX_MSSQL -lex MSSQL=SCLEX_MSSQL SCE_MSSQL_ -val SCE_MSSQL_DEFAULT=0 -val SCE_MSSQL_COMMENT=1 -val SCE_MSSQL_LINE_COMMENT=2 -val SCE_MSSQL_NUMBER=3 -val SCE_MSSQL_STRING=4 -val SCE_MSSQL_OPERATOR=5 -val SCE_MSSQL_IDENTIFIER=6 -val SCE_MSSQL_VARIABLE=7 -val SCE_MSSQL_COLUMN_NAME=8 -val SCE_MSSQL_STATEMENT=9 -val SCE_MSSQL_DATATYPE=10 -val SCE_MSSQL_SYSTABLE=11 -val SCE_MSSQL_GLOBAL_VARIABLE=12 -val SCE_MSSQL_FUNCTION=13 -val SCE_MSSQL_STORED_PROCEDURE=14 -val SCE_MSSQL_DEFAULT_PREF_DATATYPE=15 -val SCE_MSSQL_COLUMN_NAME_2=16 -# Lexical states for SCLEX_VERILOG -lex Verilog=SCLEX_VERILOG SCE_V_ -val SCE_V_DEFAULT=0 -val SCE_V_COMMENT=1 -val SCE_V_COMMENTLINE=2 -val SCE_V_COMMENTLINEBANG=3 -val SCE_V_NUMBER=4 -val SCE_V_WORD=5 -val SCE_V_STRING=6 -val SCE_V_WORD2=7 -val SCE_V_WORD3=8 -val SCE_V_PREPROCESSOR=9 -val SCE_V_OPERATOR=10 -val SCE_V_IDENTIFIER=11 -val SCE_V_STRINGEOL=12 -val SCE_V_USER=19 -# Lexical states for SCLEX_KIX -lex Kix=SCLEX_KIX SCE_KIX_ -val SCE_KIX_DEFAULT=0 -val SCE_KIX_COMMENT=1 -val SCE_KIX_STRING1=2 -val SCE_KIX_STRING2=3 -val SCE_KIX_NUMBER=4 -val SCE_KIX_VAR=5 -val SCE_KIX_MACRO=6 -val SCE_KIX_KEYWORD=7 -val SCE_KIX_FUNCTIONS=8 -val SCE_KIX_OPERATOR=9 -val SCE_KIX_IDENTIFIER=31 -# Lexical states for SCLEX_GUI4CLI -val SCE_GC_DEFAULT=0 -val SCE_GC_COMMENTLINE=1 -val SCE_GC_COMMENTBLOCK=2 -val SCE_GC_GLOBAL=3 -val SCE_GC_EVENT=4 -val SCE_GC_ATTRIBUTE=5 -val SCE_GC_CONTROL=6 -val SCE_GC_COMMAND=7 -val SCE_GC_STRING=8 -val SCE_GC_OPERATOR=9 -# Lexical states for SCLEX_SPECMAN -lex Specman=SCLEX_SPECMAN SCE_SN_ -val SCE_SN_DEFAULT=0 -val SCE_SN_CODE=1 -val SCE_SN_COMMENTLINE=2 -val SCE_SN_COMMENTLINEBANG=3 -val SCE_SN_NUMBER=4 -val SCE_SN_WORD=5 -val SCE_SN_STRING=6 -val SCE_SN_WORD2=7 -val SCE_SN_WORD3=8 -val SCE_SN_PREPROCESSOR=9 -val SCE_SN_OPERATOR=10 -val SCE_SN_IDENTIFIER=11 -val SCE_SN_STRINGEOL=12 -val SCE_SN_REGEXTAG=13 -val SCE_SN_SIGNAL=14 -val SCE_SN_USER=19 -# Lexical states for SCLEX_AU3 -lex Au3=SCLEX_AU3 SCE_AU3_ -val SCE_AU3_DEFAULT=0 -val SCE_AU3_COMMENT=1 -val SCE_AU3_COMMENTBLOCK=2 -val SCE_AU3_NUMBER=3 -val SCE_AU3_FUNCTION=4 -val SCE_AU3_KEYWORD=5 -val SCE_AU3_MACRO=6 -val SCE_AU3_STRING=7 -val SCE_AU3_OPERATOR=8 -val SCE_AU3_VARIABLE=9 -val SCE_AU3_SENT=10 -val SCE_AU3_PREPROCESSOR=11 -val SCE_AU3_SPECIAL=12 -val SCE_AU3_EXPAND=13 -val SCE_AU3_COMOBJ=14 -val SCE_AU3_UDF=15 -# Lexical states for SCLEX_APDL -lex APDL=SCLEX_APDL SCE_APDL_ -val SCE_APDL_DEFAULT=0 -val SCE_APDL_COMMENT=1 -val SCE_APDL_COMMENTBLOCK=2 -val SCE_APDL_NUMBER=3 -val SCE_APDL_STRING=4 -val SCE_APDL_OPERATOR=5 -val SCE_APDL_WORD=6 -val SCE_APDL_PROCESSOR=7 -val SCE_APDL_COMMAND=8 -val SCE_APDL_SLASHCOMMAND=9 -val SCE_APDL_STARCOMMAND=10 -val SCE_APDL_ARGUMENT=11 -val SCE_APDL_FUNCTION=12 -# Lexical states for SCLEX_BASH -lex Bash=SCLEX_BASH SCE_SH_ -val SCE_SH_DEFAULT=0 -val SCE_SH_ERROR=1 -val SCE_SH_COMMENTLINE=2 -val SCE_SH_NUMBER=3 -val SCE_SH_WORD=4 -val SCE_SH_STRING=5 -val SCE_SH_CHARACTER=6 -val SCE_SH_OPERATOR=7 -val SCE_SH_IDENTIFIER=8 -val SCE_SH_SCALAR=9 -val SCE_SH_PARAM=10 -val SCE_SH_BACKTICKS=11 -val SCE_SH_HERE_DELIM=12 -val SCE_SH_HERE_Q=13 -# Lexical states for SCLEX_ASN1 -lex Asn1=SCLEX_ASN1 SCE_ASN1_ -val SCE_ASN1_DEFAULT=0 -val SCE_ASN1_COMMENT=1 -val SCE_ASN1_IDENTIFIER=2 -val SCE_ASN1_STRING=3 -val SCE_ASN1_OID=4 -val SCE_ASN1_SCALAR=5 -val SCE_ASN1_KEYWORD=6 -val SCE_ASN1_ATTRIBUTE=7 -val SCE_ASN1_DESCRIPTOR=8 -val SCE_ASN1_TYPE=9 -val SCE_ASN1_OPERATOR=10 -# Lexical states for SCLEX_VHDL -lex VHDL=SCLEX_VHDL SCE_VHDL_ -val SCE_VHDL_DEFAULT=0 -val SCE_VHDL_COMMENT=1 -val SCE_VHDL_COMMENTLINEBANG=2 -val SCE_VHDL_NUMBER=3 -val SCE_VHDL_STRING=4 -val SCE_VHDL_OPERATOR=5 -val SCE_VHDL_IDENTIFIER=6 -val SCE_VHDL_STRINGEOL=7 -val SCE_VHDL_KEYWORD=8 -val SCE_VHDL_STDOPERATOR=9 -val SCE_VHDL_ATTRIBUTE=10 -val SCE_VHDL_STDFUNCTION=11 -val SCE_VHDL_STDPACKAGE=12 -val SCE_VHDL_STDTYPE=13 -val SCE_VHDL_USERWORD=14 -# Lexical states for SCLEX_CAML -lex Caml=SCLEX_CAML SCE_CAML_ -val SCE_CAML_DEFAULT=0 -val SCE_CAML_IDENTIFIER=1 -val SCE_CAML_TAGNAME=2 -val SCE_CAML_KEYWORD=3 -val SCE_CAML_KEYWORD2=4 -val SCE_CAML_KEYWORD3=5 -val SCE_CAML_LINENUM=6 -val SCE_CAML_OPERATOR=7 -val SCE_CAML_NUMBER=8 -val SCE_CAML_CHAR=9 -val SCE_CAML_STRING=11 -val SCE_CAML_COMMENT=12 -val SCE_CAML_COMMENT1=13 -val SCE_CAML_COMMENT2=14 -val SCE_CAML_COMMENT3=15 -# Lexical states for SCLEX_HASKELL -lex Haskell=SCLEX_HASKELL SCE_HA_ -val SCE_HA_DEFAULT=0 -val SCE_HA_IDENTIFIER=1 -val SCE_HA_KEYWORD=2 -val SCE_HA_NUMBER=3 -val SCE_HA_STRING=4 -val SCE_HA_CHARACTER=5 -val SCE_HA_CLASS=6 -val SCE_HA_MODULE=7 -val SCE_HA_CAPITAL=8 -val SCE_HA_DATA=9 -val SCE_HA_IMPORT=10 -val SCE_HA_OPERATOR=11 -val SCE_HA_INSTANCE=12 -val SCE_HA_COMMENTLINE=13 -val SCE_HA_COMMENTBLOCK=14 -val SCE_HA_COMMENTBLOCK2=15 -val SCE_HA_COMMENTBLOCK3=16 -# Lexical states of SCLEX_TADS3 -lex TADS3=SCLEX_TADS3 SCE_T3_ -val SCE_T3_DEFAULT=0 -val SCE_T3_X_DEFAULT=1 -val SCE_T3_PREPROCESSOR=2 -val SCE_T3_BLOCK_COMMENT=3 -val SCE_T3_LINE_COMMENT=4 -val SCE_T3_OPERATOR=5 -val SCE_T3_KEYWORD=6 -val SCE_T3_NUMBER=7 -val SCE_T3_IDENTIFIER=8 -val SCE_T3_S_STRING=9 -val SCE_T3_D_STRING=10 -val SCE_T3_X_STRING=11 -val SCE_T3_LIB_DIRECTIVE=12 -val SCE_T3_MSG_PARAM=13 -val SCE_T3_HTML_TAG=14 -val SCE_T3_HTML_DEFAULT=15 -val SCE_T3_HTML_STRING=16 -val SCE_T3_USER1=17 -val SCE_T3_USER2=18 -val SCE_T3_USER3=19 -# Lexical states for SCLEX_REBOL -lex Rebol=SCLEX_REBOL SCE_REBOL_ -val SCE_REBOL_DEFAULT=0 -val SCE_REBOL_COMMENTLINE=1 -val SCE_REBOL_COMMENTBLOCK=2 -val SCE_REBOL_PREFACE=3 -val SCE_REBOL_OPERATOR=4 -val SCE_REBOL_CHARACTER=5 -val SCE_REBOL_QUOTEDSTRING=6 -val SCE_REBOL_BRACEDSTRING=7 -val SCE_REBOL_NUMBER=8 -val SCE_REBOL_PAIR=9 -val SCE_REBOL_TUPLE=10 -val SCE_REBOL_BINARY=11 -val SCE_REBOL_MONEY=12 -val SCE_REBOL_ISSUE=13 -val SCE_REBOL_TAG=14 -val SCE_REBOL_FILE=15 -val SCE_REBOL_EMAIL=16 -val SCE_REBOL_URL=17 -val SCE_REBOL_DATE=18 -val SCE_REBOL_TIME=19 -val SCE_REBOL_IDENTIFIER=20 -val SCE_REBOL_WORD=21 -val SCE_REBOL_WORD2=22 -val SCE_REBOL_WORD3=23 -val SCE_REBOL_WORD4=24 -val SCE_REBOL_WORD5=25 -val SCE_REBOL_WORD6=26 -val SCE_REBOL_WORD7=27 -val SCE_REBOL_WORD8=28 -# Lexical states for SCLEX_SQL -lex SQL=SCLEX_SQL SCE_SQL_ -val SCE_SQL_DEFAULT=0 -val SCE_SQL_COMMENT=1 -val SCE_SQL_COMMENTLINE=2 -val SCE_SQL_COMMENTDOC=3 -val SCE_SQL_NUMBER=4 -val SCE_SQL_WORD=5 -val SCE_SQL_STRING=6 -val SCE_SQL_CHARACTER=7 -val SCE_SQL_SQLPLUS=8 -val SCE_SQL_SQLPLUS_PROMPT=9 -val SCE_SQL_OPERATOR=10 -val SCE_SQL_IDENTIFIER=11 -val SCE_SQL_SQLPLUS_COMMENT=13 -val SCE_SQL_COMMENTLINEDOC=15 -val SCE_SQL_WORD2=16 -val SCE_SQL_COMMENTDOCKEYWORD=17 -val SCE_SQL_COMMENTDOCKEYWORDERROR=18 -val SCE_SQL_USER1=19 -val SCE_SQL_USER2=20 -val SCE_SQL_USER3=21 -val SCE_SQL_USER4=22 -val SCE_SQL_QUOTEDIDENTIFIER=23 -# Lexical states for SCLEX_SMALLTALK -lex Smalltalk=SCLEX_SMALLTALK SCE_ST_ -val SCE_ST_DEFAULT=0 -val SCE_ST_STRING=1 -val SCE_ST_NUMBER=2 -val SCE_ST_COMMENT=3 -val SCE_ST_SYMBOL=4 -val SCE_ST_BINARY=5 -val SCE_ST_BOOL=6 -val SCE_ST_SELF=7 -val SCE_ST_SUPER=8 -val SCE_ST_NIL=9 -val SCE_ST_GLOBAL=10 -val SCE_ST_RETURN=11 -val SCE_ST_SPECIAL=12 -val SCE_ST_KWSEND=13 -val SCE_ST_ASSIGN=14 -val SCE_ST_CHARACTER=15 -val SCE_ST_SPEC_SEL=16 -# Lexical states for SCLEX_FLAGSHIP (clipper) -lex FlagShip=SCLEX_FLAGSHIP SCE_B_ -val SCE_FS_DEFAULT=0 -val SCE_FS_COMMENT=1 -val SCE_FS_COMMENTLINE=2 -val SCE_FS_COMMENTDOC=3 -val SCE_FS_COMMENTLINEDOC=4 -val SCE_FS_COMMENTDOCKEYWORD=5 -val SCE_FS_COMMENTDOCKEYWORDERROR=6 -val SCE_FS_KEYWORD=7 -val SCE_FS_KEYWORD2=8 -val SCE_FS_KEYWORD3=9 -val SCE_FS_KEYWORD4=10 -val SCE_FS_NUMBER=11 -val SCE_FS_STRING=12 -val SCE_FS_PREPROCESSOR=13 -val SCE_FS_OPERATOR=14 -val SCE_FS_IDENTIFIER=15 -val SCE_FS_DATE=16 -val SCE_FS_STRINGEOL=17 -val SCE_FS_CONSTANT=18 -val SCE_FS_ASM=19 -val SCE_FS_LABEL=20 -val SCE_FS_ERROR=21 -val SCE_FS_HEXNUMBER=22 -val SCE_FS_BINNUMBER=23 -# Lexical states for SCLEX_CSOUND -lex Csound=SCLEX_CSOUND SCE_CSOUND_ -val SCE_CSOUND_DEFAULT=0 -val SCE_CSOUND_COMMENT=1 -val SCE_CSOUND_NUMBER=2 -val SCE_CSOUND_OPERATOR=3 -val SCE_CSOUND_INSTR=4 -val SCE_CSOUND_IDENTIFIER=5 -val SCE_CSOUND_OPCODE=6 -val SCE_CSOUND_HEADERSTMT=7 -val SCE_CSOUND_USERKEYWORD=8 -val SCE_CSOUND_COMMENTBLOCK=9 -val SCE_CSOUND_PARAM=10 -val SCE_CSOUND_ARATE_VAR=11 -val SCE_CSOUND_KRATE_VAR=12 -val SCE_CSOUND_IRATE_VAR=13 -val SCE_CSOUND_GLOBAL_VAR=14 -val SCE_CSOUND_STRINGEOL=15 -# Lexical states for SCLEX_INNOSETUP -lex Inno=SCLEX_INNOSETUP SCE_INNO_ -val SCE_INNO_DEFAULT=0 -val SCE_INNO_COMMENT=1 -val SCE_INNO_KEYWORD=2 -val SCE_INNO_PARAMETER=3 -val SCE_INNO_SECTION=4 -val SCE_INNO_PREPROC=5 -val SCE_INNO_PREPROC_INLINE=6 -val SCE_INNO_COMMENT_PASCAL=7 -val SCE_INNO_KEYWORD_PASCAL=8 -val SCE_INNO_KEYWORD_USER=9 -val SCE_INNO_STRING_DOUBLE=10 -val SCE_INNO_STRING_SINGLE=11 -val SCE_INNO_IDENTIFIER=12 -# Lexical states for SCLEX_OPAL -lex Opal=SCLEX_OPAL SCE_OPAL_ -val SCE_OPAL_SPACE=0 -val SCE_OPAL_COMMENT_BLOCK=1 -val SCE_OPAL_COMMENT_LINE=2 -val SCE_OPAL_INTEGER=3 -val SCE_OPAL_KEYWORD=4 -val SCE_OPAL_SORT=5 -val SCE_OPAL_STRING=6 -val SCE_OPAL_PAR=7 -val SCE_OPAL_BOOL_CONST=8 -val SCE_OPAL_DEFAULT=32 -# Lexical states for SCLEX_SPICE -lex Spice=SCLEX_SPICE SCE_SPICE_ -val SCE_SPICE_DEFAULT=0 -val SCE_SPICE_IDENTIFIER=1 -val SCE_SPICE_KEYWORD=2 -val SCE_SPICE_KEYWORD2=3 -val SCE_SPICE_KEYWORD3=4 -val SCE_SPICE_NUMBER=5 -val SCE_SPICE_DELIMITER=6 -val SCE_SPICE_VALUE=7 -val SCE_SPICE_COMMENTLINE=8 - -# Events - -evt void StyleNeeded=2000(int position) -evt void CharAdded=2001(int ch) -evt void SavePointReached=2002(void) -evt void SavePointLeft=2003(void) -evt void ModifyAttemptRO=2004(void) -# GTK+ Specific to work around focus and accelerator problems: -evt void Key=2005(int ch, int modifiers) -evt void DoubleClick=2006(void) -evt void UpdateUI=2007(void) -evt void Modified=2008(int position, int modificationType, string text, int length, int linesAdded, int line, int foldLevelNow, int foldLevelPrev) -evt void MacroRecord=2009(int message, int wParam, int lParam) -evt void MarginClick=2010(int modifiers, int position, int margin) -evt void NeedShown=2011(int position, int length) -evt void Painted=2013(void) -evt void UserListSelection=2014(int listType, string text) -evt void URIDropped=2015(string text) -evt void DwellStart=2016(int position) -evt void DwellEnd=2017(int position) -evt void Zoom=2018(void) -evt void HotSpotClick=2019(int modifiers, int position) -evt void HotSpotDoubleClick=2020(int modifiers, int position) -evt void CallTipClick=2021(int position) -evt void AutoCSelection=2022(string text) - -cat Deprecated - -# CARET_POLICY changed in 1.47 -fun void SetCaretPolicy=2369(int caretPolicy, int caretSlop) -val CARET_CENTER=0x02 -val CARET_XEVEN=0x08 -val CARET_XJUMPS=0x10 - -# The old name for SCN_UPDATEUI -val SCN_CHECKBRACE=2007 -evt void PosChanged=2012(int position) - -# SCLEX_HTML should be used in preference to these. -val SCLEX_ASP=29 -val SCLEX_PHP=30 diff --git a/MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/include/ScintillaWidget.h b/MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/include/ScintillaWidget.h deleted file mode 100644 index d9909524..00000000 --- a/MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/include/ScintillaWidget.h +++ /dev/null @@ -1,59 +0,0 @@ -// Scintilla source code edit control -/** @file ScintillaWidget.h - ** Definition of Scintilla widget for GTK+. - ** Only needed by GTK+ code but is harmless on other platforms. - **/ -// Copyright 1998-2001 by Neil Hodgson -// The License.txt file describes the conditions under which this software may be distributed. - -#ifndef SCINTILLAWIDGET_H -#define SCINTILLAWIDGET_H - -#if PLAT_GTK - -#ifdef __cplusplus -extern "C" { -#endif - -#define SCINTILLA(obj) GTK_CHECK_CAST (obj, scintilla_get_type (), ScintillaObject) -#define SCINTILLA_CLASS(klass) GTK_CHECK_CLASS_CAST (klass, scintilla_get_type (), ScintillaClass) -#define IS_SCINTILLA(obj) GTK_CHECK_TYPE (obj, scintilla_get_type ()) - -typedef struct _ScintillaObject ScintillaObject; -typedef struct _ScintillaClass ScintillaClass; - -struct _ScintillaObject { - GtkContainer cont; - void *pscin; -}; - -struct _ScintillaClass { - GtkContainerClass parent_class; - - void (* command) (ScintillaObject *ttt); - void (* notify) (ScintillaObject *ttt); -}; - -#if GLIB_MAJOR_VERSION < 2 -GtkType scintilla_get_type (void); -#else -GType scintilla_get_type (void); -#endif -GtkWidget* scintilla_new (void); -void scintilla_set_id (ScintillaObject *sci, uptr_t id); -sptr_t scintilla_send_message (ScintillaObject *sci,unsigned int iMessage, uptr_t wParam, sptr_t lParam); -void scintilla_release_resources(void); - -#if GTK_MAJOR_VERSION < 2 -#define SCINTILLA_NOTIFY "notify" -#else -#define SCINTILLA_NOTIFY "sci-notify" -#endif - -#ifdef __cplusplus -} -#endif - -#endif - -#endif diff --git a/MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/include/WindowAccessor.h b/MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/include/WindowAccessor.h deleted file mode 100644 index baae30cb..00000000 --- a/MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/include/WindowAccessor.h +++ /dev/null @@ -1,57 +0,0 @@ -// Scintilla source code edit control -/** @file WindowAccessor.h - ** Implementation of BufferAccess and StylingAccess on a Scintilla - ** rapid easy access to contents of a Scintilla. - **/ -// Copyright 1998-2001 by Neil Hodgson -// The License.txt file describes the conditions under which this software may be distributed. - -/** - */ -class WindowAccessor : public Accessor { - // Private so WindowAccessor objects can not be copied - WindowAccessor(const WindowAccessor &source) : Accessor(), props(source.props) {} - WindowAccessor &operator=(const WindowAccessor &) { return *this; } -protected: - WindowID id; - PropSet &props; - int lenDoc; - - char styleBuf[bufferSize]; - int validLen; - char chFlags; - char chWhile; - unsigned int startSeg; - - bool InternalIsLeadByte(char ch); - void Fill(int position); -public: - WindowAccessor(WindowID id_, PropSet &props_) : - Accessor(), id(id_), props(props_), - lenDoc(-1), validLen(0), chFlags(0), chWhile(0) { - } - ~WindowAccessor(); - bool Match(int pos, const char *s); - char StyleAt(int position); - int GetLine(int position); - int LineStart(int line); - int LevelAt(int line); - int Length(); - void Flush(); - int GetLineState(int line); - int SetLineState(int line, int state); - int GetPropertyInt(const char *key, int defaultValue=0) { - return props.GetInt(key, defaultValue); - } - char *GetProperties() { - return props.ToString(); - } - - void StartAt(unsigned int start, char chMask=31); - void SetFlags(char chFlags_, char chWhile_) {chFlags = chFlags_; chWhile = chWhile_; }; - unsigned int GetStartSegment() { return startSeg; } - void StartSegment(unsigned int pos); - void ColourTo(unsigned int pos, int chAttr); - void SetLevel(int line, int level); - int IndentAmount(int line, int *flags, PFNIsCommentLeader pfnIsCommentLeader = 0); -}; diff --git a/MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/src/AutoComplete.cxx b/MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/src/AutoComplete.cxx deleted file mode 100644 index 83ee0769..00000000 --- a/MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/src/AutoComplete.cxx +++ /dev/null @@ -1,174 +0,0 @@ -// Scintilla source code edit control -/** @file AutoComplete.cxx - ** Defines the auto completion list box. - **/ -// Copyright 1998-2003 by Neil Hodgson -// The License.txt file describes the conditions under which this software may be distributed. - -#include -#include -#include - -#include "Platform.h" - -#include "PropSet.h" -#include "AutoComplete.h" - -AutoComplete::AutoComplete() : - active(false), - separator(' '), - typesep('?'), - ignoreCase(false), - chooseSingle(false), - lb(0), - posStart(0), - startLen(0), - cancelAtStartPos(true), - autoHide(true), - dropRestOfWord(false) { - lb = ListBox::Allocate(); - stopChars[0] = '\0'; - fillUpChars[0] = '\0'; -} - -AutoComplete::~AutoComplete() { - if (lb) { - lb->Destroy(); - delete lb; - lb = 0; - } -} - -bool AutoComplete::Active() { - return active; -} - -void AutoComplete::Start(Window &parent, int ctrlID, - int position, Point location, int startLen_, - int lineHeight, bool unicodeMode) { - if (active) { - Cancel(); - } - lb->Create(parent, ctrlID, location, lineHeight, unicodeMode); - lb->Clear(); - active = true; - startLen = startLen_; - posStart = position; -} - -void AutoComplete::SetStopChars(const char *stopChars_) { - strncpy(stopChars, stopChars_, sizeof(stopChars)); - stopChars[sizeof(stopChars) - 1] = '\0'; -} - -bool AutoComplete::IsStopChar(char ch) { - return ch && strchr(stopChars, ch); -} - -void AutoComplete::SetFillUpChars(const char *fillUpChars_) { - strncpy(fillUpChars, fillUpChars_, sizeof(fillUpChars)); - fillUpChars[sizeof(fillUpChars) - 1] = '\0'; -} - -bool AutoComplete::IsFillUpChar(char ch) { - return ch && strchr(fillUpChars, ch); -} - -void AutoComplete::SetSeparator(char separator_) { - separator = separator_; -} - -char AutoComplete::GetSeparator() { - return separator; -} - -void AutoComplete::SetTypesep(char separator_) { - typesep = separator_; -} - -char AutoComplete::GetTypesep() { - return typesep; -} - -void AutoComplete::SetList(const char *list) { - lb->SetList(list, separator, typesep); -} - -void AutoComplete::Show(bool show) { - lb->Show(show); - if (show) - lb->Select(0); -} - -void AutoComplete::Cancel() { - if (lb->Created()) { - lb->Clear(); - lb->Destroy(); - active = false; - } -} - - -void AutoComplete::Move(int delta) { - int count = lb->Length(); - int current = lb->GetSelection(); - current += delta; - if (current >= count) - current = count - 1; - if (current < 0) - current = 0; - lb->Select(current); -} - -void AutoComplete::Select(const char *word) { - size_t lenWord = strlen(word); - int location = -1; - const int maxItemLen=1000; - char item[maxItemLen]; - int start = 0; // lower bound of the api array block to search - int end = lb->Length() - 1; // upper bound of the api array block to search - while ((start <= end) && (location == -1)) { // Binary searching loop - int pivot = (start + end) / 2; - lb->GetValue(pivot, item, maxItemLen); - int cond; - if (ignoreCase) - cond = CompareNCaseInsensitive(word, item, lenWord); - else - cond = strncmp(word, item, lenWord); - if (!cond) { - // Find first match - while (pivot > start) { - lb->GetValue(pivot-1, item, maxItemLen); - if (ignoreCase) - cond = CompareNCaseInsensitive(word, item, lenWord); - else - cond = strncmp(word, item, lenWord); - if (0 != cond) - break; - --pivot; - } - location = pivot; - if (ignoreCase) { - // Check for exact-case match - for (; pivot <= end; pivot++) { - lb->GetValue(pivot, item, maxItemLen); - if (!strncmp(word, item, lenWord)) { - location = pivot; - break; - } - if (CompareNCaseInsensitive(word, item, lenWord)) - break; - } - } - } else if (cond < 0) { - end = pivot - 1; - } else if (cond > 0) { - start = pivot + 1; - } - } - if (location == -1 && autoHide) - Cancel(); - else - lb->Select(location); -} - diff --git a/MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/src/AutoComplete.h b/MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/src/AutoComplete.h deleted file mode 100644 index eefc6a84..00000000 --- a/MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/src/AutoComplete.h +++ /dev/null @@ -1,70 +0,0 @@ -// Scintilla source code edit control -/** @file AutoComplete.h - ** Defines the auto completion list box. - **/ -// Copyright 1998-2003 by Neil Hodgson -// The License.txt file describes the conditions under which this software may be distributed. - -#ifndef AUTOCOMPLETE_H -#define AUTOCOMPLETE_H - -/** - */ -class AutoComplete { - bool active; - char stopChars[256]; - char fillUpChars[256]; - char separator; - char typesep; // Type seperator - -public: - bool ignoreCase; - bool chooseSingle; - ListBox *lb; - int posStart; - int startLen; - /// Should autocompletion be canceled if editor's currentPos <= startPos? - bool cancelAtStartPos; - bool autoHide; - bool dropRestOfWord; - - AutoComplete(); - ~AutoComplete(); - - /// Is the auto completion list displayed? - bool Active(); - - /// Display the auto completion list positioned to be near a character position - void Start(Window &parent, int ctrlID, int position, Point location, - int startLen_, int lineHeight, bool unicodeMode); - - /// The stop chars are characters which, when typed, cause the auto completion list to disappear - void SetStopChars(const char *stopChars_); - bool IsStopChar(char ch); - - /// The fillup chars are characters which, when typed, fill up the selected word - void SetFillUpChars(const char *fillUpChars_); - bool IsFillUpChar(char ch); - - /// The separator character is used when interpreting the list in SetList - void SetSeparator(char separator_); - char GetSeparator(); - - /// The typesep character is used for seperating the word from the type - void SetTypesep(char separator_); - char GetTypesep(); - - /// The list string contains a sequence of words separated by the separator character - void SetList(const char *list); - - void Show(bool show); - void Cancel(); - - /// Move the current list element by delta, scrolling appropriately - void Move(int delta); - - /// Select a list element that starts with word as the current element - void Select(const char *word); -}; - -#endif diff --git a/MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/src/CallTip.cxx b/MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/src/CallTip.cxx deleted file mode 100644 index 729bf29a..00000000 --- a/MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/src/CallTip.cxx +++ /dev/null @@ -1,314 +0,0 @@ -// Scintilla source code edit control -/** @file CallTip.cxx - ** Code for displaying call tips. - **/ -// Copyright 1998-2001 by Neil Hodgson -// The License.txt file describes the conditions under which this software may be distributed. - -#include -#include - -#include "Platform.h" - -#include "Scintilla.h" -#include "CallTip.h" - -static const int insetX = 5; // text inset in x from calltip border -static const int widthArrow = 14; - -CallTip::CallTip() { - wCallTip = 0; - inCallTipMode = false; - posStartCallTip = 0; - val = 0; - rectUp = PRectangle(0,0,0,0); - rectDown = PRectangle(0,0,0,0); - lineHeight = 1; - startHighlight = 0; - endHighlight = 0; - tabSize = 0; - useStyleCallTip = false; // for backwards compatibility - - colourBG.desired = ColourDesired(0xff, 0xff, 0xff); - colourUnSel.desired = ColourDesired(0x80, 0x80, 0x80); - colourSel.desired = ColourDesired(0, 0, 0x80); - colourShade.desired = ColourDesired(0, 0, 0); - colourLight.desired = ColourDesired(0xc0, 0xc0, 0xc0); -} - -CallTip::~CallTip() { - font.Release(); - wCallTip.Destroy(); - delete []val; - val = 0; -} - -void CallTip::RefreshColourPalette(Palette &pal, bool want) { - pal.WantFind(colourBG, want); - pal.WantFind(colourUnSel, want); - pal.WantFind(colourSel, want); - pal.WantFind(colourShade, want); - pal.WantFind(colourLight, want); -} - -// Although this test includes 0, we should never see a \0 character. -static bool IsArrowCharacter(char ch) { - return (ch == 0) || (ch == '\001') || (ch == '\002'); -} - -// We ignore tabs unless a tab width has been set. -bool CallTip::IsTabCharacter(char ch) { - return (tabSize > 0) && (ch == '\t'); -} - -int CallTip::NextTabPos(int x) { - if (tabSize > 0) { // paranoia... not called unless this is true - x -= insetX; // position relative to text - x = (x + tabSize) / tabSize; // tab "number" - return tabSize*x + insetX; // position of next tab - } else { - return x + 1; // arbitrary - } -} - -// Draw a section of the call tip that does not include \n in one colour. -// The text may include up to numEnds tabs or arrow characters. -void CallTip::DrawChunk(Surface *surface, int &x, const char *s, - int posStart, int posEnd, int ytext, PRectangle rcClient, - bool highlight, bool draw) { - s += posStart; - int len = posEnd - posStart; - - // Divide the text into sections that are all text, or that are - // single arrows or single tab characters (if tabSize > 0). - int maxEnd = 0; - const int numEnds = 10; - int ends[numEnds + 2]; - for (int i=0;i 0) - ends[maxEnd++] = i; - ends[maxEnd++] = i+1; - } - } - ends[maxEnd++] = len; - int startSeg = 0; - int xEnd; - for (int seg = 0; seg startSeg) { - if (IsArrowCharacter(s[startSeg])) { - bool upArrow = s[startSeg] == '\001'; - rcClient.left = x; - rcClient.right = rcClient.left + widthArrow; - if (draw) { - const int halfWidth = widthArrow / 2 - 3; - const int centreX = rcClient.left + widthArrow / 2 - 1; - const int centreY = (rcClient.top + rcClient.bottom) / 2; - surface->FillRectangle(rcClient, colourBG.allocated); - PRectangle rcClientInner(rcClient.left + 1, rcClient.top + 1, - rcClient.right - 2, rcClient.bottom - 1); - surface->FillRectangle(rcClientInner, colourUnSel.allocated); - - if (upArrow) { // Up arrow - Point pts[] = { - Point(centreX - halfWidth, centreY + halfWidth / 2), - Point(centreX + halfWidth, centreY + halfWidth / 2), - Point(centreX, centreY - halfWidth + halfWidth / 2), - }; - surface->Polygon(pts, sizeof(pts) / sizeof(pts[0]), - colourBG.allocated, colourBG.allocated); - } else { // Down arrow - Point pts[] = { - Point(centreX - halfWidth, centreY - halfWidth / 2), - Point(centreX + halfWidth, centreY - halfWidth / 2), - Point(centreX, centreY + halfWidth - halfWidth / 2), - }; - surface->Polygon(pts, sizeof(pts) / sizeof(pts[0]), - colourBG.allocated, colourBG.allocated); - } - } - xEnd = rcClient.right; - offsetMain = xEnd; - if (upArrow) { - rectUp = rcClient; - } else { - rectDown = rcClient; - } - } else if (IsTabCharacter(s[startSeg])) { - xEnd = NextTabPos(x); - } else { - xEnd = x + surface->WidthText(font, s + startSeg, endSeg - startSeg); - if (draw) { - rcClient.left = x; - rcClient.right = xEnd; - surface->DrawTextTransparent(rcClient, font, ytext, - s+startSeg, endSeg - startSeg, - highlight ? colourSel.allocated : colourUnSel.allocated); - } - } - x = xEnd; - startSeg = endSeg; - } - } -} - -int CallTip::PaintContents(Surface *surfaceWindow, bool draw) { - PRectangle rcClientPos = wCallTip.GetClientPosition(); - PRectangle rcClientSize(0, 0, rcClientPos.right - rcClientPos.left, - rcClientPos.bottom - rcClientPos.top); - PRectangle rcClient(1, 1, rcClientSize.right - 1, rcClientSize.bottom - 1); - - // To make a nice small call tip window, it is only sized to fit most normal characters without accents - int ascent = surfaceWindow->Ascent(font) - surfaceWindow->InternalLeading(font); - - // For each line... - // Draw the definition in three parts: before highlight, highlighted, after highlight - int ytext = rcClient.top + ascent + 1; - rcClient.bottom = ytext + surfaceWindow->Descent(font) + 1; - char *chunkVal = val; - bool moreChunks = true; - int maxWidth = 0; - while (moreChunks) { - char *chunkEnd = strchr(chunkVal, '\n'); - if (chunkEnd == NULL) { - chunkEnd = chunkVal + strlen(chunkVal); - moreChunks = false; - } - int chunkOffset = chunkVal - val; - int chunkLength = chunkEnd - chunkVal; - int chunkEndOffset = chunkOffset + chunkLength; - int thisStartHighlight = Platform::Maximum(startHighlight, chunkOffset); - thisStartHighlight = Platform::Minimum(thisStartHighlight, chunkEndOffset); - thisStartHighlight -= chunkOffset; - int thisEndHighlight = Platform::Maximum(endHighlight, chunkOffset); - thisEndHighlight = Platform::Minimum(thisEndHighlight, chunkEndOffset); - thisEndHighlight -= chunkOffset; - rcClient.top = ytext - ascent - 1; - - int x = insetX; // start each line at this inset - - DrawChunk(surfaceWindow, x, chunkVal, 0, thisStartHighlight, - ytext, rcClient, false, draw); - DrawChunk(surfaceWindow, x, chunkVal, thisStartHighlight, thisEndHighlight, - ytext, rcClient, true, draw); - DrawChunk(surfaceWindow, x, chunkVal, thisEndHighlight, chunkLength, - ytext, rcClient, false, draw); - - chunkVal = chunkEnd + 1; - ytext += lineHeight; - rcClient.bottom += lineHeight; - maxWidth = Platform::Maximum(maxWidth, x); - } - return maxWidth; -} - -void CallTip::PaintCT(Surface *surfaceWindow) { - if (!val) - return; - PRectangle rcClientPos = wCallTip.GetClientPosition(); - PRectangle rcClientSize(0, 0, rcClientPos.right - rcClientPos.left, - rcClientPos.bottom - rcClientPos.top); - PRectangle rcClient(1, 1, rcClientSize.right - 1, rcClientSize.bottom - 1); - - surfaceWindow->FillRectangle(rcClient, colourBG.allocated); - - offsetMain = insetX; // initial alignment assuming no arrows - PaintContents(surfaceWindow, true); - - // Draw a raised border around the edges of the window - surfaceWindow->MoveTo(0, rcClientSize.bottom - 1); - surfaceWindow->PenColour(colourShade.allocated); - surfaceWindow->LineTo(rcClientSize.right - 1, rcClientSize.bottom - 1); - surfaceWindow->LineTo(rcClientSize.right - 1, 0); - surfaceWindow->PenColour(colourLight.allocated); - surfaceWindow->LineTo(0, 0); - surfaceWindow->LineTo(0, rcClientSize.bottom - 1); -} - -void CallTip::MouseClick(Point pt) { - clickPlace = 0; - if (rectUp.Contains(pt)) - clickPlace = 1; - if (rectDown.Contains(pt)) - clickPlace = 2; -} - -PRectangle CallTip::CallTipStart(int pos, Point pt, const char *defn, - const char *faceName, int size, - int codePage_, int characterSet, Window &wParent) { - clickPlace = 0; - if (val) - delete []val; - val = new char[strlen(defn) + 1]; - if (!val) - return PRectangle(); - strcpy(val, defn); - codePage = codePage_; - Surface *surfaceMeasure = Surface::Allocate(); - if (!surfaceMeasure) - return PRectangle(); - surfaceMeasure->Init(wParent.GetID()); - surfaceMeasure->SetUnicodeMode(SC_CP_UTF8 == codePage); - surfaceMeasure->SetDBCSMode(codePage); - startHighlight = 0; - endHighlight = 0; - inCallTipMode = true; - posStartCallTip = pos; - int deviceHeight = surfaceMeasure->DeviceHeightFont(size); - font.Create(faceName, characterSet, deviceHeight, false, false); - // Look for multiple lines in the text - // Only support \n here - simply means container must avoid \r! - int numLines = 1; - const char *newline; - const char *look = val; - rectUp = PRectangle(0,0,0,0); - rectDown = PRectangle(0,0,0,0); - offsetMain = insetX; // changed to right edge of any arrows - int width = PaintContents(surfaceMeasure, false) + insetX; - while ((newline = strchr(look, '\n')) != NULL) { - look = newline + 1; - numLines++; - } - lineHeight = surfaceMeasure->Height(font); - - // Extra line for border and an empty line at top and bottom. The returned - // rectangle is aligned to the right edge of the last arrow encountered in - // the tip text, else to the tip text left edge. - int height = lineHeight * numLines - surfaceMeasure->InternalLeading(font) + 2 + 2; - delete surfaceMeasure; - return PRectangle(pt.x - offsetMain, pt.y + 1, pt.x + width - offsetMain, pt.y + 1 + height); -} - -void CallTip::CallTipCancel() { - inCallTipMode = false; - if (wCallTip.Created()) { - wCallTip.Destroy(); - } -} - -void CallTip::SetHighlight(int start, int end) { - // Avoid flashing by checking something has really changed - if ((start != startHighlight) || (end != endHighlight)) { - startHighlight = start; - endHighlight = end; - if (wCallTip.Created()) { - wCallTip.InvalidateAll(); - } - } -} - -// Set the tab size (sizes > 0 enable the use of tabs). This also enables the -// use of the STYLE_CALLTIP. -void CallTip::SetTabSize(int tabSz) { - tabSize = tabSz; - useStyleCallTip = true; -} - -// It might be better to have two access functions for this and to use -// them for all settings of colours. -void CallTip::SetForeBack(const ColourPair &fore, const ColourPair &back) { - colourBG = back; - colourUnSel = fore; -} diff --git a/MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/src/CallTip.h b/MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/src/CallTip.h deleted file mode 100644 index 3f7557e4..00000000 --- a/MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/src/CallTip.h +++ /dev/null @@ -1,79 +0,0 @@ -// Scintilla source code edit control -/** @file CallTip.h - ** Interface to the call tip control. - **/ -// Copyright 1998-2001 by Neil Hodgson -// The License.txt file describes the conditions under which this software may be distributed. - -#ifndef CALLTIP_H -#define CALLTIP_H - -/** - */ -class CallTip { - int startHighlight; // character offset to start and... - int endHighlight; // ...end of highlighted text - char *val; - Font font; - PRectangle rectUp; // rectangle of last up angle in the tip - PRectangle rectDown; // rectangle of last down arrow in the tip - int lineHeight; // vertical line spacing - int offsetMain; // The alignment point of the call tip - int tabSize; // Tab size in pixels, <=0 no TAB expand - bool useStyleCallTip; // if true, STYLE_CALLTIP should be used - - // Private so CallTip objects can not be copied - CallTip(const CallTip &) {} - CallTip &operator=(const CallTip &) { return *this; } - void DrawChunk(Surface *surface, int &x, const char *s, - int posStart, int posEnd, int ytext, PRectangle rcClient, - bool highlight, bool draw); - int PaintContents(Surface *surfaceWindow, bool draw); - bool IsTabCharacter(char c); - int NextTabPos(int x); - -public: - Window wCallTip; - Window wDraw; - bool inCallTipMode; - int posStartCallTip; - ColourPair colourBG; - ColourPair colourUnSel; - ColourPair colourSel; - ColourPair colourShade; - ColourPair colourLight; - int codePage; - int clickPlace; - - CallTip(); - ~CallTip(); - - /// Claim or accept palette entries for the colours required to paint a calltip. - void RefreshColourPalette(Palette &pal, bool want); - - void PaintCT(Surface *surfaceWindow); - - void MouseClick(Point pt); - - /// Setup the calltip and return a rectangle of the area required. - PRectangle CallTipStart(int pos, Point pt, const char *defn, - const char *faceName, int size, int codePage_, - int characterSet, Window &wParent); - - void CallTipCancel(); - - /// Set a range of characters to be displayed in a highlight style. - /// Commonly used to highlight the current parameter. - void SetHighlight(int start, int end); - - /// Set the tab size in pixels for the call tip. 0 or -ve means no tab expand. - void SetTabSize(int tabSz); - - /// Used to determine which STYLE_xxxx to use for call tip information - bool UseStyleCallTip() const { return useStyleCallTip;} - - // Modify foreground and background colours - void SetForeBack(const ColourPair &fore, const ColourPair &back); -}; - -#endif diff --git a/MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/src/CellBuffer.cxx b/MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/src/CellBuffer.cxx deleted file mode 100644 index 162d6bb7..00000000 --- a/MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/src/CellBuffer.cxx +++ /dev/null @@ -1,1120 +0,0 @@ -// Scintilla source code edit control -/** @file CellBuffer.cxx - ** Manages a buffer of cells. - **/ -// Copyright 1998-2001 by Neil Hodgson -// The License.txt file describes the conditions under which this software may be distributed. - -#include -#include -#include -#include - -#include "Platform.h" - -#include "Scintilla.h" -#include "SVector.h" -#include "CellBuffer.h" - -MarkerHandleSet::MarkerHandleSet() { - root = 0; -} - -MarkerHandleSet::~MarkerHandleSet() { - MarkerHandleNumber *mhn = root; - while (mhn) { - MarkerHandleNumber *mhnToFree = mhn; - mhn = mhn->next; - delete mhnToFree; - } - root = 0; -} - -int MarkerHandleSet::Length() { - int c = 0; - MarkerHandleNumber *mhn = root; - while (mhn) { - c++; - mhn = mhn->next; - } - return c; -} - -int MarkerHandleSet::NumberFromHandle(int handle) { - MarkerHandleNumber *mhn = root; - while (mhn) { - if (mhn->handle == handle) { - return mhn->number; - } - mhn = mhn->next; - } - return - 1; -} - -int MarkerHandleSet::MarkValue() { - unsigned int m = 0; - MarkerHandleNumber *mhn = root; - while (mhn) { - m |= (1 << mhn->number); - mhn = mhn->next; - } - return m; -} - -bool MarkerHandleSet::Contains(int handle) { - MarkerHandleNumber *mhn = root; - while (mhn) { - if (mhn->handle == handle) { - return true; - } - mhn = mhn->next; - } - return false; -} - -bool MarkerHandleSet::InsertHandle(int handle, int markerNum) { - MarkerHandleNumber *mhn = new MarkerHandleNumber; - if (!mhn) - return false; - mhn->handle = handle; - mhn->number = markerNum; - mhn->next = root; - root = mhn; - return true; -} - -void MarkerHandleSet::RemoveHandle(int handle) { - MarkerHandleNumber **pmhn = &root; - while (*pmhn) { - MarkerHandleNumber *mhn = *pmhn; - if (mhn->handle == handle) { - *pmhn = mhn->next; - delete mhn; - return ; - } - pmhn = &((*pmhn)->next); - } -} - -bool MarkerHandleSet::RemoveNumber(int markerNum) { - bool performedDeletion = false; - MarkerHandleNumber **pmhn = &root; - while (*pmhn) { - MarkerHandleNumber *mhn = *pmhn; - if (mhn->number == markerNum) { - *pmhn = mhn->next; - delete mhn; - performedDeletion = true; - } else { - pmhn = &((*pmhn)->next); - } - } - return performedDeletion; -} - -void MarkerHandleSet::CombineWith(MarkerHandleSet *other) { - MarkerHandleNumber **pmhn = &root; - while (*pmhn) { - pmhn = &((*pmhn)->next); - } - *pmhn = other->root; - other->root = 0; -} - -LineVector::LineVector() { - linesData = 0; - lines = 0; - size = 0; - levels = 0; - sizeLevels = 0; - handleCurrent = 1; - growSize = 1000; - - Init(); -} - -LineVector::~LineVector() { - for (int line = 0; line < lines; line++) { - delete linesData[line].handleSet; - linesData[line].handleSet = 0; - } - delete []linesData; - linesData = 0; - delete []levels; - levels = 0; -} - -void LineVector::Init() { - for (int line = 0; line < lines; line++) { - delete linesData[line].handleSet; - linesData[line].handleSet = 0; - } - delete []linesData; - linesData = new LineData[static_cast(growSize)]; - size = growSize; - lines = 1; - delete []levels; - levels = 0; - sizeLevels = 0; -} - -void LineVector::Expand(int sizeNew) { - LineData *linesDataNew = new LineData[sizeNew]; - if (linesDataNew) { - for (int i = 0; i < size; i++) - linesDataNew[i] = linesData[i]; - // Do not delete handleSets here as they are transferred to new linesData - delete []linesData; - linesData = linesDataNew; - size = sizeNew; - } else { - Platform::DebugPrintf("No memory available\n"); - // TODO: Blow up - } - -} - -void LineVector::ExpandLevels(int sizeNew) { - if (sizeNew == -1) - sizeNew = size; - int *levelsNew = new int[sizeNew]; - if (levelsNew) { - int i = 0; - for (; i < sizeLevels; i++) - levelsNew[i] = levels[i]; - for (; i < sizeNew; i++) - levelsNew[i] = SC_FOLDLEVELBASE; - delete []levels; - levels = levelsNew; - sizeLevels = sizeNew; - } else { - Platform::DebugPrintf("No memory available\n"); - // TODO: Blow up - } - -} - -void LineVector::ClearLevels() { - delete []levels; - levels = 0; - sizeLevels = 0; -} - -void LineVector::InsertValue(int pos, int value) { - //Platform::DebugPrintf("InsertValue[%d] = %d\n", pos, value); - if ((lines + 2) >= size) { - if (growSize * 6 < size) - growSize *= 2; - Expand(size + growSize); - if (levels) { - ExpandLevels(size + growSize); - } - } - lines++; - for (int i = lines; i > pos; i--) { - linesData[i] = linesData[i - 1]; - } - linesData[pos].startPosition = value; - linesData[pos].handleSet = 0; - if (levels) { - for (int j = lines; j > pos; j--) { - levels[j] = levels[j - 1]; - } - if (pos == 0) { - levels[pos] = SC_FOLDLEVELBASE; - } else if (pos == (lines - 1)) { // Last line will not be a folder - levels[pos] = SC_FOLDLEVELBASE; - } else { - levels[pos] = levels[pos - 1]; - } - } -} - -void LineVector::SetValue(int pos, int value) { - //Platform::DebugPrintf("SetValue[%d] = %d\n", pos, value); - if ((pos + 2) >= size) { - //Platform::DebugPrintf("Resize %d %d\n", size,pos); - Expand(pos + growSize); - //Platform::DebugPrintf("end Resize %d %d\n", size,pos); - lines = pos; - if (levels) { - ExpandLevels(pos + growSize); - } - } - linesData[pos].startPosition = value; -} - -void LineVector::Remove(int pos) { - //Platform::DebugPrintf("Remove %d\n", pos); - // Retain the markers from the deleted line by oring them into the previous line - if (pos > 0) { - MergeMarkers(pos - 1); - } - for (int i = pos; i < lines; i++) { - linesData[i] = linesData[i + 1]; - } - if (levels) { - // Move up following lines but merge header flag from this line - // to line before to avoid a temporary disappearence causing expansion. - int firstHeader = levels[pos] & SC_FOLDLEVELHEADERFLAG; - for (int j = pos; j < lines; j++) { - levels[j] = levels[j + 1]; - } - if (pos > 0) - levels[pos-1] |= firstHeader; - } - lines--; -} - -int LineVector::LineFromPosition(int pos) { - //Platform::DebugPrintf("LineFromPostion %d lines=%d end = %d\n", pos, lines, linesData[lines].startPosition); - if (lines == 0) - return 0; - //Platform::DebugPrintf("LineFromPosition %d\n", pos); - if (pos >= linesData[lines].startPosition) - return lines - 1; - int lower = 0; - int upper = lines; - do { - int middle = (upper + lower + 1) / 2; // Round high - if (pos < linesData[middle].startPosition) { - upper = middle - 1; - } else { - lower = middle; - } - } while (lower < upper); - //Platform::DebugPrintf("LineFromPostion %d %d %d\n", pos, lower, linesData[lower].startPosition, linesData[lower > 1 ? lower - 1 : 0].startPosition); - return lower; -} - -int LineVector::AddMark(int line, int markerNum) { - handleCurrent++; - if (!linesData[line].handleSet) { - // Need new structure to hold marker handle - linesData[line].handleSet = new MarkerHandleSet; - if (!linesData[line].handleSet) - return - 1; - } - linesData[line].handleSet->InsertHandle(handleCurrent, markerNum); - - return handleCurrent; -} - -void LineVector::MergeMarkers(int pos) { - if (linesData[pos + 1].handleSet != NULL) { - if (linesData[pos].handleSet == NULL ) - linesData[pos].handleSet = new MarkerHandleSet; - linesData[pos].handleSet->CombineWith(linesData[pos + 1].handleSet); - delete linesData[pos + 1].handleSet; - linesData[pos + 1].handleSet = NULL; - } -} - -void LineVector::DeleteMark(int line, int markerNum, bool all) { - if (linesData[line].handleSet) { - if (markerNum == -1) { - delete linesData[line].handleSet; - linesData[line].handleSet = 0; - } else { - bool performedDeletion = - linesData[line].handleSet->RemoveNumber(markerNum); - while (all && performedDeletion) { - performedDeletion = - linesData[line].handleSet->RemoveNumber(markerNum); - } - if (linesData[line].handleSet->Length() == 0) { - delete linesData[line].handleSet; - linesData[line].handleSet = 0; - } - } - } -} - -void LineVector::DeleteMarkFromHandle(int markerHandle) { - int line = LineFromHandle(markerHandle); - if (line >= 0) { - linesData[line].handleSet->RemoveHandle(markerHandle); - if (linesData[line].handleSet->Length() == 0) { - delete linesData[line].handleSet; - linesData[line].handleSet = 0; - } - } -} - -int LineVector::LineFromHandle(int markerHandle) { - for (int line = 0; line < lines; line++) { - if (linesData[line].handleSet) { - if (linesData[line].handleSet->Contains(markerHandle)) { - return line; - } - } - } - return - 1; -} - -Action::Action() { - at = startAction; - position = 0; - data = 0; - lenData = 0; -} - -Action::~Action() { - Destroy(); -} - -void Action::Create(actionType at_, int position_, char *data_, int lenData_, bool mayCoalesce_) { - delete []data; - position = position_; - at = at_; - data = data_; - lenData = lenData_; - mayCoalesce = mayCoalesce_; -} - -void Action::Destroy() { - delete []data; - data = 0; -} - -void Action::Grab(Action *source) { - delete []data; - - position = source->position; - at = source->at; - data = source->data; - lenData = source->lenData; - mayCoalesce = source->mayCoalesce; - - // Ownership of source data transferred to this - source->position = 0; - source->at = startAction; - source->data = 0; - source->lenData = 0; - source->mayCoalesce = true; -} - -// The undo history stores a sequence of user operations that represent the user's view of the -// commands executed on the text. -// Each user operation contains a sequence of text insertion and text deletion actions. -// All the user operations are stored in a list of individual actions with 'start' actions used -// as delimiters between user operations. -// Initially there is one start action in the history. -// As each action is performed, it is recorded in the history. The action may either become -// part of the current user operation or may start a new user operation. If it is to be part of the -// current operation, then it overwrites the current last action. If it is to be part of a new -// operation, it is appended after the current last action. -// After writing the new action, a new start action is appended at the end of the history. -// The decision of whether to start a new user operation is based upon two factors. If a -// compound operation has been explicitly started by calling BeginUndoAction and no matching -// EndUndoAction (these calls nest) has been called, then the action is coalesced into the current -// operation. If there is no outstanding BeginUndoAction call then a new operation is started -// unless it looks as if the new action is caused by the user typing or deleting a stream of text. -// Sequences that look like typing or deletion are coalesced into a single user operation. - -UndoHistory::UndoHistory() { - - lenActions = 100; - actions = new Action[lenActions]; - maxAction = 0; - currentAction = 0; - undoSequenceDepth = 0; - savePoint = 0; - - actions[currentAction].Create(startAction); -} - -UndoHistory::~UndoHistory() { - delete []actions; - actions = 0; -} - -void UndoHistory::EnsureUndoRoom() { - // Have to test that there is room for 2 more actions in the array - // as two actions may be created by the calling function - if (currentAction >= (lenActions - 2)) { - // Run out of undo nodes so extend the array - int lenActionsNew = lenActions * 2; - Action *actionsNew = new Action[lenActionsNew]; - if (!actionsNew) - return ; - for (int act = 0; act <= currentAction; act++) - actionsNew[act].Grab(&actions[act]); - delete []actions; - lenActions = lenActionsNew; - actions = actionsNew; - } -} - -void UndoHistory::AppendAction(actionType at, int position, char *data, int lengthData) { - EnsureUndoRoom(); - //Platform::DebugPrintf("%% %d action %d %d %d\n", at, position, lengthData, currentAction); - //Platform::DebugPrintf("^ %d action %d %d\n", actions[currentAction - 1].at, - // actions[currentAction - 1].position, actions[currentAction - 1].lenData); - if (currentAction < savePoint) { - savePoint = -1; - } - if (currentAction >= 1) { - if (0 == undoSequenceDepth) { - // Top level actions may not always be coalesced - Action &actPrevious = actions[currentAction - 1]; - // See if current action can be coalesced into previous action - // Will work if both are inserts or deletes and position is same - if (at != actPrevious.at) { - currentAction++; - } else if (currentAction == savePoint) { - currentAction++; - } else if ((at == insertAction) && - (position != (actPrevious.position + actPrevious.lenData))) { - // Insertions must be immediately after to coalesce - currentAction++; - } else if (!actions[currentAction].mayCoalesce) { - // Not allowed to coalesce if this set - currentAction++; - } else if (at == removeAction) { - if ((lengthData == 1) || (lengthData == 2)){ - if ((position + lengthData) == actPrevious.position) { - ; // Backspace -> OK - } else if (position == actPrevious.position) { - ; // Delete -> OK - } else { - // Removals must be at same position to coalesce - currentAction++; - } - } else { - // Removals must be of one character to coalesce - currentAction++; - } - } else { - //Platform::DebugPrintf("action coalesced\n"); - } - - } else { - // Actions not at top level are always coalesced unless this is after return to top level - if (!actions[currentAction].mayCoalesce) - currentAction++; - } - } else { - currentAction++; - } - actions[currentAction].Create(at, position, data, lengthData); - currentAction++; - actions[currentAction].Create(startAction); - maxAction = currentAction; -} - -void UndoHistory::BeginUndoAction() { - EnsureUndoRoom(); - if (undoSequenceDepth == 0) { - if (actions[currentAction].at != startAction) { - currentAction++; - actions[currentAction].Create(startAction); - maxAction = currentAction; - } - actions[currentAction].mayCoalesce = false; - } - undoSequenceDepth++; -} - -void UndoHistory::EndUndoAction() { - EnsureUndoRoom(); - undoSequenceDepth--; - if (0 == undoSequenceDepth) { - if (actions[currentAction].at != startAction) { - currentAction++; - actions[currentAction].Create(startAction); - maxAction = currentAction; - } - actions[currentAction].mayCoalesce = false; - } -} - -void UndoHistory::DropUndoSequence() { - undoSequenceDepth = 0; -} - -void UndoHistory::DeleteUndoHistory() { - for (int i = 1; i < maxAction; i++) - actions[i].Destroy(); - maxAction = 0; - currentAction = 0; - actions[currentAction].Create(startAction); - savePoint = 0; -} - -void UndoHistory::SetSavePoint() { - savePoint = currentAction; -} - -bool UndoHistory::IsSavePoint() const { - return savePoint == currentAction; -} - -bool UndoHistory::CanUndo() const { - return (currentAction > 0) && (maxAction > 0); -} - -int UndoHistory::StartUndo() { - // Drop any trailing startAction - if (actions[currentAction].at == startAction && currentAction > 0) - currentAction--; - - // Count the steps in this action - int act = currentAction; - while (actions[act].at != startAction && act > 0) { - act--; - } - return currentAction - act; -} - -const Action &UndoHistory::GetUndoStep() const { - return actions[currentAction]; -} - -void UndoHistory::CompletedUndoStep() { - currentAction--; -} - -bool UndoHistory::CanRedo() const { - return maxAction > currentAction; -} - -int UndoHistory::StartRedo() { - // Drop any leading startAction - if (actions[currentAction].at == startAction && currentAction < maxAction) - currentAction++; - - // Count the steps in this action - int act = currentAction; - while (actions[act].at != startAction && act < maxAction) { - act++; - } - return act - currentAction; -} - -const Action &UndoHistory::GetRedoStep() const { - return actions[currentAction]; -} - -void UndoHistory::CompletedRedoStep() { - currentAction++; -} - -CellBuffer::CellBuffer(int initialLength) { - body = new char[initialLength]; - size = initialLength; - length = 0; - part1len = 0; - gaplen = initialLength; - part2body = body + gaplen; - readOnly = false; - collectingUndo = true; - growSize = 4000; -} - -CellBuffer::~CellBuffer() { - delete []body; - body = 0; -} - -void CellBuffer::GapTo(int position) { - if (position == part1len) - return ; - if (position < part1len) { - int diff = part1len - position; - //Platform::DebugPrintf("Move gap backwards to %d diff = %d part1len=%d length=%d \n", position,diff, part1len, length); - for (int i = 0; i < diff; i++) - body[part1len + gaplen - i - 1] = body[part1len - i - 1]; - } else { // position > part1len - int diff = position - part1len; - //Platform::DebugPrintf("Move gap forwards to %d diff =%d\n", position,diff); - for (int i = 0; i < diff; i++) - body[part1len + i] = body[part1len + gaplen + i]; - } - part1len = position; - part2body = body + gaplen; -} - -void CellBuffer::RoomFor(int insertionLength) { - //Platform::DebugPrintf("need room %d %d\n", gaplen, insertionLength); - if (gaplen <= insertionLength) { - //Platform::DebugPrintf("need room %d %d\n", gaplen, insertionLength); - if (growSize * 6 < size) - growSize *= 2; - int newSize = size + insertionLength + growSize; - Allocate(newSize); - } -} - -// To make it easier to write code that uses ByteAt, a position outside the range of the buffer -// can be retrieved. All characters outside the range have the value '\0'. -char CellBuffer::ByteAt(int position) { - if (position < part1len) { - if (position < 0) { - return '\0'; - } else { - return body[position]; - } - } else { - if (position >= length) { - return '\0'; - } else { - return part2body[position]; - } - } -} - -void CellBuffer::SetByteAt(int position, char ch) { - - if (position < 0) { - //Platform::DebugPrintf("Bad position %d\n",position); - return ; - } - if (position >= length + 11) { - Platform::DebugPrintf("Very Bad position %d of %d\n", position, length); - //exit(2); - return ; - } - if (position >= length) { - //Platform::DebugPrintf("Bad position %d of %d\n",position,length); - return ; - } - - if (position < part1len) { - body[position] = ch; - } else { - part2body[position] = ch; - } -} - -char CellBuffer::CharAt(int position) { - return ByteAt(position*2); -} - -void CellBuffer::GetCharRange(char *buffer, int position, int lengthRetrieve) { - if (lengthRetrieve < 0) - return ; - if (position < 0) - return ; - int bytePos = position * 2; - if ((bytePos + lengthRetrieve * 2) > length) { - Platform::DebugPrintf("Bad GetCharRange %d for %d of %d\n", bytePos, - lengthRetrieve, length); - return ; - } - GapTo(0); // Move the buffer so its easy to subscript into it - char *pb = part2body + bytePos; - while (lengthRetrieve--) { - *buffer++ = *pb; - pb += 2; - } -} - -char CellBuffer::StyleAt(int position) { - return ByteAt(position*2 + 1); -} - -const char *CellBuffer::InsertString(int position, char *s, int insertLength) { - char *data = 0; - // InsertString and DeleteChars are the bottleneck though which all changes occur - if (!readOnly) { - if (collectingUndo) { - // Save into the undo/redo stack, but only the characters - not the formatting - // This takes up about half load time - data = new char[insertLength / 2]; - for (int i = 0; i < insertLength / 2; i++) { - data[i] = s[i * 2]; - } - uh.AppendAction(insertAction, position / 2, data, insertLength / 2); - } - - BasicInsertString(position, s, insertLength); - } - return data; -} - -bool CellBuffer::SetStyleAt(int position, char style, char mask) { - style &= mask; - char curVal = ByteAt(position * 2 + 1); - if ((curVal & mask) != style) { - SetByteAt(position*2 + 1, static_cast((curVal & ~mask) | style)); - return true; - } else { - return false; - } -} - -bool CellBuffer::SetStyleFor(int position, int lengthStyle, char style, char mask) { - int bytePos = position * 2 + 1; - bool changed = false; - PLATFORM_ASSERT(lengthStyle == 0 || - (lengthStyle > 0 && lengthStyle + position < length)); - while (lengthStyle--) { - char curVal = ByteAt(bytePos); - if ((curVal & mask) != style) { - SetByteAt(bytePos, static_cast((curVal & ~mask) | style)); - changed = true; - } - bytePos += 2; - } - return changed; -} - -const char *CellBuffer::DeleteChars(int position, int deleteLength) { - // InsertString and DeleteChars are the bottleneck though which all changes occur - PLATFORM_ASSERT(deleteLength > 0); - char *data = 0; - if (!readOnly) { - if (collectingUndo) { - // Save into the undo/redo stack, but only the characters - not the formatting - data = new char[deleteLength / 2]; - for (int i = 0; i < deleteLength / 2; i++) { - data[i] = ByteAt(position + i * 2); - } - uh.AppendAction(removeAction, position / 2, data, deleteLength / 2); - } - - BasicDeleteChars(position, deleteLength); - } - return data; -} - -int CellBuffer::ByteLength() { - return length; -} - -int CellBuffer::Length() { - return ByteLength() / 2; -} - -void CellBuffer::Allocate(int newSize) { - if (newSize > length) { - GapTo(length); - char *newBody = new char[newSize]; - memcpy(newBody, body, length); - delete []body; - body = newBody; - gaplen += newSize - size; - part2body = body + gaplen; - size = newSize; - } -} - -int CellBuffer::Lines() { - //Platform::DebugPrintf("Lines = %d\n", lv.lines); - return lv.lines; -} - -int CellBuffer::LineStart(int line) { - if (line < 0) - return 0; - else if (line > lv.lines) - return Length(); - else - return lv.linesData[line].startPosition; -} - -bool CellBuffer::IsReadOnly() { - return readOnly; -} - -void CellBuffer::SetReadOnly(bool set) { - readOnly = set; -} - -void CellBuffer::SetSavePoint() { - uh.SetSavePoint(); -} - -bool CellBuffer::IsSavePoint() { - return uh.IsSavePoint(); -} - -int CellBuffer::AddMark(int line, int markerNum) { - if ((line >= 0) && (line < lv.lines)) { - return lv.AddMark(line, markerNum); - } - return - 1; -} - -void CellBuffer::DeleteMark(int line, int markerNum) { - if ((line >= 0) && (line < lv.lines)) { - lv.DeleteMark(line, markerNum, false); - } -} - -void CellBuffer::DeleteMarkFromHandle(int markerHandle) { - lv.DeleteMarkFromHandle(markerHandle); -} - -int CellBuffer::GetMark(int line) { - if ((line >= 0) && (line < lv.lines) && (lv.linesData[line].handleSet)) - return lv.linesData[line].handleSet->MarkValue(); - return 0; -} - -void CellBuffer::DeleteAllMarks(int markerNum) { - for (int line = 0; line < lv.lines; line++) { - lv.DeleteMark(line, markerNum, true); - } -} - -int CellBuffer::LineFromHandle(int markerHandle) { - return lv.LineFromHandle(markerHandle); -} - -// Without undo - -void CellBuffer::BasicInsertString(int position, char *s, int insertLength) { - //Platform::DebugPrintf("Inserting at %d for %d\n", position, insertLength); - if (insertLength == 0) - return ; - PLATFORM_ASSERT(insertLength > 0); - RoomFor(insertLength); - GapTo(position); - - memcpy(body + part1len, s, insertLength); - length += insertLength; - part1len += insertLength; - gaplen -= insertLength; - part2body = body + gaplen; - - int lineInsert = lv.LineFromPosition(position / 2) + 1; - // Point all the lines after the insertion point further along in the buffer - for (int lineAfter = lineInsert; lineAfter <= lv.lines; lineAfter++) { - lv.linesData[lineAfter].startPosition += insertLength / 2; - } - char chPrev = ' '; - if ((position - 2) >= 0) - chPrev = ByteAt(position - 2); - char chAfter = ' '; - if ((position + insertLength) < length) - chAfter = ByteAt(position + insertLength); - if (chPrev == '\r' && chAfter == '\n') { - //Platform::DebugPrintf("Splitting a crlf pair at %d\n", lineInsert); - // Splitting up a crlf pair at position - lv.InsertValue(lineInsert, position / 2); - lineInsert++; - } - char ch = ' '; - for (int i = 0; i < insertLength; i += 2) { - ch = s[i]; - if (ch == '\r') { - //Platform::DebugPrintf("Inserting cr at %d\n", lineInsert); - lv.InsertValue(lineInsert, (position + i) / 2 + 1); - lineInsert++; - } else if (ch == '\n') { - if (chPrev == '\r') { - //Platform::DebugPrintf("Patching cr before lf at %d\n", lineInsert-1); - // Patch up what was end of line - lv.SetValue(lineInsert - 1, (position + i) / 2 + 1); - } else { - //Platform::DebugPrintf("Inserting lf at %d\n", lineInsert); - lv.InsertValue(lineInsert, (position + i) / 2 + 1); - lineInsert++; - } - } - chPrev = ch; - } - // Joining two lines where last insertion is cr and following text starts with lf - if (chAfter == '\n') { - if (ch == '\r') { - //Platform::DebugPrintf("Joining cr before lf at %d\n", lineInsert-1); - // End of line already in buffer so drop the newly created one - lv.Remove(lineInsert - 1); - } - } -} - -void CellBuffer::BasicDeleteChars(int position, int deleteLength) { - //Platform::DebugPrintf("Deleting at %d for %d\n", position, deleteLength); - if (deleteLength == 0) - return ; - - if ((position == 0) && (deleteLength == length)) { - // If whole buffer is being deleted, faster to reinitialise lines data - // than to delete each line. - //printf("Whole buffer being deleted\n"); - lv.Init(); - } else { - // Have to fix up line positions before doing deletion as looking at text in buffer - // to work out which lines have been removed - - int lineRemove = lv.LineFromPosition(position / 2) + 1; - // Point all the lines after the insertion point further along in the buffer - for (int lineAfter = lineRemove; lineAfter <= lv.lines; lineAfter++) { - lv.linesData[lineAfter].startPosition -= deleteLength / 2; - } - char chPrev = ' '; - if (position >= 2) - chPrev = ByteAt(position - 2); - char chBefore = chPrev; - char chNext = ' '; - if (position < length) - chNext = ByteAt(position); - bool ignoreNL = false; - if (chPrev == '\r' && chNext == '\n') { - //Platform::DebugPrintf("Deleting lf after cr, move line end to cr at %d\n", lineRemove); - // Move back one - lv.SetValue(lineRemove, position / 2); - lineRemove++; - ignoreNL = true; // First \n is not real deletion - } - - char ch = chNext; - for (int i = 0; i < deleteLength; i += 2) { - chNext = ' '; - if ((position + i + 2) < length) - chNext = ByteAt(position + i + 2); - //Platform::DebugPrintf("Deleting %d %x\n", i, ch); - if (ch == '\r') { - if (chNext != '\n') { - //Platform::DebugPrintf("Removing cr end of line\n"); - lv.Remove(lineRemove); - } - } else if (ch == '\n') { - if (ignoreNL) { - ignoreNL = false; // Further \n are real deletions - } else { - //Platform::DebugPrintf("Removing lf end of line\n"); - lv.Remove(lineRemove); - } - } - - ch = chNext; - } - // May have to fix up end if last deletion causes cr to be next to lf - // or removes one of a crlf pair - char chAfter = ' '; - if ((position + deleteLength) < length) - chAfter = ByteAt(position + deleteLength); - if (chBefore == '\r' && chAfter == '\n') { - //d.printf("Joining cr before lf at %d\n", lineRemove); - // Using lineRemove-1 as cr ended line before start of deletion - lv.Remove(lineRemove - 1); - lv.SetValue(lineRemove - 1, position / 2 + 1); - } - } - GapTo(position); - length -= deleteLength; - gaplen += deleteLength; - part2body = body + gaplen; -} - -bool CellBuffer::SetUndoCollection(bool collectUndo) { - collectingUndo = collectUndo; - uh.DropUndoSequence(); - return collectingUndo; -} - -bool CellBuffer::IsCollectingUndo() { - return collectingUndo; -} - -void CellBuffer::BeginUndoAction() { - uh.BeginUndoAction(); -} - -void CellBuffer::EndUndoAction() { - uh.EndUndoAction(); -} - -void CellBuffer::DeleteUndoHistory() { - uh.DeleteUndoHistory(); -} - -bool CellBuffer::CanUndo() { - return uh.CanUndo(); -} - -int CellBuffer::StartUndo() { - return uh.StartUndo(); -} - -const Action &CellBuffer::GetUndoStep() const { - return uh.GetUndoStep(); -} - -void CellBuffer::PerformUndoStep() { - const Action &actionStep = uh.GetUndoStep(); - if (actionStep.at == insertAction) { - BasicDeleteChars(actionStep.position*2, actionStep.lenData*2); - } else if (actionStep.at == removeAction) { - char *styledData = new char[actionStep.lenData * 2]; - for (int i = 0; i < actionStep.lenData; i++) { - styledData[i*2] = actionStep.data[i]; - styledData[i*2 + 1] = 0; - } - BasicInsertString(actionStep.position*2, styledData, actionStep.lenData*2); - delete []styledData; - } - uh.CompletedUndoStep(); -} - -bool CellBuffer::CanRedo() { - return uh.CanRedo(); -} - -int CellBuffer::StartRedo() { - return uh.StartRedo(); -} - -const Action &CellBuffer::GetRedoStep() const { - return uh.GetRedoStep(); -} - -void CellBuffer::PerformRedoStep() { - const Action &actionStep = uh.GetRedoStep(); - if (actionStep.at == insertAction) { - char *styledData = new char[actionStep.lenData * 2]; - for (int i = 0; i < actionStep.lenData; i++) { - styledData[i*2] = actionStep.data[i]; - styledData[i*2 + 1] = 0; - } - BasicInsertString(actionStep.position*2, styledData, actionStep.lenData*2); - delete []styledData; - } else if (actionStep.at == removeAction) { - BasicDeleteChars(actionStep.position*2, actionStep.lenData*2); - } - uh.CompletedRedoStep(); -} - -int CellBuffer::SetLineState(int line, int state) { - int stateOld = lineStates[line]; - lineStates[line] = state; - return stateOld; -} - -int CellBuffer::GetLineState(int line) { - return lineStates[line]; -} - -int CellBuffer::GetMaxLineState() { - return lineStates.Length(); -} - -int CellBuffer::SetLevel(int line, int level) { - int prev = 0; - if ((line >= 0) && (line < lv.lines)) { - if (!lv.levels) { - lv.ExpandLevels(); - } - prev = lv.levels[line]; - if (lv.levels[line] != level) { - lv.levels[line] = level; - } - } - return prev; -} - -int CellBuffer::GetLevel(int line) { - if (lv.levels && (line >= 0) && (line < lv.lines)) { - return lv.levels[line]; - } else { - return SC_FOLDLEVELBASE; - } -} - -void CellBuffer::ClearLevels() { - lv.ClearLevels(); -} diff --git a/MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/src/CellBuffer.h b/MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/src/CellBuffer.h deleted file mode 100644 index 99db345c..00000000 --- a/MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/src/CellBuffer.h +++ /dev/null @@ -1,250 +0,0 @@ -// Scintilla source code edit control -/** @file CellBuffer.h - ** Manages the text of the document. - **/ -// Copyright 1998-2004 by Neil Hodgson -// The License.txt file describes the conditions under which this software may be distributed. - -#ifndef CELLBUFFER_H -#define CELLBUFFER_H - -/** - * This holds the marker identifier and the marker type to display. - * MarkerHandleNumbers are members of lists. - */ -struct MarkerHandleNumber { - int handle; - int number; - MarkerHandleNumber *next; -}; - -/** - * A marker handle set contains any number of MarkerHandleNumbers. - */ -class MarkerHandleSet { - MarkerHandleNumber *root; - -public: - MarkerHandleSet(); - ~MarkerHandleSet(); - int Length(); - int NumberFromHandle(int handle); - int MarkValue(); ///< Bit set of marker numbers. - bool Contains(int handle); - bool InsertHandle(int handle, int markerNum); - void RemoveHandle(int handle); - bool RemoveNumber(int markerNum); - void CombineWith(MarkerHandleSet *other); -}; - -/** - * Each line stores the starting position of the first character of the line in the cell buffer - * and potentially a marker handle set. Often a line will not have any attached markers. - */ -struct LineData { - int startPosition; - MarkerHandleSet *handleSet; - LineData() : startPosition(0), handleSet(0) { - } -}; - -/** - * The line vector contains information about each of the lines in a cell buffer. - */ -class LineVector { -public: - int growSize; - int lines; - LineData *linesData; - int size; - int *levels; - int sizeLevels; - - /// Handles are allocated sequentially and should never have to be reused as 32 bit ints are very big. - int handleCurrent; - - LineVector(); - ~LineVector(); - void Init(); - - void Expand(int sizeNew); - void ExpandLevels(int sizeNew=-1); - void ClearLevels(); - void InsertValue(int pos, int value); - void SetValue(int pos, int value); - void Remove(int pos); - int LineFromPosition(int pos); - - int AddMark(int line, int marker); - void MergeMarkers(int pos); - void DeleteMark(int line, int markerNum, bool all); - void DeleteMarkFromHandle(int markerHandle); - int LineFromHandle(int markerHandle); -}; - -enum actionType { insertAction, removeAction, startAction }; - -/** - * Actions are used to store all the information required to perform one undo/redo step. - */ -class Action { -public: - actionType at; - int position; - char *data; - int lenData; - bool mayCoalesce; - - Action(); - ~Action(); - void Create(actionType at_, int position_=0, char *data_=0, int lenData_=0, bool mayCoalesce_=true); - void Destroy(); - void Grab(Action *source); -}; - -/** - * - */ -class UndoHistory { - Action *actions; - int lenActions; - int maxAction; - int currentAction; - int undoSequenceDepth; - int savePoint; - - void EnsureUndoRoom(); - -public: - UndoHistory(); - ~UndoHistory(); - - void AppendAction(actionType at, int position, char *data, int length); - - void BeginUndoAction(); - void EndUndoAction(); - void DropUndoSequence(); - void DeleteUndoHistory(); - - /// The save point is a marker in the undo stack where the container has stated that - /// the buffer was saved. Undo and redo can move over the save point. - void SetSavePoint(); - bool IsSavePoint() const; - - /// To perform an undo, StartUndo is called to retrieve the number of steps, then UndoStep is - /// called that many times. Similarly for redo. - bool CanUndo() const; - int StartUndo(); - const Action &GetUndoStep() const; - void CompletedUndoStep(); - bool CanRedo() const; - int StartRedo(); - const Action &GetRedoStep() const; - void CompletedRedoStep(); -}; - -/** - * Holder for an expandable array of characters that supports undo and line markers. - * Based on article "Data Structures in a Bit-Mapped Text Editor" - * by Wilfred J. Hansen, Byte January 1987, page 183. - */ -class CellBuffer { -private: - char *body; ///< The cell buffer itself. - int size; ///< Allocated size of the buffer. - int length; ///< Total length of the data. - int part1len; ///< Length of the first part. - int gaplen; ///< Length of the gap between the two parts. - char *part2body; ///< The second part of the cell buffer. - ///< Doesn't point after the gap but set so that - ///< part2body[position] is consistent with body[position]. - bool readOnly; - int growSize; - - bool collectingUndo; - UndoHistory uh; - - LineVector lv; - - SVector lineStates; - - void GapTo(int position); - void RoomFor(int insertionLength); - - inline char ByteAt(int position); - void SetByteAt(int position, char ch); - -public: - - CellBuffer(int initialLength = 4000); - ~CellBuffer(); - - /// Retrieving positions outside the range of the buffer works and returns 0 - char CharAt(int position); - void GetCharRange(char *buffer, int position, int lengthRetrieve); - char StyleAt(int position); - - int ByteLength(); - int Length(); - void Allocate(int newSize); - int Lines(); - int LineStart(int line); - int LineFromPosition(int pos) { return lv.LineFromPosition(pos); } - const char *InsertString(int position, char *s, int insertLength); - - /// Setting styles for positions outside the range of the buffer is safe and has no effect. - /// @return true if the style of a character is changed. - bool SetStyleAt(int position, char style, char mask='\377'); - bool SetStyleFor(int position, int length, char style, char mask); - - const char *DeleteChars(int position, int deleteLength); - - bool IsReadOnly(); - void SetReadOnly(bool set); - - /// The save point is a marker in the undo stack where the container has stated that - /// the buffer was saved. Undo and redo can move over the save point. - void SetSavePoint(); - bool IsSavePoint(); - - /// Line marker functions - int AddMark(int line, int markerNum); - void DeleteMark(int line, int markerNum); - void DeleteMarkFromHandle(int markerHandle); - int GetMark(int line); - void DeleteAllMarks(int markerNum); - int LineFromHandle(int markerHandle); - - /// Actions without undo - void BasicInsertString(int position, char *s, int insertLength); - void BasicDeleteChars(int position, int deleteLength); - - bool SetUndoCollection(bool collectUndo); - bool IsCollectingUndo(); - void BeginUndoAction(); - void EndUndoAction(); - void DeleteUndoHistory(); - - /// To perform an undo, StartUndo is called to retrieve the number of steps, then UndoStep is - /// called that many times. Similarly for redo. - bool CanUndo(); - int StartUndo(); - const Action &GetUndoStep() const; - void PerformUndoStep(); - bool CanRedo(); - int StartRedo(); - const Action &GetRedoStep() const; - void PerformRedoStep(); - - int SetLineState(int line, int state); - int GetLineState(int line); - int GetMaxLineState(); - - int SetLevel(int line, int level); - int GetLevel(int line); - void ClearLevels(); -}; - -#define CELL_SIZE 2 - -#endif diff --git a/MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/src/CharClassify.cxx b/MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/src/CharClassify.cxx deleted file mode 100644 index 76eb905c..00000000 --- a/MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/src/CharClassify.cxx +++ /dev/null @@ -1,43 +0,0 @@ -// Scintilla source code edit control -/** @file CharClassify.cxx - ** Character classifications used by Document and RESearch. - **/ -// Copyright 2006 by Neil Hodgson -// The License.txt file describes the conditions under which this software may be distributed. - -#include - -#include "CharClassify.h" - -// Shut up annoying Visual C++ warnings: -#ifdef _MSC_VER -#pragma warning(disable: 4514) -#endif - -CharClassify::CharClassify() { - SetDefaultCharClasses(true); -} - -void CharClassify::SetDefaultCharClasses(bool includeWordClass) { - // Initialize all char classes to default values - for (int ch = 0; ch < 256; ch++) { - if (ch == '\r' || ch == '\n') - charClass[ch] = ccNewLine; - else if (ch < 0x20 || ch == ' ') - charClass[ch] = ccSpace; - else if (includeWordClass && (ch >= 0x80 || isalnum(ch) || ch == '_')) - charClass[ch] = ccWord; - else - charClass[ch] = ccPunctuation; - } -} - -void CharClassify::SetCharClasses(const unsigned char *chars, cc newCharClass) { - // Apply the newCharClass to the specifed chars - if (chars) { - while (*chars) { - charClass[*chars] = static_cast(newCharClass); - chars++; - } - } -} diff --git a/MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/src/CharClassify.h b/MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/src/CharClassify.h deleted file mode 100644 index d26f4b34..00000000 --- a/MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/src/CharClassify.h +++ /dev/null @@ -1,25 +0,0 @@ -// Scintilla source code edit control -/** @file CharClassify.h - ** Character classifications used by Document and RESearch. - **/ -// Copyright 2006 by Neil Hodgson -// The License.txt file describes the conditions under which this software may be distributed. - -#ifndef CHARCLASSIFY_H -#define CHARCLASSIFY_H - -class CharClassify { -public: - CharClassify(); - - enum cc { ccSpace, ccNewLine, ccWord, ccPunctuation }; - void SetDefaultCharClasses(bool includeWordClass); - void SetCharClasses(const unsigned char *chars, cc newCharClass); - cc GetClass(unsigned char ch) const { return static_cast(charClass[ch]);} - bool IsWord(unsigned char ch) const { return static_cast(charClass[ch]) == ccWord;} - -private: - enum { maxChar=256 }; - unsigned char charClass[maxChar]; // not type cc to save space -}; -#endif diff --git a/MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/src/ContractionState.cxx b/MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/src/ContractionState.cxx deleted file mode 100644 index 70ff77a9..00000000 --- a/MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/src/ContractionState.cxx +++ /dev/null @@ -1,289 +0,0 @@ -// Scintilla source code edit control -/** @file ContractionState.cxx - ** Manages visibility of lines for folding. - **/ -// Copyright 1998-2001 by Neil Hodgson -// The License.txt file describes the conditions under which this software may be distributed. - -#include "Platform.h" - -#include "ContractionState.h" - -OneLine::OneLine() { - displayLine = 0; - //docLine = 0; - visible = true; - height = 1; - expanded = true; -} - -ContractionState::ContractionState() { - lines = 0; - size = 0; - linesInDoc = 1; - linesInDisplay = 1; - valid = false; - docLines = 0; - sizeDocLines = 0; -} - -ContractionState::~ContractionState() { - Clear(); -} - -void ContractionState::MakeValid() const { - if (!valid) { - // Could be cleverer by keeping the index of the last still valid entry - // rather than invalidating all. - linesInDisplay = 0; - for (int lineInDoc=0; lineInDoc= 0) && (lineDoc < linesInDoc)) { - return lines[lineDoc].displayLine; - } - return -1; -} - -int ContractionState::DocFromDisplay(int lineDisplay) const { - if (lineDisplay <= 0) - return 0; - if (lineDisplay >= linesInDisplay) - return linesInDoc; - if (size == 0) - return lineDisplay; - MakeValid(); - if (docLines) { // Valid allocation - return docLines[lineDisplay]; - } else { - return 0; - } -} - -void ContractionState::Grow(int sizeNew) { - OneLine *linesNew = new OneLine[sizeNew]; - if (linesNew) { - int i = 0; - for (; i < size; i++) { - linesNew[i] = lines[i]; - } - for (; i < sizeNew; i++) { - linesNew[i].displayLine = i; - } - delete []lines; - lines = linesNew; - size = sizeNew; - valid = false; - } else { - Platform::DebugPrintf("No memory available\n"); - // TODO: Blow up - } -} - -void ContractionState::InsertLines(int lineDoc, int lineCount) { - if (size == 0) { - linesInDoc += lineCount; - linesInDisplay += lineCount; - return; - } - //Platform::DebugPrintf("InsertLine[%d] = %d\n", lineDoc); - if ((linesInDoc + lineCount + 2) >= size) { - Grow(linesInDoc + lineCount + growSize); - } - linesInDoc += lineCount; - for (int i = linesInDoc; i >= lineDoc + lineCount; i--) { - lines[i].visible = lines[i - lineCount].visible; - lines[i].height = lines[i - lineCount].height; - linesInDisplay += lines[i].height; - lines[i].expanded = lines[i - lineCount].expanded; - } - for (int d=0;d= 0) && (lineDoc < linesInDoc)) { - return lines[lineDoc].visible; - } else { - return false; - } -} - -bool ContractionState::SetVisible(int lineDocStart, int lineDocEnd, bool visible) { - if (lineDocStart == 0) - lineDocStart++; - if (lineDocStart > lineDocEnd) - return false; - if (size == 0) { - Grow(linesInDoc + growSize); - } - // TODO: modify docLine members to mirror displayLine - int delta = 0; - // Change lineDocs - if ((lineDocStart <= lineDocEnd) && (lineDocStart >= 0) && (lineDocEnd < linesInDoc)) { - for (int line=lineDocStart; line <= lineDocEnd; line++) { - if (lines[line].visible != visible) { - delta += visible ? lines[line].height : -lines[line].height; - lines[line].visible = visible; - } - } - } - linesInDisplay += delta; - valid = false; - return delta != 0; -} - -bool ContractionState::GetExpanded(int lineDoc) const { - if (size == 0) - return true; - if ((lineDoc >= 0) && (lineDoc < linesInDoc)) { - return lines[lineDoc].expanded; - } else { - return false; - } -} - -bool ContractionState::SetExpanded(int lineDoc, bool expanded) { - if (size == 0) { - if (expanded) { - // If in completely expanded state then setting - // one line to expanded has no effect. - return false; - } - Grow(linesInDoc + growSize); - } - if ((lineDoc >= 0) && (lineDoc < linesInDoc)) { - if (lines[lineDoc].expanded != expanded) { - lines[lineDoc].expanded = expanded; - return true; - } - } - return false; -} - -int ContractionState::GetHeight(int lineDoc) const { - if (size == 0) - return 1; - if ((lineDoc >= 0) && (lineDoc < linesInDoc)) { - return lines[lineDoc].height; - } else { - return 1; - } -} - -// Set the number of display lines needed for this line. -// Return true if this is a change. -bool ContractionState::SetHeight(int lineDoc, int height) { - if (lineDoc > linesInDoc) - return false; - if (size == 0) { - if (height == 1) { - // If in completely expanded state then all lines - // assumed to have height of one so no effect here. - return false; - } - Grow(linesInDoc + growSize); - } - if (lines[lineDoc].height != height) { - lines[lineDoc].height = height; - valid = false; - return true; - } else { - return false; - } -} - -void ContractionState::ShowAll() { - delete []lines; - lines = 0; - size = 0; - - delete []docLines; - docLines = 0; - sizeDocLines = 0; - - linesInDisplay = linesInDoc; -} diff --git a/MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/src/ContractionState.h b/MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/src/ContractionState.h deleted file mode 100644 index 735735b0..00000000 --- a/MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/src/ContractionState.h +++ /dev/null @@ -1,65 +0,0 @@ -// Scintilla source code edit control -/** @file ContractionState.h - ** Manages visibility of lines for folding. - **/ -// Copyright 1998-2001 by Neil Hodgson -// The License.txt file describes the conditions under which this software may be distributed. - -#ifndef CONTRACTIONSTATE_H -#define CONTRACTIONSTATE_H - -/** - */ -class OneLine { -public: - int displayLine; ///< Position within set of visible lines - //int docLine; ///< Inverse of @a displayLine - int height; ///< Number of display lines needed to show all of the line - bool visible; - bool expanded; - - OneLine(); - virtual ~OneLine() {} -}; - -/** - */ -class ContractionState { - void Grow(int sizeNew); - enum { growSize = 4000 }; - int linesInDoc; - mutable int linesInDisplay; - mutable OneLine *lines; - int size; - mutable int *docLines; - mutable int sizeDocLines; - mutable bool valid; - void MakeValid() const; - -public: - ContractionState(); - virtual ~ContractionState(); - - void Clear(); - - int LinesInDoc() const; - int LinesDisplayed() const; - int DisplayFromDoc(int lineDoc) const; - int DocFromDisplay(int lineDisplay) const; - - void InsertLines(int lineDoc, int lineCount); - void DeleteLines(int lineDoc, int lineCount); - - bool GetVisible(int lineDoc) const; - bool SetVisible(int lineDocStart, int lineDocEnd, bool visible); - - bool GetExpanded(int lineDoc) const; - bool SetExpanded(int lineDoc, bool expanded); - - int GetHeight(int lineDoc) const; - bool SetHeight(int lineDoc, int height); - - void ShowAll(); -}; - -#endif diff --git a/MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/src/Document.cxx b/MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/src/Document.cxx deleted file mode 100644 index cde8e3e2..00000000 --- a/MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/src/Document.cxx +++ /dev/null @@ -1,1577 +0,0 @@ -// Scintilla source code edit control -/** @file Document.cxx - ** Text document that handles notifications, DBCS, styling, words and end of line. - **/ -// Copyright 1998-2003 by Neil Hodgson -// The License.txt file describes the conditions under which this software may be distributed. - -#include -#include -#include -#include - -#include "Platform.h" - -#include "Scintilla.h" -#include "SVector.h" -#include "CellBuffer.h" -#include "CharClassify.h" -#include "Document.h" -#include "RESearch.h" - -// This is ASCII specific but is safe with chars >= 0x80 -static inline bool isspacechar(unsigned char ch) { - return (ch == ' ') || ((ch >= 0x09) && (ch <= 0x0d)); -} - -static inline bool IsPunctuation(char ch) { - return isascii(ch) && ispunct(ch); -} - -static inline bool IsADigit(char ch) { - return isascii(ch) && isdigit(ch); -} - -static inline bool IsLowerCase(char ch) { - return isascii(ch) && islower(ch); -} - -static inline bool IsUpperCase(char ch) { - return isascii(ch) && isupper(ch); -} - -Document::Document() { - refCount = 0; -#ifdef unix - eolMode = SC_EOL_LF; -#else - eolMode = SC_EOL_CRLF; -#endif - dbcsCodePage = 0; - stylingBits = 5; - stylingBitsMask = 0x1F; - stylingMask = 0; - endStyled = 0; - styleClock = 0; - enteredCount = 0; - enteredReadOnlyCount = 0; - tabInChars = 8; - indentInChars = 0; - actualIndentInChars = 8; - useTabs = true; - tabIndents = true; - backspaceUnindents = false; - watchers = 0; - lenWatchers = 0; - - matchesValid = false; - pre = 0; - substituted = 0; -} - -Document::~Document() { - for (int i = 0; i < lenWatchers; i++) { - watchers[i].watcher->NotifyDeleted(this, watchers[i].userData); - } - delete []watchers; - watchers = 0; - lenWatchers = 0; - delete pre; - pre = 0; - delete []substituted; - substituted = 0; -} - -// Increase reference count and return its previous value. -int Document::AddRef() { - return refCount++; -} - -// Decrease reference count and return its previous value. -// Delete the document if reference count reaches zero. -int Document::Release() { - int curRefCount = --refCount; - if (curRefCount == 0) - delete this; - return curRefCount; -} - -void Document::SetSavePoint() { - cb.SetSavePoint(); - NotifySavePoint(true); -} - -int Document::AddMark(int line, int markerNum) { - int prev = cb.AddMark(line, markerNum); - DocModification mh(SC_MOD_CHANGEMARKER, LineStart(line), 0, 0, 0, line); - mh.line = line; - NotifyModified(mh); - return prev; -} - -void Document::AddMarkSet(int line, int valueSet) { - unsigned int m = valueSet; - for (int i = 0; m; i++, m >>= 1) - if (m & 1) - cb.AddMark(line, i); - DocModification mh(SC_MOD_CHANGEMARKER, LineStart(line), 0, 0, 0, line); - mh.line = line; - NotifyModified(mh); -} - -void Document::DeleteMark(int line, int markerNum) { - cb.DeleteMark(line, markerNum); - DocModification mh(SC_MOD_CHANGEMARKER, LineStart(line), 0, 0, 0, line); - mh.line = line; - NotifyModified(mh); -} - -void Document::DeleteMarkFromHandle(int markerHandle) { - cb.DeleteMarkFromHandle(markerHandle); - DocModification mh(SC_MOD_CHANGEMARKER, 0, 0, 0, 0); - mh.line = -1; - NotifyModified(mh); -} - -void Document::DeleteAllMarks(int markerNum) { - cb.DeleteAllMarks(markerNum); - DocModification mh(SC_MOD_CHANGEMARKER, 0, 0, 0, 0); - mh.line = -1; - NotifyModified(mh); -} - -int Document::LineStart(int line) { - return cb.LineStart(line); -} - -int Document::LineEnd(int line) { - if (line == LinesTotal() - 1) { - return LineStart(line + 1); - } else { - int position = LineStart(line + 1) - 1; - // When line terminator is CR+LF, may need to go back one more - if ((position > LineStart(line)) && (cb.CharAt(position - 1) == '\r')) { - position--; - } - return position; - } -} - -int Document::LineFromPosition(int pos) { - return cb.LineFromPosition(pos); -} - -int Document::LineEndPosition(int position) { - return LineEnd(LineFromPosition(position)); -} - -int Document::VCHomePosition(int position) { - int line = LineFromPosition(position); - int startPosition = LineStart(line); - int endLine = LineStart(line + 1) - 1; - int startText = startPosition; - while (startText < endLine && (cb.CharAt(startText) == ' ' || cb.CharAt(startText) == '\t' ) ) - startText++; - if (position == startText) - return startPosition; - else - return startText; -} - -int Document::SetLevel(int line, int level) { - int prev = cb.SetLevel(line, level); - if (prev != level) { - DocModification mh(SC_MOD_CHANGEFOLD | SC_MOD_CHANGEMARKER, - LineStart(line), 0, 0, 0); - mh.line = line; - mh.foldLevelNow = level; - mh.foldLevelPrev = prev; - NotifyModified(mh); - } - return prev; -} - -static bool IsSubordinate(int levelStart, int levelTry) { - if (levelTry & SC_FOLDLEVELWHITEFLAG) - return true; - else - return (levelStart & SC_FOLDLEVELNUMBERMASK) < (levelTry & SC_FOLDLEVELNUMBERMASK); -} - -int Document::GetLastChild(int lineParent, int level) { - if (level == -1) - level = GetLevel(lineParent) & SC_FOLDLEVELNUMBERMASK; - int maxLine = LinesTotal(); - int lineMaxSubord = lineParent; - while (lineMaxSubord < maxLine - 1) { - EnsureStyledTo(LineStart(lineMaxSubord + 2)); - if (!IsSubordinate(level, GetLevel(lineMaxSubord + 1))) - break; - lineMaxSubord++; - } - if (lineMaxSubord > lineParent) { - if (level > (GetLevel(lineMaxSubord + 1) & SC_FOLDLEVELNUMBERMASK)) { - // Have chewed up some whitespace that belongs to a parent so seek back - if (GetLevel(lineMaxSubord) & SC_FOLDLEVELWHITEFLAG) { - lineMaxSubord--; - } - } - } - return lineMaxSubord; -} - -int Document::GetFoldParent(int line) { - int level = GetLevel(line) & SC_FOLDLEVELNUMBERMASK; - int lineLook = line - 1; - while ((lineLook > 0) && ( - (!(GetLevel(lineLook) & SC_FOLDLEVELHEADERFLAG)) || - ((GetLevel(lineLook) & SC_FOLDLEVELNUMBERMASK) >= level)) - ) { - lineLook--; - } - if ((GetLevel(lineLook) & SC_FOLDLEVELHEADERFLAG) && - ((GetLevel(lineLook) & SC_FOLDLEVELNUMBERMASK) < level)) { - return lineLook; - } else { - return -1; - } -} - -int Document::ClampPositionIntoDocument(int pos) { - return Platform::Clamp(pos, 0, Length()); -} - -bool Document::IsCrLf(int pos) { - if (pos < 0) - return false; - if (pos >= (Length() - 1)) - return false; - return (cb.CharAt(pos) == '\r') && (cb.CharAt(pos + 1) == '\n'); -} - -static const int maxBytesInDBCSCharacter=5; - -int Document::LenChar(int pos) { - if (pos < 0) { - return 1; - } else if (IsCrLf(pos)) { - return 2; - } else if (SC_CP_UTF8 == dbcsCodePage) { - unsigned char ch = static_cast(cb.CharAt(pos)); - if (ch < 0x80) - return 1; - int len = 2; - if (ch >= (0x80 + 0x40 + 0x20)) - len = 3; - int lengthDoc = Length(); - if ((pos + len) > lengthDoc) - return lengthDoc -pos; - else - return len; - } else if (dbcsCodePage) { - char mbstr[maxBytesInDBCSCharacter+1]; - int i; - for (i=0; i= Length()) - return Length(); - - // PLATFORM_ASSERT(pos > 0 && pos < Length()); - if (checkLineEnd && IsCrLf(pos - 1)) { - if (moveDir > 0) - return pos + 1; - else - return pos - 1; - } - - // Not between CR and LF - - if (dbcsCodePage) { - if (SC_CP_UTF8 == dbcsCodePage) { - unsigned char ch = static_cast(cb.CharAt(pos)); - while ((pos > 0) && (pos < Length()) && (ch >= 0x80) && (ch < (0x80 + 0x40))) { - // ch is a trail byte - if (moveDir > 0) - pos++; - else - pos--; - ch = static_cast(cb.CharAt(pos)); - } - } else { - // Anchor DBCS calculations at start of line because start of line can - // not be a DBCS trail byte. - int posCheck = LineStart(LineFromPosition(pos)); - while (posCheck < pos) { - char mbstr[maxBytesInDBCSCharacter+1]; - int i; - for(i=0;i pos) { - if (moveDir > 0) { - return posCheck + mbsize; - } else { - return posCheck; - } - } - posCheck += mbsize; - } - } - } - - return pos; -} - -void Document::ModifiedAt(int pos) { - if (endStyled > pos) - endStyled = pos; -} - -void Document::CheckReadOnly() { - if (cb.IsReadOnly() && enteredReadOnlyCount == 0) { - enteredReadOnlyCount++; - NotifyModifyAttempt(); - enteredReadOnlyCount--; - } -} - -// Document only modified by gateways DeleteChars, InsertStyledString, Undo, Redo, and SetStyleAt. -// SetStyleAt does not change the persistent state of a document - -// Unlike Undo, Redo, and InsertStyledString, the pos argument is a cell number not a char number -bool Document::DeleteChars(int pos, int len) { - if (len == 0) - return false; - if ((pos + len) > Length()) - return false; - CheckReadOnly(); - if (enteredCount != 0) { - return false; - } else { - enteredCount++; - if (!cb.IsReadOnly()) { - NotifyModified( - DocModification( - SC_MOD_BEFOREDELETE | SC_PERFORMED_USER, - pos, len, - 0, 0)); - int prevLinesTotal = LinesTotal(); - bool startSavePoint = cb.IsSavePoint(); - const char *text = cb.DeleteChars(pos * 2, len * 2); - if (startSavePoint && cb.IsCollectingUndo()) - NotifySavePoint(!startSavePoint); - if ((pos < Length()) || (pos == 0)) - ModifiedAt(pos); - else - ModifiedAt(pos-1); - NotifyModified( - DocModification( - SC_MOD_DELETETEXT | SC_PERFORMED_USER, - pos, len, - LinesTotal() - prevLinesTotal, text)); - } - enteredCount--; - } - return !cb.IsReadOnly(); -} - -/** - * Insert a styled string (char/style pairs) with a length. - */ -bool Document::InsertStyledString(int position, char *s, int insertLength) { - CheckReadOnly(); - if (enteredCount != 0) { - return false; - } else { - enteredCount++; - if (!cb.IsReadOnly()) { - NotifyModified( - DocModification( - SC_MOD_BEFOREINSERT | SC_PERFORMED_USER, - position / 2, insertLength / 2, - 0, s)); - int prevLinesTotal = LinesTotal(); - bool startSavePoint = cb.IsSavePoint(); - const char *text = cb.InsertString(position, s, insertLength); - if (startSavePoint && cb.IsCollectingUndo()) - NotifySavePoint(!startSavePoint); - ModifiedAt(position / 2); - NotifyModified( - DocModification( - SC_MOD_INSERTTEXT | SC_PERFORMED_USER, - position / 2, insertLength / 2, - LinesTotal() - prevLinesTotal, text)); - } - enteredCount--; - } - return !cb.IsReadOnly(); -} - -int Document::Undo() { - int newPos = -1; - CheckReadOnly(); - if (enteredCount == 0) { - enteredCount++; - if (!cb.IsReadOnly()) { - bool startSavePoint = cb.IsSavePoint(); - bool multiLine = false; - int steps = cb.StartUndo(); - //Platform::DebugPrintf("Steps=%d\n", steps); - for (int step = 0; step < steps; step++) { - const int prevLinesTotal = LinesTotal(); - const Action &action = cb.GetUndoStep(); - if (action.at == removeAction) { - NotifyModified(DocModification( - SC_MOD_BEFOREINSERT | SC_PERFORMED_UNDO, action)); - } else { - NotifyModified(DocModification( - SC_MOD_BEFOREDELETE | SC_PERFORMED_UNDO, action)); - } - cb.PerformUndoStep(); - int cellPosition = action.position; - ModifiedAt(cellPosition); - newPos = cellPosition; - - int modFlags = SC_PERFORMED_UNDO; - // With undo, an insertion action becomes a deletion notification - if (action.at == removeAction) { - newPos += action.lenData; - modFlags |= SC_MOD_INSERTTEXT; - } else { - modFlags |= SC_MOD_DELETETEXT; - } - if (steps > 1) - modFlags |= SC_MULTISTEPUNDOREDO; - const int linesAdded = LinesTotal() - prevLinesTotal; - if (linesAdded != 0) - multiLine = true; - if (step == steps - 1) { - modFlags |= SC_LASTSTEPINUNDOREDO; - if (multiLine) - modFlags |= SC_MULTILINEUNDOREDO; - } - NotifyModified(DocModification(modFlags, cellPosition, action.lenData, - linesAdded, action.data)); - } - - bool endSavePoint = cb.IsSavePoint(); - if (startSavePoint != endSavePoint) - NotifySavePoint(endSavePoint); - } - enteredCount--; - } - return newPos; -} - -int Document::Redo() { - int newPos = -1; - CheckReadOnly(); - if (enteredCount == 0) { - enteredCount++; - if (!cb.IsReadOnly()) { - bool startSavePoint = cb.IsSavePoint(); - bool multiLine = false; - int steps = cb.StartRedo(); - for (int step = 0; step < steps; step++) { - const int prevLinesTotal = LinesTotal(); - const Action &action = cb.GetRedoStep(); - if (action.at == insertAction) { - NotifyModified(DocModification( - SC_MOD_BEFOREINSERT | SC_PERFORMED_REDO, action)); - } else { - NotifyModified(DocModification( - SC_MOD_BEFOREDELETE | SC_PERFORMED_REDO, action)); - } - cb.PerformRedoStep(); - ModifiedAt(action.position); - newPos = action.position; - - int modFlags = SC_PERFORMED_REDO; - if (action.at == insertAction) { - newPos += action.lenData; - modFlags |= SC_MOD_INSERTTEXT; - } else { - modFlags |= SC_MOD_DELETETEXT; - } - if (steps > 1) - modFlags |= SC_MULTISTEPUNDOREDO; - const int linesAdded = LinesTotal() - prevLinesTotal; - if (linesAdded != 0) - multiLine = true; - if (step == steps - 1) { - modFlags |= SC_LASTSTEPINUNDOREDO; - if (multiLine) - modFlags |= SC_MULTILINEUNDOREDO; - } - NotifyModified( - DocModification(modFlags, action.position, action.lenData, - linesAdded, action.data)); - } - - bool endSavePoint = cb.IsSavePoint(); - if (startSavePoint != endSavePoint) - NotifySavePoint(endSavePoint); - } - enteredCount--; - } - return newPos; -} - -/** - * Insert a single character. - */ -bool Document::InsertChar(int pos, char ch) { - char chs[2]; - chs[0] = ch; - chs[1] = 0; - return InsertStyledString(pos*2, chs, 2); -} - -/** - * Insert a null terminated string. - */ -bool Document::InsertString(int position, const char *s) { - return InsertString(position, s, strlen(s)); -} - -/** - * Insert a string with a length. - */ -bool Document::InsertString(int position, const char *s, size_t insertLength) { - bool changed = false; - if (insertLength > 0) { - char *sWithStyle = new char[insertLength * 2]; - if (sWithStyle) { - for (size_t i = 0; i < insertLength; i++) { - sWithStyle[i*2] = s[i]; - sWithStyle[i*2 + 1] = 0; - } - changed = InsertStyledString(position*2, sWithStyle, - static_cast(insertLength*2)); - delete []sWithStyle; - } - } - return changed; -} - -void Document::ChangeChar(int pos, char ch) { - DeleteChars(pos, 1); - InsertChar(pos, ch); -} - -void Document::DelChar(int pos) { - DeleteChars(pos, LenChar(pos)); -} - -void Document::DelCharBack(int pos) { - if (pos <= 0) { - return; - } else if (IsCrLf(pos - 2)) { - DeleteChars(pos - 2, 2); - } else if (dbcsCodePage) { - int startChar = MovePositionOutsideChar(pos - 1, -1, false); - DeleteChars(startChar, pos - startChar); - } else { - DeleteChars(pos - 1, 1); - } -} - -static bool isindentchar(char ch) { - return (ch == ' ') || (ch == '\t'); -} - -static int NextTab(int pos, int tabSize) { - return ((pos / tabSize) + 1) * tabSize; -} - -static void CreateIndentation(char *linebuf, int length, int indent, int tabSize, bool insertSpaces) { - length--; // ensure space for \0 - if (!insertSpaces) { - while ((indent >= tabSize) && (length > 0)) { - *linebuf++ = '\t'; - indent -= tabSize; - length--; - } - } - while ((indent > 0) && (length > 0)) { - *linebuf++ = ' '; - indent--; - length--; - } - *linebuf = '\0'; -} - -int Document::GetLineIndentation(int line) { - int indent = 0; - if ((line >= 0) && (line < LinesTotal())) { - int lineStart = LineStart(line); - int length = Length(); - for (int i = lineStart;i < length;i++) { - char ch = cb.CharAt(i); - if (ch == ' ') - indent++; - else if (ch == '\t') - indent = NextTab(indent, tabInChars); - else - return indent; - } - } - return indent; -} - -void Document::SetLineIndentation(int line, int indent) { - int indentOfLine = GetLineIndentation(line); - if (indent < 0) - indent = 0; - if (indent != indentOfLine) { - char linebuf[1000]; - CreateIndentation(linebuf, sizeof(linebuf), indent, tabInChars, !useTabs); - int thisLineStart = LineStart(line); - int indentPos = GetLineIndentPosition(line); - BeginUndoAction(); - DeleteChars(thisLineStart, indentPos - thisLineStart); - InsertString(thisLineStart, linebuf); - EndUndoAction(); - } -} - -int Document::GetLineIndentPosition(int line) { - if (line < 0) - return 0; - int pos = LineStart(line); - int length = Length(); - while ((pos < length) && isindentchar(cb.CharAt(pos))) { - pos++; - } - return pos; -} - -int Document::GetColumn(int pos) { - int column = 0; - int line = LineFromPosition(pos); - if ((line >= 0) && (line < LinesTotal())) { - for (int i = LineStart(line);i < pos;) { - char ch = cb.CharAt(i); - if (ch == '\t') { - column = NextTab(column, tabInChars); - i++; - } else if (ch == '\r') { - return column; - } else if (ch == '\n') { - return column; - } else { - column++; - i = MovePositionOutsideChar(i + 1, 1); - } - } - } - return column; -} - -int Document::FindColumn(int line, int column) { - int position = LineStart(line); - int columnCurrent = 0; - if ((line >= 0) && (line < LinesTotal())) { - while ((columnCurrent < column) && (position < Length())) { - char ch = cb.CharAt(position); - if (ch == '\t') { - columnCurrent = NextTab(columnCurrent, tabInChars); - position++; - } else if (ch == '\r') { - return position; - } else if (ch == '\n') { - return position; - } else { - columnCurrent++; - position = MovePositionOutsideChar(position + 1, 1); - } - } - } - return position; -} - -void Document::Indent(bool forwards, int lineBottom, int lineTop) { - // Dedent - suck white space off the front of the line to dedent by equivalent of a tab - for (int line = lineBottom; line >= lineTop; line--) { - int indentOfLine = GetLineIndentation(line); - if (forwards) { - if (LineStart(line) < LineEnd(line)) { - SetLineIndentation(line, indentOfLine + IndentSize()); - } - } else { - SetLineIndentation(line, indentOfLine - IndentSize()); - } - } -} - -// Convert line endings for a piece of text to a particular mode. -// Stop at len or when a NUL is found. -// Caller must delete the returned pointer. -char *Document::TransformLineEnds(int *pLenOut, const char *s, size_t len, int eolMode) { - char *dest = new char[2 * len + 1]; - const char *sptr = s; - char *dptr = dest; - for (size_t i = 0; (i < len) && (*sptr != '\0'); i++) { - if (*sptr == '\n' || *sptr == '\r') { - if (eolMode == SC_EOL_CR) { - *dptr++ = '\r'; - } else if (eolMode == SC_EOL_LF) { - *dptr++ = '\n'; - } else { // eolMode == SC_EOL_CRLF - *dptr++ = '\r'; - *dptr++ = '\n'; - } - if ((*sptr == '\r') && (i+1 < len) && (*(sptr+1) == '\n')) { - i++; - sptr++; - } - sptr++; - } else { - *dptr++ = *sptr++; - } - } - *dptr++ = '\0'; - *pLenOut = (dptr - dest) - 1; - return dest; -} - -void Document::ConvertLineEnds(int eolModeSet) { - BeginUndoAction(); - - for (int pos = 0; pos < Length(); pos++) { - if (cb.CharAt(pos) == '\r') { - if (cb.CharAt(pos + 1) == '\n') { - // CRLF - if (eolModeSet == SC_EOL_CR) { - DeleteChars(pos + 1, 1); // Delete the LF - } else if (eolModeSet == SC_EOL_LF) { - DeleteChars(pos, 1); // Delete the CR - } else { - pos++; - } - } else { - // CR - if (eolModeSet == SC_EOL_CRLF) { - InsertString(pos + 1, "\n", 1); // Insert LF - pos++; - } else if (eolModeSet == SC_EOL_LF) { - InsertString(pos, "\n", 1); // Insert LF - DeleteChars(pos + 1, 1); // Delete CR - } - } - } else if (cb.CharAt(pos) == '\n') { - // LF - if (eolModeSet == SC_EOL_CRLF) { - InsertString(pos, "\r", 1); // Insert CR - pos++; - } else if (eolModeSet == SC_EOL_CR) { - InsertString(pos, "\r", 1); // Insert CR - DeleteChars(pos + 1, 1); // Delete LF - } - } - } - - EndUndoAction(); -} - -bool Document::IsWhiteLine(int line) { - int currentChar = LineStart(line); - int endLine = LineEnd(line); - while (currentChar < endLine) { - if (cb.CharAt(currentChar) != ' ' && cb.CharAt(currentChar) != '\t') { - return false; - } - ++currentChar; - } - return true; -} - -int Document::ParaUp(int pos) { - int line = LineFromPosition(pos); - line--; - while (line >= 0 && IsWhiteLine(line)) { // skip empty lines - line--; - } - while (line >= 0 && !IsWhiteLine(line)) { // skip non-empty lines - line--; - } - line++; - return LineStart(line); -} - -int Document::ParaDown(int pos) { - int line = LineFromPosition(pos); - while (line < LinesTotal() && !IsWhiteLine(line)) { // skip non-empty lines - line++; - } - while (line < LinesTotal() && IsWhiteLine(line)) { // skip empty lines - line++; - } - if (line < LinesTotal()) - return LineStart(line); - else // end of a document - return LineEnd(line-1); -} - -CharClassify::cc Document::WordCharClass(unsigned char ch) { - if ((SC_CP_UTF8 == dbcsCodePage) && (ch >= 0x80)) - return CharClassify::ccWord; - return charClass.GetClass(ch); -} - -/** - * Used by commmands that want to select whole words. - * Finds the start of word at pos when delta < 0 or the end of the word when delta >= 0. - */ -int Document::ExtendWordSelect(int pos, int delta, bool onlyWordCharacters) { - CharClassify::cc ccStart = CharClassify::ccWord; - if (delta < 0) { - if (!onlyWordCharacters) - ccStart = WordCharClass(cb.CharAt(pos-1)); - while (pos > 0 && (WordCharClass(cb.CharAt(pos - 1)) == ccStart)) - pos--; - } else { - if (!onlyWordCharacters) - ccStart = WordCharClass(cb.CharAt(pos)); - while (pos < (Length()) && (WordCharClass(cb.CharAt(pos)) == ccStart)) - pos++; - } - return MovePositionOutsideChar(pos, delta); -} - -/** - * Find the start of the next word in either a forward (delta >= 0) or backwards direction - * (delta < 0). - * This is looking for a transition between character classes although there is also some - * additional movement to transit white space. - * Used by cursor movement by word commands. - */ -int Document::NextWordStart(int pos, int delta) { - if (delta < 0) { - while (pos > 0 && (WordCharClass(cb.CharAt(pos - 1)) == CharClassify::ccSpace)) - pos--; - if (pos > 0) { - CharClassify::cc ccStart = WordCharClass(cb.CharAt(pos-1)); - while (pos > 0 && (WordCharClass(cb.CharAt(pos - 1)) == ccStart)) { - pos--; - } - } - } else { - CharClassify::cc ccStart = WordCharClass(cb.CharAt(pos)); - while (pos < (Length()) && (WordCharClass(cb.CharAt(pos)) == ccStart)) - pos++; - while (pos < (Length()) && (WordCharClass(cb.CharAt(pos)) == CharClassify::ccSpace)) - pos++; - } - return pos; -} - -/** - * Find the end of the next word in either a forward (delta >= 0) or backwards direction - * (delta < 0). - * This is looking for a transition between character classes although there is also some - * additional movement to transit white space. - * Used by cursor movement by word commands. - */ -int Document::NextWordEnd(int pos, int delta) { - if (delta < 0) { - if (pos > 0) { - CharClassify::cc ccStart = WordCharClass(cb.CharAt(pos-1)); - if (ccStart != CharClassify::ccSpace) { - while (pos > 0 && WordCharClass(cb.CharAt(pos - 1)) == ccStart) { - pos--; - } - } - while (pos > 0 && WordCharClass(cb.CharAt(pos - 1)) == CharClassify::ccSpace) { - pos--; - } - } - } else { - while (pos < Length() && WordCharClass(cb.CharAt(pos)) == CharClassify::ccSpace) { - pos++; - } - if (pos < Length()) { - CharClassify::cc ccStart = WordCharClass(cb.CharAt(pos)); - while (pos < Length() && WordCharClass(cb.CharAt(pos)) == ccStart) { - pos++; - } - } - } - return pos; -} - -/** - * Check that the character at the given position is a word or punctuation character and that - * the previous character is of a different character class. - */ -bool Document::IsWordStartAt(int pos) { - if (pos > 0) { - CharClassify::cc ccPos = WordCharClass(CharAt(pos)); - return (ccPos == CharClassify::ccWord || ccPos == CharClassify::ccPunctuation) && - (ccPos != WordCharClass(CharAt(pos - 1))); - } - return true; -} - -/** - * Check that the character at the given position is a word or punctuation character and that - * the next character is of a different character class. - */ -bool Document::IsWordEndAt(int pos) { - if (pos < Length()) { - CharClassify::cc ccPrev = WordCharClass(CharAt(pos-1)); - return (ccPrev == CharClassify::ccWord || ccPrev == CharClassify::ccPunctuation) && - (ccPrev != WordCharClass(CharAt(pos))); - } - return true; -} - -/** - * Check that the given range is has transitions between character classes at both - * ends and where the characters on the inside are word or punctuation characters. - */ -bool Document::IsWordAt(int start, int end) { - return IsWordStartAt(start) && IsWordEndAt(end); -} - -// The comparison and case changing functions here assume ASCII -// or extended ASCII such as the normal Windows code page. - -static inline char MakeUpperCase(char ch) { - if (ch < 'a' || ch > 'z') - return ch; - else - return static_cast(ch - 'a' + 'A'); -} - -static inline char MakeLowerCase(char ch) { - if (ch < 'A' || ch > 'Z') - return ch; - else - return static_cast(ch - 'A' + 'a'); -} - -// Define a way for the Regular Expression code to access the document -class DocumentIndexer : public CharacterIndexer { - Document *pdoc; - int end; -public: - DocumentIndexer(Document *pdoc_, int end_) : - pdoc(pdoc_), end(end_) { - } - - virtual ~DocumentIndexer() { - } - - virtual char CharAt(int index) { - if (index < 0 || index >= end) - return 0; - else - return pdoc->CharAt(index); - } -}; - -/** - * Find text in document, supporting both forward and backward - * searches (just pass minPos > maxPos to do a backward search) - * Has not been tested with backwards DBCS searches yet. - */ -long Document::FindText(int minPos, int maxPos, const char *s, - bool caseSensitive, bool word, bool wordStart, bool regExp, bool posix, - int *length) { - if (regExp) { - if (!pre) - pre = new RESearch(&charClass); - if (!pre) - return -1; - - int increment = (minPos <= maxPos) ? 1 : -1; - - int startPos = minPos; - int endPos = maxPos; - - // Range endpoints should not be inside DBCS characters, but just in case, move them. - startPos = MovePositionOutsideChar(startPos, 1, false); - endPos = MovePositionOutsideChar(endPos, 1, false); - - const char *errmsg = pre->Compile(s, *length, caseSensitive, posix); - if (errmsg) { - return -1; - } - // Find a variable in a property file: \$(\([A-Za-z0-9_.]+\)) - // Replace first '.' with '-' in each property file variable reference: - // Search: \$(\([A-Za-z0-9_-]+\)\.\([A-Za-z0-9_.]+\)) - // Replace: $(\1-\2) - int lineRangeStart = LineFromPosition(startPos); - int lineRangeEnd = LineFromPosition(endPos); - if ((increment == 1) && - (startPos >= LineEnd(lineRangeStart)) && - (lineRangeStart < lineRangeEnd)) { - // the start position is at end of line or between line end characters. - lineRangeStart++; - startPos = LineStart(lineRangeStart); - } - int pos = -1; - int lenRet = 0; - char searchEnd = s[*length - 1]; - int lineRangeBreak = lineRangeEnd + increment; - for (int line = lineRangeStart; line != lineRangeBreak; line += increment) { - int startOfLine = LineStart(line); - int endOfLine = LineEnd(line); - if (increment == 1) { - if (line == lineRangeStart) { - if ((startPos != startOfLine) && (s[0] == '^')) - continue; // Can't match start of line if start position after start of line - startOfLine = startPos; - } - if (line == lineRangeEnd) { - if ((endPos != endOfLine) && (searchEnd == '$')) - continue; // Can't match end of line if end position before end of line - endOfLine = endPos; - } - } else { - if (line == lineRangeEnd) { - if ((endPos != startOfLine) && (s[0] == '^')) - continue; // Can't match start of line if end position after start of line - startOfLine = endPos; - } - if (line == lineRangeStart) { - if ((startPos != endOfLine) && (searchEnd == '$')) - continue; // Can't match end of line if start position before end of line - endOfLine = startPos; - } - } - - DocumentIndexer di(this, endOfLine); - int success = pre->Execute(di, startOfLine, endOfLine); - if (success) { - pos = pre->bopat[0]; - lenRet = pre->eopat[0] - pre->bopat[0]; - if (increment == -1) { - // Check for the last match on this line. - int repetitions = 1000; // Break out of infinite loop - while (success && (pre->eopat[0] <= endOfLine) && (repetitions--)) { - success = pre->Execute(di, pos+1, endOfLine); - if (success) { - if (pre->eopat[0] <= minPos) { - pos = pre->bopat[0]; - lenRet = pre->eopat[0] - pre->bopat[0]; - } else { - success = 0; - } - } - } - } - break; - } - } - *length = lenRet; - return pos; - - } else { - - bool forward = minPos <= maxPos; - int increment = forward ? 1 : -1; - - // Range endpoints should not be inside DBCS characters, but just in case, move them. - int startPos = MovePositionOutsideChar(minPos, increment, false); - int endPos = MovePositionOutsideChar(maxPos, increment, false); - - // Compute actual search ranges needed - int lengthFind = *length; - if (lengthFind == -1) - lengthFind = static_cast(strlen(s)); - int endSearch = endPos; - if (startPos <= endPos) { - endSearch = endPos - lengthFind + 1; - } - //Platform::DebugPrintf("Find %d %d %s %d\n", startPos, endPos, ft->lpstrText, lengthFind); - char firstChar = s[0]; - if (!caseSensitive) - firstChar = static_cast(MakeUpperCase(firstChar)); - int pos = forward ? startPos : (startPos - 1); - while (forward ? (pos < endSearch) : (pos >= endSearch)) { - char ch = CharAt(pos); - if (caseSensitive) { - if (ch == firstChar) { - bool found = true; - if (pos + lengthFind > Platform::Maximum(startPos, endPos)) found = false; - for (int posMatch = 1; posMatch < lengthFind && found; posMatch++) { - ch = CharAt(pos + posMatch); - if (ch != s[posMatch]) - found = false; - } - if (found) { - if ((!word && !wordStart) || - word && IsWordAt(pos, pos + lengthFind) || - wordStart && IsWordStartAt(pos)) - return pos; - } - } - } else { - if (MakeUpperCase(ch) == firstChar) { - bool found = true; - if (pos + lengthFind > Platform::Maximum(startPos, endPos)) found = false; - for (int posMatch = 1; posMatch < lengthFind && found; posMatch++) { - ch = CharAt(pos + posMatch); - if (MakeUpperCase(ch) != MakeUpperCase(s[posMatch])) - found = false; - } - if (found) { - if ((!word && !wordStart) || - word && IsWordAt(pos, pos + lengthFind) || - wordStart && IsWordStartAt(pos)) - return pos; - } - } - } - pos += increment; - if (dbcsCodePage && (pos >= 0)) { - // Ensure trying to match from start of character - pos = MovePositionOutsideChar(pos, increment, false); - } - } - } - //Platform::DebugPrintf("Not found\n"); - return -1; -} - -const char *Document::SubstituteByPosition(const char *text, int *length) { - if (!pre) - return 0; - delete []substituted; - substituted = 0; - DocumentIndexer di(this, Length()); - if (!pre->GrabMatches(di)) - return 0; - unsigned int lenResult = 0; - for (int i = 0; i < *length; i++) { - if (text[i] == '\\') { - if (text[i + 1] >= '1' && text[i + 1] <= '9') { - unsigned int patNum = text[i + 1] - '0'; - lenResult += pre->eopat[patNum] - pre->bopat[patNum]; - i++; - } else { - switch (text[i + 1]) { - case 'a': - case 'b': - case 'f': - case 'n': - case 'r': - case 't': - case 'v': - i++; - } - lenResult++; - } - } else { - lenResult++; - } - } - substituted = new char[lenResult + 1]; - if (!substituted) - return 0; - char *o = substituted; - for (int j = 0; j < *length; j++) { - if (text[j] == '\\') { - if (text[j + 1] >= '1' && text[j + 1] <= '9') { - unsigned int patNum = text[j + 1] - '0'; - unsigned int len = pre->eopat[patNum] - pre->bopat[patNum]; - if (pre->pat[patNum]) // Will be null if try for a match that did not occur - memcpy(o, pre->pat[patNum], len); - o += len; - j++; - } else { - j++; - switch (text[j]) { - case 'a': - *o++ = '\a'; - break; - case 'b': - *o++ = '\b'; - break; - case 'f': - *o++ = '\f'; - break; - case 'n': - *o++ = '\n'; - break; - case 'r': - *o++ = '\r'; - break; - case 't': - *o++ = '\t'; - break; - case 'v': - *o++ = '\v'; - break; - default: - *o++ = '\\'; - j--; - } - } - } else { - *o++ = text[j]; - } - } - *o = '\0'; - *length = lenResult; - return substituted; -} - -int Document::LinesTotal() { - return cb.Lines(); -} - -void Document::ChangeCase(Range r, bool makeUpperCase) { - for (int pos = r.start; pos < r.end;) { - int len = LenChar(pos); - if (len == 1) { - char ch = CharAt(pos); - if (makeUpperCase) { - if (IsLowerCase(ch)) { - ChangeChar(pos, static_cast(MakeUpperCase(ch))); - } - } else { - if (IsUpperCase(ch)) { - ChangeChar(pos, static_cast(MakeLowerCase(ch))); - } - } - } - pos += len; - } -} - -void Document::SetDefaultCharClasses(bool includeWordClass) { - charClass.SetDefaultCharClasses(includeWordClass); -} - -void Document::SetCharClasses(const unsigned char *chars, CharClassify::cc newCharClass) { - charClass.SetCharClasses(chars, newCharClass); -} - -void Document::SetStylingBits(int bits) { - stylingBits = bits; - stylingBitsMask = 0; - for (int bit = 0; bit < stylingBits; bit++) { - stylingBitsMask <<= 1; - stylingBitsMask |= 1; - } -} - -void Document::StartStyling(int position, char mask) { - stylingMask = mask; - endStyled = position; -} - -bool Document::SetStyleFor(int length, char style) { - if (enteredCount != 0) { - return false; - } else { - enteredCount++; - style &= stylingMask; - int prevEndStyled = endStyled; - if (cb.SetStyleFor(endStyled, length, style, stylingMask)) { - DocModification mh(SC_MOD_CHANGESTYLE | SC_PERFORMED_USER, - prevEndStyled, length); - NotifyModified(mh); - } - endStyled += length; - enteredCount--; - return true; - } -} - -bool Document::SetStyles(int length, char *styles) { - if (enteredCount != 0) { - return false; - } else { - enteredCount++; - bool didChange = false; - int startMod = 0; - int endMod = 0; - for (int iPos = 0; iPos < length; iPos++, endStyled++) { - PLATFORM_ASSERT(endStyled < Length()); - if (cb.SetStyleAt(endStyled, styles[iPos], stylingMask)) { - if (!didChange) { - startMod = endStyled; - } - didChange = true; - endMod = endStyled; - } - } - if (didChange) { - DocModification mh(SC_MOD_CHANGESTYLE | SC_PERFORMED_USER, - startMod, endMod - startMod + 1); - NotifyModified(mh); - } - enteredCount--; - return true; - } -} - -bool Document::EnsureStyledTo(int pos) { - if (pos > GetEndStyled()) { - IncrementStyleClock(); - // Ask the watchers to style, and stop as soon as one responds. - for (int i = 0; pos > GetEndStyled() && i < lenWatchers; i++) { - watchers[i].watcher->NotifyStyleNeeded(this, watchers[i].userData, pos); - } - } - return pos <= GetEndStyled(); -} - -void Document::IncrementStyleClock() { - styleClock++; - if (styleClock > 0x100000) { - styleClock = 0; - } -} - -bool Document::AddWatcher(DocWatcher *watcher, void *userData) { - for (int i = 0; i < lenWatchers; i++) { - if ((watchers[i].watcher == watcher) && - (watchers[i].userData == userData)) - return false; - } - WatcherWithUserData *pwNew = new WatcherWithUserData[lenWatchers + 1]; - if (!pwNew) - return false; - for (int j = 0; j < lenWatchers; j++) - pwNew[j] = watchers[j]; - pwNew[lenWatchers].watcher = watcher; - pwNew[lenWatchers].userData = userData; - delete []watchers; - watchers = pwNew; - lenWatchers++; - return true; -} - -bool Document::RemoveWatcher(DocWatcher *watcher, void *userData) { - for (int i = 0; i < lenWatchers; i++) { - if ((watchers[i].watcher == watcher) && - (watchers[i].userData == userData)) { - if (lenWatchers == 1) { - delete []watchers; - watchers = 0; - lenWatchers = 0; - } else { - WatcherWithUserData *pwNew = new WatcherWithUserData[lenWatchers]; - if (!pwNew) - return false; - for (int j = 0; j < lenWatchers - 1; j++) { - pwNew[j] = (j < i) ? watchers[j] : watchers[j + 1]; - } - delete []watchers; - watchers = pwNew; - lenWatchers--; - } - return true; - } - } - return false; -} - -void Document::NotifyModifyAttempt() { - for (int i = 0; i < lenWatchers; i++) { - watchers[i].watcher->NotifyModifyAttempt(this, watchers[i].userData); - } -} - -void Document::NotifySavePoint(bool atSavePoint) { - for (int i = 0; i < lenWatchers; i++) { - watchers[i].watcher->NotifySavePoint(this, watchers[i].userData, atSavePoint); - } -} - -void Document::NotifyModified(DocModification mh) { - for (int i = 0; i < lenWatchers; i++) { - watchers[i].watcher->NotifyModified(this, mh, watchers[i].userData); - } -} - -bool Document::IsWordPartSeparator(char ch) { - return (WordCharClass(ch) == CharClassify::ccWord) && IsPunctuation(ch); -} - -int Document::WordPartLeft(int pos) { - if (pos > 0) { - --pos; - char startChar = cb.CharAt(pos); - if (IsWordPartSeparator(startChar)) { - while (pos > 0 && IsWordPartSeparator(cb.CharAt(pos))) { - --pos; - } - } - if (pos > 0) { - startChar = cb.CharAt(pos); - --pos; - if (IsLowerCase(startChar)) { - while (pos > 0 && IsLowerCase(cb.CharAt(pos))) - --pos; - if (!IsUpperCase(cb.CharAt(pos)) && !IsLowerCase(cb.CharAt(pos))) - ++pos; - } else if (IsUpperCase(startChar)) { - while (pos > 0 && IsUpperCase(cb.CharAt(pos))) - --pos; - if (!IsUpperCase(cb.CharAt(pos))) - ++pos; - } else if (IsADigit(startChar)) { - while (pos > 0 && IsADigit(cb.CharAt(pos))) - --pos; - if (!IsADigit(cb.CharAt(pos))) - ++pos; - } else if (IsPunctuation(startChar)) { - while (pos > 0 && IsPunctuation(cb.CharAt(pos))) - --pos; - if (!IsPunctuation(cb.CharAt(pos))) - ++pos; - } else if (isspacechar(startChar)) { - while (pos > 0 && isspacechar(cb.CharAt(pos))) - --pos; - if (!isspacechar(cb.CharAt(pos))) - ++pos; - } else if (!isascii(startChar)) { - while (pos > 0 && !isascii(cb.CharAt(pos))) - --pos; - if (isascii(cb.CharAt(pos))) - ++pos; - } else { - ++pos; - } - } - } - return pos; -} - -int Document::WordPartRight(int pos) { - char startChar = cb.CharAt(pos); - int length = Length(); - if (IsWordPartSeparator(startChar)) { - while (pos < length && IsWordPartSeparator(cb.CharAt(pos))) - ++pos; - startChar = cb.CharAt(pos); - } - if (!isascii(startChar)) { - while (pos < length && !isascii(cb.CharAt(pos))) - ++pos; - } else if (IsLowerCase(startChar)) { - while (pos < length && IsLowerCase(cb.CharAt(pos))) - ++pos; - } else if (IsUpperCase(startChar)) { - if (IsLowerCase(cb.CharAt(pos + 1))) { - ++pos; - while (pos < length && IsLowerCase(cb.CharAt(pos))) - ++pos; - } else { - while (pos < length && IsUpperCase(cb.CharAt(pos))) - ++pos; - } - if (IsLowerCase(cb.CharAt(pos)) && IsUpperCase(cb.CharAt(pos - 1))) - --pos; - } else if (IsADigit(startChar)) { - while (pos < length && IsADigit(cb.CharAt(pos))) - ++pos; - } else if (IsPunctuation(startChar)) { - while (pos < length && IsPunctuation(cb.CharAt(pos))) - ++pos; - } else if (isspacechar(startChar)) { - while (pos < length && isspacechar(cb.CharAt(pos))) - ++pos; - } else { - ++pos; - } - return pos; -} - -bool IsLineEndChar(char c) { - return (c == '\n' || c == '\r'); -} - -int Document::ExtendStyleRange(int pos, int delta, bool singleLine) { - int sStart = cb.StyleAt(pos); - if (delta < 0) { - while (pos > 0 && (cb.StyleAt(pos) == sStart) && (!singleLine || !IsLineEndChar(cb.CharAt(pos))) ) - pos--; - pos++; - } else { - while (pos < (Length()) && (cb.StyleAt(pos) == sStart) && (!singleLine || !IsLineEndChar(cb.CharAt(pos))) ) - pos++; - } - return pos; -} - -static char BraceOpposite(char ch) { - switch (ch) { - case '(': - return ')'; - case ')': - return '('; - case '[': - return ']'; - case ']': - return '['; - case '{': - return '}'; - case '}': - return '{'; - case '<': - return '>'; - case '>': - return '<'; - default: - return '\0'; - } -} - -// TODO: should be able to extend styled region to find matching brace -int Document::BraceMatch(int position, int /*maxReStyle*/) { - char chBrace = CharAt(position); - char chSeek = BraceOpposite(chBrace); - if (chSeek == '\0') - return - 1; - char styBrace = static_cast(StyleAt(position) & stylingBitsMask); - int direction = -1; - if (chBrace == '(' || chBrace == '[' || chBrace == '{' || chBrace == '<') - direction = 1; - int depth = 1; - position = position + direction; - while ((position >= 0) && (position < Length())) { - position = MovePositionOutsideChar(position, direction); - char chAtPos = CharAt(position); - char styAtPos = static_cast(StyleAt(position) & stylingBitsMask); - if ((position > GetEndStyled()) || (styAtPos == styBrace)) { - if (chAtPos == chBrace) - depth++; - if (chAtPos == chSeek) - depth--; - if (depth == 0) - return position; - } - position = position + direction; - } - return - 1; -} diff --git a/MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/src/Document.h b/MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/src/Document.h deleted file mode 100644 index 2d91d8d3..00000000 --- a/MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/src/Document.h +++ /dev/null @@ -1,305 +0,0 @@ -// Scintilla source code edit control -/** @file Document.h - ** Text document that handles notifications, DBCS, styling, words and end of line. - **/ -// Copyright 1998-2003 by Neil Hodgson -// The License.txt file describes the conditions under which this software may be distributed. - -#ifndef DOCUMENT_H -#define DOCUMENT_H - -/** - * A Position is a position within a document between two characters or at the beginning or end. - * Sometimes used as a character index where it identifies the character after the position. - */ -typedef int Position; -const Position invalidPosition = -1; - -/** - * The range class represents a range of text in a document. - * The two values are not sorted as one end may be more significant than the other - * as is the case for the selection where the end position is the position of the caret. - * If either position is invalidPosition then the range is invalid and most operations will fail. - */ -class Range { -public: - Position start; - Position end; - - Range(Position pos=0) : - start(pos), end(pos) { - }; - Range(Position start_, Position end_) : - start(start_), end(end_) { - }; - - bool Valid() const { - return (start != invalidPosition) && (end != invalidPosition); - } - - // Is the position within the range? - bool Contains(Position pos) const { - if (start < end) { - return (pos >= start && pos <= end); - } else { - return (pos <= start && pos >= end); - } - } - - // Is the character after pos within the range? - bool ContainsCharacter(Position pos) const { - if (start < end) { - return (pos >= start && pos < end); - } else { - return (pos < start && pos >= end); - } - } - - bool Contains(Range other) const { - return Contains(other.start) && Contains(other.end); - } - - bool Overlaps(Range other) const { - return - Contains(other.start) || - Contains(other.end) || - other.Contains(start) || - other.Contains(end); - } -}; - -class DocWatcher; -class DocModification; -class RESearch; - -/** - */ -class Document { - -public: - /** Used to pair watcher pointer with user data. */ - class WatcherWithUserData { - public: - DocWatcher *watcher; - void *userData; - WatcherWithUserData() { - watcher = 0; - userData = 0; - } - }; - - enum charClassification { ccSpace, ccNewLine, ccWord, ccPunctuation }; - -private: - int refCount; - CellBuffer cb; - CharClassify charClass; - char stylingMask; - int endStyled; - int styleClock; - int enteredCount; - int enteredReadOnlyCount; - - WatcherWithUserData *watchers; - int lenWatchers; - - bool matchesValid; - RESearch *pre; - char *substituted; - -public: - int stylingBits; - int stylingBitsMask; - - int eolMode; - /// Can also be SC_CP_UTF8 to enable UTF-8 mode - int dbcsCodePage; - int tabInChars; - int indentInChars; - int actualIndentInChars; - bool useTabs; - bool tabIndents; - bool backspaceUnindents; - - Document(); - virtual ~Document(); - - int AddRef(); - int Release(); - - int LineFromPosition(int pos); - int ClampPositionIntoDocument(int pos); - bool IsCrLf(int pos); - int LenChar(int pos); - int MovePositionOutsideChar(int pos, int moveDir, bool checkLineEnd=true); - - // Gateways to modifying document - void ModifiedAt(int pos); - bool DeleteChars(int pos, int len); - bool InsertStyledString(int position, char *s, int insertLength); - int Undo(); - int Redo(); - bool CanUndo() { return cb.CanUndo(); } - bool CanRedo() { return cb.CanRedo(); } - void DeleteUndoHistory() { cb.DeleteUndoHistory(); } - bool SetUndoCollection(bool collectUndo) { - return cb.SetUndoCollection(collectUndo); - } - bool IsCollectingUndo() { return cb.IsCollectingUndo(); } - void BeginUndoAction() { cb.BeginUndoAction(); } - void EndUndoAction() { cb.EndUndoAction(); } - void SetSavePoint(); - bool IsSavePoint() { return cb.IsSavePoint(); } - - int GetLineIndentation(int line); - void SetLineIndentation(int line, int indent); - int GetLineIndentPosition(int line); - int GetColumn(int position); - int FindColumn(int line, int column); - void Indent(bool forwards, int lineBottom, int lineTop); - static char *TransformLineEnds(int *pLenOut, const char *s, size_t len, int eolMode); - void ConvertLineEnds(int eolModeSet); - void SetReadOnly(bool set) { cb.SetReadOnly(set); } - bool IsReadOnly() { return cb.IsReadOnly(); } - - bool InsertChar(int pos, char ch); - bool InsertString(int position, const char *s); - bool InsertString(int position, const char *s, size_t insertLength); - void ChangeChar(int pos, char ch); - void DelChar(int pos); - void DelCharBack(int pos); - - char CharAt(int position) { return cb.CharAt(position); } - void GetCharRange(char *buffer, int position, int lengthRetrieve) { - cb.GetCharRange(buffer, position, lengthRetrieve); - } - char StyleAt(int position) { return cb.StyleAt(position); } - int GetMark(int line) { return cb.GetMark(line); } - int AddMark(int line, int markerNum); - void AddMarkSet(int line, int valueSet); - void DeleteMark(int line, int markerNum); - void DeleteMarkFromHandle(int markerHandle); - void DeleteAllMarks(int markerNum); - int LineFromHandle(int markerHandle) { return cb.LineFromHandle(markerHandle); } - int LineStart(int line); - int LineEnd(int line); - int LineEndPosition(int position); - int VCHomePosition(int position); - - int SetLevel(int line, int level); - int GetLevel(int line) { return cb.GetLevel(line); } - void ClearLevels() { cb.ClearLevels(); } - int GetLastChild(int lineParent, int level=-1); - int GetFoldParent(int line); - - void Indent(bool forwards); - int ExtendWordSelect(int pos, int delta, bool onlyWordCharacters=false); - int NextWordStart(int pos, int delta); - int NextWordEnd(int pos, int delta); - int Length() { return cb.Length(); } - void Allocate(int newSize) { cb.Allocate(newSize*2); } - long FindText(int minPos, int maxPos, const char *s, - bool caseSensitive, bool word, bool wordStart, bool regExp, bool posix, int *length); - long FindText(int iMessage, unsigned long wParam, long lParam); - const char *SubstituteByPosition(const char *text, int *length); - int LinesTotal(); - - void ChangeCase(Range r, bool makeUpperCase); - - void SetDefaultCharClasses(bool includeWordClass); - void SetCharClasses(const unsigned char *chars, CharClassify::cc newCharClass); - void SetStylingBits(int bits); - void StartStyling(int position, char mask); - bool SetStyleFor(int length, char style); - bool SetStyles(int length, char *styles); - int GetEndStyled() { return endStyled; } - bool EnsureStyledTo(int pos); - int GetStyleClock() { return styleClock; } - void IncrementStyleClock(); - - int SetLineState(int line, int state) { return cb.SetLineState(line, state); } - int GetLineState(int line) { return cb.GetLineState(line); } - int GetMaxLineState() { return cb.GetMaxLineState(); } - - bool AddWatcher(DocWatcher *watcher, void *userData); - bool RemoveWatcher(DocWatcher *watcher, void *userData); - const WatcherWithUserData *GetWatchers() const { return watchers; } - int GetLenWatchers() const { return lenWatchers; } - - bool IsWordPartSeparator(char ch); - int WordPartLeft(int pos); - int WordPartRight(int pos); - int ExtendStyleRange(int pos, int delta, bool singleLine = false); - bool IsWhiteLine(int line); - int ParaUp(int pos); - int ParaDown(int pos); - int IndentSize() { return actualIndentInChars; } - int BraceMatch(int position, int maxReStyle); - -private: - void CheckReadOnly(); - - CharClassify::cc WordCharClass(unsigned char ch); - bool IsWordStartAt(int pos); - bool IsWordEndAt(int pos); - bool IsWordAt(int start, int end); - - void NotifyModifyAttempt(); - void NotifySavePoint(bool atSavePoint); - void NotifyModified(DocModification mh); -}; - -/** - * To optimise processing of document modifications by DocWatchers, a hint is passed indicating the - * scope of the change. - * If the DocWatcher is a document view then this can be used to optimise screen updating. - */ -class DocModification { -public: - int modificationType; - int position; - int length; - int linesAdded; /**< Negative if lines deleted. */ - const char *text; /**< Only valid for changes to text, not for changes to style. */ - int line; - int foldLevelNow; - int foldLevelPrev; - - DocModification(int modificationType_, int position_=0, int length_=0, - int linesAdded_=0, const char *text_=0, int line_=0) : - modificationType(modificationType_), - position(position_), - length(length_), - linesAdded(linesAdded_), - text(text_), - line(line_), - foldLevelNow(0), - foldLevelPrev(0) {} - - DocModification(int modificationType_, const Action &act, int linesAdded_=0) : - modificationType(modificationType_), - position(act.position), - length(act.lenData), - linesAdded(linesAdded_), - text(act.data), - line(0), - foldLevelNow(0), - foldLevelPrev(0) {} -}; - -/** - * A class that wants to receive notifications from a Document must be derived from DocWatcher - * and implement the notification methods. It can then be added to the watcher list with AddWatcher. - */ -class DocWatcher { -public: - virtual ~DocWatcher() {} - - virtual void NotifyModifyAttempt(Document *doc, void *userData) = 0; - virtual void NotifySavePoint(Document *doc, void *userData, bool atSavePoint) = 0; - virtual void NotifyModified(Document *doc, DocModification mh, void *userData) = 0; - virtual void NotifyDeleted(Document *doc, void *userData) = 0; - virtual void NotifyStyleNeeded(Document *doc, void *userData, int endPos) = 0; -}; - -#endif diff --git a/MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/src/DocumentAccessor.cxx b/MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/src/DocumentAccessor.cxx deleted file mode 100644 index 6575875a..00000000 --- a/MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/src/DocumentAccessor.cxx +++ /dev/null @@ -1,187 +0,0 @@ -// Scintilla source code edit control -/** @file DocumentAccessor.cxx - ** Rapid easy access to contents of a Scintilla. - **/ -// Copyright 1998-2001 by Neil Hodgson -// The License.txt file describes the conditions under which this software may be distributed. - -#include -#include -#include -#include - -#include "Platform.h" - -#include "PropSet.h" -#include "SVector.h" -#include "Accessor.h" -#include "DocumentAccessor.h" -#include "CellBuffer.h" -#include "Scintilla.h" -#include "CharClassify.h" -#include "Document.h" - -DocumentAccessor::~DocumentAccessor() { -} - -bool DocumentAccessor::InternalIsLeadByte(char ch) { - if (SC_CP_UTF8 == codePage) - // For lexing, all characters >= 0x80 are treated the - // same so none is considered a lead byte. - return false; - else - return Platform::IsDBCSLeadByte(codePage, ch); -} - -void DocumentAccessor::Fill(int position) { - if (lenDoc == -1) - lenDoc = pdoc->Length(); - startPos = position - slopSize; - if (startPos + bufferSize > lenDoc) - startPos = lenDoc - bufferSize; - if (startPos < 0) - startPos = 0; - endPos = startPos + bufferSize; - if (endPos > lenDoc) - endPos = lenDoc; - - pdoc->GetCharRange(buf, startPos, endPos-startPos); - buf[endPos-startPos] = '\0'; -} - -bool DocumentAccessor::Match(int pos, const char *s) { - for (int i=0; *s; i++) { - if (*s != SafeGetCharAt(pos+i)) - return false; - s++; - } - return true; -} - -char DocumentAccessor::StyleAt(int position) { - // Mask off all bits which aren't in the 'mask'. - return static_cast(pdoc->StyleAt(position) & mask); -} - -int DocumentAccessor::GetLine(int position) { - return pdoc->LineFromPosition(position); -} - -int DocumentAccessor::LineStart(int line) { - return pdoc->LineStart(line); -} - -int DocumentAccessor::LevelAt(int line) { - return pdoc->GetLevel(line); -} - -int DocumentAccessor::Length() { - if (lenDoc == -1) - lenDoc = pdoc->Length(); - return lenDoc; -} - -int DocumentAccessor::GetLineState(int line) { - return pdoc->GetLineState(line); -} - -int DocumentAccessor::SetLineState(int line, int state) { - return pdoc->SetLineState(line, state); -} - -void DocumentAccessor::StartAt(unsigned int start, char chMask) { - // Store the mask specified for use with StyleAt. - mask = chMask; - pdoc->StartStyling(start, chMask); - startPosStyling = start; -} - -void DocumentAccessor::StartSegment(unsigned int pos) { - startSeg = pos; -} - -void DocumentAccessor::ColourTo(unsigned int pos, int chAttr) { - // Only perform styling if non empty range - if (pos != startSeg - 1) { - if (pos < startSeg) { - Platform::DebugPrintf("Bad colour positions %d - %d\n", startSeg, pos); - } - - if (validLen + (pos - startSeg + 1) >= bufferSize) - Flush(); - if (validLen + (pos - startSeg + 1) >= bufferSize) { - // Too big for buffer so send directly - pdoc->SetStyleFor(pos - startSeg + 1, static_cast(chAttr)); - } else { - if (chAttr != chWhile) - chFlags = 0; - chAttr |= chFlags; - for (unsigned int i = startSeg; i <= pos; i++) { - PLATFORM_ASSERT((startPosStyling + validLen) < Length()); - styleBuf[validLen++] = static_cast(chAttr); - } - } - } - startSeg = pos+1; -} - -void DocumentAccessor::SetLevel(int line, int level) { - pdoc->SetLevel(line, level); -} - -void DocumentAccessor::Flush() { - startPos = extremePosition; - lenDoc = -1; - if (validLen > 0) { - pdoc->SetStyles(validLen, styleBuf); - startPosStyling += validLen; - validLen = 0; - } -} - -int DocumentAccessor::IndentAmount(int line, int *flags, PFNIsCommentLeader pfnIsCommentLeader) { - int end = Length(); - int spaceFlags = 0; - - // Determines the indentation level of the current line and also checks for consistent - // indentation compared to the previous line. - // Indentation is judged consistent when the indentation whitespace of each line lines - // the same or the indentation of one line is a prefix of the other. - - int pos = LineStart(line); - char ch = (*this)[pos]; - int indent = 0; - bool inPrevPrefix = line > 0; - int posPrev = inPrevPrefix ? LineStart(line-1) : 0; - while ((ch == ' ' || ch == '\t') && (pos < end)) { - if (inPrevPrefix) { - char chPrev = (*this)[posPrev++]; - if (chPrev == ' ' || chPrev == '\t') { - if (chPrev != ch) - spaceFlags |= wsInconsistent; - } else { - inPrevPrefix = false; - } - } - if (ch == ' ') { - spaceFlags |= wsSpace; - indent++; - } else { // Tab - spaceFlags |= wsTab; - if (spaceFlags & wsSpace) - spaceFlags |= wsSpaceTab; - indent = (indent / 8 + 1) * 8; - } - ch = (*this)[++pos]; - } - - *flags = spaceFlags; - indent += SC_FOLDLEVELBASE; - // if completely empty line or the start of a comment... - if ((ch == ' ' || ch == '\t' || ch == '\n' || ch == '\r') || - (pfnIsCommentLeader && (*pfnIsCommentLeader)(*this, pos, end-pos)) ) - return indent | SC_FOLDLEVELWHITEFLAG; - else - return indent; -} - diff --git a/MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/src/DocumentAccessor.h b/MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/src/DocumentAccessor.h deleted file mode 100644 index 05eefda6..00000000 --- a/MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/src/DocumentAccessor.h +++ /dev/null @@ -1,67 +0,0 @@ -// Scintilla source code edit control -/** @file DocumentAccessor.h - ** Implementation of BufferAccess and StylingAccess on a Scintilla - ** rapid easy access to contents of a Scintilla. - **/ -// Copyright 1998-2001 by Neil Hodgson -// The License.txt file describes the conditions under which this software may be distributed. - -class Document; - -/** - */ -class DocumentAccessor : public Accessor { - // Private so DocumentAccessor objects can not be copied - DocumentAccessor(const DocumentAccessor &source) : Accessor(), props(source.props) {} - DocumentAccessor &operator=(const DocumentAccessor &) { return *this; } - -protected: - Document *pdoc; - PropSet &props; - WindowID id; - int lenDoc; - - char styleBuf[bufferSize]; - int validLen; - char chFlags; - char chWhile; - unsigned int startSeg; - int startPosStyling; - int mask; - - bool InternalIsLeadByte(char ch); - void Fill(int position); - -public: - DocumentAccessor(Document *pdoc_, PropSet &props_, WindowID id_=0) : - Accessor(), pdoc(pdoc_), props(props_), id(id_), - lenDoc(-1), validLen(0), chFlags(0), chWhile(0), - startSeg(0), startPosStyling(0), - mask(127) { // Initialize the mask to be big enough for any lexer. - } - ~DocumentAccessor(); - bool Match(int pos, const char *s); - char StyleAt(int position); - int GetLine(int position); - int LineStart(int line); - int LevelAt(int line); - int Length(); - void Flush(); - int GetLineState(int line); - int SetLineState(int line, int state); - int GetPropertyInt(const char *key, int defaultValue=0) { - return props.GetInt(key, defaultValue); - } - char *GetProperties() { - return props.ToString(); - } - WindowID GetWindow() { return id; } - - void StartAt(unsigned int start, char chMask=31); - void SetFlags(char chFlags_, char chWhile_) {chFlags = chFlags_; chWhile = chWhile_; }; - unsigned int GetStartSegment() { return startSeg; } - void StartSegment(unsigned int pos); - void ColourTo(unsigned int pos, int chAttr); - void SetLevel(int line, int level); - int IndentAmount(int line, int *flags, PFNIsCommentLeader pfnIsCommentLeader = 0); -}; diff --git a/MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/src/Editor.cxx b/MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/src/Editor.cxx deleted file mode 100644 index 4344e1c0..00000000 --- a/MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/src/Editor.cxx +++ /dev/null @@ -1,7297 +0,0 @@ -// Scintilla source code edit control -/** @file Editor.cxx - ** Main code for the edit control. - **/ -// Copyright 1998-2004 by Neil Hodgson -// The License.txt file describes the conditions under which this software may be distributed. - -#include -#include -#include -#include - -#include "Platform.h" - -#ifndef PLAT_QT -#define INCLUDE_DEPRECATED_FEATURES -#endif -#include "Scintilla.h" - -#include "ContractionState.h" -#include "SVector.h" -#include "CellBuffer.h" -#include "KeyMap.h" -#include "Indicator.h" -#include "XPM.h" -#include "LineMarker.h" -#include "Style.h" -#include "ViewStyle.h" -#include "CharClassify.h" -#include "Document.h" -#include "Editor.h" - -/* - return whether this modification represents an operation that - may reasonably be deferred (not done now OR [possibly] at all) -*/ -static bool CanDeferToLastStep(const DocModification& mh) { - if (mh.modificationType & (SC_MOD_BEFOREINSERT|SC_MOD_BEFOREDELETE)) - return true; // CAN skip - if (!(mh.modificationType & (SC_PERFORMED_UNDO|SC_PERFORMED_REDO))) - return false; // MUST do - if (mh.modificationType & SC_MULTISTEPUNDOREDO) - return true; // CAN skip - return false; // PRESUMABLY must do -} - -static bool CanEliminate(const DocModification& mh) { - return - (mh.modificationType & (SC_MOD_BEFOREINSERT|SC_MOD_BEFOREDELETE)) != 0; -} - -/* - return whether this modification represents the FINAL step - in a [possibly lengthy] multi-step Undo/Redo sequence -*/ -static bool IsLastStep(const DocModification& mh) { - return - (mh.modificationType & (SC_PERFORMED_UNDO|SC_PERFORMED_REDO)) != 0 - && (mh.modificationType & SC_MULTISTEPUNDOREDO) != 0 - && (mh.modificationType & SC_LASTSTEPINUNDOREDO) != 0 - && (mh.modificationType & SC_MULTILINEUNDOREDO) != 0; -} - -Caret::Caret() : -active(false), on(false), period(500) {} - -Timer::Timer() : -ticking(false), ticksToWait(0), tickerID(0) {} - -Idler::Idler() : -state(false), idlerID(0) {} - -LineLayout::LineLayout(int maxLineLength_) : - lineStarts(0), - lenLineStarts(0), - lineNumber(-1), - inCache(false), - maxLineLength(-1), - numCharsInLine(0), - validity(llInvalid), - xHighlightGuide(0), - highlightColumn(0), - selStart(0), - selEnd(0), - containsCaret(false), - edgeColumn(0), - chars(0), - styles(0), - styleBitsSet(0), - indicators(0), - positions(0), - hsStart(0), - hsEnd(0), - widthLine(wrapWidthInfinite), - lines(1) { - Resize(maxLineLength_); -} - -LineLayout::~LineLayout() { - Free(); -} - -void LineLayout::Resize(int maxLineLength_) { - if (maxLineLength_ > maxLineLength) { - Free(); - chars = new char[maxLineLength_ + 1]; - styles = new unsigned char[maxLineLength_ + 1]; - indicators = new char[maxLineLength_ + 1]; - // Extra position allocated as sometimes the Windows - // GetTextExtentExPoint API writes an extra element. - positions = new int[maxLineLength_ + 1 + 1]; - maxLineLength = maxLineLength_; - } -} - -void LineLayout::Free() { - delete []chars; - chars = 0; - delete []styles; - styles = 0; - delete []indicators; - indicators = 0; - delete []positions; - positions = 0; - delete []lineStarts; - lineStarts = 0; -} - -void LineLayout::Invalidate(validLevel validity_) { - if (validity > validity_) - validity = validity_; -} - -void LineLayout::SetLineStart(int line, int start) { - if ((line >= lenLineStarts) && (line != 0)) { - int newMaxLines = line + 20; - int *newLineStarts = new int[newMaxLines]; - if (!newLineStarts) - return; - for (int i = 0; i < newMaxLines; i++) { - if (i < lenLineStarts) - newLineStarts[i] = lineStarts[i]; - else - newLineStarts[i] = 0; - } - delete []lineStarts; - lineStarts = newLineStarts; - lenLineStarts = newMaxLines; - } - lineStarts[line] = start; -} - -void LineLayout::SetBracesHighlight(Range rangeLine, Position braces[], - char bracesMatchStyle, int xHighlight) { - if (rangeLine.ContainsCharacter(braces[0])) { - int braceOffset = braces[0] - rangeLine.start; - if (braceOffset < numCharsInLine) { - bracePreviousStyles[0] = styles[braceOffset]; - styles[braceOffset] = bracesMatchStyle; - } - } - if (rangeLine.ContainsCharacter(braces[1])) { - int braceOffset = braces[1] - rangeLine.start; - if (braceOffset < numCharsInLine) { - bracePreviousStyles[1] = styles[braceOffset]; - styles[braceOffset] = bracesMatchStyle; - } - } - if ((braces[0] >= rangeLine.start && braces[1] <= rangeLine.end) || - (braces[1] >= rangeLine.start && braces[0] <= rangeLine.end)) { - xHighlightGuide = xHighlight; - } -} - -void LineLayout::RestoreBracesHighlight(Range rangeLine, Position braces[]) { - if (rangeLine.ContainsCharacter(braces[0])) { - int braceOffset = braces[0] - rangeLine.start; - if (braceOffset < numCharsInLine) { - styles[braceOffset] = bracePreviousStyles[0]; - } - } - if (rangeLine.ContainsCharacter(braces[1])) { - int braceOffset = braces[1] - rangeLine.start; - if (braceOffset < numCharsInLine) { - styles[braceOffset] = bracePreviousStyles[1]; - } - } - xHighlightGuide = 0; -} - -LineLayoutCache::LineLayoutCache() : - level(0), length(0), size(0), cache(0), - allInvalidated(false), styleClock(-1), useCount(0) { - Allocate(0); -} - -LineLayoutCache::~LineLayoutCache() { - Deallocate(); -} - -void LineLayoutCache::Allocate(int length_) { - PLATFORM_ASSERT(cache == NULL); - allInvalidated = false; - length = length_; - size = length; - if (size > 1) { - size = (size / 16 + 1) * 16; - } - if (size > 0) { - cache = new LineLayout * [size]; - } - for (int i = 0; i < size; i++) - cache[i] = 0; -} - -void LineLayoutCache::AllocateForLevel(int linesOnScreen, int linesInDoc) { - PLATFORM_ASSERT(useCount == 0); - int lengthForLevel = 0; - if (level == llcCaret) { - lengthForLevel = 1; - } else if (level == llcPage) { - lengthForLevel = linesOnScreen + 1; - } else if (level == llcDocument) { - lengthForLevel = linesInDoc; - } - if (lengthForLevel > size) { - Deallocate(); - Allocate(lengthForLevel); - } else { - if (lengthForLevel < length) { - for (int i = lengthForLevel; i < length; i++) { - delete cache[i]; - cache[i] = 0; - } - } - length = lengthForLevel; - } - PLATFORM_ASSERT(length == lengthForLevel); - PLATFORM_ASSERT(cache != NULL || length == 0); -} - -void LineLayoutCache::Deallocate() { - PLATFORM_ASSERT(useCount == 0); - for (int i = 0; i < length; i++) - delete cache[i]; - delete []cache; - cache = 0; - length = 0; - size = 0; -} - -void LineLayoutCache::Invalidate(LineLayout::validLevel validity_) { - if (cache && !allInvalidated) { - for (int i = 0; i < length; i++) { - if (cache[i]) { - cache[i]->Invalidate(validity_); - } - } - if (validity_ == LineLayout::llInvalid) { - allInvalidated = true; - } - } -} - -void LineLayoutCache::SetLevel(int level_) { - allInvalidated = false; - if ((level_ != -1) && (level != level_)) { - level = level_; - Deallocate(); - } -} - -LineLayout *LineLayoutCache::Retrieve(int lineNumber, int lineCaret, int maxChars, int styleClock_, - int linesOnScreen, int linesInDoc) { - AllocateForLevel(linesOnScreen, linesInDoc); - if (styleClock != styleClock_) { - Invalidate(LineLayout::llCheckTextAndStyle); - styleClock = styleClock_; - } - allInvalidated = false; - int pos = -1; - LineLayout *ret = 0; - if (level == llcCaret) { - pos = 0; - } else if (level == llcPage) { - if (lineNumber == lineCaret) { - pos = 0; - } else if (length > 1) { - pos = 1 + (lineNumber % (length - 1)); - } - } else if (level == llcDocument) { - pos = lineNumber; - } - if (pos >= 0) { - PLATFORM_ASSERT(useCount == 0); - if (cache && (pos < length)) { - if (cache[pos]) { - if ((cache[pos]->lineNumber != lineNumber) || - (cache[pos]->maxLineLength < maxChars)) { - delete cache[pos]; - cache[pos] = 0; - } - } - if (!cache[pos]) { - cache[pos] = new LineLayout(maxChars); - } - if (cache[pos]) { - cache[pos]->lineNumber = lineNumber; - cache[pos]->inCache = true; - ret = cache[pos]; - useCount++; - } - } - } - - if (!ret) { - ret = new LineLayout(maxChars); - ret->lineNumber = lineNumber; - } - - return ret; -} - -void LineLayoutCache::Dispose(LineLayout *ll) { - allInvalidated = false; - if (ll) { - if (!ll->inCache) { - delete ll; - } else { - useCount--; - } - } -} - -Editor::Editor() { - ctrlID = 0; - - stylesValid = false; - - printMagnification = 0; - printColourMode = SC_PRINT_NORMAL; - printWrapState = eWrapWord; - cursorMode = SC_CURSORNORMAL; - controlCharSymbol = 0; /* Draw the control characters */ - - hasFocus = false; - hideSelection = false; - inOverstrike = false; - errorStatus = 0; - mouseDownCaptures = true; - - bufferedDraw = true; - twoPhaseDraw = true; - - lastClickTime = 0; - dwellDelay = SC_TIME_FOREVER; - ticksToDwell = SC_TIME_FOREVER; - dwelling = false; - ptMouseLast.x = 0; - ptMouseLast.y = 0; - inDragDrop = false; - dropWentOutside = false; - posDrag = invalidPosition; - posDrop = invalidPosition; - selectionType = selChar; - - lastXChosen = 0; - lineAnchor = 0; - originalAnchorPos = 0; - - selType = selStream; - moveExtendsSelection = false; - xStartSelect = 0; - xEndSelect = 0; - primarySelection = true; - - caretXPolicy = CARET_SLOP | CARET_EVEN; - caretXSlop = 50; - - caretYPolicy = CARET_EVEN; - caretYSlop = 0; - - searchAnchor = 0; - - xOffset = 0; - xCaretMargin = 50; - horizontalScrollBarVisible = true; - scrollWidth = 2000; - verticalScrollBarVisible = true; - endAtLastLine = true; - caretSticky = false; - - pixmapLine = Surface::Allocate(); - pixmapSelMargin = Surface::Allocate(); - pixmapSelPattern = Surface::Allocate(); - pixmapIndentGuide = Surface::Allocate(); - pixmapIndentGuideHighlight = Surface::Allocate(); - - currentPos = 0; - anchor = 0; - - targetStart = 0; - targetEnd = 0; - searchFlags = 0; - - topLine = 0; - posTopLine = 0; - - lengthForEncode = -1; - - needUpdateUI = true; - braces[0] = invalidPosition; - braces[1] = invalidPosition; - bracesMatchStyle = STYLE_BRACEBAD; - highlightGuideColumn = 0; - - theEdge = 0; - - paintState = notPainting; - - modEventMask = SC_MODEVENTMASKALL; - - pdoc = new Document(); - pdoc->AddRef(); - pdoc->AddWatcher(this, 0); - - recordingMacro = false; - foldFlags = 0; - - wrapState = eWrapNone; - wrapWidth = LineLayout::wrapWidthInfinite; - wrapStart = wrapLineLarge; - wrapEnd = wrapLineLarge; - wrapVisualFlags = 0; - wrapVisualFlagsLocation = 0; - wrapVisualStartIndent = 0; - actualWrapVisualStartIndent = 0; - - convertPastes = true; - - hsStart = -1; - hsEnd = -1; - - llc.SetLevel(LineLayoutCache::llcCaret); -} - -Editor::~Editor() { - pdoc->RemoveWatcher(this, 0); - pdoc->Release(); - pdoc = 0; - DropGraphics(); - delete pixmapLine; - delete pixmapSelMargin; - delete pixmapSelPattern; - delete pixmapIndentGuide; - delete pixmapIndentGuideHighlight; -} - -void Editor::Finalise() { - SetIdle(false); - CancelModes(); -} - -void Editor::DropGraphics() { - pixmapLine->Release(); - pixmapSelMargin->Release(); - pixmapSelPattern->Release(); - pixmapIndentGuide->Release(); - pixmapIndentGuideHighlight->Release(); -} - -void Editor::InvalidateStyleData() { - stylesValid = false; - palette.Release(); - DropGraphics(); - llc.Invalidate(LineLayout::llInvalid); - if (selType == selRectangle) { - xStartSelect = XFromPosition(anchor); - xEndSelect = XFromPosition(currentPos); - } -} - -void Editor::InvalidateStyleRedraw() { - NeedWrapping(); - InvalidateStyleData(); - Redraw(); -} - -void Editor::RefreshColourPalette(Palette &pal, bool want) { - vs.RefreshColourPalette(pal, want); -} - -void Editor::RefreshStyleData() { - if (!stylesValid) { - stylesValid = true; - AutoSurface surface(this); - if (surface) { - vs.Refresh(*surface); - RefreshColourPalette(palette, true); - palette.Allocate(wMain); - RefreshColourPalette(palette, false); - } - SetScrollBars(); - } -} - -PRectangle Editor::GetClientRectangle() { - return wMain.GetClientPosition(); -} - -PRectangle Editor::GetTextRectangle() { - PRectangle rc = GetClientRectangle(); - rc.left += vs.fixedColumnWidth; - rc.right -= vs.rightMarginWidth; - return rc; -} - -int Editor::LinesOnScreen() { - PRectangle rcClient = GetClientRectangle(); - int htClient = rcClient.bottom - rcClient.top; - //Platform::DebugPrintf("lines on screen = %d\n", htClient / lineHeight + 1); - return htClient / vs.lineHeight; -} - -int Editor::LinesToScroll() { - int retVal = LinesOnScreen() - 1; - if (retVal < 1) - return 1; - else - return retVal; -} - -int Editor::MaxScrollPos() { - //Platform::DebugPrintf("Lines %d screen = %d maxScroll = %d\n", - //LinesTotal(), LinesOnScreen(), LinesTotal() - LinesOnScreen() + 1); - int retVal = cs.LinesDisplayed(); - if (endAtLastLine) { - retVal -= LinesOnScreen(); - } else { - retVal--; - } - if (retVal < 0) { - return 0; - } else { - return retVal; - } -} - -static inline bool IsControlCharacter(int ch) { - // iscntrl returns true for lots of chars > 127 which are displayable - return ch >= 0 && ch < ' '; -} - -const char *ControlCharacterString(unsigned char ch) { - const char *reps[] = { - "NUL", "SOH", "STX", "ETX", "EOT", "ENQ", "ACK", "BEL", - "BS", "HT", "LF", "VT", "FF", "CR", "SO", "SI", - "DLE", "DC1", "DC2", "DC3", "DC4", "NAK", "SYN", "ETB", - "CAN", "EM", "SUB", "ESC", "FS", "GS", "RS", "US" - }; - if (ch < (sizeof(reps) / sizeof(reps[0]))) { - return reps[ch]; - } else { - return "BAD"; - } -} - -/** - * Convenience class to ensure LineLayout objects are always disposed. - */ -class AutoLineLayout { - LineLayoutCache &llc; - LineLayout *ll; - AutoLineLayout &operator=(const AutoLineLayout &) { return * this; } -public: - AutoLineLayout(LineLayoutCache &llc_, LineLayout *ll_) : llc(llc_), ll(ll_) {} - ~AutoLineLayout() { - llc.Dispose(ll); - ll = 0; - } - LineLayout *operator->() const { - return ll; - } - operator LineLayout *() const { - return ll; - } - void Set(LineLayout *ll_) { - llc.Dispose(ll); - ll = ll_; - } -}; - -/** - * Allows to iterate through the lines of a selection. - * Althought it can be called for a stream selection, in most cases - * it is inefficient and it should be used only for - * a rectangular or a line selection. - */ -class SelectionLineIterator { -private: - Editor *ed; - int line; ///< Current line within the iteration. - bool forward; ///< True if iterating by increasing line number, false otherwise. - int selStart, selEnd; ///< Positions of the start and end of the selection relative to the start of the document. - int minX, maxX; ///< Left and right of selection rectangle. - -public: - int lineStart, lineEnd; ///< Line numbers, first and last lines of the selection. - int startPos, endPos; ///< Positions of the beginning and end of the selection on the current line. - - void Reset() { - if (forward) { - line = lineStart; - } else { - line = lineEnd; - } - } - - SelectionLineIterator(Editor *ed_, bool forward_ = true) : line(0), startPos(0), endPos(0) { - ed = ed_; - forward = forward_; - selStart = ed->SelectionStart(); - selEnd = ed->SelectionEnd(); - lineStart = ed->pdoc->LineFromPosition(selStart); - lineEnd = ed->pdoc->LineFromPosition(selEnd); - // Left of rectangle - minX = Platform::Minimum(ed->xStartSelect, ed->xEndSelect); - // Right of rectangle - maxX = Platform::Maximum(ed->xStartSelect, ed->xEndSelect); - Reset(); - } - ~SelectionLineIterator() {} - - void SetAt(int line) { - if (line < lineStart || line > lineEnd) { - startPos = endPos = INVALID_POSITION; - } else { - if (ed->selType == ed->selRectangle) { - // Measure line and return character closest to minX - startPos = ed->PositionFromLineX(line, minX); - // Measure line and return character closest to maxX - endPos = ed->PositionFromLineX(line, maxX); - } else if (ed->selType == ed->selLines) { - startPos = ed->pdoc->LineStart(line); - endPos = ed->pdoc->LineStart(line + 1); - } else { // Stream selection, here only for completion - if (line == lineStart) { - startPos = selStart; - } else { - startPos = ed->pdoc->LineStart(line); - } - if (line == lineEnd) { - endPos = selEnd; - } else { - endPos = ed->pdoc->LineStart(line + 1); - } - } - } - } - bool Iterate() { - SetAt(line); - if (forward) { - line++; - } else { - line--; - } - return startPos != INVALID_POSITION; - } -}; - -Point Editor::LocationFromPosition(int pos) { - Point pt; - RefreshStyleData(); - if (pos == INVALID_POSITION) - return pt; - int line = pdoc->LineFromPosition(pos); - int lineVisible = cs.DisplayFromDoc(line); - //Platform::DebugPrintf("line=%d\n", line); - AutoSurface surface(this); - AutoLineLayout ll(llc, RetrieveLineLayout(line)); - if (surface && ll) { - // -1 because of adding in for visible lines in following loop. - pt.y = (lineVisible - topLine - 1) * vs.lineHeight; - pt.x = 0; - unsigned int posLineStart = pdoc->LineStart(line); - LayoutLine(line, surface, vs, ll, wrapWidth); - int posInLine = pos - posLineStart; - // In case of very long line put x at arbitrary large position - if (posInLine > ll->maxLineLength) { - pt.x = ll->positions[ll->maxLineLength] - ll->positions[ll->LineStart(ll->lines)]; - } - - for (int subLine = 0; subLine < ll->lines; subLine++) { - if ((posInLine >= ll->LineStart(subLine)) && (posInLine <= ll->LineStart(subLine + 1))) { - pt.x = ll->positions[posInLine] - ll->positions[ll->LineStart(subLine)]; - if (actualWrapVisualStartIndent != 0) { - int lineStart = ll->LineStart(subLine); - if (lineStart != 0) // Wrapped - pt.x += actualWrapVisualStartIndent * vs.aveCharWidth; - } - } - if (posInLine >= ll->LineStart(subLine)) { - pt.y += vs.lineHeight; - } - } - pt.x += vs.fixedColumnWidth - xOffset; - } - return pt; -} - -int Editor::XFromPosition(int pos) { - Point pt = LocationFromPosition(pos); - return pt.x - vs.fixedColumnWidth + xOffset; -} - -int Editor::LineFromLocation(Point pt) { - return cs.DocFromDisplay(pt.y / vs.lineHeight + topLine); -} - -void Editor::SetTopLine(int topLineNew) { - topLine = topLineNew; - posTopLine = pdoc->LineStart(cs.DocFromDisplay(topLine)); -} - -static inline bool IsEOLChar(char ch) { - return (ch == '\r') || (ch == '\n'); -} - -int Editor::PositionFromLocation(Point pt) { - RefreshStyleData(); - pt.x = pt.x - vs.fixedColumnWidth + xOffset; - int visibleLine = pt.y / vs.lineHeight + topLine; - if (pt.y < 0) { // Division rounds towards 0 - visibleLine = (pt.y - (vs.lineHeight - 1)) / vs.lineHeight + topLine; - } - if (visibleLine < 0) - visibleLine = 0; - int lineDoc = cs.DocFromDisplay(visibleLine); - if (lineDoc >= pdoc->LinesTotal()) - return pdoc->Length(); - unsigned int posLineStart = pdoc->LineStart(lineDoc); - int retVal = posLineStart; - AutoSurface surface(this); - AutoLineLayout ll(llc, RetrieveLineLayout(lineDoc)); - if (surface && ll) { - LayoutLine(lineDoc, surface, vs, ll, wrapWidth); - int lineStartSet = cs.DisplayFromDoc(lineDoc); - int subLine = visibleLine - lineStartSet; - if (subLine < ll->lines) { - int lineStart = ll->LineStart(subLine); - int lineEnd = ll->LineStart(subLine + 1); - int subLineStart = ll->positions[lineStart]; - - if (actualWrapVisualStartIndent != 0) { - if (lineStart != 0) // Wrapped - pt.x -= actualWrapVisualStartIndent * vs.aveCharWidth; - } - for (int i = lineStart; i < lineEnd; i++) { - if (pt.x < (((ll->positions[i] + ll->positions[i + 1]) / 2) - subLineStart) || - IsEOLChar(ll->chars[i])) { - return pdoc->MovePositionOutsideChar(i + posLineStart, 1); - } - } - return lineEnd + posLineStart; - } - retVal = ll->numCharsInLine + posLineStart; - } - return retVal; -} - -// Like PositionFromLocation but INVALID_POSITION returned when not near any text. -int Editor::PositionFromLocationClose(Point pt) { - RefreshStyleData(); - PRectangle rcClient = GetTextRectangle(); - if (!rcClient.Contains(pt)) - return INVALID_POSITION; - if (pt.x < vs.fixedColumnWidth) - return INVALID_POSITION; - if (pt.y < 0) - return INVALID_POSITION; - pt.x = pt.x - vs.fixedColumnWidth + xOffset; - int visibleLine = pt.y / vs.lineHeight + topLine; - if (pt.y < 0) { // Division rounds towards 0 - visibleLine = (pt.y - (vs.lineHeight - 1)) / vs.lineHeight + topLine; - } - int lineDoc = cs.DocFromDisplay(visibleLine); - if (lineDoc < 0) - return INVALID_POSITION; - if (lineDoc >= pdoc->LinesTotal()) - return INVALID_POSITION; - AutoSurface surface(this); - AutoLineLayout ll(llc, RetrieveLineLayout(lineDoc)); - if (surface && ll) { - LayoutLine(lineDoc, surface, vs, ll, wrapWidth); - unsigned int posLineStart = pdoc->LineStart(lineDoc); - int lineStartSet = cs.DisplayFromDoc(lineDoc); - int subLine = visibleLine - lineStartSet; - if (subLine < ll->lines) { - int lineStart = ll->LineStart(subLine); - int lineEnd = ll->LineStart(subLine + 1); - int subLineStart = ll->positions[lineStart]; - - if (actualWrapVisualStartIndent != 0) { - if (lineStart != 0) // Wrapped - pt.x -= actualWrapVisualStartIndent * vs.aveCharWidth; - } - for (int i = lineStart; i < lineEnd; i++) { - if (pt.x < (((ll->positions[i] + ll->positions[i + 1]) / 2) - subLineStart) || - IsEOLChar(ll->chars[i])) { - return pdoc->MovePositionOutsideChar(i + posLineStart, 1); - } - } - if (pt.x < (ll->positions[lineEnd] - subLineStart)) { - return pdoc->MovePositionOutsideChar(lineEnd + posLineStart, 1); - } - } - } - - return INVALID_POSITION; -} - -/** - * Find the document position corresponding to an x coordinate on a particular document line. - * Ensure is between whole characters when document is in multi-byte or UTF-8 mode. - */ -int Editor::PositionFromLineX(int lineDoc, int x) { - RefreshStyleData(); - if (lineDoc >= pdoc->LinesTotal()) - return pdoc->Length(); - //Platform::DebugPrintf("Position of (%d,%d) line = %d top=%d\n", pt.x, pt.y, line, topLine); - AutoSurface surface(this); - AutoLineLayout ll(llc, RetrieveLineLayout(lineDoc)); - int retVal = 0; - if (surface && ll) { - unsigned int posLineStart = pdoc->LineStart(lineDoc); - LayoutLine(lineDoc, surface, vs, ll, wrapWidth); - retVal = ll->numCharsInLine + posLineStart; - int subLine = 0; - int lineStart = ll->LineStart(subLine); - int lineEnd = ll->LineStart(subLine + 1); - int subLineStart = ll->positions[lineStart]; - - if (actualWrapVisualStartIndent != 0) { - if (lineStart != 0) // Wrapped - x -= actualWrapVisualStartIndent * vs.aveCharWidth; - } - for (int i = lineStart; i < lineEnd; i++) { - if (x < (((ll->positions[i] + ll->positions[i + 1]) / 2) - subLineStart) || - IsEOLChar(ll->chars[i])) { - retVal = pdoc->MovePositionOutsideChar(i + posLineStart, 1); - break; - } - } - } - return retVal; -} - -/** - * If painting then abandon the painting because a wider redraw is needed. - * @return true if calling code should stop drawing. - */ -bool Editor::AbandonPaint() { - if ((paintState == painting) && !paintingAllText) { - paintState = paintAbandoned; - } - return paintState == paintAbandoned; -} - -void Editor::RedrawRect(PRectangle rc) { - //Platform::DebugPrintf("Redraw %0d,%0d - %0d,%0d\n", rc.left, rc.top, rc.right, rc.bottom); - - // Clip the redraw rectangle into the client area - PRectangle rcClient = GetClientRectangle(); - if (rc.top < rcClient.top) - rc.top = rcClient.top; - if (rc.bottom > rcClient.bottom) - rc.bottom = rcClient.bottom; - if (rc.left < rcClient.left) - rc.left = rcClient.left; - if (rc.right > rcClient.right) - rc.right = rcClient.right; - - if ((rc.bottom > rc.top) && (rc.right > rc.left)) { - wMain.InvalidateRectangle(rc); - } -} - -void Editor::Redraw() { - //Platform::DebugPrintf("Redraw all\n"); - PRectangle rcClient = GetClientRectangle(); - wMain.InvalidateRectangle(rcClient); - //wMain.InvalidateAll(); -} - -void Editor::RedrawSelMargin(int line) { - if (!AbandonPaint()) { - if (vs.maskInLine) { - Redraw(); - } else { - PRectangle rcSelMargin = GetClientRectangle(); - rcSelMargin.right = vs.fixedColumnWidth; - if (line != -1) { - int position = pdoc->LineStart(line); - PRectangle rcLine = RectangleFromRange(position, position); - rcSelMargin.top = rcLine.top; - rcSelMargin.bottom = rcLine.bottom; - } - wMain.InvalidateRectangle(rcSelMargin); - } - } -} - -PRectangle Editor::RectangleFromRange(int start, int end) { - int minPos = start; - if (minPos > end) - minPos = end; - int maxPos = start; - if (maxPos < end) - maxPos = end; - int minLine = cs.DisplayFromDoc(pdoc->LineFromPosition(minPos)); - int lineDocMax = pdoc->LineFromPosition(maxPos); - int maxLine = cs.DisplayFromDoc(lineDocMax) + cs.GetHeight(lineDocMax) - 1; - PRectangle rcClient = GetTextRectangle(); - PRectangle rc; - rc.left = vs.fixedColumnWidth; - rc.top = (minLine - topLine) * vs.lineHeight; - if (rc.top < 0) - rc.top = 0; - rc.right = rcClient.right; - rc.bottom = (maxLine - topLine + 1) * vs.lineHeight; - // Ensure PRectangle is within 16 bit space - rc.top = Platform::Clamp(rc.top, -32000, 32000); - rc.bottom = Platform::Clamp(rc.bottom, -32000, 32000); - - return rc; -} - -void Editor::InvalidateRange(int start, int end) { - RedrawRect(RectangleFromRange(start, end)); -} - -int Editor::CurrentPosition() { - return currentPos; -} - -bool Editor::SelectionEmpty() { - return anchor == currentPos; -} - -int Editor::SelectionStart() { - return Platform::Minimum(currentPos, anchor); -} - -int Editor::SelectionEnd() { - return Platform::Maximum(currentPos, anchor); -} - -void Editor::SetRectangularRange() { - if (selType == selRectangle) { - xStartSelect = XFromPosition(anchor); - xEndSelect = XFromPosition(currentPos); - } -} - -void Editor::InvalidateSelection(int currentPos_, int anchor_) { - int firstAffected = anchor; - if (firstAffected > currentPos) - firstAffected = currentPos; - if (firstAffected > anchor_) - firstAffected = anchor_; - if (firstAffected > currentPos_) - firstAffected = currentPos_; - int lastAffected = anchor; - if (lastAffected < currentPos) - lastAffected = currentPos; - if (lastAffected < anchor_) - lastAffected = anchor_; - if (lastAffected < (currentPos_ + 1)) // +1 ensures caret repainted - lastAffected = (currentPos_ + 1); - needUpdateUI = true; - InvalidateRange(firstAffected, lastAffected); -} - -void Editor::SetSelection(int currentPos_, int anchor_) { - currentPos_ = pdoc->ClampPositionIntoDocument(currentPos_); - anchor_ = pdoc->ClampPositionIntoDocument(anchor_); - if ((currentPos != currentPos_) || (anchor != anchor_)) { - InvalidateSelection(currentPos_, anchor_); - currentPos = currentPos_; - anchor = anchor_; - } - SetRectangularRange(); - ClaimSelection(); -} - -void Editor::SetSelection(int currentPos_) { - currentPos_ = pdoc->ClampPositionIntoDocument(currentPos_); - if (currentPos != currentPos_) { - InvalidateSelection(currentPos_, currentPos_); - currentPos = currentPos_; - } - SetRectangularRange(); - ClaimSelection(); -} - -void Editor::SetEmptySelection(int currentPos_) { - selType = selStream; - moveExtendsSelection = false; - SetSelection(currentPos_, currentPos_); -} - -bool Editor::RangeContainsProtected(int start, int end) const { - if (vs.ProtectionActive()) { - if (start > end) { - int t = start; - start = end; - end = t; - } - int mask = pdoc->stylingBitsMask; - for (int pos = start; pos < end; pos++) { - if (vs.styles[pdoc->StyleAt(pos) & mask].IsProtected()) - return true; - } - } - return false; -} - -bool Editor::SelectionContainsProtected() { - // DONE, but untested...: make support rectangular selection - bool scp = false; - if (selType == selStream) { - scp = RangeContainsProtected(anchor, currentPos); - } else { - SelectionLineIterator lineIterator(this); - while (lineIterator.Iterate()) { - if (RangeContainsProtected(lineIterator.startPos, lineIterator.endPos)) { - scp = true; - break; - } - } - } - return scp; -} - -/** - * Asks document to find a good position and then moves out of any invisible positions. - */ -int Editor::MovePositionOutsideChar(int pos, int moveDir, bool checkLineEnd) { - pos = pdoc->MovePositionOutsideChar(pos, moveDir, checkLineEnd); - if (vs.ProtectionActive()) { - int mask = pdoc->stylingBitsMask; - if (moveDir > 0) { - if ((pos > 0) && vs.styles[pdoc->StyleAt(pos - 1) & mask].IsProtected()) { - while ((pos < pdoc->Length()) && - (vs.styles[pdoc->StyleAt(pos) & mask].IsProtected())) - pos++; - } - } else if (moveDir < 0) { - if (vs.styles[pdoc->StyleAt(pos) & mask].IsProtected()) { - while ((pos > 0) && - (vs.styles[pdoc->StyleAt(pos - 1) & mask].IsProtected())) - pos--; - } - } - } - return pos; -} - -int Editor::MovePositionTo(int newPos, selTypes sel, bool ensureVisible) { - int delta = newPos - currentPos; - newPos = pdoc->ClampPositionIntoDocument(newPos); - newPos = MovePositionOutsideChar(newPos, delta); - if (sel != noSel) { - selType = sel; - } - if (sel != noSel || moveExtendsSelection) { - SetSelection(newPos); - } else { - SetEmptySelection(newPos); - } - ShowCaretAtCurrentPosition(); - if (ensureVisible) { - EnsureCaretVisible(); - } - NotifyMove(newPos); - return 0; -} - -int Editor::MovePositionSoVisible(int pos, int moveDir) { - pos = pdoc->ClampPositionIntoDocument(pos); - pos = MovePositionOutsideChar(pos, moveDir); - int lineDoc = pdoc->LineFromPosition(pos); - if (cs.GetVisible(lineDoc)) { - return pos; - } else { - int lineDisplay = cs.DisplayFromDoc(lineDoc); - if (moveDir > 0) { - // lineDisplay is already line before fold as lines in fold use display line of line after fold - lineDisplay = Platform::Clamp(lineDisplay, 0, cs.LinesDisplayed()); - return pdoc->LineStart(cs.DocFromDisplay(lineDisplay)); - } else { - lineDisplay = Platform::Clamp(lineDisplay - 1, 0, cs.LinesDisplayed()); - return pdoc->LineEnd(cs.DocFromDisplay(lineDisplay)); - } - } -} - -/** - * Choose the x position that the caret will try to stick to - * as it moves up and down. - */ -void Editor::SetLastXChosen() { - Point pt = LocationFromPosition(currentPos); - lastXChosen = pt.x; -} - -void Editor::ScrollTo(int line, bool moveThumb) { - int topLineNew = Platform::Clamp(line, 0, MaxScrollPos()); - if (topLineNew != topLine) { - // Try to optimise small scrolls - int linesToMove = topLine - topLineNew; - SetTopLine(topLineNew); - ShowCaretAtCurrentPosition(); - // Perform redraw rather than scroll if many lines would be redrawn anyway. -#ifndef UNDER_CE - if (abs(linesToMove) <= 10) { - ScrollText(linesToMove); - } else { - Redraw(); - } -#else - Redraw(); -#endif - if (moveThumb) { - SetVerticalScrollPos(); - } - } -} - -void Editor::ScrollText(int /* linesToMove */) { - //Platform::DebugPrintf("Editor::ScrollText %d\n", linesToMove); - Redraw(); -} - -void Editor::HorizontalScrollTo(int xPos) { - //Platform::DebugPrintf("HorizontalScroll %d\n", xPos); - if (xPos < 0) - xPos = 0; - if ((wrapState == eWrapNone) && (xOffset != xPos)) { - xOffset = xPos; - SetHorizontalScrollPos(); - RedrawRect(GetClientRectangle()); - } -} - -void Editor::MoveCaretInsideView(bool ensureVisible) { - PRectangle rcClient = GetTextRectangle(); - Point pt = LocationFromPosition(currentPos); - if (pt.y < rcClient.top) { - MovePositionTo(PositionFromLocation( - Point(lastXChosen, rcClient.top)), - noSel, ensureVisible); - } else if ((pt.y + vs.lineHeight - 1) > rcClient.bottom) { - int yOfLastLineFullyDisplayed = rcClient.top + (LinesOnScreen() - 1) * vs.lineHeight; - MovePositionTo(PositionFromLocation( - Point(lastXChosen, rcClient.top + yOfLastLineFullyDisplayed)), - noSel, ensureVisible); - } -} - -int Editor::DisplayFromPosition(int pos) { - int lineDoc = pdoc->LineFromPosition(pos); - int lineDisplay = cs.DisplayFromDoc(lineDoc); - AutoSurface surface(this); - AutoLineLayout ll(llc, RetrieveLineLayout(lineDoc)); - if (surface && ll) { - LayoutLine(lineDoc, surface, vs, ll, wrapWidth); - unsigned int posLineStart = pdoc->LineStart(lineDoc); - int posInLine = pos - posLineStart; - lineDisplay--; // To make up for first increment ahead. - for (int subLine = 0; subLine < ll->lines; subLine++) { - if (posInLine >= ll->LineStart(subLine)) { - lineDisplay++; - } - } - } - return lineDisplay; -} - -/** - * Ensure the caret is reasonably visible in context. - * -Caret policy in SciTE - -If slop is set, we can define a slop value. -This value defines an unwanted zone (UZ) where the caret is... unwanted. -This zone is defined as a number of pixels near the vertical margins, -and as a number of lines near the horizontal margins. -By keeping the caret away from the edges, it is seen within its context, -so it is likely that the identifier that the caret is on can be completely seen, -and that the current line is seen with some of the lines following it which are -often dependent on that line. - -If strict is set, the policy is enforced... strictly. -The caret is centred on the display if slop is not set, -and cannot go in the UZ if slop is set. - -If jumps is set, the display is moved more energetically -so the caret can move in the same direction longer before the policy is applied again. -'3UZ' notation is used to indicate three time the size of the UZ as a distance to the margin. - -If even is not set, instead of having symmetrical UZs, -the left and bottom UZs are extended up to right and top UZs respectively. -This way, we favour the displaying of useful information: the begining of lines, -where most code reside, and the lines after the caret, eg. the body of a function. - - | | | | | -slop | strict | jumps | even | Caret can go to the margin | When reaching limitÝ(caret going out of - | | | | | visibility or going into the UZ) display is... ------+--------+-------+------+--------------------------------------------+-------------------------------------------------------------- - 0 | 0 | 0 | 0 | Yes | moved to put caret on top/on right - 0 | 0 | 0 | 1 | Yes | moved by one position - 0 | 0 | 1 | 0 | Yes | moved to put caret on top/on right - 0 | 0 | 1 | 1 | Yes | centred on the caret - 0 | 1 | - | 0 | Caret is always on top/on right of display | - - 0 | 1 | - | 1 | No, caret is always centred | - - 1 | 0 | 0 | 0 | Yes | moved to put caret out of the asymmetrical UZ - 1 | 0 | 0 | 1 | Yes | moved to put caret out of the UZ - 1 | 0 | 1 | 0 | Yes | moved to put caret at 3UZ of the top or right margin - 1 | 0 | 1 | 1 | Yes | moved to put caret at 3UZ of the margin - 1 | 1 | - | 0 | Caret is always at UZ of top/right margin | - - 1 | 1 | 0 | 1 | No, kept out of UZ | moved by one position - 1 | 1 | 1 | 1 | No, kept out of UZ | moved to put caret at 3UZ of the margin -*/ -void Editor::EnsureCaretVisible(bool useMargin, bool vert, bool horiz) { - //Platform::DebugPrintf("EnsureCaretVisible %d %s\n", xOffset, useMargin ? " margin" : " "); - PRectangle rcClient = GetTextRectangle(); - //int rcClientFullWidth = rcClient.Width(); - int posCaret = currentPos; - if (posDrag >= 0) { - posCaret = posDrag; - } - Point pt = LocationFromPosition(posCaret); - Point ptBottomCaret = pt; - ptBottomCaret.y += vs.lineHeight - 1; - int lineCaret = DisplayFromPosition(posCaret); - bool bSlop, bStrict, bJump, bEven; - - // Vertical positioning - if (vert && (pt.y < rcClient.top || ptBottomCaret.y > rcClient.bottom || (caretYPolicy & CARET_STRICT) != 0)) { - int linesOnScreen = LinesOnScreen(); - int halfScreen = Platform::Maximum(linesOnScreen - 1, 2) / 2; - int newTopLine = topLine; - bSlop = (caretYPolicy & CARET_SLOP) != 0; - bStrict = (caretYPolicy & CARET_STRICT) != 0; - bJump = (caretYPolicy & CARET_JUMPS) != 0; - bEven = (caretYPolicy & CARET_EVEN) != 0; - - // It should be possible to scroll the window to show the caret, - // but this fails to remove the caret on GTK+ - if (bSlop) { // A margin is defined - int yMoveT, yMoveB; - if (bStrict) { - int yMarginT, yMarginB; - if (!useMargin) { - // In drag mode, avoid moves - // otherwise, a double click will select several lines. - yMarginT = yMarginB = 0; - } else { - // yMarginT must equal to caretYSlop, with a minimum of 1 and - // a maximum of slightly less than half the heigth of the text area. - yMarginT = Platform::Clamp(caretYSlop, 1, halfScreen); - if (bEven) { - yMarginB = yMarginT; - } else { - yMarginB = linesOnScreen - yMarginT - 1; - } - } - yMoveT = yMarginT; - if (bEven) { - if (bJump) { - yMoveT = Platform::Clamp(caretYSlop * 3, 1, halfScreen); - } - yMoveB = yMoveT; - } else { - yMoveB = linesOnScreen - yMoveT - 1; - } - if (lineCaret < topLine + yMarginT) { - // Caret goes too high - newTopLine = lineCaret - yMoveT; - } else if (lineCaret > topLine + linesOnScreen - 1 - yMarginB) { - // Caret goes too low - newTopLine = lineCaret - linesOnScreen + 1 + yMoveB; - } - } else { // Not strict - yMoveT = bJump ? caretYSlop * 3 : caretYSlop; - yMoveT = Platform::Clamp(yMoveT, 1, halfScreen); - if (bEven) { - yMoveB = yMoveT; - } else { - yMoveB = linesOnScreen - yMoveT - 1; - } - if (lineCaret < topLine) { - // Caret goes too high - newTopLine = lineCaret - yMoveT; - } else if (lineCaret > topLine + linesOnScreen - 1) { - // Caret goes too low - newTopLine = lineCaret - linesOnScreen + 1 + yMoveB; - } - } - } else { // No slop - if (!bStrict && !bJump) { - // Minimal move - if (lineCaret < topLine) { - // Caret goes too high - newTopLine = lineCaret; - } else if (lineCaret > topLine + linesOnScreen - 1) { - // Caret goes too low - if (bEven) { - newTopLine = lineCaret - linesOnScreen + 1; - } else { - newTopLine = lineCaret; - } - } - } else { // Strict or going out of display - if (bEven) { - // Always center caret - newTopLine = lineCaret - halfScreen; - } else { - // Always put caret on top of display - newTopLine = lineCaret; - } - } - } - newTopLine = Platform::Clamp(newTopLine, 0, MaxScrollPos()); - if (newTopLine != topLine) { - Redraw(); - SetTopLine(newTopLine); - SetVerticalScrollPos(); - } - } - - // Horizontal positioning - if (horiz && (wrapState == eWrapNone)) { - int halfScreen = Platform::Maximum(rcClient.Width() - 4, 4) / 2; - int xOffsetNew = xOffset; - bSlop = (caretXPolicy & CARET_SLOP) != 0; - bStrict = (caretXPolicy & CARET_STRICT) != 0; - bJump = (caretXPolicy & CARET_JUMPS) != 0; - bEven = (caretXPolicy & CARET_EVEN) != 0; - - if (bSlop) { // A margin is defined - int xMoveL, xMoveR; - if (bStrict) { - int xMarginL, xMarginR; - if (!useMargin) { - // In drag mode, avoid moves unless very near of the margin - // otherwise, a simple click will select text. - xMarginL = xMarginR = 2; - } else { - // xMargin must equal to caretXSlop, with a minimum of 2 and - // a maximum of slightly less than half the width of the text area. - xMarginR = Platform::Clamp(caretXSlop, 2, halfScreen); - if (bEven) { - xMarginL = xMarginR; - } else { - xMarginL = rcClient.Width() - xMarginR - 4; - } - } - if (bJump && bEven) { - // Jump is used only in even mode - xMoveL = xMoveR = Platform::Clamp(caretXSlop * 3, 1, halfScreen); - } else { - xMoveL = xMoveR = 0; // Not used, avoid a warning - } - if (pt.x < rcClient.left + xMarginL) { - // Caret is on the left of the display - if (bJump && bEven) { - xOffsetNew -= xMoveL; - } else { - // Move just enough to allow to display the caret - xOffsetNew -= (rcClient.left + xMarginL) - pt.x; - } - } else if (pt.x >= rcClient.right - xMarginR) { - // Caret is on the right of the display - if (bJump && bEven) { - xOffsetNew += xMoveR; - } else { - // Move just enough to allow to display the caret - xOffsetNew += pt.x - (rcClient.right - xMarginR) + 1; - } - } - } else { // Not strict - xMoveR = bJump ? caretXSlop * 3 : caretXSlop; - xMoveR = Platform::Clamp(xMoveR, 1, halfScreen); - if (bEven) { - xMoveL = xMoveR; - } else { - xMoveL = rcClient.Width() - xMoveR - 4; - } - if (pt.x < rcClient.left) { - // Caret is on the left of the display - xOffsetNew -= xMoveL; - } else if (pt.x >= rcClient.right) { - // Caret is on the right of the display - xOffsetNew += xMoveR; - } - } - } else { // No slop - if (bStrict || - (bJump && (pt.x < rcClient.left || pt.x >= rcClient.right))) { - // Strict or going out of display - if (bEven) { - // Center caret - xOffsetNew += pt.x - rcClient.left - halfScreen; - } else { - // Put caret on right - xOffsetNew += pt.x - rcClient.right + 1; - } - } else { - // Move just enough to allow to display the caret - if (pt.x < rcClient.left) { - // Caret is on the left of the display - if (bEven) { - xOffsetNew -= rcClient.left - pt.x; - } else { - xOffsetNew += pt.x - rcClient.right + 1; - } - } else if (pt.x >= rcClient.right) { - // Caret is on the right of the display - xOffsetNew += pt.x - rcClient.right + 1; - } - } - } - // In case of a jump (find result) largely out of display, adjust the offset to display the caret - if (pt.x + xOffset < rcClient.left + xOffsetNew) { - xOffsetNew = pt.x + xOffset - rcClient.left; - } else if (pt.x + xOffset >= rcClient.right + xOffsetNew) { - xOffsetNew = pt.x + xOffset - rcClient.right + 1; - } - if (xOffsetNew < 0) { - xOffsetNew = 0; - } - if (xOffset != xOffsetNew) { - xOffset = xOffsetNew; - if (xOffsetNew > 0) { - PRectangle rcText = GetTextRectangle(); - if (horizontalScrollBarVisible == true && - rcText.Width() + xOffset > scrollWidth) { - scrollWidth = xOffset + rcText.Width(); - SetScrollBars(); - } - } - SetHorizontalScrollPos(); - Redraw(); - } - } - UpdateSystemCaret(); -} - -void Editor::ShowCaretAtCurrentPosition() { - if (hasFocus) { - caret.active = true; - caret.on = true; - SetTicking(true); - } else { - caret.active = false; - caret.on = false; - } - InvalidateCaret(); -} - -void Editor::DropCaret() { - caret.active = false; - InvalidateCaret(); -} - -void Editor::InvalidateCaret() { - if (posDrag >= 0) - InvalidateRange(posDrag, posDrag + 1); - else - InvalidateRange(currentPos, currentPos + 1); - UpdateSystemCaret(); -} - -void Editor::UpdateSystemCaret() { -} - -void Editor::NeedWrapping(int docLineStart, int docLineEnd) { - docLineStart = Platform::Clamp(docLineStart, 0, pdoc->LinesTotal()); - if (wrapStart > docLineStart) { - wrapStart = docLineStart; - llc.Invalidate(LineLayout::llPositions); - } - if (wrapEnd < docLineEnd) { - wrapEnd = docLineEnd; - } - wrapEnd = Platform::Clamp(wrapEnd, 0, pdoc->LinesTotal()); - // Wrap lines during idle. - if ((wrapState != eWrapNone) && (wrapEnd != wrapStart)) { - SetIdle(true); - } -} - -// Check if wrapping needed and perform any needed wrapping. -// fullwrap: if true, all lines which need wrapping will be done, -// in this single call. -// priorityWrapLineStart: If greater than zero, all lines starting from -// here to 1 page + 100 lines past will be wrapped (even if there are -// more lines under wrapping process in idle). -// If it is neither fullwrap, nor priorityWrap, then 1 page + 100 lines will be -// wrapped, if there are any wrapping going on in idle. (Generally this -// condition is called only from idler). -// Return true if wrapping occurred. -bool Editor::WrapLines(bool fullWrap, int priorityWrapLineStart) { - // If there are any pending wraps, do them during idle if possible. - int linesInOneCall = LinesOnScreen() + 100; - if (wrapState != eWrapNone) { - if (wrapStart < wrapEnd) { - if (!SetIdle(true)) { - // Idle processing not supported so full wrap required. - fullWrap = true; - } - } - if (!fullWrap && priorityWrapLineStart >= 0 && - // .. and if the paint window is outside pending wraps - (((priorityWrapLineStart + linesInOneCall) < wrapStart) || - (priorityWrapLineStart > wrapEnd))) { - // No priority wrap pending - return false; - } - } - int goodTopLine = topLine; - bool wrapOccurred = false; - if (wrapStart <= pdoc->LinesTotal()) { - if (wrapState == eWrapNone) { - if (wrapWidth != LineLayout::wrapWidthInfinite) { - wrapWidth = LineLayout::wrapWidthInfinite; - for (int lineDoc = 0; lineDoc < pdoc->LinesTotal(); lineDoc++) { - cs.SetHeight(lineDoc, 1); - } - wrapOccurred = true; - } - wrapStart = wrapLineLarge; - wrapEnd = wrapLineLarge; - } else { - if (wrapEnd >= pdoc->LinesTotal()) - wrapEnd = pdoc->LinesTotal(); - //ElapsedTime et; - int lineDocTop = cs.DocFromDisplay(topLine); - int subLineTop = topLine - cs.DisplayFromDoc(lineDocTop); - PRectangle rcTextArea = GetClientRectangle(); - rcTextArea.left = vs.fixedColumnWidth; - rcTextArea.right -= vs.rightMarginWidth; - wrapWidth = rcTextArea.Width(); - // Ensure all of the document is styled. - pdoc->EnsureStyledTo(pdoc->Length()); - RefreshStyleData(); - AutoSurface surface(this); - if (surface) { - bool priorityWrap = false; - int lastLineToWrap = wrapEnd; - int lineToWrap = wrapStart; - if (!fullWrap) { - if (priorityWrapLineStart >= 0) { - // This is a priority wrap. - lineToWrap = priorityWrapLineStart; - lastLineToWrap = priorityWrapLineStart + linesInOneCall; - priorityWrap = true; - } else { - // This is idle wrap. - lastLineToWrap = wrapStart + linesInOneCall; - } - if (lastLineToWrap >= wrapEnd) - lastLineToWrap = wrapEnd; - } // else do a fullWrap. - - // Platform::DebugPrintf("Wraplines: full = %d, priorityStart = %d (wrapping: %d to %d)\n", fullWrap, priorityWrapLineStart, lineToWrap, lastLineToWrap); - // Platform::DebugPrintf("Pending wraps: %d to %d\n", wrapStart, wrapEnd); - while (lineToWrap < lastLineToWrap) { - AutoLineLayout ll(llc, RetrieveLineLayout(lineToWrap)); - int linesWrapped = 1; - if (ll) { - LayoutLine(lineToWrap, surface, vs, ll, wrapWidth); - linesWrapped = ll->lines; - } - if (cs.SetHeight(lineToWrap, linesWrapped)) { - wrapOccurred = true; - } - lineToWrap++; - } - if (!priorityWrap) - wrapStart = lineToWrap; - // If wrapping is done, bring it to resting position - if (wrapStart >= wrapEnd) { - wrapStart = wrapLineLarge; - wrapEnd = wrapLineLarge; - } - } - goodTopLine = cs.DisplayFromDoc(lineDocTop); - if (subLineTop < cs.GetHeight(lineDocTop)) - goodTopLine += subLineTop; - else - goodTopLine += cs.GetHeight(lineDocTop); - //double durWrap = et.Duration(true); - //Platform::DebugPrintf("Wrap:%9.6g \n", durWrap); - } - } - if (wrapOccurred) { - SetScrollBars(); - SetTopLine(Platform::Clamp(goodTopLine, 0, MaxScrollPos())); - SetVerticalScrollPos(); - } - return wrapOccurred; -} - -void Editor::LinesJoin() { - if (!RangeContainsProtected(targetStart, targetEnd)) { - pdoc->BeginUndoAction(); - bool prevNonWS = true; - for (int pos = targetStart; pos < targetEnd; pos++) { - if (IsEOLChar(pdoc->CharAt(pos))) { - targetEnd -= pdoc->LenChar(pos); - pdoc->DelChar(pos); - if (prevNonWS) { - // Ensure at least one space separating previous lines - pdoc->InsertChar(pos, ' '); - } - } else { - prevNonWS = pdoc->CharAt(pos) != ' '; - } - } - pdoc->EndUndoAction(); - } -} - -const char *StringFromEOLMode(int eolMode) { - if (eolMode == SC_EOL_CRLF) { - return "\r\n"; - } else if (eolMode == SC_EOL_CR) { - return "\r"; - } else { - return "\n"; - } -} - -void Editor::LinesSplit(int pixelWidth) { - if (!RangeContainsProtected(targetStart, targetEnd)) { - if (pixelWidth == 0) { - PRectangle rcText = GetTextRectangle(); - pixelWidth = rcText.Width(); - } - int lineStart = pdoc->LineFromPosition(targetStart); - int lineEnd = pdoc->LineFromPosition(targetEnd); - const char *eol = StringFromEOLMode(pdoc->eolMode); - pdoc->BeginUndoAction(); - for (int line = lineStart; line <= lineEnd; line++) { - AutoSurface surface(this); - AutoLineLayout ll(llc, RetrieveLineLayout(line)); - if (surface && ll) { - unsigned int posLineStart = pdoc->LineStart(line); - LayoutLine(line, surface, vs, ll, pixelWidth); - for (int subLine = 1; subLine < ll->lines; subLine++) { - pdoc->InsertString(posLineStart + (subLine - 1) * strlen(eol) + - ll->LineStart(subLine), eol); - targetEnd += static_cast(strlen(eol)); - } - } - lineEnd = pdoc->LineFromPosition(targetEnd); - } - pdoc->EndUndoAction(); - } -} - -int Editor::SubstituteMarkerIfEmpty(int markerCheck, int markerDefault) { - if (vs.markers[markerCheck].markType == SC_MARK_EMPTY) - return markerDefault; - return markerCheck; -} - -// Avoid 64 bit compiler warnings. -// Scintilla does not support text buffers larger than 2**31 -static int istrlen(const char *s) { - return static_cast(strlen(s)); -} - -void Editor::PaintSelMargin(Surface *surfWindow, PRectangle &rc) { - if (vs.fixedColumnWidth == 0) - return; - - PRectangle rcMargin = GetClientRectangle(); - rcMargin.right = vs.fixedColumnWidth; - - if (!rc.Intersects(rcMargin)) - return; - - Surface *surface; - if (bufferedDraw) { - surface = pixmapSelMargin; - } else { - surface = surfWindow; - } - - PRectangle rcSelMargin = rcMargin; - rcSelMargin.right = rcMargin.left; - - for (int margin = 0; margin < vs.margins; margin++) { - if (vs.ms[margin].width > 0) { - - rcSelMargin.left = rcSelMargin.right; - rcSelMargin.right = rcSelMargin.left + vs.ms[margin].width; - - if (vs.ms[margin].style != SC_MARGIN_NUMBER) { - /* alternate scheme: - if (vs.ms[margin].mask & SC_MASK_FOLDERS) - surface->FillRectangle(rcSelMargin, vs.styles[STYLE_DEFAULT].back.allocated); - else - // Required because of special way brush is created for selection margin - surface->FillRectangle(rcSelMargin, pixmapSelPattern); - */ - if (vs.ms[margin].mask & SC_MASK_FOLDERS) - // Required because of special way brush is created for selection margin - surface->FillRectangle(rcSelMargin, *pixmapSelPattern); - else { - ColourAllocated colour; - switch (vs.ms[margin].style) { - case SC_MARGIN_BACK: - colour = vs.styles[STYLE_DEFAULT].back.allocated; - break; - case SC_MARGIN_FORE: - colour = vs.styles[STYLE_DEFAULT].fore.allocated; - break; - default: - colour = vs.styles[STYLE_LINENUMBER].back.allocated; - break; - } - surface->FillRectangle(rcSelMargin, colour); - } - } else { - surface->FillRectangle(rcSelMargin, vs.styles[STYLE_LINENUMBER].back.allocated); - } - - int visibleLine = topLine; - int yposScreen = 0; - - // Work out whether the top line is whitespace located after a - // lessening of fold level which implies a 'fold tail' but which should not - // be displayed until the last of a sequence of whitespace. - bool needWhiteClosure = false; - int level = pdoc->GetLevel(cs.DocFromDisplay(topLine)); - if (level & SC_FOLDLEVELWHITEFLAG) { - int lineBack = cs.DocFromDisplay(topLine); - int levelPrev = level; - while ((lineBack > 0) && (levelPrev & SC_FOLDLEVELWHITEFLAG)) { - lineBack--; - levelPrev = pdoc->GetLevel(lineBack); - } - if (!(levelPrev & SC_FOLDLEVELHEADERFLAG)) { - if ((level & SC_FOLDLEVELNUMBERMASK) < (levelPrev & SC_FOLDLEVELNUMBERMASK)) - needWhiteClosure = true; - } - } - - // Old code does not know about new markers needed to distinguish all cases - int folderOpenMid = SubstituteMarkerIfEmpty(SC_MARKNUM_FOLDEROPENMID, - SC_MARKNUM_FOLDEROPEN); - int folderEnd = SubstituteMarkerIfEmpty(SC_MARKNUM_FOLDEREND, - SC_MARKNUM_FOLDER); - - while ((visibleLine < cs.LinesDisplayed()) && yposScreen < rcMargin.bottom) { - - PLATFORM_ASSERT(visibleLine < cs.LinesDisplayed()); - - int lineDoc = cs.DocFromDisplay(visibleLine); - PLATFORM_ASSERT(cs.GetVisible(lineDoc)); - bool firstSubLine = visibleLine == cs.DisplayFromDoc(lineDoc); - - // Decide which fold indicator should be displayed - level = pdoc->GetLevel(lineDoc); - int levelNext = pdoc->GetLevel(lineDoc + 1); - int marks = pdoc->GetMark(lineDoc); - if (!firstSubLine) - marks = 0; - int levelNum = level & SC_FOLDLEVELNUMBERMASK; - int levelNextNum = levelNext & SC_FOLDLEVELNUMBERMASK; - if (level & SC_FOLDLEVELHEADERFLAG) { - if (firstSubLine) { - if (cs.GetExpanded(lineDoc)) { - if (levelNum == SC_FOLDLEVELBASE) - marks |= 1 << SC_MARKNUM_FOLDEROPEN; - else - marks |= 1 << folderOpenMid; - } else { - if (levelNum == SC_FOLDLEVELBASE) - marks |= 1 << SC_MARKNUM_FOLDER; - else - marks |= 1 << folderEnd; - } - } else { - marks |= 1 << SC_MARKNUM_FOLDERSUB; - } - needWhiteClosure = false; - } else if (level & SC_FOLDLEVELWHITEFLAG) { - if (needWhiteClosure) { - if (levelNext & SC_FOLDLEVELWHITEFLAG) { - marks |= 1 << SC_MARKNUM_FOLDERSUB; - } else if (levelNum > SC_FOLDLEVELBASE) { - marks |= 1 << SC_MARKNUM_FOLDERMIDTAIL; - needWhiteClosure = false; - } else { - marks |= 1 << SC_MARKNUM_FOLDERTAIL; - needWhiteClosure = false; - } - } else if (levelNum > SC_FOLDLEVELBASE) { - if (levelNextNum < levelNum) { - if (levelNextNum > SC_FOLDLEVELBASE) { - marks |= 1 << SC_MARKNUM_FOLDERMIDTAIL; - } else { - marks |= 1 << SC_MARKNUM_FOLDERTAIL; - } - } else { - marks |= 1 << SC_MARKNUM_FOLDERSUB; - } - } - } else if (levelNum > SC_FOLDLEVELBASE) { - if (levelNextNum < levelNum) { - needWhiteClosure = false; - if (levelNext & SC_FOLDLEVELWHITEFLAG) { - marks |= 1 << SC_MARKNUM_FOLDERSUB; - needWhiteClosure = true; - } else if (levelNextNum > SC_FOLDLEVELBASE) { - marks |= 1 << SC_MARKNUM_FOLDERMIDTAIL; - } else { - marks |= 1 << SC_MARKNUM_FOLDERTAIL; - } - } else { - marks |= 1 << SC_MARKNUM_FOLDERSUB; - } - } - - marks &= vs.ms[margin].mask; - PRectangle rcMarker = rcSelMargin; - rcMarker.top = yposScreen; - rcMarker.bottom = yposScreen + vs.lineHeight; - if (vs.ms[margin].style == SC_MARGIN_NUMBER) { - char number[100]; - number[0] = '\0'; - if (firstSubLine) - sprintf(number, "%d", lineDoc + 1); - if (foldFlags & SC_FOLDFLAG_LEVELNUMBERS) { - int lev = pdoc->GetLevel(lineDoc); - sprintf(number, "%c%c %03X %03X", - (lev & SC_FOLDLEVELHEADERFLAG) ? 'H' : '_', - (lev & SC_FOLDLEVELWHITEFLAG) ? 'W' : '_', - lev & SC_FOLDLEVELNUMBERMASK, - lev >> 16 - ); - } - PRectangle rcNumber = rcMarker; - // Right justify - int width = surface->WidthText(vs.styles[STYLE_LINENUMBER].font, number, istrlen(number)); - int xpos = rcNumber.right - width - 3; - rcNumber.left = xpos; - surface->DrawTextNoClip(rcNumber, vs.styles[STYLE_LINENUMBER].font, - rcNumber.top + vs.maxAscent, number, istrlen(number), - vs.styles[STYLE_LINENUMBER].fore.allocated, - vs.styles[STYLE_LINENUMBER].back.allocated); - } - - if (marks) { - for (int markBit = 0; (markBit < 32) && marks; markBit++) { - if (marks & 1) { - vs.markers[markBit].Draw(surface, rcMarker, vs.styles[STYLE_LINENUMBER].font); - } - marks >>= 1; - } - } - - visibleLine++; - yposScreen += vs.lineHeight; - } - } - } - - PRectangle rcBlankMargin = rcMargin; - rcBlankMargin.left = rcSelMargin.right; - surface->FillRectangle(rcBlankMargin, vs.styles[STYLE_DEFAULT].back.allocated); - - if (bufferedDraw) { - surfWindow->Copy(rcMargin, Point(), *pixmapSelMargin); - } -} - -void DrawTabArrow(Surface *surface, PRectangle rcTab, int ymid) { - int ydiff = (rcTab.bottom - rcTab.top) / 2; - int xhead = rcTab.right - 1 - ydiff; - if (xhead <= rcTab.left) { - ydiff -= rcTab.left - xhead - 1; - xhead = rcTab.left - 1; - } - if ((rcTab.left + 2) < (rcTab.right - 1)) - surface->MoveTo(rcTab.left + 2, ymid); - else - surface->MoveTo(rcTab.right - 1, ymid); - surface->LineTo(rcTab.right - 1, ymid); - surface->LineTo(xhead, ymid - ydiff); - surface->MoveTo(rcTab.right - 1, ymid); - surface->LineTo(xhead, ymid + ydiff); -} - -static bool IsSpaceOrTab(char ch) { - return ch == ' ' || ch == '\t'; -} - -LineLayout *Editor::RetrieveLineLayout(int lineNumber) { - int posLineStart = pdoc->LineStart(lineNumber); - int posLineEnd = pdoc->LineStart(lineNumber + 1); - int lineCaret = pdoc->LineFromPosition(currentPos); - return llc.Retrieve(lineNumber, lineCaret, - posLineEnd - posLineStart, pdoc->GetStyleClock(), - LinesOnScreen() + 1, pdoc->LinesTotal()); -} - -/** - * Fill in the LineLayout data for the given line. - * Copy the given @a line and its styles from the document into local arrays. - * Also determine the x position at which each character starts. - */ -void Editor::LayoutLine(int line, Surface *surface, ViewStyle &vstyle, LineLayout *ll, int width) { - if (!ll) - return; - PLATFORM_ASSERT(line < pdoc->LinesTotal()); - int posLineStart = pdoc->LineStart(line); - int posLineEnd = pdoc->LineStart(line + 1); - // If the line is very long, limit the treatment to a length that should fit in the viewport - if (posLineEnd > (posLineStart + ll->maxLineLength)) { - posLineEnd = posLineStart + ll->maxLineLength; - } - if (ll->validity == LineLayout::llCheckTextAndStyle) { - int lineLength = posLineEnd - posLineStart; - if (!vstyle.viewEOL) { - int cid = posLineEnd - 1; - while ((cid > posLineStart) && IsEOLChar(pdoc->CharAt(cid))) { - cid--; - lineLength--; - } - } - if (lineLength == ll->numCharsInLine) { - // See if chars, styles, indicators, are all the same - bool allSame = true; - const int styleMask = pdoc->stylingBitsMask; - // Check base line layout - char styleByte = 0; - int numCharsInLine = 0; - while (numCharsInLine < lineLength) { - int charInDoc = numCharsInLine + posLineStart; - char chDoc = pdoc->CharAt(charInDoc); - styleByte = pdoc->StyleAt(charInDoc); - allSame = allSame && - (ll->styles[numCharsInLine] == static_cast(styleByte & styleMask)); - allSame = allSame && - (ll->indicators[numCharsInLine] == static_cast(styleByte & ~styleMask)); - if (vstyle.styles[ll->styles[numCharsInLine]].caseForce == Style::caseMixed) - allSame = allSame && - (ll->chars[numCharsInLine] == chDoc); - else if (vstyle.styles[ll->styles[numCharsInLine]].caseForce == Style::caseLower) - allSame = allSame && - (ll->chars[numCharsInLine] == static_cast(tolower(chDoc))); - else // Style::caseUpper - allSame = allSame && - (ll->chars[numCharsInLine] == static_cast(toupper(chDoc))); - numCharsInLine++; - } - allSame = allSame && (ll->styles[numCharsInLine] == styleByte); // For eolFilled - if (allSame) { - ll->validity = LineLayout::llPositions; - } else { - ll->validity = LineLayout::llInvalid; - } - } else { - ll->validity = LineLayout::llInvalid; - } - } - if (ll->validity == LineLayout::llInvalid) { - ll->widthLine = LineLayout::wrapWidthInfinite; - ll->lines = 1; - int numCharsInLine = 0; - if (vstyle.edgeState == EDGE_BACKGROUND) { - ll->edgeColumn = pdoc->FindColumn(line, theEdge); - if (ll->edgeColumn >= posLineStart) { - ll->edgeColumn -= posLineStart; - } - } else { - ll->edgeColumn = -1; - } - - char styleByte = 0; - int styleMask = pdoc->stylingBitsMask; - ll->styleBitsSet = 0; - // Fill base line layout - for (int charInDoc = posLineStart; charInDoc < posLineEnd; charInDoc++) { - char chDoc = pdoc->CharAt(charInDoc); - styleByte = pdoc->StyleAt(charInDoc); - ll->styleBitsSet |= styleByte; - if (vstyle.viewEOL || (!IsEOLChar(chDoc))) { - ll->chars[numCharsInLine] = chDoc; - ll->styles[numCharsInLine] = static_cast(styleByte & styleMask); - ll->indicators[numCharsInLine] = static_cast(styleByte & ~styleMask); - if (vstyle.styles[ll->styles[numCharsInLine]].caseForce == Style::caseUpper) - ll->chars[numCharsInLine] = static_cast(toupper(chDoc)); - else if (vstyle.styles[ll->styles[numCharsInLine]].caseForce == Style::caseLower) - ll->chars[numCharsInLine] = static_cast(tolower(chDoc)); - numCharsInLine++; - } - } - ll->xHighlightGuide = 0; - // Extra element at the end of the line to hold end x position and act as - ll->chars[numCharsInLine] = 0; // Also triggers processing in the loops as this is a control character - ll->styles[numCharsInLine] = styleByte; // For eolFilled - ll->indicators[numCharsInLine] = 0; - - // Layout the line, determining the position of each character, - // with an extra element at the end for the end of the line. - int startseg = 0; // Start of the current segment, in char. number - int startsegx = 0; // Start of the current segment, in pixels - ll->positions[0] = 0; - unsigned int tabWidth = vstyle.spaceWidth * pdoc->tabInChars; - bool lastSegItalics = false; - Font &ctrlCharsFont = vstyle.styles[STYLE_CONTROLCHAR].font; - - int ctrlCharWidth[32] = {0}; - bool isControlNext = IsControlCharacter(ll->chars[0]); - for (int charInLine = 0; charInLine < numCharsInLine; charInLine++) { - bool isControl = isControlNext; - isControlNext = IsControlCharacter(ll->chars[charInLine + 1]); - if ((ll->styles[charInLine] != ll->styles[charInLine + 1]) || - isControl || isControlNext) { - ll->positions[startseg] = 0; - if (vstyle.styles[ll->styles[charInLine]].visible) { - if (isControl) { - if (ll->chars[charInLine] == '\t') { - ll->positions[charInLine + 1] = ((((startsegx + 2) / - tabWidth) + 1) * tabWidth) - startsegx; - } else if (controlCharSymbol < 32) { - if (ctrlCharWidth[ll->chars[charInLine]] == 0) { - const char *ctrlChar = ControlCharacterString(ll->chars[charInLine]); - // +3 For a blank on front and rounded edge each side: - ctrlCharWidth[ll->chars[charInLine]] = - surface->WidthText(ctrlCharsFont, ctrlChar, istrlen(ctrlChar)) + 3; - } - ll->positions[charInLine + 1] = ctrlCharWidth[ll->chars[charInLine]]; - } else { - char cc[2] = { static_cast(controlCharSymbol), '\0' }; - surface->MeasureWidths(ctrlCharsFont, cc, 1, - ll->positions + startseg + 1); - } - lastSegItalics = false; - } else { // Regular character - int lenSeg = charInLine - startseg + 1; - if ((lenSeg == 1) && (' ' == ll->chars[startseg])) { - lastSegItalics = false; - // Over half the segments are single characters and of these about half are space characters. - ll->positions[charInLine + 1] = vstyle.styles[ll->styles[charInLine]].spaceWidth; - } else { - lastSegItalics = vstyle.styles[ll->styles[charInLine]].italic; - surface->MeasureWidths(vstyle.styles[ll->styles[charInLine]].font, ll->chars + startseg, - lenSeg, ll->positions + startseg + 1); - } - } - } else { // invisible - for (int posToZero = startseg; posToZero <= (charInLine + 1); posToZero++) { - ll->positions[posToZero] = 0; - } - } - for (int posToIncrease = startseg; posToIncrease <= (charInLine + 1); posToIncrease++) { - ll->positions[posToIncrease] += startsegx; - } - startsegx = ll->positions[charInLine + 1]; - startseg = charInLine + 1; - } - } - // Small hack to make lines that end with italics not cut off the edge of the last character - if ((startseg > 0) && lastSegItalics) { - ll->positions[startseg] += 2; - } - ll->numCharsInLine = numCharsInLine; - ll->validity = LineLayout::llPositions; - } - // Hard to cope when too narrow, so just assume there is space - if (width < 20) { - width = 20; - } - if ((ll->validity == LineLayout::llPositions) || (ll->widthLine != width)) { - ll->widthLine = width; - if (width == LineLayout::wrapWidthInfinite) { - ll->lines = 1; - } else if (width > ll->positions[ll->numCharsInLine]) { - // Simple common case where line does not need wrapping. - ll->lines = 1; - } else { - if (wrapVisualFlags & SC_WRAPVISUALFLAG_END) { - width -= vstyle.aveCharWidth; // take into account the space for end wrap mark - } - ll->lines = 0; - // Calculate line start positions based upon width. - // For now this is simplistic - wraps on byte rather than character and - // in the middle of words. Should search for spaces or style changes. - int lastGoodBreak = 0; - int lastLineStart = 0; - int startOffset = 0; - int p = 0; - while (p < ll->numCharsInLine) { - if ((ll->positions[p + 1] - startOffset) >= width) { - if (lastGoodBreak == lastLineStart) { - // Try moving to start of last character - if (p > 0) { - lastGoodBreak = pdoc->MovePositionOutsideChar(p + posLineStart, -1) - - posLineStart; - } - if (lastGoodBreak == lastLineStart) { - // Ensure at least one character on line. - lastGoodBreak = pdoc->MovePositionOutsideChar(lastGoodBreak + posLineStart + 1, 1) - - posLineStart; - } - } - lastLineStart = lastGoodBreak; - ll->lines++; - ll->SetLineStart(ll->lines, lastGoodBreak); - startOffset = ll->positions[lastGoodBreak]; - // take into account the space for start wrap mark and indent - startOffset -= actualWrapVisualStartIndent * vstyle.aveCharWidth; - p = lastGoodBreak + 1; - continue; - } - if (p > 0) { - if (wrapState == eWrapChar) { - lastGoodBreak = pdoc->MovePositionOutsideChar(p + posLineStart, -1) - - posLineStart; - p = pdoc->MovePositionOutsideChar(p + 1 + posLineStart, 1) - posLineStart; - continue; - } else if (ll->styles[p] != ll->styles[p - 1]) { - lastGoodBreak = p; - } else if (IsSpaceOrTab(ll->chars[p - 1]) && !IsSpaceOrTab(ll->chars[p])) { - lastGoodBreak = p; - } - } - p++; - } - ll->lines++; - } - ll->validity = LineLayout::llLines; - } -} - -ColourAllocated Editor::SelectionBackground(ViewStyle &vsDraw) { - return primarySelection ? vsDraw.selbackground.allocated : vsDraw.selbackground2.allocated; -} - -ColourAllocated Editor::TextBackground(ViewStyle &vsDraw, bool overrideBackground, - ColourAllocated background, bool inSelection, bool inHotspot, int styleMain, int i, LineLayout *ll) { - if (inSelection) { - if (vsDraw.selbackset && (vsDraw.selAlpha == SC_ALPHA_NOALPHA)) { - return SelectionBackground(vsDraw); - } - } else { - if ((vsDraw.edgeState == EDGE_BACKGROUND) && - (i >= ll->edgeColumn) && - !IsEOLChar(ll->chars[i])) - return vsDraw.edgecolour.allocated; - if (inHotspot && vsDraw.hotspotBackgroundSet) - return vsDraw.hotspotBackground.allocated; - if (overrideBackground) - return background; - } - return vsDraw.styles[styleMain].back.allocated; -} - -void Editor::DrawIndentGuide(Surface *surface, int lineVisible, int lineHeight, int start, PRectangle rcSegment, bool highlight) { - Point from(0, ((lineVisible & 1) && (lineHeight & 1)) ? 1 : 0); - PRectangle rcCopyArea(start + 1, rcSegment.top, start + 2, rcSegment.bottom); - surface->Copy(rcCopyArea, from, - highlight ? *pixmapIndentGuideHighlight : *pixmapIndentGuide); -} - -void Editor::DrawWrapMarker(Surface *surface, PRectangle rcPlace, - bool isEndMarker, ColourAllocated wrapColour) { - surface->PenColour(wrapColour); - - enum { xa = 1 }; // gap before start - int w = rcPlace.right - rcPlace.left - xa - 1; - - bool xStraight = isEndMarker; // x-mirrored symbol for start marker - bool yStraight = true; - //bool yStraight= isEndMarker; // comment in for start marker y-mirrowed - - int x0 = xStraight ? rcPlace.left : rcPlace.right - 1; - int y0 = yStraight ? rcPlace.top : rcPlace.bottom - 1; - - int dy = (rcPlace.bottom - rcPlace.top) / 5; - int y = (rcPlace.bottom - rcPlace.top) / 2 + dy; - - struct Relative { - Surface *surface; - int xBase; - int xDir; - int yBase; - int yDir; - void MoveTo(int xRelative, int yRelative) { - surface->MoveTo(xBase + xDir * xRelative, yBase + yDir * yRelative); - } - void LineTo(int xRelative, int yRelative) { - surface->LineTo(xBase + xDir * xRelative, yBase + yDir * yRelative); - } - }; - Relative rel = {surface, x0, xStraight ? 1 : -1, y0, yStraight ? 1 : -1}; - - // arrow head - rel.MoveTo(xa, y); - rel.LineTo(xa + 2*w / 3, y - dy); - rel.MoveTo(xa, y); - rel.LineTo(xa + 2*w / 3, y + dy); - - // arrow body - rel.MoveTo(xa, y); - rel.LineTo(xa + w, y); - rel.LineTo(xa + w, y - 2 * dy); - rel.LineTo(xa - 1, // on windows lineto is exclusive endpoint, perhaps GTK not... - y - 2 * dy); -} - -static void SimpleAlphaRectangle(Surface *surface, PRectangle rc, ColourAllocated fill, int alpha) { - if (alpha != SC_ALPHA_NOALPHA) { - surface->AlphaRectangle(rc, 0, fill, alpha, fill, alpha, 0); - } -} - -void Editor::DrawEOL(Surface *surface, ViewStyle &vsDraw, PRectangle rcLine, LineLayout *ll, - int line, int lineEnd, int xStart, int subLine, int subLineStart, - bool overrideBackground, ColourAllocated background, - bool drawWrapMarkEnd, ColourAllocated wrapColour) { - - int styleMask = pdoc->stylingBitsMask; - PRectangle rcSegment = rcLine; - - // Fill in a PRectangle representing the end of line characters - int xEol = ll->positions[lineEnd] - subLineStart; - rcSegment.left = xEol + xStart; - rcSegment.right = xEol + vsDraw.aveCharWidth + xStart; - int posLineEnd = pdoc->LineStart(line + 1); - bool eolInSelection = (subLine == (ll->lines - 1)) && - (posLineEnd > ll->selStart) && (posLineEnd <= ll->selEnd) && (ll->selStart != ll->selEnd); - - if (eolInSelection && vsDraw.selbackset && (line < pdoc->LinesTotal() - 1) && (vsDraw.selAlpha == SC_ALPHA_NOALPHA)) { - surface->FillRectangle(rcSegment, SelectionBackground(vsDraw)); - } else { - if (overrideBackground) { - surface->FillRectangle(rcSegment, background); - } else { - surface->FillRectangle(rcSegment, vsDraw.styles[ll->styles[ll->numCharsInLine] & styleMask].back.allocated); - } - if (eolInSelection && vsDraw.selbackset && (line < pdoc->LinesTotal() - 1) && (vsDraw.selAlpha != SC_ALPHA_NOALPHA)) { - SimpleAlphaRectangle(surface, rcSegment, SelectionBackground(vsDraw), vsDraw.selAlpha); - } - } - - rcSegment.left = xEol + vsDraw.aveCharWidth + xStart; - rcSegment.right = rcLine.right; - if (overrideBackground) { - surface->FillRectangle(rcSegment, background); - } else if (vsDraw.styles[ll->styles[ll->numCharsInLine] & styleMask].eolFilled) { - surface->FillRectangle(rcSegment, vsDraw.styles[ll->styles[ll->numCharsInLine] & styleMask].back.allocated); - } else { - surface->FillRectangle(rcSegment, vsDraw.styles[STYLE_DEFAULT].back.allocated); - } - - if (drawWrapMarkEnd) { - PRectangle rcPlace = rcSegment; - - if (wrapVisualFlagsLocation & SC_WRAPVISUALFLAGLOC_END_BY_TEXT) { - rcPlace.left = xEol + xStart; - rcPlace.right = rcPlace.left + vsDraw.aveCharWidth; - } else { - // draw left of the right text margin, to avoid clipping by the current clip rect - rcPlace.right = rcLine.right - vs.rightMarginWidth; - rcPlace.left = rcPlace.right - vsDraw.aveCharWidth; - } - DrawWrapMarker(surface, rcPlace, true, wrapColour); - } -} - -void Editor::DrawLine(Surface *surface, ViewStyle &vsDraw, int line, int lineVisible, int xStart, - PRectangle rcLine, LineLayout *ll, int subLine) { - - PRectangle rcSegment = rcLine; - - // Using one font for all control characters so it can be controlled independently to ensure - // the box goes around the characters tightly. Seems to be no way to work out what height - // is taken by an individual character - internal leading gives varying results. - Font &ctrlCharsFont = vsDraw.styles[STYLE_CONTROLCHAR].font; - - // See if something overrides the line background color: Either if caret is on the line - // and background color is set for that, or if a marker is defined that forces its background - // color onto the line, or if a marker is defined but has no selection margin in which to - // display itself (as long as it's not an SC_MARK_EMPTY marker). These are checked in order - // with the earlier taking precedence. When multiple markers cause background override, - // the color for the highest numbered one is used. - bool overrideBackground = false; - ColourAllocated background; - if (caret.active && vsDraw.showCaretLineBackground && (vsDraw.caretLineAlpha == SC_ALPHA_NOALPHA) && ll->containsCaret) { - overrideBackground = true; - background = vsDraw.caretLineBackground.allocated; - } - if (!overrideBackground) { - int marks = pdoc->GetMark(line); - for (int markBit = 0; (markBit < 32) && marks; markBit++) { - if ((marks & 1) && (vsDraw.markers[markBit].markType == SC_MARK_BACKGROUND) && - (vsDraw.markers[markBit].alpha == SC_ALPHA_NOALPHA)) { - background = vsDraw.markers[markBit].back.allocated; - overrideBackground = true; - } - marks >>= 1; - } - } - if (!overrideBackground) { - if (vsDraw.maskInLine) { - int marksMasked = pdoc->GetMark(line) & vsDraw.maskInLine; - if (marksMasked) { - for (int markBit = 0; (markBit < 32) && marksMasked; markBit++) { - if ((marksMasked & 1) && (vsDraw.markers[markBit].markType != SC_MARK_EMPTY) && - (vsDraw.markers[markBit].alpha == SC_ALPHA_NOALPHA)) { - overrideBackground = true; - background = vsDraw.markers[markBit].back.allocated; - } - marksMasked >>= 1; - } - } - } - } - - bool drawWhitespaceBackground = (vsDraw.viewWhitespace != wsInvisible) && - (!overrideBackground) && (vsDraw.whitespaceBackgroundSet); - - bool inIndentation = subLine == 0; // Do not handle indentation except on first subline. - int indentWidth = pdoc->IndentSize() * vsDraw.spaceWidth; - - int posLineStart = pdoc->LineStart(line); - - int startseg = ll->LineStart(subLine); - int subLineStart = ll->positions[startseg]; - int lineStart = 0; - int lineEnd = 0; - if (subLine < ll->lines) { - lineStart = ll->LineStart(subLine); - lineEnd = ll->LineStart(subLine + 1); - } - - bool drawWrapMarkEnd = false; - - if (wrapVisualFlags & SC_WRAPVISUALFLAG_END) { - if (subLine + 1 < ll->lines) { - drawWrapMarkEnd = ll->LineStart(subLine + 1) != 0; - } - } - - if (actualWrapVisualStartIndent != 0) { - - bool continuedWrapLine = false; - if (subLine < ll->lines) { - continuedWrapLine = ll->LineStart(subLine) != 0; - } - - if (continuedWrapLine) { - // draw continuation rect - PRectangle rcPlace = rcSegment; - - rcPlace.left = ll->positions[startseg] + xStart - subLineStart; - rcPlace.right = rcPlace.left + actualWrapVisualStartIndent * vsDraw.aveCharWidth; - - // default bgnd here.. - surface->FillRectangle(rcSegment, vsDraw.styles[STYLE_DEFAULT].back.allocated); - - // main line style would be below but this would be inconsistent with end markers - // also would possibly not be the style at wrap point - //int styleMain = ll->styles[lineStart]; - //surface->FillRectangle(rcPlace, vsDraw.styles[styleMain].back.allocated); - - if (wrapVisualFlags & SC_WRAPVISUALFLAG_START) { - - if (wrapVisualFlagsLocation & SC_WRAPVISUALFLAGLOC_START_BY_TEXT) - rcPlace.left = rcPlace.right - vsDraw.aveCharWidth; - else - rcPlace.right = rcPlace.left + vsDraw.aveCharWidth; - - DrawWrapMarker(surface, rcPlace, false, vsDraw.whitespaceForeground.allocated); - } - - xStart += actualWrapVisualStartIndent * vsDraw.aveCharWidth; - } - } - - int i; - - // Background drawing loop - for (i = lineStart; twoPhaseDraw && (i < lineEnd); i++) { - - int iDoc = i + posLineStart; - // If there is the end of a style run for any reason - if ((ll->styles[i] != ll->styles[i + 1]) || - i == (lineEnd - 1) || - IsControlCharacter(ll->chars[i]) || IsControlCharacter(ll->chars[i + 1]) || - ((ll->selStart != ll->selEnd) && ((iDoc + 1 == ll->selStart) || (iDoc + 1 == ll->selEnd))) || - (i == (ll->edgeColumn - 1))) { - rcSegment.left = ll->positions[startseg] + xStart - subLineStart; - rcSegment.right = ll->positions[i + 1] + xStart - subLineStart; - // Only try to draw if really visible - enhances performance by not calling environment to - // draw strings that are completely past the right side of the window. - if ((rcSegment.left <= rcLine.right) && (rcSegment.right >= rcLine.left)) { - int styleMain = ll->styles[i]; - bool inSelection = (iDoc >= ll->selStart) && (iDoc < ll->selEnd) && (ll->selStart != ll->selEnd); - bool inHotspot = (ll->hsStart != -1) && (iDoc >= ll->hsStart) && (iDoc < ll->hsEnd); - ColourAllocated textBack = TextBackground(vsDraw, overrideBackground, background, inSelection, inHotspot, styleMain, i, ll); - if (ll->chars[i] == '\t') { - // Tab display - if (drawWhitespaceBackground && - (!inIndentation || vsDraw.viewWhitespace == wsVisibleAlways)) - textBack = vsDraw.whitespaceBackground.allocated; - surface->FillRectangle(rcSegment, textBack); - } else if (IsControlCharacter(ll->chars[i])) { - // Control character display - inIndentation = false; - surface->FillRectangle(rcSegment, textBack); - } else { - // Normal text display - surface->FillRectangle(rcSegment, textBack); - if (vsDraw.viewWhitespace != wsInvisible || - (inIndentation && vsDraw.viewIndentationGuides)) { - for (int cpos = 0; cpos <= i - startseg; cpos++) { - if (ll->chars[cpos + startseg] == ' ') { - if (drawWhitespaceBackground && - (!inIndentation || vsDraw.viewWhitespace == wsVisibleAlways)) { - PRectangle rcSpace(ll->positions[cpos + startseg] + xStart, rcSegment.top, - ll->positions[cpos + startseg + 1] + xStart, rcSegment.bottom); - surface->FillRectangle(rcSpace, vsDraw.whitespaceBackground.allocated); - } - } else { - inIndentation = false; - } - } - } - } - } else if (rcSegment.left > rcLine.right) { - break; - } - startseg = i + 1; - } - } - - if (twoPhaseDraw) { - DrawEOL(surface, vsDraw, rcLine, ll, line, lineEnd, - xStart, subLine, subLineStart, overrideBackground, background, - drawWrapMarkEnd, vsDraw.whitespaceForeground.allocated); - } - - inIndentation = subLine == 0; // Do not handle indentation except on first subline. - startseg = ll->LineStart(subLine); - // Foreground drawing loop - for (i = lineStart; i < lineEnd; i++) { - - int iDoc = i + posLineStart; - // If there is the end of a style run for any reason - if ((ll->styles[i] != ll->styles[i + 1]) || - i == (lineEnd - 1) || - IsControlCharacter(ll->chars[i]) || IsControlCharacter(ll->chars[i + 1]) || - ((ll->selStart != ll->selEnd) && ((iDoc + 1 == ll->selStart) || (iDoc + 1 == ll->selEnd))) || - (i == (ll->edgeColumn - 1))) { - rcSegment.left = ll->positions[startseg] + xStart - subLineStart; - rcSegment.right = ll->positions[i + 1] + xStart - subLineStart; - // Only try to draw if really visible - enhances performance by not calling environment to - // draw strings that are completely past the right side of the window. - if ((rcSegment.left <= rcLine.right) && (rcSegment.right >= rcLine.left)) { - int styleMain = ll->styles[i]; - ColourAllocated textFore = vsDraw.styles[styleMain].fore.allocated; - Font &textFont = vsDraw.styles[styleMain].font; - //hotspot foreground - if (ll->hsStart != -1 && iDoc >= ll->hsStart && iDoc < hsEnd) { - if (vsDraw.hotspotForegroundSet) - textFore = vsDraw.hotspotForeground.allocated; - } - bool inSelection = (iDoc >= ll->selStart) && (iDoc < ll->selEnd) && (ll->selStart != ll->selEnd); - if (inSelection && (vsDraw.selforeset)) { - textFore = vsDraw.selforeground.allocated; - } - bool inHotspot = (ll->hsStart != -1) && (iDoc >= ll->hsStart) && (iDoc < ll->hsEnd); - ColourAllocated textBack = TextBackground(vsDraw, overrideBackground, background, inSelection, inHotspot, styleMain, i, ll); - if (ll->chars[i] == '\t') { - // Tab display - if (!twoPhaseDraw) { - if (drawWhitespaceBackground && - (!inIndentation || vsDraw.viewWhitespace == wsVisibleAlways)) - textBack = vsDraw.whitespaceBackground.allocated; - surface->FillRectangle(rcSegment, textBack); - } - if ((vsDraw.viewWhitespace != wsInvisible) || ((inIndentation && vsDraw.viewIndentationGuides))) { - if (vsDraw.whitespaceForegroundSet) - textFore = vsDraw.whitespaceForeground.allocated; - surface->PenColour(textFore); - } - if (inIndentation && vsDraw.viewIndentationGuides) { - for (int xIG = ll->positions[i] / indentWidth * indentWidth; xIG < ll->positions[i + 1]; xIG += indentWidth) { - if (xIG >= ll->positions[i] && xIG > 0) { - DrawIndentGuide(surface, lineVisible, vsDraw.lineHeight, xIG + xStart, rcSegment, - (ll->xHighlightGuide == xIG)); - } - } - } - if (vsDraw.viewWhitespace != wsInvisible) { - if (!inIndentation || vsDraw.viewWhitespace == wsVisibleAlways) { - PRectangle rcTab(rcSegment.left + 1, rcSegment.top + 4, - rcSegment.right - 1, rcSegment.bottom - vsDraw.maxDescent); - DrawTabArrow(surface, rcTab, rcSegment.top + vsDraw.lineHeight / 2); - } - } - } else if (IsControlCharacter(ll->chars[i])) { - // Control character display - inIndentation = false; - if (controlCharSymbol < 32) { - // Draw the character - const char *ctrlChar = ControlCharacterString(ll->chars[i]); - if (!twoPhaseDraw) { - surface->FillRectangle(rcSegment, textBack); - } - int normalCharHeight = surface->Ascent(ctrlCharsFont) - - surface->InternalLeading(ctrlCharsFont); - PRectangle rcCChar = rcSegment; - rcCChar.left = rcCChar.left + 1; - rcCChar.top = rcSegment.top + vsDraw.maxAscent - normalCharHeight; - rcCChar.bottom = rcSegment.top + vsDraw.maxAscent + 1; - PRectangle rcCentral = rcCChar; - rcCentral.top++; - rcCentral.bottom--; - surface->FillRectangle(rcCentral, textFore); - PRectangle rcChar = rcCChar; - rcChar.left++; - rcChar.right--; - surface->DrawTextClipped(rcChar, ctrlCharsFont, - rcSegment.top + vsDraw.maxAscent, ctrlChar, istrlen(ctrlChar), - textBack, textFore); - } else { - char cc[2] = { static_cast(controlCharSymbol), '\0' }; - surface->DrawTextNoClip(rcSegment, ctrlCharsFont, - rcSegment.top + vsDraw.maxAscent, - cc, 1, textBack, textFore); - } - } else { - // Normal text display - if (vsDraw.styles[styleMain].visible) { - if (twoPhaseDraw) { - surface->DrawTextTransparent(rcSegment, textFont, - rcSegment.top + vsDraw.maxAscent, ll->chars + startseg, - i - startseg + 1, textFore); - } else { - surface->DrawTextNoClip(rcSegment, textFont, - rcSegment.top + vsDraw.maxAscent, ll->chars + startseg, - i - startseg + 1, textFore, textBack); - } - } - if (vsDraw.viewWhitespace != wsInvisible || - (inIndentation && vsDraw.viewIndentationGuides)) { - for (int cpos = 0; cpos <= i - startseg; cpos++) { - if (ll->chars[cpos + startseg] == ' ') { - if (vsDraw.viewWhitespace != wsInvisible) { - if (vsDraw.whitespaceForegroundSet) - textFore = vsDraw.whitespaceForeground.allocated; - if (!inIndentation || vsDraw.viewWhitespace == wsVisibleAlways) { - int xmid = (ll->positions[cpos + startseg] + ll->positions[cpos + startseg + 1]) / 2; - if (!twoPhaseDraw && drawWhitespaceBackground && - (!inIndentation || vsDraw.viewWhitespace == wsVisibleAlways)) { - textBack = vsDraw.whitespaceBackground.allocated; - PRectangle rcSpace(ll->positions[cpos + startseg] + xStart, rcSegment.top, ll->positions[cpos + startseg + 1] + xStart, rcSegment.bottom); - surface->FillRectangle(rcSpace, textBack); - } - PRectangle rcDot(xmid + xStart - subLineStart, rcSegment.top + vsDraw.lineHeight / 2, 0, 0); - rcDot.right = rcDot.left + 1; - rcDot.bottom = rcDot.top + 1; - surface->FillRectangle(rcDot, textFore); - } - } - if (inIndentation && vsDraw.viewIndentationGuides) { - int startSpace = ll->positions[cpos + startseg]; - if (startSpace > 0 && (startSpace % indentWidth == 0)) { - DrawIndentGuide(surface, lineVisible, vsDraw.lineHeight, startSpace + xStart, rcSegment, - (ll->xHighlightGuide == ll->positions[cpos + startseg])); - } - } - } else { - inIndentation = false; - } - } - } - } - if (ll->hsStart != -1 && vsDraw.hotspotUnderline && iDoc >= ll->hsStart && iDoc < ll->hsEnd ) { - PRectangle rcUL = rcSegment; - rcUL.top = rcUL.top + vsDraw.maxAscent + 1; - rcUL.bottom = rcUL.top + 1; - if (vsDraw.hotspotForegroundSet) - surface->FillRectangle(rcUL, vsDraw.hotspotForeground.allocated); - else - surface->FillRectangle(rcUL, textFore); - } else if (vsDraw.styles[styleMain].underline) { - PRectangle rcUL = rcSegment; - rcUL.top = rcUL.top + vsDraw.maxAscent + 1; - rcUL.bottom = rcUL.top + 1; - surface->FillRectangle(rcUL, textFore); - } - } else if (rcSegment.left > rcLine.right) { - break; - } - startseg = i + 1; - } - } - - // Draw indicators - // foreach indicator... - for (int indicnum = 0, mask = 1 << pdoc->stylingBits; mask < 0x100; indicnum++) { - if (!(mask & ll->styleBitsSet)) { - mask <<= 1; - continue; - } - int startPos = -1; - // foreach style pos in line... - for (int indicPos = lineStart; indicPos <= lineEnd; indicPos++) { - // look for starts... - if (startPos < 0) { - // NOT in indicator run, looking for START - if (indicPos < lineEnd && (ll->indicators[indicPos] & mask)) - startPos = indicPos; - } - // ... or ends - if (startPos >= 0) { - // IN indicator run, looking for END - if (indicPos >= lineEnd || !(ll->indicators[indicPos] & mask)) { - // AT end of indicator run, DRAW it! - PRectangle rcIndic( - ll->positions[startPos] + xStart - subLineStart, - rcLine.top + vsDraw.maxAscent, - ll->positions[indicPos] + xStart - subLineStart, - rcLine.top + vsDraw.maxAscent + 3); - vsDraw.indicators[indicnum].Draw(surface, rcIndic, rcLine); - // RESET control var - startPos = -1; - } - } - } - mask <<= 1; - } - // End of the drawing of the current line - if (!twoPhaseDraw) { - DrawEOL(surface, vsDraw, rcLine, ll, line, lineEnd, - xStart, subLine, subLineStart, overrideBackground, background, - drawWrapMarkEnd, vsDraw.whitespaceForeground.allocated); - } - if ((vsDraw.selAlpha != SC_ALPHA_NOALPHA) && (ll->selStart >= 0) && (ll->selEnd >= 0)) { - int startPosSel = (ll->selStart < posLineStart) ? posLineStart : ll->selStart; - int endPosSel = (ll->selEnd < (lineEnd + posLineStart)) ? ll->selEnd : (lineEnd + posLineStart); - if (startPosSel < endPosSel) { - rcSegment.left = xStart + ll->positions[startPosSel - posLineStart] - subLineStart; - rcSegment.right = xStart + ll->positions[endPosSel - posLineStart] - subLineStart; - SimpleAlphaRectangle(surface, rcSegment, SelectionBackground(vsDraw), vsDraw.selAlpha); - } - } - - if (vsDraw.edgeState == EDGE_LINE) { - int edgeX = theEdge * vsDraw.spaceWidth; - rcSegment.left = edgeX + xStart; - rcSegment.right = rcSegment.left + 1; - surface->FillRectangle(rcSegment, vsDraw.edgecolour.allocated); - } - - // Draw any translucent whole line states - rcSegment.left = xStart; - rcSegment.right = rcLine.right - 1; - if (caret.active && vsDraw.showCaretLineBackground && ll->containsCaret) { - SimpleAlphaRectangle(surface, rcSegment, vsDraw.caretLineBackground.allocated, vsDraw.caretLineAlpha); - } - int marks = pdoc->GetMark(line); - for (int markBit = 0; (markBit < 32) && marks; markBit++) { - if ((marks & 1) && (vsDraw.markers[markBit].markType == SC_MARK_BACKGROUND)) { - SimpleAlphaRectangle(surface, rcSegment, vsDraw.markers[markBit].back.allocated, vsDraw.markers[markBit].alpha); - } - marks >>= 1; - } - if (vsDraw.maskInLine) { - int marksMasked = pdoc->GetMark(line) & vsDraw.maskInLine; - if (marksMasked) { - for (int markBit = 0; (markBit < 32) && marksMasked; markBit++) { - if ((marksMasked & 1) && (vsDraw.markers[markBit].markType != SC_MARK_EMPTY)) { - SimpleAlphaRectangle(surface, rcSegment, vsDraw.markers[markBit].back.allocated, vsDraw.markers[markBit].alpha); - } - marksMasked >>= 1; - } - } - } -} - -void Editor::RefreshPixMaps(Surface *surfaceWindow) { - if (!pixmapSelPattern->Initialised()) { - const int patternSize = 8; - pixmapSelPattern->InitPixMap(patternSize, patternSize, surfaceWindow, wMain.GetID()); - // This complex procedure is to reproduce the checkerboard dithered pattern used by windows - // for scroll bars and Visual Studio for its selection margin. The colour of this pattern is half - // way between the chrome colour and the chrome highlight colour making a nice transition - // between the window chrome and the content area. And it works in low colour depths. - PRectangle rcPattern(0, 0, patternSize, patternSize); - - // Initialize default colours based on the chrome colour scheme. Typically the highlight is white. - ColourAllocated colourFMFill = vs.selbar.allocated; - ColourAllocated colourFMStripes = vs.selbarlight.allocated; - - if (!(vs.selbarlight.desired == ColourDesired(0xff, 0xff, 0xff))) { - // User has chosen an unusual chrome colour scheme so just use the highlight edge colour. - // (Typically, the highlight colour is white.) - colourFMFill = vs.selbarlight.allocated; - } - - if (vs.foldmarginColourSet) { - // override default fold margin colour - colourFMFill = vs.foldmarginColour.allocated; - } - if (vs.foldmarginHighlightColourSet) { - // override default fold margin highlight colour - colourFMStripes = vs.foldmarginHighlightColour.allocated; - } - - pixmapSelPattern->FillRectangle(rcPattern, colourFMFill); - pixmapSelPattern->PenColour(colourFMStripes); - for (int stripe = 0; stripe < patternSize; stripe++) { - // Alternating 1 pixel stripes is same as checkerboard. - pixmapSelPattern->MoveTo(0, stripe * 2); - pixmapSelPattern->LineTo(patternSize, stripe * 2 - patternSize); - } - } - - if (!pixmapIndentGuide->Initialised()) { - // 1 extra pixel in height so can handle odd/even positions and so produce a continuous line - pixmapIndentGuide->InitPixMap(1, vs.lineHeight + 1, surfaceWindow, wMain.GetID()); - pixmapIndentGuideHighlight->InitPixMap(1, vs.lineHeight + 1, surfaceWindow, wMain.GetID()); - PRectangle rcIG(0, 0, 1, vs.lineHeight); - pixmapIndentGuide->FillRectangle(rcIG, vs.styles[STYLE_INDENTGUIDE].back.allocated); - pixmapIndentGuide->PenColour(vs.styles[STYLE_INDENTGUIDE].fore.allocated); - pixmapIndentGuideHighlight->FillRectangle(rcIG, vs.styles[STYLE_BRACELIGHT].back.allocated); - pixmapIndentGuideHighlight->PenColour(vs.styles[STYLE_BRACELIGHT].fore.allocated); - for (int stripe = 1; stripe < vs.lineHeight + 1; stripe += 2) { - pixmapIndentGuide->MoveTo(0, stripe); - pixmapIndentGuide->LineTo(2, stripe); - pixmapIndentGuideHighlight->MoveTo(0, stripe); - pixmapIndentGuideHighlight->LineTo(2, stripe); - } - } - - if (bufferedDraw) { - if (!pixmapLine->Initialised()) { - PRectangle rcClient = GetClientRectangle(); - pixmapLine->InitPixMap(rcClient.Width(), vs.lineHeight, - surfaceWindow, wMain.GetID()); - pixmapSelMargin->InitPixMap(vs.fixedColumnWidth, - rcClient.Height(), surfaceWindow, wMain.GetID()); - } - } -} - -void Editor::Paint(Surface *surfaceWindow, PRectangle rcArea) { - //Platform::DebugPrintf("Paint:%1d (%3d,%3d) ... (%3d,%3d)\n", - // paintingAllText, rcArea.left, rcArea.top, rcArea.right, rcArea.bottom); - - RefreshStyleData(); - RefreshPixMaps(surfaceWindow); - - PRectangle rcClient = GetClientRectangle(); - //Platform::DebugPrintf("Client: (%3d,%3d) ... (%3d,%3d) %d\n", - // rcClient.left, rcClient.top, rcClient.right, rcClient.bottom); - - surfaceWindow->SetPalette(&palette, true); - pixmapLine->SetPalette(&palette, !hasFocus); - - int screenLinePaintFirst = rcArea.top / vs.lineHeight; - // The area to be painted plus one extra line is styled. - // The extra line is to determine when a style change, such as starting a comment flows on to other lines. - int lineStyleLast = topLine + (rcArea.bottom - 1) / vs.lineHeight + 1; - //Platform::DebugPrintf("Paint lines = %d .. %d\n", topLine + screenLinePaintFirst, lineStyleLast); - int endPosPaint = pdoc->Length(); - if (lineStyleLast < cs.LinesDisplayed()) - endPosPaint = pdoc->LineStart(cs.DocFromDisplay(lineStyleLast + 1)); - - int xStart = vs.fixedColumnWidth - xOffset; - int ypos = 0; - if (!bufferedDraw) - ypos += screenLinePaintFirst * vs.lineHeight; - int yposScreen = screenLinePaintFirst * vs.lineHeight; - - // Ensure we are styled as far as we are painting. - pdoc->EnsureStyledTo(endPosPaint); - bool paintAbandonedByStyling = paintState == paintAbandoned; - if (needUpdateUI) { - NotifyUpdateUI(); - needUpdateUI = false; - RefreshStyleData(); - RefreshPixMaps(surfaceWindow); - } - - // Call priority lines wrap on a window of lines which are likely - // to rendered with the following paint (that is wrap the visible - // lines first). - int startLineToWrap = cs.DocFromDisplay(topLine) - 5; - if (startLineToWrap < 0) - startLineToWrap = -1; - if (WrapLines(false, startLineToWrap)) { - // The wrapping process has changed the height of some lines so - // abandon this paint for a complete repaint. - if (AbandonPaint()) { - return; - } - RefreshPixMaps(surfaceWindow); // In case pixmaps invalidated by scrollbar change - } - PLATFORM_ASSERT(pixmapSelPattern->Initialised()); - - PaintSelMargin(surfaceWindow, rcArea); - - PRectangle rcRightMargin = rcClient; - rcRightMargin.left = rcRightMargin.right - vs.rightMarginWidth; - if (rcArea.Intersects(rcRightMargin)) { - surfaceWindow->FillRectangle(rcRightMargin, vs.styles[STYLE_DEFAULT].back.allocated); - } - - if (paintState == paintAbandoned) { - // Either styling or NotifyUpdateUI noticed that painting is needed - // outside the current painting rectangle - //Platform::DebugPrintf("Abandoning paint\n"); - if (wrapState != eWrapNone) { - if (paintAbandonedByStyling) { - // Styling has spilled over a line end, such as occurs by starting a multiline - // comment. The width of subsequent text may have changed, so rewrap. - NeedWrapping(cs.DocFromDisplay(topLine)); - } - } - return; - } - //Platform::DebugPrintf("start display %d, offset = %d\n", pdoc->Length(), xOffset); - - // Do the painting - if (rcArea.right > vs.fixedColumnWidth) { - - Surface *surface = surfaceWindow; - if (bufferedDraw) { - surface = pixmapLine; - PLATFORM_ASSERT(pixmapLine->Initialised()); - } - surface->SetUnicodeMode(IsUnicodeMode()); - surface->SetDBCSMode(CodePage()); - - int visibleLine = topLine + screenLinePaintFirst; - - int posCaret = currentPos; - if (posDrag >= 0) - posCaret = posDrag; - int lineCaret = pdoc->LineFromPosition(posCaret); - - // Remove selection margin from drawing area so text will not be drawn - // on it in unbuffered mode. - PRectangle rcTextArea = rcClient; - rcTextArea.left = vs.fixedColumnWidth; - rcTextArea.right -= vs.rightMarginWidth; - surfaceWindow->SetClip(rcTextArea); - - // Loop on visible lines - //double durLayout = 0.0; - //double durPaint = 0.0; - //double durCopy = 0.0; - //ElapsedTime etWhole; - int lineDocPrevious = -1; // Used to avoid laying out one document line multiple times - AutoLineLayout ll(llc, 0); - SelectionLineIterator lineIterator(this); - while (visibleLine < cs.LinesDisplayed() && yposScreen < rcArea.bottom) { - - int lineDoc = cs.DocFromDisplay(visibleLine); - // Only visible lines should be handled by the code within the loop - PLATFORM_ASSERT(cs.GetVisible(lineDoc)); - int lineStartSet = cs.DisplayFromDoc(lineDoc); - int subLine = visibleLine - lineStartSet; - - // Copy this line and its styles from the document into local arrays - // and determine the x position at which each character starts. - //ElapsedTime et; - if (lineDoc != lineDocPrevious) { - ll.Set(0); - // For rectangular selection this accesses the layout cache so should be after layout returned. - lineIterator.SetAt(lineDoc); - ll.Set(RetrieveLineLayout(lineDoc)); - LayoutLine(lineDoc, surface, vs, ll, wrapWidth); - lineDocPrevious = lineDoc; - } - //durLayout += et.Duration(true); - - if (ll) { - if (selType == selStream) { - ll->selStart = SelectionStart(); - ll->selEnd = SelectionEnd(); - } else { - ll->selStart = lineIterator.startPos; - ll->selEnd = lineIterator.endPos; - } - ll->containsCaret = lineDoc == lineCaret; - if (hideSelection) { - ll->selStart = -1; - ll->selEnd = -1; - ll->containsCaret = false; - } - - GetHotSpotRange(ll->hsStart, ll->hsEnd); - - PRectangle rcLine = rcClient; - rcLine.top = ypos; - rcLine.bottom = ypos + vs.lineHeight; - - Range rangeLine(pdoc->LineStart(lineDoc), pdoc->LineStart(lineDoc + 1)); - // Highlight the current braces if any - ll->SetBracesHighlight(rangeLine, braces, static_cast(bracesMatchStyle), - highlightGuideColumn * vs.spaceWidth); - - // Draw the line - DrawLine(surface, vs, lineDoc, visibleLine, xStart, rcLine, ll, subLine); - //durPaint += et.Duration(true); - - // Restore the previous styles for the brace highlights in case layout is in cache. - ll->RestoreBracesHighlight(rangeLine, braces); - - bool expanded = cs.GetExpanded(lineDoc); - if ((foldFlags & SC_FOLDFLAG_BOX) == 0) { - // Paint the line above the fold - if ((expanded && (foldFlags & SC_FOLDFLAG_LINEBEFORE_EXPANDED)) - || - (!expanded && (foldFlags & SC_FOLDFLAG_LINEBEFORE_CONTRACTED))) { - if (pdoc->GetLevel(lineDoc) & SC_FOLDLEVELHEADERFLAG) { - PRectangle rcFoldLine = rcLine; - rcFoldLine.bottom = rcFoldLine.top + 1; - surface->FillRectangle(rcFoldLine, vs.styles[STYLE_DEFAULT].fore.allocated); - } - } - // Paint the line below the fold - if ((expanded && (foldFlags & SC_FOLDFLAG_LINEAFTER_EXPANDED)) - || - (!expanded && (foldFlags & SC_FOLDFLAG_LINEAFTER_CONTRACTED))) { - if (pdoc->GetLevel(lineDoc) & SC_FOLDLEVELHEADERFLAG) { - PRectangle rcFoldLine = rcLine; - rcFoldLine.top = rcFoldLine.bottom - 1; - surface->FillRectangle(rcFoldLine, vs.styles[STYLE_DEFAULT].fore.allocated); - } - } - } else { - int FoldLevelCurr = (pdoc->GetLevel(lineDoc) & SC_FOLDLEVELNUMBERMASK) - SC_FOLDLEVELBASE; - int FoldLevelPrev = (pdoc->GetLevel(lineDoc - 1) & SC_FOLDLEVELNUMBERMASK) - SC_FOLDLEVELBASE; - int FoldLevelFlags = (pdoc->GetLevel(lineDoc) & ~SC_FOLDLEVELNUMBERMASK) & ~(0xFFF0000); - int indentationStep = pdoc->IndentSize(); - // Draw line above fold - if ((FoldLevelPrev < FoldLevelCurr) - || - (FoldLevelFlags & SC_FOLDLEVELBOXHEADERFLAG - && - (pdoc->GetLevel(lineDoc - 1) & SC_FOLDLEVELBOXFOOTERFLAG) == 0)) { - PRectangle rcFoldLine = rcLine; - rcFoldLine.bottom = rcFoldLine.top + 1; - rcFoldLine.left += xStart + FoldLevelCurr * vs.spaceWidth * indentationStep - 1; - surface->FillRectangle(rcFoldLine, vs.styles[STYLE_DEFAULT].fore.allocated); - } - - // Line below the fold (or below a contracted fold) - if (FoldLevelFlags & SC_FOLDLEVELBOXFOOTERFLAG - || - (!expanded && (foldFlags & SC_FOLDFLAG_LINEAFTER_CONTRACTED))) { - PRectangle rcFoldLine = rcLine; - rcFoldLine.top = rcFoldLine.bottom - 1; - rcFoldLine.left += xStart + (FoldLevelCurr) * vs.spaceWidth * indentationStep - 1; - surface->FillRectangle(rcFoldLine, vs.styles[STYLE_DEFAULT].fore.allocated); - } - - PRectangle rcBoxLine = rcLine; - // Draw vertical line for every fold level - for (int i = 0; i <= FoldLevelCurr; i++) { - rcBoxLine.left = xStart + i * vs.spaceWidth * indentationStep - 1; - rcBoxLine.right = rcBoxLine.left + 1; - surface->FillRectangle(rcBoxLine, vs.styles[STYLE_DEFAULT].fore.allocated); - } - } - - // Draw the Caret - if (lineDoc == lineCaret) { - int offset = Platform::Minimum(posCaret - rangeLine.start, ll->maxLineLength); - if ((offset >= ll->LineStart(subLine)) && - ((offset < ll->LineStart(subLine + 1)) || offset == ll->numCharsInLine)) { - int xposCaret = ll->positions[offset] - ll->positions[ll->LineStart(subLine)] + xStart; - - if (actualWrapVisualStartIndent != 0) { - int lineStart = ll->LineStart(subLine); - if (lineStart != 0) // Wrapped - xposCaret += actualWrapVisualStartIndent * vs.aveCharWidth; - } - int widthOverstrikeCaret; - if (posCaret == pdoc->Length()) { // At end of document - widthOverstrikeCaret = vs.aveCharWidth; - } else if ((posCaret - rangeLine.start) >= ll->numCharsInLine) { // At end of line - widthOverstrikeCaret = vs.aveCharWidth; - } else { - widthOverstrikeCaret = ll->positions[offset + 1] - ll->positions[offset]; - } - if (widthOverstrikeCaret < 3) // Make sure its visible - widthOverstrikeCaret = 3; - if (((caret.active && caret.on) || (posDrag >= 0)) && xposCaret >= 0) { - PRectangle rcCaret = rcLine; - int caretWidthOffset = 0; - if ((offset > 0) && (vs.caretWidth > 1)) - caretWidthOffset = 1; // Move back so overlaps both character cells. - if (posDrag >= 0) { - rcCaret.left = xposCaret - caretWidthOffset; - rcCaret.right = rcCaret.left + vs.caretWidth; - } else { - if (inOverstrike) { - rcCaret.top = rcCaret.bottom - 2; - rcCaret.left = xposCaret + 1; - rcCaret.right = rcCaret.left + widthOverstrikeCaret - 1; - } else { - rcCaret.left = xposCaret - caretWidthOffset; - rcCaret.right = rcCaret.left + vs.caretWidth; - } - } - surface->FillRectangle(rcCaret, vs.caretcolour.allocated); - } - } - } - - if (bufferedDraw) { - Point from(vs.fixedColumnWidth, 0); - PRectangle rcCopyArea(vs.fixedColumnWidth, yposScreen, - rcClient.right, yposScreen + vs.lineHeight); - surfaceWindow->Copy(rcCopyArea, from, *pixmapLine); - } - //durCopy += et.Duration(true); - } - - if (!bufferedDraw) { - ypos += vs.lineHeight; - } - - yposScreen += vs.lineHeight; - visibleLine++; - //gdk_flush(); - } - ll.Set(0); - //if (durPaint < 0.00000001) - // durPaint = 0.00000001; - - // Right column limit indicator - PRectangle rcBeyondEOF = rcClient; - rcBeyondEOF.left = vs.fixedColumnWidth; - rcBeyondEOF.right = rcBeyondEOF.right; - rcBeyondEOF.top = (cs.LinesDisplayed() - topLine) * vs.lineHeight; - if (rcBeyondEOF.top < rcBeyondEOF.bottom) { - surfaceWindow->FillRectangle(rcBeyondEOF, vs.styles[STYLE_DEFAULT].back.allocated); - if (vs.edgeState == EDGE_LINE) { - int edgeX = theEdge * vs.spaceWidth; - rcBeyondEOF.left = edgeX + xStart; - rcBeyondEOF.right = rcBeyondEOF.left + 1; - surfaceWindow->FillRectangle(rcBeyondEOF, vs.edgecolour.allocated); - } - } - //Platform::DebugPrintf( - //"Layout:%9.6g Paint:%9.6g Ratio:%9.6g Copy:%9.6g Total:%9.6g\n", - //durLayout, durPaint, durLayout / durPaint, durCopy, etWhole.Duration()); - NotifyPainted(); - } -} - -// Space (3 space characters) between line numbers and text when printing. -#define lineNumberPrintSpace " " - -ColourDesired InvertedLight(ColourDesired orig) { - unsigned int r = orig.GetRed(); - unsigned int g = orig.GetGreen(); - unsigned int b = orig.GetBlue(); - unsigned int l = (r + g + b) / 3; // There is a better calculation for this that matches human eye - unsigned int il = 0xff - l; - if (l == 0) - return ColourDesired(0xff, 0xff, 0xff); - r = r * il / l; - g = g * il / l; - b = b * il / l; - return ColourDesired(Platform::Minimum(r, 0xff), Platform::Minimum(g, 0xff), Platform::Minimum(b, 0xff)); -} - -// This is mostly copied from the Paint method but with some things omitted -// such as the margin markers, line numbers, selection and caret -// Should be merged back into a combined Draw method. -long Editor::FormatRange(bool draw, RangeToFormat *pfr) { - if (!pfr) - return 0; - - AutoSurface surface(pfr->hdc, this); - if (!surface) - return 0; - AutoSurface surfaceMeasure(pfr->hdcTarget, this); - if (!surfaceMeasure) { - return 0; - } - - ViewStyle vsPrint(vs); - - // Modify the view style for printing as do not normally want any of the transient features to be printed - // Printing supports only the line number margin. - int lineNumberIndex = -1; - for (int margin = 0; margin < ViewStyle::margins; margin++) { - if ((vsPrint.ms[margin].style == SC_MARGIN_NUMBER) && (vsPrint.ms[margin].width > 0)) { - lineNumberIndex = margin; - } else { - vsPrint.ms[margin].width = 0; - } - } - vsPrint.showMarkedLines = false; - vsPrint.fixedColumnWidth = 0; - vsPrint.zoomLevel = printMagnification; - vsPrint.viewIndentationGuides = false; - // Don't show the selection when printing - vsPrint.selbackset = false; - vsPrint.selforeset = false; - vsPrint.selAlpha = SC_ALPHA_NOALPHA; - vsPrint.whitespaceBackgroundSet = false; - vsPrint.whitespaceForegroundSet = false; - vsPrint.showCaretLineBackground = false; - - // Set colours for printing according to users settings - for (int sty = 0;sty <= STYLE_MAX;sty++) { - if (printColourMode == SC_PRINT_INVERTLIGHT) { - vsPrint.styles[sty].fore.desired = InvertedLight(vsPrint.styles[sty].fore.desired); - vsPrint.styles[sty].back.desired = InvertedLight(vsPrint.styles[sty].back.desired); - } else if (printColourMode == SC_PRINT_BLACKONWHITE) { - vsPrint.styles[sty].fore.desired = ColourDesired(0, 0, 0); - vsPrint.styles[sty].back.desired = ColourDesired(0xff, 0xff, 0xff); - } else if (printColourMode == SC_PRINT_COLOURONWHITE) { - vsPrint.styles[sty].back.desired = ColourDesired(0xff, 0xff, 0xff); - } else if (printColourMode == SC_PRINT_COLOURONWHITEDEFAULTBG) { - if (sty <= STYLE_DEFAULT) { - vsPrint.styles[sty].back.desired = ColourDesired(0xff, 0xff, 0xff); - } - } - } - // White background for the line numbers - vsPrint.styles[STYLE_LINENUMBER].back.desired = ColourDesired(0xff, 0xff, 0xff); - - vsPrint.Refresh(*surfaceMeasure); - // Ensure colours are set up - vsPrint.RefreshColourPalette(palette, true); - vsPrint.RefreshColourPalette(palette, false); - // Determining width must hapen after fonts have been realised in Refresh - int lineNumberWidth = 0; - if (lineNumberIndex >= 0) { - lineNumberWidth = surfaceMeasure->WidthText(vsPrint.styles[STYLE_LINENUMBER].font, - "99999" lineNumberPrintSpace, 5 + istrlen(lineNumberPrintSpace)); - vsPrint.ms[lineNumberIndex].width = lineNumberWidth; - } - - int linePrintStart = pdoc->LineFromPosition(pfr->chrg.cpMin); - int linePrintLast = linePrintStart + (pfr->rc.bottom - pfr->rc.top) / vsPrint.lineHeight - 1; - if (linePrintLast < linePrintStart) - linePrintLast = linePrintStart; - int linePrintMax = pdoc->LineFromPosition(pfr->chrg.cpMax); - if (linePrintLast > linePrintMax) - linePrintLast = linePrintMax; - //Platform::DebugPrintf("Formatting lines=[%0d,%0d,%0d] top=%0d bottom=%0d line=%0d %0d\n", - // linePrintStart, linePrintLast, linePrintMax, pfr->rc.top, pfr->rc.bottom, vsPrint.lineHeight, - // surfaceMeasure->Height(vsPrint.styles[STYLE_LINENUMBER].font)); - int endPosPrint = pdoc->Length(); - if (linePrintLast < pdoc->LinesTotal()) - endPosPrint = pdoc->LineStart(linePrintLast + 1); - - // Ensure we are styled to where we are formatting. - pdoc->EnsureStyledTo(endPosPrint); - - int xStart = vsPrint.fixedColumnWidth + pfr->rc.left + lineNumberWidth; - int ypos = pfr->rc.top; - - int lineDoc = linePrintStart; - - int nPrintPos = pfr->chrg.cpMin; - int visibleLine = 0; - int widthPrint = pfr->rc.Width() - lineNumberWidth; - if (printWrapState == eWrapNone) - widthPrint = LineLayout::wrapWidthInfinite; - - while (lineDoc <= linePrintLast && ypos < pfr->rc.bottom) { - - // When printing, the hdc and hdcTarget may be the same, so - // changing the state of surfaceMeasure may change the underlying - // state of surface. Therefore, any cached state is discarded before - // using each surface. - surfaceMeasure->FlushCachedState(); - - // Copy this line and its styles from the document into local arrays - // and determine the x position at which each character starts. - LineLayout ll(8000); - LayoutLine(lineDoc, surfaceMeasure, vsPrint, &ll, widthPrint); - - ll.selStart = -1; - ll.selEnd = -1; - ll.containsCaret = false; - - PRectangle rcLine; - rcLine.left = pfr->rc.left + lineNumberWidth; - rcLine.top = ypos; - rcLine.right = pfr->rc.right - 1; - rcLine.bottom = ypos + vsPrint.lineHeight; - - // When document line is wrapped over multiple display lines, find where - // to start printing from to ensure a particular position is on the first - // line of the page. - if (visibleLine == 0) { - int startWithinLine = nPrintPos - pdoc->LineStart(lineDoc); - for (int iwl = 0; iwl < ll.lines - 1; iwl++) { - if (ll.LineStart(iwl) <= startWithinLine && ll.LineStart(iwl + 1) >= startWithinLine) { - visibleLine = -iwl; - } - } - - if (ll.lines > 1 && startWithinLine >= ll.LineStart(ll.lines - 1)) { - visibleLine = -(ll.lines - 1); - } - } - - if (draw && lineNumberWidth && - (ypos + vsPrint.lineHeight <= pfr->rc.bottom) && - (visibleLine >= 0)) { - char number[100]; - sprintf(number, "%d" lineNumberPrintSpace, lineDoc + 1); - PRectangle rcNumber = rcLine; - rcNumber.right = rcNumber.left + lineNumberWidth; - // Right justify - rcNumber.left -= surfaceMeasure->WidthText( - vsPrint.styles[STYLE_LINENUMBER].font, number, istrlen(number)); - surface->FlushCachedState(); - surface->DrawTextNoClip(rcNumber, vsPrint.styles[STYLE_LINENUMBER].font, - ypos + vsPrint.maxAscent, number, istrlen(number), - vsPrint.styles[STYLE_LINENUMBER].fore.allocated, - vsPrint.styles[STYLE_LINENUMBER].back.allocated); - } - - // Draw the line - surface->FlushCachedState(); - - for (int iwl = 0; iwl < ll.lines; iwl++) { - if (ypos + vsPrint.lineHeight <= pfr->rc.bottom) { - if (visibleLine >= 0) { - if (draw) { - rcLine.top = ypos; - rcLine.bottom = ypos + vsPrint.lineHeight; - DrawLine(surface, vsPrint, lineDoc, visibleLine, xStart, rcLine, &ll, iwl); - } - ypos += vsPrint.lineHeight; - } - visibleLine++; - if (iwl == ll.lines - 1) - nPrintPos = pdoc->LineStart(lineDoc + 1); - else - nPrintPos += ll.LineStart(iwl + 1) - ll.LineStart(iwl); - } - } - - ++lineDoc; - } - - return nPrintPos; -} - -int Editor::TextWidth(int style, const char *text) { - RefreshStyleData(); - AutoSurface surface(this); - if (surface) { - return surface->WidthText(vs.styles[style].font, text, istrlen(text)); - } else { - return 1; - } -} - -// Empty method is overridden on GTK+ to show / hide scrollbars -void Editor::ReconfigureScrollBars() {} - -void Editor::SetScrollBars() { - RefreshStyleData(); - - int nMax = MaxScrollPos(); - int nPage = LinesOnScreen(); - bool modified = ModifyScrollBars(nMax + nPage - 1, nPage); - if (modified) { - DwellEnd(true); - } - - // TODO: ensure always showing as many lines as possible - // May not be, if, for example, window made larger - if (topLine > MaxScrollPos()) { - SetTopLine(Platform::Clamp(topLine, 0, MaxScrollPos())); - SetVerticalScrollPos(); - Redraw(); - } - if (modified) { - if (!AbandonPaint()) - Redraw(); - } - //Platform::DebugPrintf("end max = %d page = %d\n", nMax, nPage); -} - -void Editor::ChangeSize() { - DropGraphics(); - SetScrollBars(); - if (wrapState != eWrapNone) { - PRectangle rcTextArea = GetClientRectangle(); - rcTextArea.left = vs.fixedColumnWidth; - rcTextArea.right -= vs.rightMarginWidth; - if (wrapWidth != rcTextArea.Width()) { - NeedWrapping(); - Redraw(); - } - } -} - -void Editor::AddChar(char ch) { - char s[2]; - s[0] = ch; - s[1] = '\0'; - AddCharUTF(s, 1); -} - -void Editor::AddCharUTF(char *s, unsigned int len, bool treatAsDBCS) { - bool wasSelection = currentPos != anchor; - ClearSelection(); - bool charReplaceAction = false; - if (inOverstrike && !wasSelection && !RangeContainsProtected(currentPos, currentPos + 1)) { - if (currentPos < (pdoc->Length())) { - if (!IsEOLChar(pdoc->CharAt(currentPos))) { - charReplaceAction = true; - pdoc->BeginUndoAction(); - pdoc->DelChar(currentPos); - } - } - } - if (pdoc->InsertString(currentPos, s, len)) { - SetEmptySelection(currentPos + len); - } - if (charReplaceAction) { - pdoc->EndUndoAction(); - } - EnsureCaretVisible(); - // Avoid blinking during rapid typing: - ShowCaretAtCurrentPosition(); - if (!caretSticky) { - SetLastXChosen(); - } - - if (treatAsDBCS) { - NotifyChar((static_cast(s[0]) << 8) | - static_cast(s[1])); - } else { - int byte = static_cast(s[0]); - if ((byte < 0xC0) || (1 == len)) { - // Handles UTF-8 characters between 0x01 and 0x7F and single byte - // characters when not in UTF-8 mode. - // Also treats \0 and naked trail bytes 0x80 to 0xBF as valid - // characters representing themselves. - } else { - // Unroll 1 to 3 byte UTF-8 sequences. See reference data at: - // http://www.cl.cam.ac.uk/~mgk25/unicode.html - // http://www.cl.cam.ac.uk/~mgk25/ucs/examples/UTF-8-test.txt - if (byte < 0xE0) { - int byte2 = static_cast(s[1]); - if ((byte2 & 0xC0) == 0x80) { - // Two-byte-character lead-byte followed by a trail-byte. - byte = (((byte & 0x1F) << 6) | (byte2 & 0x3F)); - } - // A two-byte-character lead-byte not followed by trail-byte - // represents itself. - } else if (byte < 0xF0) { - int byte2 = static_cast(s[1]); - int byte3 = static_cast(s[2]); - if (((byte2 & 0xC0) == 0x80) && ((byte3 & 0xC0) == 0x80)) { - // Three-byte-character lead byte followed by two trail bytes. - byte = (((byte & 0x0F) << 12) | ((byte2 & 0x3F) << 6) | - (byte3 & 0x3F)); - } - // A three-byte-character lead-byte not followed by two trail-bytes - // represents itself. - } - } - NotifyChar(byte); - } -} - -void Editor::ClearSelection() { - if (!SelectionContainsProtected()) { - int startPos = SelectionStart(); - if (selType == selStream) { - unsigned int chars = SelectionEnd() - startPos; - if (0 != chars) { - pdoc->BeginUndoAction(); - pdoc->DeleteChars(startPos, chars); - pdoc->EndUndoAction(); - } - } else { - pdoc->BeginUndoAction(); - SelectionLineIterator lineIterator(this, false); - while (lineIterator.Iterate()) { - startPos = lineIterator.startPos; - unsigned int chars = lineIterator.endPos - startPos; - if (0 != chars) { - pdoc->DeleteChars(startPos, chars); - } - } - pdoc->EndUndoAction(); - selType = selStream; - } - SetEmptySelection(startPos); - } -} - -void Editor::ClearAll() { - pdoc->BeginUndoAction(); - if (0 != pdoc->Length()) { - pdoc->DeleteChars(0, pdoc->Length()); - } - if (!pdoc->IsReadOnly()) { - cs.Clear(); - } - pdoc->EndUndoAction(); - anchor = 0; - currentPos = 0; - SetTopLine(0); - SetVerticalScrollPos(); - InvalidateStyleRedraw(); -} - -void Editor::ClearDocumentStyle() { - pdoc->StartStyling(0, '\377'); - pdoc->SetStyleFor(pdoc->Length(), 0); - cs.ShowAll(); - pdoc->ClearLevels(); -} - -void Editor::Cut() { - if (!pdoc->IsReadOnly() && !SelectionContainsProtected()) { - Copy(); - ClearSelection(); - } -} - -void Editor::PasteRectangular(int pos, const char *ptr, int len) { - if (pdoc->IsReadOnly() || SelectionContainsProtected()) { - return; - } - currentPos = pos; - int xInsert = XFromPosition(currentPos); - int line = pdoc->LineFromPosition(currentPos); - bool prevCr = false; - pdoc->BeginUndoAction(); - for (int i = 0; i < len; i++) { - if (IsEOLChar(ptr[i])) { - if ((ptr[i] == '\r') || (!prevCr)) - line++; - if (line >= pdoc->LinesTotal()) { - if (pdoc->eolMode != SC_EOL_LF) - pdoc->InsertChar(pdoc->Length(), '\r'); - if (pdoc->eolMode != SC_EOL_CR) - pdoc->InsertChar(pdoc->Length(), '\n'); - } - // Pad the end of lines with spaces if required - currentPos = PositionFromLineX(line, xInsert); - if ((XFromPosition(currentPos) < xInsert) && (i + 1 < len)) { - for (int i = 0; i < xInsert - XFromPosition(currentPos); i++) { - pdoc->InsertChar(currentPos, ' '); - currentPos++; - } - } - prevCr = ptr[i] == '\r'; - } else { - pdoc->InsertString(currentPos, ptr + i, 1); - currentPos++; - prevCr = false; - } - } - pdoc->EndUndoAction(); - SetEmptySelection(pos); -} - -bool Editor::CanPaste() { - return !pdoc->IsReadOnly() && !SelectionContainsProtected(); -} - -void Editor::Clear() { - if (currentPos == anchor) { - if (!RangeContainsProtected(currentPos, currentPos + 1)) { - DelChar(); - } - } else { - ClearSelection(); - } - SetEmptySelection(currentPos); -} - -void Editor::SelectAll() { - SetSelection(0, pdoc->Length()); - Redraw(); -} - -void Editor::Undo() { - if (pdoc->CanUndo()) { - InvalidateCaret(); - int newPos = pdoc->Undo(); - if (newPos >= 0) - SetEmptySelection(newPos); - EnsureCaretVisible(); - } -} - -void Editor::Redo() { - if (pdoc->CanRedo()) { - int newPos = pdoc->Redo(); - if (newPos >= 0) - SetEmptySelection(newPos); - EnsureCaretVisible(); - } -} - -void Editor::DelChar() { - if (!RangeContainsProtected(currentPos, currentPos + 1)) { - pdoc->DelChar(currentPos); - } - // Avoid blinking during rapid typing: - ShowCaretAtCurrentPosition(); -} - -void Editor::DelCharBack(bool allowLineStartDeletion) { - if (currentPos == anchor) { - if (!RangeContainsProtected(currentPos - 1, currentPos)) { - int lineCurrentPos = pdoc->LineFromPosition(currentPos); - if (allowLineStartDeletion || (pdoc->LineStart(lineCurrentPos) != currentPos)) { - if (pdoc->GetColumn(currentPos) <= pdoc->GetLineIndentation(lineCurrentPos) && - pdoc->GetColumn(currentPos) > 0 && pdoc->backspaceUnindents) { - pdoc->BeginUndoAction(); - int indentation = pdoc->GetLineIndentation(lineCurrentPos); - int indentationStep = pdoc->IndentSize(); - if (indentation % indentationStep == 0) { - pdoc->SetLineIndentation(lineCurrentPos, indentation - indentationStep); - } else { - pdoc->SetLineIndentation(lineCurrentPos, indentation - (indentation % indentationStep)); - } - SetEmptySelection(pdoc->GetLineIndentPosition(lineCurrentPos)); - pdoc->EndUndoAction(); - } else { - pdoc->DelCharBack(currentPos); - } - } - } - } else { - ClearSelection(); - SetEmptySelection(currentPos); - } - // Avoid blinking during rapid typing: - ShowCaretAtCurrentPosition(); -} - -void Editor::NotifyFocus(bool) {} - -void Editor::NotifyStyleToNeeded(int endStyleNeeded) { - SCNotification scn = {0}; - scn.nmhdr.code = SCN_STYLENEEDED; - scn.position = endStyleNeeded; - NotifyParent(scn); -} - -void Editor::NotifyStyleNeeded(Document*, void *, int endStyleNeeded) { - NotifyStyleToNeeded(endStyleNeeded); -} - -void Editor::NotifyChar(int ch) { - SCNotification scn = {0}; - scn.nmhdr.code = SCN_CHARADDED; - scn.ch = ch; - NotifyParent(scn); - if (recordingMacro) { - char txt[2]; - txt[0] = static_cast(ch); - txt[1] = '\0'; - NotifyMacroRecord(SCI_REPLACESEL, 0, reinterpret_cast(txt)); - } -} - -void Editor::NotifySavePoint(bool isSavePoint) { - SCNotification scn = {0}; - if (isSavePoint) { - scn.nmhdr.code = SCN_SAVEPOINTREACHED; - } else { - scn.nmhdr.code = SCN_SAVEPOINTLEFT; - } - NotifyParent(scn); -} - -void Editor::NotifyModifyAttempt() { - SCNotification scn = {0}; - scn.nmhdr.code = SCN_MODIFYATTEMPTRO; - NotifyParent(scn); -} - -void Editor::NotifyDoubleClick(Point pt, bool) { - SCNotification scn = {0}; - scn.nmhdr.code = SCN_DOUBLECLICK; - scn.line = LineFromLocation(pt); - scn.position = PositionFromLocationClose(pt); - NotifyParent(scn); -} - -void Editor::NotifyHotSpotDoubleClicked(int position, bool shift, bool ctrl, bool alt) { - SCNotification scn = {0}; - scn.nmhdr.code = SCN_HOTSPOTDOUBLECLICK; - scn.position = position; - scn.modifiers = (shift ? SCI_SHIFT : 0) | (ctrl ? SCI_CTRL : 0) | - (alt ? SCI_ALT : 0); - NotifyParent(scn); -} - -void Editor::NotifyHotSpotClicked(int position, bool shift, bool ctrl, bool alt) { - SCNotification scn = {0}; - scn.nmhdr.code = SCN_HOTSPOTCLICK; - scn.position = position; - scn.modifiers = (shift ? SCI_SHIFT : 0) | (ctrl ? SCI_CTRL : 0) | - (alt ? SCI_ALT : 0); - NotifyParent(scn); -} - -void Editor::NotifyUpdateUI() { - SCNotification scn = {0}; - scn.nmhdr.code = SCN_UPDATEUI; - NotifyParent(scn); -} - -void Editor::NotifyPainted() { - SCNotification scn = {0}; - scn.nmhdr.code = SCN_PAINTED; - NotifyParent(scn); -} - -bool Editor::NotifyMarginClick(Point pt, bool shift, bool ctrl, bool alt) { - int marginClicked = -1; - int x = 0; - for (int margin = 0; margin < ViewStyle::margins; margin++) { - if ((pt.x > x) && (pt.x < x + vs.ms[margin].width)) - marginClicked = margin; - x += vs.ms[margin].width; - } - if ((marginClicked >= 0) && vs.ms[marginClicked].sensitive) { - SCNotification scn = {0}; - scn.nmhdr.code = SCN_MARGINCLICK; - scn.modifiers = (shift ? SCI_SHIFT : 0) | (ctrl ? SCI_CTRL : 0) | - (alt ? SCI_ALT : 0); - scn.position = pdoc->LineStart(LineFromLocation(pt)); - scn.margin = marginClicked; - NotifyParent(scn); - return true; - } else { - return false; - } -} - -void Editor::NotifyNeedShown(int pos, int len) { - SCNotification scn = {0}; - scn.nmhdr.code = SCN_NEEDSHOWN; - scn.position = pos; - scn.length = len; - NotifyParent(scn); -} - -void Editor::NotifyDwelling(Point pt, bool state) { - SCNotification scn = {0}; - scn.nmhdr.code = state ? SCN_DWELLSTART : SCN_DWELLEND; - scn.position = PositionFromLocationClose(pt); - scn.x = pt.x; - scn.y = pt.y; - NotifyParent(scn); -} - -void Editor::NotifyZoom() { - SCNotification scn = {0}; - scn.nmhdr.code = SCN_ZOOM; - NotifyParent(scn); -} - -// Notifications from document -void Editor::NotifyModifyAttempt(Document*, void *) { - //Platform::DebugPrintf("** Modify Attempt\n"); - NotifyModifyAttempt(); -} - -void Editor::NotifyMove(int position) { - SCNotification scn = {0}; - scn.nmhdr.code = SCN_POSCHANGED; - scn.position = position; - NotifyParent(scn); -} - -void Editor::NotifySavePoint(Document*, void *, bool atSavePoint) { - //Platform::DebugPrintf("** Save Point %s\n", atSavePoint ? "On" : "Off"); - NotifySavePoint(atSavePoint); -} - -void Editor::CheckModificationForWrap(DocModification mh) { - if (mh.modificationType & (SC_MOD_INSERTTEXT|SC_MOD_DELETETEXT)) { - llc.Invalidate(LineLayout::llCheckTextAndStyle); - if (wrapState != eWrapNone) { - int lineDoc = pdoc->LineFromPosition(mh.position); - int lines = Platform::Maximum(0, mh.linesAdded); - NeedWrapping(lineDoc, lineDoc + lines + 1); - } - } -} - -// Move a position so it is still after the same character as before the insertion. -static inline int MovePositionForInsertion(int position, int startInsertion, int length) { - if (position > startInsertion) { - return position + length; - } - return position; -} - -// Move a position so it is still after the same character as before the deletion if that -// character is still present else after the previous surviving character. -static inline int MovePositionForDeletion(int position, int startDeletion, int length) { - if (position > startDeletion) { - int endDeletion = startDeletion + length; - if (position > endDeletion) { - return position - length; - } else { - return startDeletion; - } - } else { - return position; - } -} - -void Editor::NotifyModified(Document*, DocModification mh, void *) { - needUpdateUI = true; - if (paintState == painting) { - CheckForChangeOutsidePaint(Range(mh.position, mh.position + mh.length)); - } - if (mh.modificationType & SC_MOD_CHANGESTYLE) { - pdoc->IncrementStyleClock(); - if (paintState == notPainting) { - if (mh.position < pdoc->LineStart(topLine)) { - // Styling performed before this view - Redraw(); - } else { - InvalidateRange(mh.position, mh.position + mh.length); - } - } - llc.Invalidate(LineLayout::llCheckTextAndStyle); - } else { - // Move selection and brace highlights - if (mh.modificationType & SC_MOD_INSERTTEXT) { - currentPos = MovePositionForInsertion(currentPos, mh.position, mh.length); - anchor = MovePositionForInsertion(anchor, mh.position, mh.length); - braces[0] = MovePositionForInsertion(braces[0], mh.position, mh.length); - braces[1] = MovePositionForInsertion(braces[1], mh.position, mh.length); - } else if (mh.modificationType & SC_MOD_DELETETEXT) { - currentPos = MovePositionForDeletion(currentPos, mh.position, mh.length); - anchor = MovePositionForDeletion(anchor, mh.position, mh.length); - braces[0] = MovePositionForDeletion(braces[0], mh.position, mh.length); - braces[1] = MovePositionForDeletion(braces[1], mh.position, mh.length); - } - if (cs.LinesDisplayed() < cs.LinesInDoc()) { - // Some lines are hidden so may need shown. - // TODO: check if the modified area is hidden. - if (mh.modificationType & SC_MOD_BEFOREINSERT) { - NotifyNeedShown(mh.position, 0); - } else if (mh.modificationType & SC_MOD_BEFOREDELETE) { - NotifyNeedShown(mh.position, mh.length); - } - } - if (mh.linesAdded != 0) { - // Update contraction state for inserted and removed lines - // lineOfPos should be calculated in context of state before modification, shouldn't it - int lineOfPos = pdoc->LineFromPosition(mh.position); - if (mh.linesAdded > 0) { - cs.InsertLines(lineOfPos, mh.linesAdded); - } else { - cs.DeleteLines(lineOfPos, -mh.linesAdded); - } - } - CheckModificationForWrap(mh); - if (mh.linesAdded != 0) { - // Avoid scrolling of display if change before current display - if (mh.position < posTopLine && !CanDeferToLastStep(mh)) { - int newTop = Platform::Clamp(topLine + mh.linesAdded, 0, MaxScrollPos()); - if (newTop != topLine) { - SetTopLine(newTop); - SetVerticalScrollPos(); - } - } - - //Platform::DebugPrintf("** %x Doc Changed\n", this); - // TODO: could invalidate from mh.startModification to end of screen - //InvalidateRange(mh.position, mh.position + mh.length); - if (paintState == notPainting && !CanDeferToLastStep(mh)) { - Redraw(); - } - } else { - //Platform::DebugPrintf("** %x Line Changed %d .. %d\n", this, - // mh.position, mh.position + mh.length); - if (paintState == notPainting && mh.length && !CanEliminate(mh)) { - InvalidateRange(mh.position, mh.position + mh.length); - } - } - } - - if (mh.linesAdded != 0 && !CanDeferToLastStep(mh)) { - SetScrollBars(); - } - - if (mh.modificationType & SC_MOD_CHANGEMARKER) { - if ((paintState == notPainting) || !PaintContainsMargin()) { - if (mh.modificationType & SC_MOD_CHANGEFOLD) { - // Fold changes can affect the drawing of following lines so redraw whole margin - RedrawSelMargin(); - } else { - RedrawSelMargin(mh.line); - } - } - } - - // NOW pay the piper WRT "deferred" visual updates - if (IsLastStep(mh)) { - SetScrollBars(); - Redraw(); - } - - // If client wants to see this modification - if (mh.modificationType & modEventMask) { - if ((mh.modificationType & SC_MOD_CHANGESTYLE) == 0) { - // Real modification made to text of document. - NotifyChange(); // Send EN_CHANGE - } - - SCNotification scn = {0}; - scn.nmhdr.code = SCN_MODIFIED; - scn.position = mh.position; - scn.modificationType = mh.modificationType; - scn.text = mh.text; - scn.length = mh.length; - scn.linesAdded = mh.linesAdded; - scn.line = mh.line; - scn.foldLevelNow = mh.foldLevelNow; - scn.foldLevelPrev = mh.foldLevelPrev; - NotifyParent(scn); - } -} - -void Editor::NotifyDeleted(Document *, void *) { - /* Do nothing */ -} - -void Editor::NotifyMacroRecord(unsigned int iMessage, uptr_t wParam, sptr_t lParam) { - - // Enumerates all macroable messages - switch (iMessage) { - case SCI_CUT: - case SCI_COPY: - case SCI_PASTE: - case SCI_CLEAR: - case SCI_REPLACESEL: - case SCI_ADDTEXT: - case SCI_INSERTTEXT: - case SCI_APPENDTEXT: - case SCI_CLEARALL: - case SCI_SELECTALL: - case SCI_GOTOLINE: - case SCI_GOTOPOS: - case SCI_SEARCHANCHOR: - case SCI_SEARCHNEXT: - case SCI_SEARCHPREV: - case SCI_LINEDOWN: - case SCI_LINEDOWNEXTEND: - case SCI_PARADOWN: - case SCI_PARADOWNEXTEND: - case SCI_LINEUP: - case SCI_LINEUPEXTEND: - case SCI_PARAUP: - case SCI_PARAUPEXTEND: - case SCI_CHARLEFT: - case SCI_CHARLEFTEXTEND: - case SCI_CHARRIGHT: - case SCI_CHARRIGHTEXTEND: - case SCI_WORDLEFT: - case SCI_WORDLEFTEXTEND: - case SCI_WORDRIGHT: - case SCI_WORDRIGHTEXTEND: - case SCI_WORDPARTLEFT: - case SCI_WORDPARTLEFTEXTEND: - case SCI_WORDPARTRIGHT: - case SCI_WORDPARTRIGHTEXTEND: - case SCI_WORDLEFTEND: - case SCI_WORDLEFTENDEXTEND: - case SCI_WORDRIGHTEND: - case SCI_WORDRIGHTENDEXTEND: - case SCI_HOME: - case SCI_HOMEEXTEND: - case SCI_LINEEND: - case SCI_LINEENDEXTEND: - case SCI_HOMEWRAP: - case SCI_HOMEWRAPEXTEND: - case SCI_LINEENDWRAP: - case SCI_LINEENDWRAPEXTEND: - case SCI_DOCUMENTSTART: - case SCI_DOCUMENTSTARTEXTEND: - case SCI_DOCUMENTEND: - case SCI_DOCUMENTENDEXTEND: - case SCI_STUTTEREDPAGEUP: - case SCI_STUTTEREDPAGEUPEXTEND: - case SCI_STUTTEREDPAGEDOWN: - case SCI_STUTTEREDPAGEDOWNEXTEND: - case SCI_PAGEUP: - case SCI_PAGEUPEXTEND: - case SCI_PAGEDOWN: - case SCI_PAGEDOWNEXTEND: - case SCI_EDITTOGGLEOVERTYPE: - case SCI_CANCEL: - case SCI_DELETEBACK: - case SCI_TAB: - case SCI_BACKTAB: - case SCI_FORMFEED: - case SCI_VCHOME: - case SCI_VCHOMEEXTEND: - case SCI_VCHOMEWRAP: - case SCI_VCHOMEWRAPEXTEND: - case SCI_DELWORDLEFT: - case SCI_DELWORDRIGHT: - case SCI_DELLINELEFT: - case SCI_DELLINERIGHT: - case SCI_LINECOPY: - case SCI_LINECUT: - case SCI_LINEDELETE: - case SCI_LINETRANSPOSE: - case SCI_LINEDUPLICATE: - case SCI_LOWERCASE: - case SCI_UPPERCASE: - case SCI_LINESCROLLDOWN: - case SCI_LINESCROLLUP: - case SCI_DELETEBACKNOTLINE: - case SCI_HOMEDISPLAY: - case SCI_HOMEDISPLAYEXTEND: - case SCI_LINEENDDISPLAY: - case SCI_LINEENDDISPLAYEXTEND: - case SCI_SETSELECTIONMODE: - case SCI_LINEDOWNRECTEXTEND: - case SCI_LINEUPRECTEXTEND: - case SCI_CHARLEFTRECTEXTEND: - case SCI_CHARRIGHTRECTEXTEND: - case SCI_HOMERECTEXTEND: - case SCI_VCHOMERECTEXTEND: - case SCI_LINEENDRECTEXTEND: - case SCI_PAGEUPRECTEXTEND: - case SCI_PAGEDOWNRECTEXTEND: - case SCI_SELECTIONDUPLICATE: - break; - - // Filter out all others like display changes. Also, newlines are redundant - // with char insert messages. - case SCI_NEWLINE: - default: - // printf("Filtered out %ld of macro recording\n", iMessage); - return ; - } - - // Send notification - SCNotification scn = {0}; - scn.nmhdr.code = SCN_MACRORECORD; - scn.message = iMessage; - scn.wParam = wParam; - scn.lParam = lParam; - NotifyParent(scn); -} - -/** - * Force scroll and keep position relative to top of window. - * - * If stuttered = true and not already at first/last row, move to first/last row of window. - * If stuttered = true and already at first/last row, scroll as normal. - */ -void Editor::PageMove(int direction, selTypes sel, bool stuttered) { - int topLineNew, newPos; - - // I consider only the caretYSlop, and ignore the caretYPolicy-- is that a problem? - int currentLine = pdoc->LineFromPosition(currentPos); - int topStutterLine = topLine + caretYSlop; - int bottomStutterLine = topLine + LinesToScroll() - caretYSlop; - - if (stuttered && (direction < 0 && currentLine > topStutterLine)) { - topLineNew = topLine; - newPos = PositionFromLocation(Point(lastXChosen, vs.lineHeight * caretYSlop)); - - } else if (stuttered && (direction > 0 && currentLine < bottomStutterLine)) { - topLineNew = topLine; - newPos = PositionFromLocation(Point(lastXChosen, vs.lineHeight * (LinesToScroll() - caretYSlop))); - - } else { - Point pt = LocationFromPosition(currentPos); - - topLineNew = Platform::Clamp( - topLine + direction * LinesToScroll(), 0, MaxScrollPos()); - newPos = PositionFromLocation( - Point(lastXChosen, pt.y + direction * (vs.lineHeight * LinesToScroll()))); - } - - if (topLineNew != topLine) { - SetTopLine(topLineNew); - MovePositionTo(newPos, sel); - Redraw(); - SetVerticalScrollPos(); - } else { - MovePositionTo(newPos, sel); - } -} - -void Editor::ChangeCaseOfSelection(bool makeUpperCase) { - pdoc->BeginUndoAction(); - int startCurrent = currentPos; - int startAnchor = anchor; - if (selType == selStream) { - pdoc->ChangeCase(Range(SelectionStart(), SelectionEnd()), - makeUpperCase); - SetSelection(startCurrent, startAnchor); - } else { - SelectionLineIterator lineIterator(this, false); - while (lineIterator.Iterate()) { - pdoc->ChangeCase( - Range(lineIterator.startPos, lineIterator.endPos), - makeUpperCase); - } - // Would be nicer to keep the rectangular selection but this is complex - SetEmptySelection(startCurrent); - } - pdoc->EndUndoAction(); -} - -void Editor::LineTranspose() { - int line = pdoc->LineFromPosition(currentPos); - if (line > 0) { - int startPrev = pdoc->LineStart(line - 1); - int endPrev = pdoc->LineEnd(line - 1); - int start = pdoc->LineStart(line); - int end = pdoc->LineEnd(line); - int startNext = pdoc->LineStart(line + 1); - if (end < pdoc->Length()) { - end = startNext; - char *thisLine = CopyRange(start, end); - pdoc->DeleteChars(start, end - start); - if (pdoc->InsertString(startPrev, thisLine, end - start)) { - MovePositionTo(startPrev + end - start); - } - delete []thisLine; - } else { - // Last line so line has no line end - char *thisLine = CopyRange(start, end); - char *prevEnd = CopyRange(endPrev, start); - pdoc->DeleteChars(endPrev, end - endPrev); - pdoc->InsertString(startPrev, thisLine, end - start); - if (pdoc->InsertString(startPrev + end - start, prevEnd, start - endPrev)) { - MovePositionTo(startPrev + end - endPrev); - } - delete []thisLine; - delete []prevEnd; - } - - } -} - -void Editor::Duplicate(bool forLine) { - int start = SelectionStart(); - int end = SelectionEnd(); - if (start == end) { - forLine = true; - } - if (forLine) { - int line = pdoc->LineFromPosition(currentPos); - start = pdoc->LineStart(line); - end = pdoc->LineEnd(line); - } - char *text = CopyRange(start, end); - if (forLine) { - const char *eol = StringFromEOLMode(pdoc->eolMode); - pdoc->InsertString(end, eol); - pdoc->InsertString(end + istrlen(eol), text, end - start); - } else { - pdoc->InsertString(end, text, end - start); - } - delete []text; -} - -void Editor::CancelModes() { - moveExtendsSelection = false; -} - -void Editor::NewLine() { - ClearSelection(); - const char *eol = "\n"; - if (pdoc->eolMode == SC_EOL_CRLF) { - eol = "\r\n"; - } else if (pdoc->eolMode == SC_EOL_CR) { - eol = "\r"; - } // else SC_EOL_LF -> "\n" already set - if (pdoc->InsertString(currentPos, eol)) { - SetEmptySelection(currentPos + istrlen(eol)); - while (*eol) { - NotifyChar(*eol); - eol++; - } - } - SetLastXChosen(); - EnsureCaretVisible(); - // Avoid blinking during rapid typing: - ShowCaretAtCurrentPosition(); -} - -void Editor::CursorUpOrDown(int direction, selTypes sel) { - Point pt = LocationFromPosition(currentPos); - int posNew = PositionFromLocation( - Point(lastXChosen, pt.y + direction * vs.lineHeight)); - if (direction < 0) { - // Line wrapping may lead to a location on the same line, so - // seek back if that is the case. - // There is an equivalent case when moving down which skips - // over a line but as that does not trap the user it is fine. - Point ptNew = LocationFromPosition(posNew); - while ((posNew > 0) && (pt.y == ptNew.y)) { - posNew--; - ptNew = LocationFromPosition(posNew); - } - } - MovePositionTo(posNew, sel); -} - -void Editor::ParaUpOrDown(int direction, selTypes sel) { - int lineDoc, savedPos = currentPos; - do { - MovePositionTo(direction > 0 ? pdoc->ParaDown(currentPos) : pdoc->ParaUp(currentPos), sel); - lineDoc = pdoc->LineFromPosition(currentPos); - if (direction > 0) { - if (currentPos >= pdoc->Length() && !cs.GetVisible(lineDoc)) { - if (sel == noSel) { - MovePositionTo(pdoc->LineEndPosition(savedPos)); - } - break; - } - } - } while (!cs.GetVisible(lineDoc)); -} - -int Editor::StartEndDisplayLine(int pos, bool start) { - RefreshStyleData(); - int line = pdoc->LineFromPosition(pos); - AutoSurface surface(this); - AutoLineLayout ll(llc, RetrieveLineLayout(line)); - int posRet = INVALID_POSITION; - if (surface && ll) { - unsigned int posLineStart = pdoc->LineStart(line); - LayoutLine(line, surface, vs, ll, wrapWidth); - int posInLine = pos - posLineStart; - if (posInLine <= ll->maxLineLength) { - for (int subLine = 0; subLine < ll->lines; subLine++) { - if ((posInLine >= ll->LineStart(subLine)) && (posInLine <= ll->LineStart(subLine + 1))) { - if (start) { - posRet = ll->LineStart(subLine) + posLineStart; - } else { - if (subLine == ll->lines - 1) - posRet = ll->LineStart(subLine + 1) + posLineStart; - else - posRet = ll->LineStart(subLine + 1) + posLineStart - 1; - } - } - } - } - } - if (posRet == INVALID_POSITION) { - return pos; - } else { - return posRet; - } -} - -int Editor::KeyCommand(unsigned int iMessage) { - switch (iMessage) { - case SCI_LINEDOWN: - CursorUpOrDown(1); - break; - case SCI_LINEDOWNEXTEND: - CursorUpOrDown(1, selStream); - break; - case SCI_LINEDOWNRECTEXTEND: - CursorUpOrDown(1, selRectangle); - break; - case SCI_PARADOWN: - ParaUpOrDown(1); - break; - case SCI_PARADOWNEXTEND: - ParaUpOrDown(1, selStream); - break; - case SCI_LINESCROLLDOWN: - ScrollTo(topLine + 1); - MoveCaretInsideView(false); - break; - case SCI_LINEUP: - CursorUpOrDown(-1); - break; - case SCI_LINEUPEXTEND: - CursorUpOrDown(-1, selStream); - break; - case SCI_LINEUPRECTEXTEND: - CursorUpOrDown(-1, selRectangle); - break; - case SCI_PARAUP: - ParaUpOrDown(-1); - break; - case SCI_PARAUPEXTEND: - ParaUpOrDown(-1, selStream); - break; - case SCI_LINESCROLLUP: - ScrollTo(topLine - 1); - MoveCaretInsideView(false); - break; - case SCI_CHARLEFT: - if (SelectionEmpty() || moveExtendsSelection) { - MovePositionTo(MovePositionSoVisible(currentPos - 1, -1)); - } else { - MovePositionTo(SelectionStart()); - } - SetLastXChosen(); - break; - case SCI_CHARLEFTEXTEND: - MovePositionTo(MovePositionSoVisible(currentPos - 1, -1), selStream); - SetLastXChosen(); - break; - case SCI_CHARLEFTRECTEXTEND: - MovePositionTo(MovePositionSoVisible(currentPos - 1, -1), selRectangle); - SetLastXChosen(); - break; - case SCI_CHARRIGHT: - if (SelectionEmpty() || moveExtendsSelection) { - MovePositionTo(MovePositionSoVisible(currentPos + 1, 1)); - } else { - MovePositionTo(SelectionEnd()); - } - SetLastXChosen(); - break; - case SCI_CHARRIGHTEXTEND: - MovePositionTo(MovePositionSoVisible(currentPos + 1, 1), selStream); - SetLastXChosen(); - break; - case SCI_CHARRIGHTRECTEXTEND: - MovePositionTo(MovePositionSoVisible(currentPos + 1, 1), selRectangle); - SetLastXChosen(); - break; - case SCI_WORDLEFT: - MovePositionTo(MovePositionSoVisible(pdoc->NextWordStart(currentPos, -1), -1)); - SetLastXChosen(); - break; - case SCI_WORDLEFTEXTEND: - MovePositionTo(MovePositionSoVisible(pdoc->NextWordStart(currentPos, -1), -1), selStream); - SetLastXChosen(); - break; - case SCI_WORDRIGHT: - MovePositionTo(MovePositionSoVisible(pdoc->NextWordStart(currentPos, 1), 1)); - SetLastXChosen(); - break; - case SCI_WORDRIGHTEXTEND: - MovePositionTo(MovePositionSoVisible(pdoc->NextWordStart(currentPos, 1), 1), selStream); - SetLastXChosen(); - break; - - case SCI_WORDLEFTEND: - MovePositionTo(MovePositionSoVisible(pdoc->NextWordEnd(currentPos, -1), -1)); - SetLastXChosen(); - break; - case SCI_WORDLEFTENDEXTEND: - MovePositionTo(MovePositionSoVisible(pdoc->NextWordEnd(currentPos, -1), -1), selStream); - SetLastXChosen(); - break; - case SCI_WORDRIGHTEND: - MovePositionTo(MovePositionSoVisible(pdoc->NextWordEnd(currentPos, 1), 1)); - SetLastXChosen(); - break; - case SCI_WORDRIGHTENDEXTEND: - MovePositionTo(MovePositionSoVisible(pdoc->NextWordEnd(currentPos, 1), 1), selStream); - SetLastXChosen(); - break; - - case SCI_HOME: - MovePositionTo(pdoc->LineStart(pdoc->LineFromPosition(currentPos))); - SetLastXChosen(); - break; - case SCI_HOMEEXTEND: - MovePositionTo(pdoc->LineStart(pdoc->LineFromPosition(currentPos)), selStream); - SetLastXChosen(); - break; - case SCI_HOMERECTEXTEND: - MovePositionTo(pdoc->LineStart(pdoc->LineFromPosition(currentPos)), selRectangle); - SetLastXChosen(); - break; - case SCI_LINEEND: - MovePositionTo(pdoc->LineEndPosition(currentPos)); - SetLastXChosen(); - break; - case SCI_LINEENDEXTEND: - MovePositionTo(pdoc->LineEndPosition(currentPos), selStream); - SetLastXChosen(); - break; - case SCI_LINEENDRECTEXTEND: - MovePositionTo(pdoc->LineEndPosition(currentPos), selRectangle); - SetLastXChosen(); - break; - case SCI_HOMEWRAP: { - int homePos = MovePositionSoVisible(StartEndDisplayLine(currentPos, true), -1); - if (currentPos <= homePos) - homePos = pdoc->LineStart(pdoc->LineFromPosition(currentPos)); - MovePositionTo(homePos); - SetLastXChosen(); - } - break; - case SCI_HOMEWRAPEXTEND: { - int homePos = MovePositionSoVisible(StartEndDisplayLine(currentPos, true), -1); - if (currentPos <= homePos) - homePos = pdoc->LineStart(pdoc->LineFromPosition(currentPos)); - MovePositionTo(homePos, selStream); - SetLastXChosen(); - } - break; - case SCI_LINEENDWRAP: { - int endPos = MovePositionSoVisible(StartEndDisplayLine(currentPos, false), 1); - int realEndPos = pdoc->LineEndPosition(currentPos); - if (endPos > realEndPos // if moved past visible EOLs - || currentPos >= endPos) // if at end of display line already - endPos = realEndPos; - MovePositionTo(endPos); - SetLastXChosen(); - } - break; - case SCI_LINEENDWRAPEXTEND: { - int endPos = MovePositionSoVisible(StartEndDisplayLine(currentPos, false), 1); - int realEndPos = pdoc->LineEndPosition(currentPos); - if (endPos > realEndPos // if moved past visible EOLs - || currentPos >= endPos) // if at end of display line already - endPos = realEndPos; - MovePositionTo(endPos, selStream); - SetLastXChosen(); - } - break; - case SCI_DOCUMENTSTART: - MovePositionTo(0); - SetLastXChosen(); - break; - case SCI_DOCUMENTSTARTEXTEND: - MovePositionTo(0, selStream); - SetLastXChosen(); - break; - case SCI_DOCUMENTEND: - MovePositionTo(pdoc->Length()); - SetLastXChosen(); - break; - case SCI_DOCUMENTENDEXTEND: - MovePositionTo(pdoc->Length(), selStream); - SetLastXChosen(); - break; - case SCI_STUTTEREDPAGEUP: - PageMove(-1, noSel, true); - break; - case SCI_STUTTEREDPAGEUPEXTEND: - PageMove(-1, selStream, true); - break; - case SCI_STUTTEREDPAGEDOWN: - PageMove(1, noSel, true); - break; - case SCI_STUTTEREDPAGEDOWNEXTEND: - PageMove(1, selStream, true); - break; - case SCI_PAGEUP: - PageMove(-1); - break; - case SCI_PAGEUPEXTEND: - PageMove(-1, selStream); - break; - case SCI_PAGEUPRECTEXTEND: - PageMove(-1, selRectangle); - break; - case SCI_PAGEDOWN: - PageMove(1); - break; - case SCI_PAGEDOWNEXTEND: - PageMove(1, selStream); - break; - case SCI_PAGEDOWNRECTEXTEND: - PageMove(1, selRectangle); - break; - case SCI_EDITTOGGLEOVERTYPE: - inOverstrike = !inOverstrike; - DropCaret(); - ShowCaretAtCurrentPosition(); - NotifyUpdateUI(); - break; - case SCI_CANCEL: // Cancel any modes - handled in subclass - // Also unselect text - CancelModes(); - break; - case SCI_DELETEBACK: - DelCharBack(true); - if (!caretSticky) { - SetLastXChosen(); - } - EnsureCaretVisible(); - break; - case SCI_DELETEBACKNOTLINE: - DelCharBack(false); - if (!caretSticky) { - SetLastXChosen(); - } - EnsureCaretVisible(); - break; - case SCI_TAB: - Indent(true); - if (!caretSticky) { - SetLastXChosen(); - } - EnsureCaretVisible(); - break; - case SCI_BACKTAB: - Indent(false); - if (!caretSticky) { - SetLastXChosen(); - } - EnsureCaretVisible(); - break; - case SCI_NEWLINE: - NewLine(); - break; - case SCI_FORMFEED: - AddChar('\f'); - break; - case SCI_VCHOME: - MovePositionTo(pdoc->VCHomePosition(currentPos)); - SetLastXChosen(); - break; - case SCI_VCHOMEEXTEND: - MovePositionTo(pdoc->VCHomePosition(currentPos), selStream); - SetLastXChosen(); - break; - case SCI_VCHOMERECTEXTEND: - MovePositionTo(pdoc->VCHomePosition(currentPos), selRectangle); - SetLastXChosen(); - break; - case SCI_VCHOMEWRAP: { - int homePos = pdoc->VCHomePosition(currentPos); - int viewLineStart = MovePositionSoVisible(StartEndDisplayLine(currentPos, true), -1); - if ((viewLineStart < currentPos) && (viewLineStart > homePos)) - homePos = viewLineStart; - - MovePositionTo(homePos); - SetLastXChosen(); - } - break; - case SCI_VCHOMEWRAPEXTEND: { - int homePos = pdoc->VCHomePosition(currentPos); - int viewLineStart = MovePositionSoVisible(StartEndDisplayLine(currentPos, true), -1); - if ((viewLineStart < currentPos) && (viewLineStart > homePos)) - homePos = viewLineStart; - - MovePositionTo(homePos, selStream); - SetLastXChosen(); - } - break; - case SCI_ZOOMIN: - if (vs.zoomLevel < 20) { - vs.zoomLevel++; - InvalidateStyleRedraw(); - NotifyZoom(); - } - break; - case SCI_ZOOMOUT: - if (vs.zoomLevel > -10) { - vs.zoomLevel--; - InvalidateStyleRedraw(); - NotifyZoom(); - } - break; - case SCI_DELWORDLEFT: { - int startWord = pdoc->NextWordStart(currentPos, -1); - pdoc->DeleteChars(startWord, currentPos - startWord); - SetLastXChosen(); - } - break; - case SCI_DELWORDRIGHT: { - int endWord = pdoc->NextWordStart(currentPos, 1); - pdoc->DeleteChars(currentPos, endWord - currentPos); - } - break; - case SCI_DELLINELEFT: { - int line = pdoc->LineFromPosition(currentPos); - int start = pdoc->LineStart(line); - pdoc->DeleteChars(start, currentPos - start); - SetLastXChosen(); - } - break; - case SCI_DELLINERIGHT: { - int line = pdoc->LineFromPosition(currentPos); - int end = pdoc->LineEnd(line); - pdoc->DeleteChars(currentPos, end - currentPos); - } - break; - case SCI_LINECOPY: { - int lineStart = pdoc->LineFromPosition(SelectionStart()); - int lineEnd = pdoc->LineFromPosition(SelectionEnd()); - CopyRangeToClipboard(pdoc->LineStart(lineStart), - pdoc->LineStart(lineEnd + 1)); - } - break; - case SCI_LINECUT: { - int lineStart = pdoc->LineFromPosition(SelectionStart()); - int lineEnd = pdoc->LineFromPosition(SelectionEnd()); - int start = pdoc->LineStart(lineStart); - int end = pdoc->LineStart(lineEnd + 1); - SetSelection(start, end); - Cut(); - SetLastXChosen(); - } - break; - case SCI_LINEDELETE: { - int line = pdoc->LineFromPosition(currentPos); - int start = pdoc->LineStart(line); - int end = pdoc->LineStart(line + 1); - pdoc->DeleteChars(start, end - start); - } - break; - case SCI_LINETRANSPOSE: - LineTranspose(); - break; - case SCI_LINEDUPLICATE: - Duplicate(true); - break; - case SCI_SELECTIONDUPLICATE: - Duplicate(false); - break; - case SCI_LOWERCASE: - ChangeCaseOfSelection(false); - break; - case SCI_UPPERCASE: - ChangeCaseOfSelection(true); - break; - case SCI_WORDPARTLEFT: - MovePositionTo(MovePositionSoVisible(pdoc->WordPartLeft(currentPos), -1)); - SetLastXChosen(); - break; - case SCI_WORDPARTLEFTEXTEND: - MovePositionTo(MovePositionSoVisible(pdoc->WordPartLeft(currentPos), -1), selStream); - SetLastXChosen(); - break; - case SCI_WORDPARTRIGHT: - MovePositionTo(MovePositionSoVisible(pdoc->WordPartRight(currentPos), 1)); - SetLastXChosen(); - break; - case SCI_WORDPARTRIGHTEXTEND: - MovePositionTo(MovePositionSoVisible(pdoc->WordPartRight(currentPos), 1), selStream); - SetLastXChosen(); - break; - case SCI_HOMEDISPLAY: - MovePositionTo(MovePositionSoVisible( - StartEndDisplayLine(currentPos, true), -1)); - SetLastXChosen(); - break; - case SCI_HOMEDISPLAYEXTEND: - MovePositionTo(MovePositionSoVisible( - StartEndDisplayLine(currentPos, true), -1), selStream); - SetLastXChosen(); - break; - case SCI_LINEENDDISPLAY: - MovePositionTo(MovePositionSoVisible( - StartEndDisplayLine(currentPos, false), 1)); - SetLastXChosen(); - break; - case SCI_LINEENDDISPLAYEXTEND: - MovePositionTo(MovePositionSoVisible( - StartEndDisplayLine(currentPos, false), 1), selStream); - SetLastXChosen(); - break; - } - return 0; -} - -int Editor::KeyDefault(int, int) { - return 0; -} - -int Editor::KeyDown(int key, bool shift, bool ctrl, bool alt, bool *consumed) { - DwellEnd(false); - int modifiers = (shift ? SCI_SHIFT : 0) | (ctrl ? SCI_CTRL : 0) | - (alt ? SCI_ALT : 0); - int msg = kmap.Find(key, modifiers); - if (msg) { - if (consumed) - *consumed = true; - return WndProc(msg, 0, 0); - } else { - if (consumed) - *consumed = false; - return KeyDefault(key, modifiers); - } -} - -void Editor::SetWhitespaceVisible(int view) { - vs.viewWhitespace = static_cast(view); -} - -int Editor::GetWhitespaceVisible() { - return vs.viewWhitespace; -} - -void Editor::Indent(bool forwards) { - //Platform::DebugPrintf("INdent %d\n", forwards); - int lineOfAnchor = pdoc->LineFromPosition(anchor); - int lineCurrentPos = pdoc->LineFromPosition(currentPos); - if (lineOfAnchor == lineCurrentPos) { - if (forwards) { - pdoc->BeginUndoAction(); - ClearSelection(); - if (pdoc->GetColumn(currentPos) <= pdoc->GetColumn(pdoc->GetLineIndentPosition(lineCurrentPos)) && - pdoc->tabIndents) { - int indentation = pdoc->GetLineIndentation(lineCurrentPos); - int indentationStep = pdoc->IndentSize(); - pdoc->SetLineIndentation(lineCurrentPos, indentation + indentationStep - indentation % indentationStep); - SetEmptySelection(pdoc->GetLineIndentPosition(lineCurrentPos)); - } else { - if (pdoc->useTabs) { - pdoc->InsertChar(currentPos, '\t'); - SetEmptySelection(currentPos + 1); - } else { - int numSpaces = (pdoc->tabInChars) - - (pdoc->GetColumn(currentPos) % (pdoc->tabInChars)); - if (numSpaces < 1) - numSpaces = pdoc->tabInChars; - for (int i = 0; i < numSpaces; i++) { - pdoc->InsertChar(currentPos + i, ' '); - } - SetEmptySelection(currentPos + numSpaces); - } - } - pdoc->EndUndoAction(); - } else { - if (pdoc->GetColumn(currentPos) <= pdoc->GetLineIndentation(lineCurrentPos) && - pdoc->tabIndents) { - pdoc->BeginUndoAction(); - int indentation = pdoc->GetLineIndentation(lineCurrentPos); - int indentationStep = pdoc->IndentSize(); - pdoc->SetLineIndentation(lineCurrentPos, indentation - indentationStep); - SetEmptySelection(pdoc->GetLineIndentPosition(lineCurrentPos)); - pdoc->EndUndoAction(); - } else { - int newColumn = ((pdoc->GetColumn(currentPos) - 1) / pdoc->tabInChars) * - pdoc->tabInChars; - if (newColumn < 0) - newColumn = 0; - int newPos = currentPos; - while (pdoc->GetColumn(newPos) > newColumn) - newPos--; - SetEmptySelection(newPos); - } - } - } else { - int anchorPosOnLine = anchor - pdoc->LineStart(lineOfAnchor); - int currentPosPosOnLine = currentPos - pdoc->LineStart(lineCurrentPos); - // Multiple lines selected so indent / dedent - int lineTopSel = Platform::Minimum(lineOfAnchor, lineCurrentPos); - int lineBottomSel = Platform::Maximum(lineOfAnchor, lineCurrentPos); - if (pdoc->LineStart(lineBottomSel) == anchor || pdoc->LineStart(lineBottomSel) == currentPos) - lineBottomSel--; // If not selecting any characters on a line, do not indent - pdoc->BeginUndoAction(); - pdoc->Indent(forwards, lineBottomSel, lineTopSel); - pdoc->EndUndoAction(); - if (lineOfAnchor < lineCurrentPos) { - if (currentPosPosOnLine == 0) - SetSelection(pdoc->LineStart(lineCurrentPos), pdoc->LineStart(lineOfAnchor)); - else - SetSelection(pdoc->LineStart(lineCurrentPos + 1), pdoc->LineStart(lineOfAnchor)); - } else { - if (anchorPosOnLine == 0) - SetSelection(pdoc->LineStart(lineCurrentPos), pdoc->LineStart(lineOfAnchor)); - else - SetSelection(pdoc->LineStart(lineCurrentPos), pdoc->LineStart(lineOfAnchor + 1)); - } - } -} - -/** - * Search of a text in the document, in the given range. - * @return The position of the found text, -1 if not found. - */ -long Editor::FindText( - uptr_t wParam, ///< Search modes : @c SCFIND_MATCHCASE, @c SCFIND_WHOLEWORD, - ///< @c SCFIND_WORDSTART, @c SCFIND_REGEXP or @c SCFIND_POSIX. - sptr_t lParam) { ///< @c TextToFind structure: The text to search for in the given range. - - TextToFind *ft = reinterpret_cast(lParam); - int lengthFound = istrlen(ft->lpstrText); - int pos = pdoc->FindText(ft->chrg.cpMin, ft->chrg.cpMax, ft->lpstrText, - (wParam & SCFIND_MATCHCASE) != 0, - (wParam & SCFIND_WHOLEWORD) != 0, - (wParam & SCFIND_WORDSTART) != 0, - (wParam & SCFIND_REGEXP) != 0, - (wParam & SCFIND_POSIX) != 0, - &lengthFound); - if (pos != -1) { - ft->chrgText.cpMin = pos; - ft->chrgText.cpMax = pos + lengthFound; - } - return pos; -} - -/** - * Relocatable search support : Searches relative to current selection - * point and sets the selection to the found text range with - * each search. - */ -/** - * Anchor following searches at current selection start: This allows - * multiple incremental interactive searches to be macro recorded - * while still setting the selection to found text so the find/select - * operation is self-contained. - */ -void Editor::SearchAnchor() { - searchAnchor = SelectionStart(); -} - -/** - * Find text from current search anchor: Must call @c SearchAnchor first. - * Used for next text and previous text requests. - * @return The position of the found text, -1 if not found. - */ -long Editor::SearchText( - unsigned int iMessage, ///< Accepts both @c SCI_SEARCHNEXT and @c SCI_SEARCHPREV. - uptr_t wParam, ///< Search modes : @c SCFIND_MATCHCASE, @c SCFIND_WHOLEWORD, - ///< @c SCFIND_WORDSTART, @c SCFIND_REGEXP or @c SCFIND_POSIX. - sptr_t lParam) { ///< The text to search for. - - const char *txt = reinterpret_cast(lParam); - int pos; - int lengthFound = istrlen(txt); - if (iMessage == SCI_SEARCHNEXT) { - pos = pdoc->FindText(searchAnchor, pdoc->Length(), txt, - (wParam & SCFIND_MATCHCASE) != 0, - (wParam & SCFIND_WHOLEWORD) != 0, - (wParam & SCFIND_WORDSTART) != 0, - (wParam & SCFIND_REGEXP) != 0, - (wParam & SCFIND_POSIX) != 0, - &lengthFound); - } else { - pos = pdoc->FindText(searchAnchor, 0, txt, - (wParam & SCFIND_MATCHCASE) != 0, - (wParam & SCFIND_WHOLEWORD) != 0, - (wParam & SCFIND_WORDSTART) != 0, - (wParam & SCFIND_REGEXP) != 0, - (wParam & SCFIND_POSIX) != 0, - &lengthFound); - } - - if (pos != -1) { - SetSelection(pos, pos + lengthFound); - } - - return pos; -} - -/** - * Search for text in the target range of the document. - * @return The position of the found text, -1 if not found. - */ -long Editor::SearchInTarget(const char *text, int length) { - int lengthFound = length; - int pos = pdoc->FindText(targetStart, targetEnd, text, - (searchFlags & SCFIND_MATCHCASE) != 0, - (searchFlags & SCFIND_WHOLEWORD) != 0, - (searchFlags & SCFIND_WORDSTART) != 0, - (searchFlags & SCFIND_REGEXP) != 0, - (searchFlags & SCFIND_POSIX) != 0, - &lengthFound); - if (pos != -1) { - targetStart = pos; - targetEnd = pos + lengthFound; - } - return pos; -} - -void Editor::GoToLine(int lineNo) { - if (lineNo > pdoc->LinesTotal()) - lineNo = pdoc->LinesTotal(); - if (lineNo < 0) - lineNo = 0; - SetEmptySelection(pdoc->LineStart(lineNo)); - ShowCaretAtCurrentPosition(); - EnsureCaretVisible(); -} - -static bool Close(Point pt1, Point pt2) { - if (abs(pt1.x - pt2.x) > 3) - return false; - if (abs(pt1.y - pt2.y) > 3) - return false; - return true; -} - -char *Editor::CopyRange(int start, int end) { - char *text = 0; - if (start < end) { - int len = end - start; - text = new char[len + 1]; - if (text) { - for (int i = 0; i < len; i++) { - text[i] = pdoc->CharAt(start + i); - } - text[len] = '\0'; - } - } - return text; -} - -void Editor::CopySelectionFromRange(SelectionText *ss, int start, int end) { - ss->Set(CopyRange(start, end), end - start + 1, - pdoc->dbcsCodePage, vs.styles[STYLE_DEFAULT].characterSet, false); -} - -void Editor::CopySelectionRange(SelectionText *ss) { - if (selType == selStream) { - CopySelectionFromRange(ss, SelectionStart(), SelectionEnd()); - } else { - char *text = 0; - int size = 0; - SelectionLineIterator lineIterator(this); - while (lineIterator.Iterate()) { - size += lineIterator.endPos - lineIterator.startPos; - if (selType != selLines) { - size++; - if (pdoc->eolMode == SC_EOL_CRLF) { - size++; - } - } - } - if (size > 0) { - text = new char[size + 1]; - if (text) { - int j = 0; - lineIterator.Reset(); - while (lineIterator.Iterate()) { - for (int i = lineIterator.startPos; - i < lineIterator.endPos; - i++) { - text[j++] = pdoc->CharAt(i); - } - if (selType != selLines) { - if (pdoc->eolMode != SC_EOL_LF) { - text[j++] = '\r'; - } - if (pdoc->eolMode != SC_EOL_CR) { - text[j++] = '\n'; - } - } - } - text[size] = '\0'; - } - } - ss->Set(text, size + 1, pdoc->dbcsCodePage, - vs.styles[STYLE_DEFAULT].characterSet, selType == selRectangle); - } -} - -void Editor::CopyRangeToClipboard(int start, int end) { - start = pdoc->ClampPositionIntoDocument(start); - end = pdoc->ClampPositionIntoDocument(end); - SelectionText selectedText; - selectedText.Set(CopyRange(start, end), end - start + 1, - pdoc->dbcsCodePage, vs.styles[STYLE_DEFAULT].characterSet, false); - CopyToClipboard(selectedText); -} - -void Editor::CopyText(int length, const char *text) { - SelectionText selectedText; - selectedText.Copy(text, length + 1, - pdoc->dbcsCodePage, vs.styles[STYLE_DEFAULT].characterSet, false); - CopyToClipboard(selectedText); -} - -void Editor::SetDragPosition(int newPos) { - if (newPos >= 0) { - newPos = MovePositionOutsideChar(newPos, 1); - posDrop = newPos; - } - if (posDrag != newPos) { - caret.on = true; - SetTicking(true); - InvalidateCaret(); - posDrag = newPos; - InvalidateCaret(); - } -} - -void Editor::DisplayCursor(Window::Cursor c) { - if (cursorMode == SC_CURSORNORMAL) - wMain.SetCursor(c); - else - wMain.SetCursor(static_cast(cursorMode)); -} - -void Editor::StartDrag() { - // Always handled by subclasses - //SetMouseCapture(true); - //DisplayCursor(Window::cursorArrow); -} - -void Editor::DropAt(int position, const char *value, bool moving, bool rectangular) { - //Platform::DebugPrintf("DropAt %d\n", inDragDrop); - if (inDragDrop) - dropWentOutside = false; - - int positionWasInSelection = PositionInSelection(position); - - bool positionOnEdgeOfSelection = - (position == SelectionStart()) || (position == SelectionEnd()); - - if ((!inDragDrop) || !(0 == positionWasInSelection) || - (positionOnEdgeOfSelection && !moving)) { - - int selStart = SelectionStart(); - int selEnd = SelectionEnd(); - - pdoc->BeginUndoAction(); - - int positionAfterDeletion = position; - if (inDragDrop && moving) { - // Remove dragged out text - if (rectangular || selType == selLines) { - SelectionLineIterator lineIterator(this); - while (lineIterator.Iterate()) { - if (position >= lineIterator.startPos) { - if (position > lineIterator.endPos) { - positionAfterDeletion -= lineIterator.endPos - lineIterator.startPos; - } else { - positionAfterDeletion -= position - lineIterator.startPos; - } - } - } - } else { - if (position > selStart) { - positionAfterDeletion -= selEnd - selStart; - } - } - ClearSelection(); - } - position = positionAfterDeletion; - - if (rectangular) { - PasteRectangular(position, value, istrlen(value)); - pdoc->EndUndoAction(); - // Should try to select new rectangle but it may not be a rectangle now so just select the drop position - SetEmptySelection(position); - } else { - position = MovePositionOutsideChar(position, currentPos - position); - if (pdoc->InsertString(position, value)) { - SetSelection(position + istrlen(value), position); - } - pdoc->EndUndoAction(); - } - } else if (inDragDrop) { - SetEmptySelection(position); - } -} - -/** - * @return -1 if given position is before the selection, - * 1 if position is after the selection, - * 0 if position is inside the selection, - */ -int Editor::PositionInSelection(int pos) { - pos = MovePositionOutsideChar(pos, currentPos - pos); - if (pos < SelectionStart()) { - return -1; - } - if (pos > SelectionEnd()) { - return 1; - } - if (selType == selStream) { - return 0; - } else { - SelectionLineIterator lineIterator(this); - lineIterator.SetAt(pdoc->LineFromPosition(pos)); - if (pos < lineIterator.startPos) { - return -1; - } else if (pos > lineIterator.endPos) { - return 1; - } else { - return 0; - } - } -} - -bool Editor::PointInSelection(Point pt) { - int pos = PositionFromLocation(pt); - if (0 == PositionInSelection(pos)) { - // Probably inside, but we must make a finer test - int selStart, selEnd; - if (selType == selStream) { - selStart = SelectionStart(); - selEnd = SelectionEnd(); - } else { - SelectionLineIterator lineIterator(this); - lineIterator.SetAt(pdoc->LineFromPosition(pos)); - selStart = lineIterator.startPos; - selEnd = lineIterator.endPos; - } - if (pos == selStart) { - // see if just before selection - Point locStart = LocationFromPosition(pos); - if (pt.x < locStart.x) { - return false; - } - } - if (pos == selEnd) { - // see if just after selection - Point locEnd = LocationFromPosition(pos); - if (pt.x > locEnd.x) { - return false; - } - } - return true; - } - return false; -} - -bool Editor::PointInSelMargin(Point pt) { - // Really means: "Point in a margin" - if (vs.fixedColumnWidth > 0) { // There is a margin - PRectangle rcSelMargin = GetClientRectangle(); - rcSelMargin.right = vs.fixedColumnWidth - vs.leftMarginWidth; - return rcSelMargin.Contains(pt); - } else { - return false; - } -} - -void Editor::LineSelection(int lineCurrent_, int lineAnchor_) { - if (lineAnchor_ < lineCurrent_) { - SetSelection(pdoc->LineStart(lineCurrent_ + 1), - pdoc->LineStart(lineAnchor_)); - } else if (lineAnchor_ > lineCurrent_) { - SetSelection(pdoc->LineStart(lineCurrent_), - pdoc->LineStart(lineAnchor_ + 1)); - } else { // Same line, select it - SetSelection(pdoc->LineStart(lineAnchor_ + 1), - pdoc->LineStart(lineAnchor_)); - } -} - -void Editor::DwellEnd(bool mouseMoved) { - if (mouseMoved) - ticksToDwell = dwellDelay; - else - ticksToDwell = SC_TIME_FOREVER; - if (dwelling && (dwellDelay < SC_TIME_FOREVER)) { - dwelling = false; - NotifyDwelling(ptMouseLast, dwelling); - } -} - -void Editor::ButtonDown(Point pt, unsigned int curTime, bool shift, bool ctrl, bool alt) { - //Platform::DebugPrintf("Scintilla:ButtonDown %d %d = %d alt=%d\n", curTime, lastClickTime, curTime - lastClickTime, alt); - ptMouseLast = pt; - int newPos = PositionFromLocation(pt); - newPos = MovePositionOutsideChar(newPos, currentPos - newPos); - inDragDrop = false; - moveExtendsSelection = false; - - bool processed = NotifyMarginClick(pt, shift, ctrl, alt); - if (processed) - return; - - bool inSelMargin = PointInSelMargin(pt); - if (shift & !inSelMargin) { - SetSelection(newPos); - } - if (((curTime - lastClickTime) < Platform::DoubleClickTime()) && Close(pt, lastClick)) { - //Platform::DebugPrintf("Double click %d %d = %d\n", curTime, lastClickTime, curTime - lastClickTime); - SetMouseCapture(true); - SetEmptySelection(newPos); - bool doubleClick = false; - // Stop mouse button bounce changing selection type - if (!Platform::MouseButtonBounce() || curTime != lastClickTime) { - if (selectionType == selChar) { - selectionType = selWord; - doubleClick = true; - } else if (selectionType == selWord) { - selectionType = selLine; - } else { - selectionType = selChar; - originalAnchorPos = currentPos; - } - } - - if (selectionType == selWord) { - if (currentPos >= originalAnchorPos) { // Moved forward - SetSelection(pdoc->ExtendWordSelect(currentPos, 1), - pdoc->ExtendWordSelect(originalAnchorPos, -1)); - } else { // Moved backward - SetSelection(pdoc->ExtendWordSelect(currentPos, -1), - pdoc->ExtendWordSelect(originalAnchorPos, 1)); - } - } else if (selectionType == selLine) { - lineAnchor = LineFromLocation(pt); - SetSelection(pdoc->LineStart(lineAnchor + 1), pdoc->LineStart(lineAnchor)); - //Platform::DebugPrintf("Triple click: %d - %d\n", anchor, currentPos); - } else { - SetEmptySelection(currentPos); - } - //Platform::DebugPrintf("Double click: %d - %d\n", anchor, currentPos); - if (doubleClick) { - NotifyDoubleClick(pt, shift); - if (PositionIsHotspot(newPos)) - NotifyHotSpotDoubleClicked(newPos, shift, ctrl, alt); - } - } else { // Single click - if (inSelMargin) { - selType = selStream; - if (ctrl) { - SelectAll(); - lastClickTime = curTime; - return; - } - if (!shift) { - lineAnchor = LineFromLocation(pt); - // Single click in margin: select whole line - LineSelection(lineAnchor, lineAnchor); - SetSelection(pdoc->LineStart(lineAnchor + 1), - pdoc->LineStart(lineAnchor)); - } else { - // Single shift+click in margin: select from line anchor to clicked line - if (anchor > currentPos) - lineAnchor = pdoc->LineFromPosition(anchor - 1); - else - lineAnchor = pdoc->LineFromPosition(anchor); - int lineStart = LineFromLocation(pt); - LineSelection(lineStart, lineAnchor); - //lineAnchor = lineStart; // Keep the same anchor for ButtonMove - } - - SetDragPosition(invalidPosition); - SetMouseCapture(true); - selectionType = selLine; - } else { - if (PointIsHotspot(pt)) { - NotifyHotSpotClicked(newPos, shift, ctrl, alt); - } - if (!shift) { - inDragDrop = PointInSelection(pt) && !SelectionEmpty(); - } - if (inDragDrop) { - SetMouseCapture(false); - SetDragPosition(newPos); - CopySelectionRange(&drag); - StartDrag(); - } else { - SetDragPosition(invalidPosition); - SetMouseCapture(true); - if (!shift) { - SetEmptySelection(newPos); - } - selType = alt ? selRectangle : selStream; - selectionType = selChar; - originalAnchorPos = currentPos; - SetRectangularRange(); - } - } - } - lastClickTime = curTime; - lastXChosen = pt.x; - ShowCaretAtCurrentPosition(); -} - -bool Editor::PositionIsHotspot(int position) { - return vs.styles[pdoc->StyleAt(position) & pdoc->stylingBitsMask].hotspot; -} - -bool Editor::PointIsHotspot(Point pt) { - int pos = PositionFromLocationClose(pt); - if (pos == INVALID_POSITION) - return false; - return PositionIsHotspot(pos); -} - -void Editor::SetHotSpotRange(Point *pt) { - if (pt) { - int pos = PositionFromLocation(*pt); - - // If we don't limit this to word characters then the - // range can encompass more than the run range and then - // the underline will not be drawn properly. - int hsStart_ = pdoc->ExtendStyleRange(pos, -1, vs.hotspotSingleLine); - int hsEnd_ = pdoc->ExtendStyleRange(pos, 1, vs.hotspotSingleLine); - - // Only invalidate the range if the hotspot range has changed... - if (hsStart_ != hsStart || hsEnd_ != hsEnd) { - if (hsStart != -1) { - InvalidateRange(hsStart, hsEnd); - } - hsStart = hsStart_; - hsEnd = hsEnd_; - InvalidateRange(hsStart, hsEnd); - } - } else { - if (hsStart != -1) { - int hsStart_ = hsStart; - int hsEnd_ = hsEnd; - hsStart = -1; - hsEnd = -1; - InvalidateRange(hsStart_, hsEnd_); - } else { - hsStart = -1; - hsEnd = -1; - } - } -} - -void Editor::GetHotSpotRange(int& hsStart_, int& hsEnd_) { - hsStart_ = hsStart; - hsEnd_ = hsEnd; -} - -void Editor::ButtonMove(Point pt) { - if ((ptMouseLast.x != pt.x) || (ptMouseLast.y != pt.y)) { - DwellEnd(true); - } - ptMouseLast = pt; - //Platform::DebugPrintf("Move %d %d\n", pt.x, pt.y); - if (HaveMouseCapture()) { - - // Slow down autoscrolling/selection - autoScrollTimer.ticksToWait -= timer.tickSize; - if (autoScrollTimer.ticksToWait > 0) - return; - autoScrollTimer.ticksToWait = autoScrollDelay; - - // Adjust selection - int movePos = PositionFromLocation(pt); - movePos = MovePositionOutsideChar(movePos, currentPos - movePos); - if (posDrag >= 0) { - SetDragPosition(movePos); - } else { - if (selectionType == selChar) { - SetSelection(movePos); - } else if (selectionType == selWord) { - // Continue selecting by word - if (movePos == originalAnchorPos) { // Didn't move - // No need to do anything. Previously this case was lumped - // in with "Moved forward", but that can be harmful in this - // case: a handler for the NotifyDoubleClick re-adjusts - // the selection for a fancier definition of "word" (for - // example, in Perl it is useful to include the leading - // '$', '%' or '@' on variables for word selection). In this - // the ButtonMove() called via Tick() for auto-scrolling - // could result in the fancier word selection adjustment - // being unmade. - } else if (movePos > originalAnchorPos) { // Moved forward - SetSelection(pdoc->ExtendWordSelect(movePos, 1), - pdoc->ExtendWordSelect(originalAnchorPos, -1)); - } else { // Moved backward - SetSelection(pdoc->ExtendWordSelect(movePos, -1), - pdoc->ExtendWordSelect(originalAnchorPos, 1)); - } - } else { - // Continue selecting by line - int lineMove = LineFromLocation(pt); - LineSelection(lineMove, lineAnchor); - } - } - // While dragging to make rectangular selection, we don't want the current - // position to jump to the end of smaller or empty lines. - //xEndSelect = pt.x - vs.fixedColumnWidth + xOffset; - xEndSelect = XFromPosition(movePos); - - // Autoscroll - PRectangle rcClient = GetClientRectangle(); - if (pt.y > rcClient.bottom) { - int lineMove = cs.DisplayFromDoc(LineFromLocation(pt)); - if (lineMove < 0) { - lineMove = cs.DisplayFromDoc(pdoc->LinesTotal() - 1); - } - ScrollTo(lineMove - LinesOnScreen() + 5); - Redraw(); - } else if (pt.y < rcClient.top) { - int lineMove = cs.DisplayFromDoc(LineFromLocation(pt)); - ScrollTo(lineMove - 5); - Redraw(); - } - EnsureCaretVisible(false, false, true); - - if (hsStart != -1 && !PositionIsHotspot(movePos)) - SetHotSpotRange(NULL); - - } else { - if (vs.fixedColumnWidth > 0) { // There is a margin - if (PointInSelMargin(pt)) { - DisplayCursor(Window::cursorReverseArrow); - return; // No need to test for selection - } - } - // Display regular (drag) cursor over selection - if (PointInSelection(pt) && !SelectionEmpty()) { - DisplayCursor(Window::cursorArrow); - } else if (PointIsHotspot(pt)) { - DisplayCursor(Window::cursorHand); - SetHotSpotRange(&pt); - } else { - DisplayCursor(Window::cursorText); - SetHotSpotRange(NULL); - } - } -} - -void Editor::ButtonUp(Point pt, unsigned int curTime, bool ctrl) { - //Platform::DebugPrintf("ButtonUp %d\n", HaveMouseCapture()); - if (HaveMouseCapture()) { - if (PointInSelMargin(pt)) { - DisplayCursor(Window::cursorReverseArrow); - } else { - DisplayCursor(Window::cursorText); - SetHotSpotRange(NULL); - } - ptMouseLast = pt; - SetMouseCapture(false); - int newPos = PositionFromLocation(pt); - newPos = MovePositionOutsideChar(newPos, currentPos - newPos); - if (inDragDrop) { - int selStart = SelectionStart(); - int selEnd = SelectionEnd(); - if (selStart < selEnd) { - if (drag.len) { - if (ctrl) { - if (pdoc->InsertString(newPos, drag.s, drag.len)) { - SetSelection(newPos, newPos + drag.len); - } - } else if (newPos < selStart) { - pdoc->DeleteChars(selStart, drag.len); - if (pdoc->InsertString(newPos, drag.s, drag.len)) { - SetSelection(newPos, newPos + drag.len); - } - } else if (newPos > selEnd) { - pdoc->DeleteChars(selStart, drag.len); - newPos -= drag.len; - if (pdoc->InsertString(newPos, drag.s, drag.len)) { - SetSelection(newPos, newPos + drag.len); - } - } else { - SetEmptySelection(newPos); - } - drag.Free(); - } - selectionType = selChar; - } - } else { - if (selectionType == selChar) { - SetSelection(newPos); - } - } - SetRectangularRange(); - lastClickTime = curTime; - lastClick = pt; - lastXChosen = pt.x; - if (selType == selStream) { - SetLastXChosen(); - } - inDragDrop = false; - EnsureCaretVisible(false); - } -} - -// Called frequently to perform background UI including -// caret blinking and automatic scrolling. -void Editor::Tick() { - if (HaveMouseCapture()) { - // Auto scroll - ButtonMove(ptMouseLast); - } - if (caret.period > 0) { - timer.ticksToWait -= timer.tickSize; - if (timer.ticksToWait <= 0) { - caret.on = !caret.on; - timer.ticksToWait = caret.period; - if (caret.active) { - InvalidateCaret(); - } - } - } - if ((dwellDelay < SC_TIME_FOREVER) && - (ticksToDwell > 0) && - (!HaveMouseCapture())) { - ticksToDwell -= timer.tickSize; - if (ticksToDwell <= 0) { - dwelling = true; - NotifyDwelling(ptMouseLast, dwelling); - } - } -} - -bool Editor::Idle() { - - bool idleDone; - - bool wrappingDone = wrapState == eWrapNone; - - if (!wrappingDone) { - // Wrap lines during idle. - WrapLines(false, -1); - // No more wrapping - if (wrapStart == wrapEnd) - wrappingDone = true; - } - - // Add more idle things to do here, but make sure idleDone is - // set correctly before the function returns. returning - // false will stop calling this idle funtion until SetIdle() is - // called again. - - idleDone = wrappingDone; // && thatDone && theOtherThingDone... - - return !idleDone; -} - -void Editor::SetFocusState(bool focusState) { - hasFocus = focusState; - NotifyFocus(hasFocus); - if (hasFocus) { - ShowCaretAtCurrentPosition(); - } else { - CancelModes(); - DropCaret(); - } -} - -bool Editor::PaintContains(PRectangle rc) { - return rcPaint.Contains(rc); -} - -bool Editor::PaintContainsMargin() { - PRectangle rcSelMargin = GetClientRectangle(); - rcSelMargin.right = vs.fixedColumnWidth; - return PaintContains(rcSelMargin); -} - -void Editor::CheckForChangeOutsidePaint(Range r) { - if (paintState == painting && !paintingAllText) { - //Platform::DebugPrintf("Checking range in paint %d-%d\n", r.start, r.end); - if (!r.Valid()) - return; - - PRectangle rcRange = RectangleFromRange(r.start, r.end); - PRectangle rcText = GetTextRectangle(); - if (rcRange.top < rcText.top) { - rcRange.top = rcText.top; - } - if (rcRange.bottom > rcText.bottom) { - rcRange.bottom = rcText.bottom; - } - - if (!PaintContains(rcRange)) { - AbandonPaint(); - } - } -} - -void Editor::SetBraceHighlight(Position pos0, Position pos1, int matchStyle) { - if ((pos0 != braces[0]) || (pos1 != braces[1]) || (matchStyle != bracesMatchStyle)) { - if ((braces[0] != pos0) || (matchStyle != bracesMatchStyle)) { - CheckForChangeOutsidePaint(Range(braces[0])); - CheckForChangeOutsidePaint(Range(pos0)); - braces[0] = pos0; - } - if ((braces[1] != pos1) || (matchStyle != bracesMatchStyle)) { - CheckForChangeOutsidePaint(Range(braces[1])); - CheckForChangeOutsidePaint(Range(pos1)); - braces[1] = pos1; - } - bracesMatchStyle = matchStyle; - if (paintState == notPainting) { - Redraw(); - } - } -} - -void Editor::SetDocPointer(Document *document) { - //Platform::DebugPrintf("** %x setdoc to %x\n", pdoc, document); - pdoc->RemoveWatcher(this, 0); - pdoc->Release(); - if (document == NULL) { - pdoc = new Document(); - } else { - pdoc = document; - } - pdoc->AddRef(); - - // Ensure all positions within document - selType = selStream; - currentPos = 0; - anchor = 0; - targetStart = 0; - targetEnd = 0; - - braces[0] = invalidPosition; - braces[1] = invalidPosition; - - // Reset the contraction state to fully shown. - cs.Clear(); - cs.InsertLines(0, pdoc->LinesTotal() - 1); - llc.Deallocate(); - NeedWrapping(); - - pdoc->AddWatcher(this, 0); - SetScrollBars(); - Redraw(); -} - -/** - * Recursively expand a fold, making lines visible except where they have an unexpanded parent. - */ -void Editor::Expand(int &line, bool doExpand) { - int lineMaxSubord = pdoc->GetLastChild(line); - line++; - while (line <= lineMaxSubord) { - if (doExpand) - cs.SetVisible(line, line, true); - int level = pdoc->GetLevel(line); - if (level & SC_FOLDLEVELHEADERFLAG) { - if (doExpand && cs.GetExpanded(line)) { - Expand(line, true); - } else { - Expand(line, false); - } - } else { - line++; - } - } -} - -void Editor::ToggleContraction(int line) { - if (line >= 0) { - if ((pdoc->GetLevel(line) & SC_FOLDLEVELHEADERFLAG) == 0) { - line = pdoc->GetFoldParent(line); - if (line < 0) - return; - } - - if (cs.GetExpanded(line)) { - int lineMaxSubord = pdoc->GetLastChild(line); - cs.SetExpanded(line, 0); - if (lineMaxSubord > line) { - cs.SetVisible(line + 1, lineMaxSubord, false); - - int lineCurrent = pdoc->LineFromPosition(currentPos); - if (lineCurrent > line && lineCurrent <= lineMaxSubord) { - // This does not re-expand the fold - EnsureCaretVisible(); - } - - SetScrollBars(); - Redraw(); - } - - } else { - if (!(cs.GetVisible(line))) { - EnsureLineVisible(line, false); - GoToLine(line); - } - cs.SetExpanded(line, 1); - Expand(line, true); - SetScrollBars(); - Redraw(); - } - } -} - -/** - * Recurse up from this line to find any folds that prevent this line from being visible - * and unfold them all. - */ -void Editor::EnsureLineVisible(int lineDoc, bool enforcePolicy) { - - // In case in need of wrapping to ensure DisplayFromDoc works. - WrapLines(true, -1); - - if (!cs.GetVisible(lineDoc)) { - int lineParent = pdoc->GetFoldParent(lineDoc); - if (lineParent >= 0) { - if (lineDoc != lineParent) - EnsureLineVisible(lineParent, enforcePolicy); - if (!cs.GetExpanded(lineParent)) { - cs.SetExpanded(lineParent, 1); - Expand(lineParent, true); - } - } - SetScrollBars(); - Redraw(); - } - if (enforcePolicy) { - int lineDisplay = cs.DisplayFromDoc(lineDoc); - if (visiblePolicy & VISIBLE_SLOP) { - if ((topLine > lineDisplay) || ((visiblePolicy & VISIBLE_STRICT) && (topLine + visibleSlop > lineDisplay))) { - SetTopLine(Platform::Clamp(lineDisplay - visibleSlop, 0, MaxScrollPos())); - SetVerticalScrollPos(); - Redraw(); - } else if ((lineDisplay > topLine + LinesOnScreen() - 1) || - ((visiblePolicy & VISIBLE_STRICT) && (lineDisplay > topLine + LinesOnScreen() - 1 - visibleSlop))) { - SetTopLine(Platform::Clamp(lineDisplay - LinesOnScreen() + 1 + visibleSlop, 0, MaxScrollPos())); - SetVerticalScrollPos(); - Redraw(); - } - } else { - if ((topLine > lineDisplay) || (lineDisplay > topLine + LinesOnScreen() - 1) || (visiblePolicy & VISIBLE_STRICT)) { - SetTopLine(Platform::Clamp(lineDisplay - LinesOnScreen() / 2 + 1, 0, MaxScrollPos())); - SetVerticalScrollPos(); - Redraw(); - } - } - } -} - -int Editor::ReplaceTarget(bool replacePatterns, const char *text, int length) { - pdoc->BeginUndoAction(); - if (length == -1) - length = istrlen(text); - if (replacePatterns) { - text = pdoc->SubstituteByPosition(text, &length); - if (!text) - return 0; - } - if (targetStart != targetEnd) - pdoc->DeleteChars(targetStart, targetEnd - targetStart); - targetEnd = targetStart; - pdoc->InsertString(targetStart, text, length); - targetEnd = targetStart + length; - pdoc->EndUndoAction(); - return length; -} - -bool Editor::IsUnicodeMode() const { - return pdoc && (SC_CP_UTF8 == pdoc->dbcsCodePage); -} - -int Editor::CodePage() const { - if (pdoc) - return pdoc->dbcsCodePage; - else - return 0; -} - -int Editor::WrapCount(int line) { - AutoSurface surface(this); - AutoLineLayout ll(llc, RetrieveLineLayout(line)); - - if (surface && ll) { - LayoutLine(line, surface, vs, ll, wrapWidth); - return ll->lines; - } else { - return 1; - } -} - -static bool ValidMargin(unsigned long wParam) { - return wParam < ViewStyle::margins; -} - -static char *CharPtrFromSPtr(sptr_t lParam) { - return reinterpret_cast(lParam); -} - -sptr_t Editor::WndProc(unsigned int iMessage, uptr_t wParam, sptr_t lParam) { - //Platform::DebugPrintf("S start wnd proc %d %d %d\n",iMessage, wParam, lParam); - - // Optional macro recording hook - if (recordingMacro) - NotifyMacroRecord(iMessage, wParam, lParam); - - switch (iMessage) { - - case SCI_GETTEXT: { - if (lParam == 0) - return pdoc->Length() + 1; - if (wParam == 0) - return 0; - char *ptr = CharPtrFromSPtr(lParam); - unsigned int iChar = 0; - for (; iChar < wParam - 1; iChar++) - ptr[iChar] = pdoc->CharAt(iChar); - ptr[iChar] = '\0'; - return iChar; - } - - case SCI_SETTEXT: { - if (lParam == 0) - return 0; - pdoc->BeginUndoAction(); - pdoc->DeleteChars(0, pdoc->Length()); - SetEmptySelection(0); - pdoc->InsertString(0, CharPtrFromSPtr(lParam)); - pdoc->EndUndoAction(); - return 1; - } - - case SCI_GETTEXTLENGTH: - return pdoc->Length(); - - case SCI_CUT: - Cut(); - SetLastXChosen(); - break; - - case SCI_COPY: - Copy(); - break; - - case SCI_COPYRANGE: - CopyRangeToClipboard(wParam, lParam); - break; - - case SCI_COPYTEXT: - CopyText(wParam, CharPtrFromSPtr(lParam)); - break; - - case SCI_PASTE: - Paste(); - if (!caretSticky) { - SetLastXChosen(); - } - EnsureCaretVisible(); - break; - - case SCI_CLEAR: - Clear(); - SetLastXChosen(); - EnsureCaretVisible(); - break; - - case SCI_UNDO: - Undo(); - SetLastXChosen(); - break; - - case SCI_CANUNDO: - return (pdoc->CanUndo() && !pdoc->IsReadOnly()) ? 1 : 0; - - case SCI_EMPTYUNDOBUFFER: - pdoc->DeleteUndoHistory(); - return 0; - - case SCI_GETFIRSTVISIBLELINE: - return topLine; - - case SCI_GETLINE: { // Risk of overwriting the end of the buffer - int lineStart = pdoc->LineStart(wParam); - int lineEnd = pdoc->LineStart(wParam + 1); - if (lParam == 0) { - return lineEnd - lineStart; - } - char *ptr = CharPtrFromSPtr(lParam); - int iPlace = 0; - for (int iChar = lineStart; iChar < lineEnd; iChar++) { - ptr[iPlace++] = pdoc->CharAt(iChar); - } - return iPlace; - } - - case SCI_GETLINECOUNT: - if (pdoc->LinesTotal() == 0) - return 1; - else - return pdoc->LinesTotal(); - - case SCI_GETMODIFY: - return !pdoc->IsSavePoint(); - - case SCI_SETSEL: { - int nStart = static_cast(wParam); - int nEnd = static_cast(lParam); - if (nEnd < 0) - nEnd = pdoc->Length(); - if (nStart < 0) - nStart = nEnd; // Remove selection - selType = selStream; - SetSelection(nEnd, nStart); - EnsureCaretVisible(); - } - break; - - case SCI_GETSELTEXT: { - if (lParam == 0) { - if (selType == selStream) { - return 1 + SelectionEnd() - SelectionStart(); - } else { - // TODO: why is selLines handled the slow way? - int size = 0; - int extraCharsPerLine = 0; - if (selType != selLines) - extraCharsPerLine = (pdoc->eolMode == SC_EOL_CRLF) ? 2 : 1; - SelectionLineIterator lineIterator(this); - while (lineIterator.Iterate()) { - size += lineIterator.endPos + extraCharsPerLine - lineIterator.startPos; - } - - return 1 + size; - } - } - SelectionText selectedText; - CopySelectionRange(&selectedText); - char *ptr = CharPtrFromSPtr(lParam); - int iChar = 0; - if (selectedText.len) { - for (; iChar < selectedText.len; iChar++) - ptr[iChar] = selectedText.s[iChar]; - } else { - ptr[0] = '\0'; - } - return iChar; - } - - case SCI_LINEFROMPOSITION: - if (static_cast(wParam) < 0) - return 0; - return pdoc->LineFromPosition(wParam); - - case SCI_POSITIONFROMLINE: - if (static_cast(wParam) < 0) - wParam = pdoc->LineFromPosition(SelectionStart()); - if (wParam == 0) - return 0; // Even if there is no text, there is a first line that starts at 0 - if (static_cast(wParam) > pdoc->LinesTotal()) - return -1; - //if (wParam > pdoc->LineFromPosition(pdoc->Length())) // Useful test, anyway... - // return -1; - return pdoc->LineStart(wParam); - - // Replacement of the old Scintilla interpretation of EM_LINELENGTH - case SCI_LINELENGTH: - if ((static_cast(wParam) < 0) || - (static_cast(wParam) > pdoc->LineFromPosition(pdoc->Length()))) - return 0; - return pdoc->LineStart(wParam + 1) - pdoc->LineStart(wParam); - - case SCI_REPLACESEL: { - if (lParam == 0) - return 0; - pdoc->BeginUndoAction(); - ClearSelection(); - char *replacement = CharPtrFromSPtr(lParam); - pdoc->InsertString(currentPos, replacement); - pdoc->EndUndoAction(); - SetEmptySelection(currentPos + istrlen(replacement)); - EnsureCaretVisible(); - } - break; - - case SCI_SETTARGETSTART: - targetStart = wParam; - break; - - case SCI_GETTARGETSTART: - return targetStart; - - case SCI_SETTARGETEND: - targetEnd = wParam; - break; - - case SCI_GETTARGETEND: - return targetEnd; - - case SCI_TARGETFROMSELECTION: - if (currentPos < anchor) { - targetStart = currentPos; - targetEnd = anchor; - } else { - targetStart = anchor; - targetEnd = currentPos; - } - break; - - case SCI_REPLACETARGET: - PLATFORM_ASSERT(lParam); - return ReplaceTarget(false, CharPtrFromSPtr(lParam), wParam); - - case SCI_REPLACETARGETRE: - PLATFORM_ASSERT(lParam); - return ReplaceTarget(true, CharPtrFromSPtr(lParam), wParam); - - case SCI_SEARCHINTARGET: - PLATFORM_ASSERT(lParam); - return SearchInTarget(CharPtrFromSPtr(lParam), wParam); - - case SCI_SETSEARCHFLAGS: - searchFlags = wParam; - break; - - case SCI_GETSEARCHFLAGS: - return searchFlags; - - case SCI_POSITIONBEFORE: - return pdoc->MovePositionOutsideChar(wParam-1, -1, true); - - case SCI_POSITIONAFTER: - return pdoc->MovePositionOutsideChar(wParam+1, 1, true); - - case SCI_LINESCROLL: - ScrollTo(topLine + lParam); - HorizontalScrollTo(xOffset + wParam * vs.spaceWidth); - return 1; - - case SCI_SETXOFFSET: - xOffset = wParam; - SetHorizontalScrollPos(); - Redraw(); - break; - - case SCI_GETXOFFSET: - return xOffset; - - case SCI_CHOOSECARETX: - SetLastXChosen(); - break; - - case SCI_SCROLLCARET: - EnsureCaretVisible(); - break; - - case SCI_SETREADONLY: - pdoc->SetReadOnly(wParam != 0); - return 1; - - case SCI_GETREADONLY: - return pdoc->IsReadOnly(); - - case SCI_CANPASTE: - return CanPaste(); - - case SCI_POINTXFROMPOSITION: - if (lParam < 0) { - return 0; - } else { - Point pt = LocationFromPosition(lParam); - return pt.x; - } - - case SCI_POINTYFROMPOSITION: - if (lParam < 0) { - return 0; - } else { - Point pt = LocationFromPosition(lParam); - return pt.y; - } - - case SCI_FINDTEXT: - return FindText(wParam, lParam); - - case SCI_GETTEXTRANGE: { - if (lParam == 0) - return 0; - TextRange *tr = reinterpret_cast(lParam); - int cpMax = tr->chrg.cpMax; - if (cpMax == -1) - cpMax = pdoc->Length(); - PLATFORM_ASSERT(cpMax <= pdoc->Length()); - int len = cpMax - tr->chrg.cpMin; // No -1 as cpMin and cpMax are referring to inter character positions - pdoc->GetCharRange(tr->lpstrText, tr->chrg.cpMin, len); - // Spec says copied text is terminated with a NUL - tr->lpstrText[len] = '\0'; - return len; // Not including NUL - } - - case SCI_HIDESELECTION: - hideSelection = wParam != 0; - Redraw(); - break; - - case SCI_FORMATRANGE: - return FormatRange(wParam != 0, reinterpret_cast(lParam)); - - case SCI_GETMARGINLEFT: - return vs.leftMarginWidth; - - case SCI_GETMARGINRIGHT: - return vs.rightMarginWidth; - - case SCI_SETMARGINLEFT: - vs.leftMarginWidth = lParam; - InvalidateStyleRedraw(); - break; - - case SCI_SETMARGINRIGHT: - vs.rightMarginWidth = lParam; - InvalidateStyleRedraw(); - break; - - // Control specific mesages - - case SCI_ADDTEXT: { - if (lParam == 0) - return 0; - pdoc->InsertString(CurrentPosition(), CharPtrFromSPtr(lParam), wParam); - SetEmptySelection(currentPos + wParam); - return 0; - } - - case SCI_ADDSTYLEDTEXT: { - if (lParam == 0) - return 0; - pdoc->InsertStyledString(CurrentPosition() * 2, CharPtrFromSPtr(lParam), wParam); - SetEmptySelection(currentPos + wParam / 2); - return 0; - } - - case SCI_INSERTTEXT: { - if (lParam == 0) - return 0; - int insertPos = wParam; - if (static_cast(wParam) == -1) - insertPos = CurrentPosition(); - int newCurrent = CurrentPosition(); - char *sz = CharPtrFromSPtr(lParam); - pdoc->InsertString(insertPos, sz); - if (newCurrent > insertPos) - newCurrent += istrlen(sz); - SetEmptySelection(newCurrent); - return 0; - } - - case SCI_APPENDTEXT: - pdoc->InsertString(pdoc->Length(), CharPtrFromSPtr(lParam), wParam); - return 0; - - case SCI_CLEARALL: - ClearAll(); - return 0; - - case SCI_CLEARDOCUMENTSTYLE: - ClearDocumentStyle(); - return 0; - - case SCI_SETUNDOCOLLECTION: - pdoc->SetUndoCollection(wParam != 0); - return 0; - - case SCI_GETUNDOCOLLECTION: - return pdoc->IsCollectingUndo(); - - case SCI_BEGINUNDOACTION: - pdoc->BeginUndoAction(); - return 0; - - case SCI_ENDUNDOACTION: - pdoc->EndUndoAction(); - return 0; - - case SCI_GETCARETPERIOD: - return caret.period; - - case SCI_SETCARETPERIOD: - caret.period = wParam; - break; - - case SCI_SETWORDCHARS: { - pdoc->SetDefaultCharClasses(false); - if (lParam == 0) - return 0; - pdoc->SetCharClasses(reinterpret_cast(lParam), CharClassify::ccWord); - } - break; - - case SCI_SETWHITESPACECHARS: { - if (lParam == 0) - return 0; - pdoc->SetCharClasses(reinterpret_cast(lParam), CharClassify::ccSpace); - } - break; - - case SCI_SETCHARSDEFAULT: - pdoc->SetDefaultCharClasses(true); - break; - - case SCI_GETLENGTH: - return pdoc->Length(); - - case SCI_ALLOCATE: - pdoc->Allocate(wParam); - break; - - case SCI_GETCHARAT: - return pdoc->CharAt(wParam); - - case SCI_SETCURRENTPOS: - SetSelection(wParam, anchor); - break; - - case SCI_GETCURRENTPOS: - return currentPos; - - case SCI_SETANCHOR: - SetSelection(currentPos, wParam); - break; - - case SCI_GETANCHOR: - return anchor; - - case SCI_SETSELECTIONSTART: - SetSelection(Platform::Maximum(currentPos, wParam), wParam); - break; - - case SCI_GETSELECTIONSTART: - return Platform::Minimum(anchor, currentPos); - - case SCI_SETSELECTIONEND: - SetSelection(wParam, Platform::Minimum(anchor, wParam)); - break; - - case SCI_GETSELECTIONEND: - return Platform::Maximum(anchor, currentPos); - - case SCI_SETPRINTMAGNIFICATION: - printMagnification = wParam; - break; - - case SCI_GETPRINTMAGNIFICATION: - return printMagnification; - - case SCI_SETPRINTCOLOURMODE: - printColourMode = wParam; - break; - - case SCI_GETPRINTCOLOURMODE: - return printColourMode; - - case SCI_SETPRINTWRAPMODE: - printWrapState = (wParam == SC_WRAP_WORD) ? eWrapWord : eWrapNone; - break; - - case SCI_GETPRINTWRAPMODE: - return printWrapState; - - case SCI_GETSTYLEAT: - if (static_cast(wParam) >= pdoc->Length()) - return 0; - else - return pdoc->StyleAt(wParam); - - case SCI_REDO: - Redo(); - break; - - case SCI_SELECTALL: - SelectAll(); - break; - - case SCI_SETSAVEPOINT: - pdoc->SetSavePoint(); - break; - - case SCI_GETSTYLEDTEXT: { - if (lParam == 0) - return 0; - TextRange *tr = reinterpret_cast(lParam); - int iPlace = 0; - for (int iChar = tr->chrg.cpMin; iChar < tr->chrg.cpMax; iChar++) { - tr->lpstrText[iPlace++] = pdoc->CharAt(iChar); - tr->lpstrText[iPlace++] = pdoc->StyleAt(iChar); - } - tr->lpstrText[iPlace] = '\0'; - tr->lpstrText[iPlace + 1] = '\0'; - return iPlace; - } - - case SCI_CANREDO: - return (pdoc->CanRedo() && !pdoc->IsReadOnly()) ? 1 : 0; - - case SCI_MARKERLINEFROMHANDLE: - return pdoc->LineFromHandle(wParam); - - case SCI_MARKERDELETEHANDLE: - pdoc->DeleteMarkFromHandle(wParam); - break; - - case SCI_GETVIEWWS: - return vs.viewWhitespace; - - case SCI_SETVIEWWS: - vs.viewWhitespace = static_cast(wParam); - Redraw(); - break; - - case SCI_POSITIONFROMPOINT: - return PositionFromLocation(Point(wParam, lParam)); - - case SCI_POSITIONFROMPOINTCLOSE: - return PositionFromLocationClose(Point(wParam, lParam)); - - case SCI_GOTOLINE: - GoToLine(wParam); - break; - - case SCI_GOTOPOS: - SetEmptySelection(wParam); - EnsureCaretVisible(); - Redraw(); - break; - - case SCI_GETCURLINE: { - int lineCurrentPos = pdoc->LineFromPosition(currentPos); - int lineStart = pdoc->LineStart(lineCurrentPos); - unsigned int lineEnd = pdoc->LineStart(lineCurrentPos + 1); - if (lParam == 0) { - return 1 + lineEnd - lineStart; - } - PLATFORM_ASSERT(wParam > 0); - char *ptr = CharPtrFromSPtr(lParam); - unsigned int iPlace = 0; - for (unsigned int iChar = lineStart; iChar < lineEnd && iPlace < wParam - 1; iChar++) { - ptr[iPlace++] = pdoc->CharAt(iChar); - } - ptr[iPlace] = '\0'; - return currentPos - lineStart; - } - - case SCI_GETENDSTYLED: - return pdoc->GetEndStyled(); - - case SCI_GETEOLMODE: - return pdoc->eolMode; - - case SCI_SETEOLMODE: - pdoc->eolMode = wParam; - break; - - case SCI_STARTSTYLING: - pdoc->StartStyling(wParam, static_cast(lParam)); - break; - - case SCI_SETSTYLING: - pdoc->SetStyleFor(wParam, static_cast(lParam)); - break; - - case SCI_SETSTYLINGEX: // Specify a complete styling buffer - if (lParam == 0) - return 0; - pdoc->SetStyles(wParam, CharPtrFromSPtr(lParam)); - break; - - case SCI_SETBUFFEREDDRAW: - bufferedDraw = wParam != 0; - break; - - case SCI_GETBUFFEREDDRAW: - return bufferedDraw; - - case SCI_GETTWOPHASEDRAW: - return twoPhaseDraw; - - case SCI_SETTWOPHASEDRAW: - twoPhaseDraw = wParam != 0; - InvalidateStyleRedraw(); - break; - - case SCI_SETTABWIDTH: - if (wParam > 0) { - pdoc->tabInChars = wParam; - if (pdoc->indentInChars == 0) - pdoc->actualIndentInChars = pdoc->tabInChars; - } - InvalidateStyleRedraw(); - break; - - case SCI_GETTABWIDTH: - return pdoc->tabInChars; - - case SCI_SETINDENT: - pdoc->indentInChars = wParam; - if (pdoc->indentInChars != 0) - pdoc->actualIndentInChars = pdoc->indentInChars; - else - pdoc->actualIndentInChars = pdoc->tabInChars; - InvalidateStyleRedraw(); - break; - - case SCI_GETINDENT: - return pdoc->indentInChars; - - case SCI_SETUSETABS: - pdoc->useTabs = wParam != 0; - InvalidateStyleRedraw(); - break; - - case SCI_GETUSETABS: - return pdoc->useTabs; - - case SCI_SETLINEINDENTATION: - pdoc->SetLineIndentation(wParam, lParam); - break; - - case SCI_GETLINEINDENTATION: - return pdoc->GetLineIndentation(wParam); - - case SCI_GETLINEINDENTPOSITION: - return pdoc->GetLineIndentPosition(wParam); - - case SCI_SETTABINDENTS: - pdoc->tabIndents = wParam != 0; - break; - - case SCI_GETTABINDENTS: - return pdoc->tabIndents; - - case SCI_SETBACKSPACEUNINDENTS: - pdoc->backspaceUnindents = wParam != 0; - break; - - case SCI_GETBACKSPACEUNINDENTS: - return pdoc->backspaceUnindents; - - case SCI_SETMOUSEDWELLTIME: - dwellDelay = wParam; - ticksToDwell = dwellDelay; - break; - - case SCI_GETMOUSEDWELLTIME: - return dwellDelay; - - case SCI_WORDSTARTPOSITION: - return pdoc->ExtendWordSelect(wParam, -1, lParam != 0); - - case SCI_WORDENDPOSITION: - return pdoc->ExtendWordSelect(wParam, 1, lParam != 0); - - case SCI_SETWRAPMODE: - switch (wParam) { - case SC_WRAP_WORD: - wrapState = eWrapWord; - break; - case SC_WRAP_CHAR: - wrapState = eWrapChar; - break; - default: - wrapState = eWrapNone; - break; - } - xOffset = 0; - InvalidateStyleRedraw(); - ReconfigureScrollBars(); - break; - - case SCI_GETWRAPMODE: - return wrapState; - - case SCI_SETWRAPVISUALFLAGS: - wrapVisualFlags = wParam; - actualWrapVisualStartIndent = wrapVisualStartIndent; - if ((wrapVisualFlags & SC_WRAPVISUALFLAG_START) && (actualWrapVisualStartIndent == 0)) - actualWrapVisualStartIndent = 1; // must indent to show start visual - InvalidateStyleRedraw(); - ReconfigureScrollBars(); - break; - - case SCI_GETWRAPVISUALFLAGS: - return wrapVisualFlags; - - case SCI_SETWRAPVISUALFLAGSLOCATION: - wrapVisualFlagsLocation = wParam; - InvalidateStyleRedraw(); - break; - - case SCI_GETWRAPVISUALFLAGSLOCATION: - return wrapVisualFlagsLocation; - - case SCI_SETWRAPSTARTINDENT: - wrapVisualStartIndent = wParam; - actualWrapVisualStartIndent = wrapVisualStartIndent; - if ((wrapVisualFlags & SC_WRAPVISUALFLAG_START) && (actualWrapVisualStartIndent == 0)) - actualWrapVisualStartIndent = 1; // must indent to show start visual - InvalidateStyleRedraw(); - ReconfigureScrollBars(); - break; - - case SCI_GETWRAPSTARTINDENT: - return wrapVisualStartIndent; - - case SCI_SETLAYOUTCACHE: - llc.SetLevel(wParam); - break; - - case SCI_GETLAYOUTCACHE: - return llc.GetLevel(); - - case SCI_SETSCROLLWIDTH: - PLATFORM_ASSERT(wParam > 0); - if ((wParam > 0) && (wParam != static_cast(scrollWidth))) { - scrollWidth = wParam; - SetScrollBars(); - } - break; - - case SCI_GETSCROLLWIDTH: - return scrollWidth; - - case SCI_LINESJOIN: - LinesJoin(); - break; - - case SCI_LINESSPLIT: - LinesSplit(wParam); - break; - - case SCI_TEXTWIDTH: - PLATFORM_ASSERT(wParam <= STYLE_MAX); - PLATFORM_ASSERT(lParam); - return TextWidth(wParam, CharPtrFromSPtr(lParam)); - - case SCI_TEXTHEIGHT: - return vs.lineHeight; - - case SCI_SETENDATLASTLINE: - PLATFORM_ASSERT((wParam == 0) || (wParam == 1)); - if (endAtLastLine != (wParam != 0)) { - endAtLastLine = wParam != 0; - SetScrollBars(); - } - break; - - case SCI_GETENDATLASTLINE: - return endAtLastLine; - - case SCI_SETCARETSTICKY: - PLATFORM_ASSERT((wParam == 0) || (wParam == 1)); - if (caretSticky != (wParam != 0)) { - caretSticky = wParam != 0; - } - break; - - case SCI_GETCARETSTICKY: - return caretSticky; - - case SCI_TOGGLECARETSTICKY: - caretSticky = !caretSticky; - break; - - case SCI_GETCOLUMN: - return pdoc->GetColumn(wParam); - - case SCI_FINDCOLUMN: - return pdoc->FindColumn(wParam, lParam); - - case SCI_SETHSCROLLBAR : - if (horizontalScrollBarVisible != (wParam != 0)) { - horizontalScrollBarVisible = wParam != 0; - SetScrollBars(); - ReconfigureScrollBars(); - } - break; - - case SCI_GETHSCROLLBAR: - return horizontalScrollBarVisible; - - case SCI_SETVSCROLLBAR: - if (verticalScrollBarVisible != (wParam != 0)) { - verticalScrollBarVisible = wParam != 0; - SetScrollBars(); - ReconfigureScrollBars(); - } - break; - - case SCI_GETVSCROLLBAR: - return verticalScrollBarVisible; - - case SCI_SETINDENTATIONGUIDES: - vs.viewIndentationGuides = wParam != 0; - Redraw(); - break; - - case SCI_GETINDENTATIONGUIDES: - return vs.viewIndentationGuides; - - case SCI_SETHIGHLIGHTGUIDE: - if ((highlightGuideColumn != static_cast(wParam)) || (wParam > 0)) { - highlightGuideColumn = wParam; - Redraw(); - } - break; - - case SCI_GETHIGHLIGHTGUIDE: - return highlightGuideColumn; - - case SCI_GETLINEENDPOSITION: - return pdoc->LineEnd(wParam); - - case SCI_SETCODEPAGE: - if (ValidCodePage(wParam)) { - pdoc->dbcsCodePage = wParam; - InvalidateStyleRedraw(); - } - break; - - case SCI_GETCODEPAGE: - return pdoc->dbcsCodePage; - - case SCI_SETUSEPALETTE: - palette.allowRealization = wParam != 0; - InvalidateStyleRedraw(); - break; - - case SCI_GETUSEPALETTE: - return palette.allowRealization; - - // Marker definition and setting - case SCI_MARKERDEFINE: - if (wParam <= MARKER_MAX) - vs.markers[wParam].markType = lParam; - InvalidateStyleData(); - RedrawSelMargin(); - break; - case SCI_MARKERSETFORE: - if (wParam <= MARKER_MAX) - vs.markers[wParam].fore.desired = ColourDesired(lParam); - InvalidateStyleData(); - RedrawSelMargin(); - break; - case SCI_MARKERSETBACK: - if (wParam <= MARKER_MAX) - vs.markers[wParam].back.desired = ColourDesired(lParam); - InvalidateStyleData(); - RedrawSelMargin(); - break; - case SCI_MARKERSETALPHA: - if (wParam <= MARKER_MAX) - vs.markers[wParam].alpha = lParam; - InvalidateStyleRedraw(); - break; - case SCI_MARKERADD: { - int markerID = pdoc->AddMark(wParam, lParam); - return markerID; - } - case SCI_MARKERADDSET: - if (lParam != 0) - pdoc->AddMarkSet(wParam, lParam); - break; - - case SCI_MARKERDELETE: - pdoc->DeleteMark(wParam, lParam); - break; - - case SCI_MARKERDELETEALL: - pdoc->DeleteAllMarks(static_cast(wParam)); - break; - - case SCI_MARKERGET: - return pdoc->GetMark(wParam); - - case SCI_MARKERNEXT: { - int lt = pdoc->LinesTotal(); - for (int iLine = wParam; iLine < lt; iLine++) { - if ((pdoc->GetMark(iLine) & lParam) != 0) - return iLine; - } - } - return -1; - - case SCI_MARKERPREVIOUS: { - for (int iLine = wParam; iLine >= 0; iLine--) { - if ((pdoc->GetMark(iLine) & lParam) != 0) - return iLine; - } - } - return -1; - - case SCI_MARKERDEFINEPIXMAP: - if (wParam <= MARKER_MAX) { - vs.markers[wParam].SetXPM(CharPtrFromSPtr(lParam)); - }; - InvalidateStyleData(); - RedrawSelMargin(); - break; - - case SCI_SETMARGINTYPEN: - if (ValidMargin(wParam)) { - vs.ms[wParam].style = lParam; - InvalidateStyleRedraw(); - } - break; - - case SCI_GETMARGINTYPEN: - if (ValidMargin(wParam)) - return vs.ms[wParam].style; - else - return 0; - - case SCI_SETMARGINWIDTHN: - if (ValidMargin(wParam)) { - // Short-circuit if the width is unchanged, to avoid unnecessary redraw. - if (vs.ms[wParam].width != lParam) { - vs.ms[wParam].width = lParam; - InvalidateStyleRedraw(); - } - } - break; - - case SCI_GETMARGINWIDTHN: - if (ValidMargin(wParam)) - return vs.ms[wParam].width; - else - return 0; - - case SCI_SETMARGINMASKN: - if (ValidMargin(wParam)) { - vs.ms[wParam].mask = lParam; - InvalidateStyleRedraw(); - } - break; - - case SCI_GETMARGINMASKN: - if (ValidMargin(wParam)) - return vs.ms[wParam].mask; - else - return 0; - - case SCI_SETMARGINSENSITIVEN: - if (ValidMargin(wParam)) { - vs.ms[wParam].sensitive = lParam != 0; - InvalidateStyleRedraw(); - } - break; - - case SCI_GETMARGINSENSITIVEN: - if (ValidMargin(wParam)) - return vs.ms[wParam].sensitive ? 1 : 0; - else - return 0; - - case SCI_STYLECLEARALL: - vs.ClearStyles(); - InvalidateStyleRedraw(); - break; - - case SCI_STYLESETFORE: - if (wParam <= STYLE_MAX) { - vs.styles[wParam].fore.desired = ColourDesired(lParam); - InvalidateStyleRedraw(); - } - break; - case SCI_STYLESETBACK: - if (wParam <= STYLE_MAX) { - vs.styles[wParam].back.desired = ColourDesired(lParam); - InvalidateStyleRedraw(); - } - break; - case SCI_STYLESETBOLD: - if (wParam <= STYLE_MAX) { - vs.styles[wParam].bold = lParam != 0; - InvalidateStyleRedraw(); - } - break; - case SCI_STYLESETITALIC: - if (wParam <= STYLE_MAX) { - vs.styles[wParam].italic = lParam != 0; - InvalidateStyleRedraw(); - } - break; - case SCI_STYLESETEOLFILLED: - if (wParam <= STYLE_MAX) { - vs.styles[wParam].eolFilled = lParam != 0; - InvalidateStyleRedraw(); - } - break; - case SCI_STYLESETSIZE: - if (wParam <= STYLE_MAX) { - vs.styles[wParam].size = lParam; - InvalidateStyleRedraw(); - } - break; - case SCI_STYLESETFONT: - if (lParam == 0) - return 0; - if (wParam <= STYLE_MAX) { - vs.SetStyleFontName(wParam, CharPtrFromSPtr(lParam)); - InvalidateStyleRedraw(); - } - break; - case SCI_STYLESETUNDERLINE: - if (wParam <= STYLE_MAX) { - vs.styles[wParam].underline = lParam != 0; - InvalidateStyleRedraw(); - } - break; - case SCI_STYLESETCASE: - if (wParam <= STYLE_MAX) { - vs.styles[wParam].caseForce = static_cast(lParam); - InvalidateStyleRedraw(); - } - break; - case SCI_STYLESETCHARACTERSET: - if (wParam <= STYLE_MAX) { - vs.styles[wParam].characterSet = lParam; - InvalidateStyleRedraw(); - } - break; - case SCI_STYLESETVISIBLE: - if (wParam <= STYLE_MAX) { - vs.styles[wParam].visible = lParam != 0; - InvalidateStyleRedraw(); - } - break; - case SCI_STYLESETCHANGEABLE: - if (wParam <= STYLE_MAX) { - vs.styles[wParam].changeable = lParam != 0; - InvalidateStyleRedraw(); - } - break; - case SCI_STYLESETHOTSPOT: - if (wParam <= STYLE_MAX) { - vs.styles[wParam].hotspot = lParam != 0; - InvalidateStyleRedraw(); - } - break; - - case SCI_STYLERESETDEFAULT: - vs.ResetDefaultStyle(); - InvalidateStyleRedraw(); - break; - case SCI_SETSTYLEBITS: - pdoc->SetStylingBits(wParam); - break; - - case SCI_GETSTYLEBITS: - return pdoc->stylingBits; - - case SCI_SETLINESTATE: - return pdoc->SetLineState(wParam, lParam); - - case SCI_GETLINESTATE: - return pdoc->GetLineState(wParam); - - case SCI_GETMAXLINESTATE: - return pdoc->GetMaxLineState(); - - case SCI_GETCARETLINEVISIBLE: - return vs.showCaretLineBackground; - case SCI_SETCARETLINEVISIBLE: - vs.showCaretLineBackground = wParam != 0; - InvalidateStyleRedraw(); - break; - case SCI_GETCARETLINEBACK: - return vs.caretLineBackground.desired.AsLong(); - case SCI_SETCARETLINEBACK: - vs.caretLineBackground.desired = wParam; - InvalidateStyleRedraw(); - break; - case SCI_GETCARETLINEBACKALPHA: - return vs.caretLineAlpha; - case SCI_SETCARETLINEBACKALPHA: - vs.caretLineAlpha = wParam; - InvalidateStyleRedraw(); - break; - - // Folding messages - - case SCI_VISIBLEFROMDOCLINE: - return cs.DisplayFromDoc(wParam); - - case SCI_DOCLINEFROMVISIBLE: - return cs.DocFromDisplay(wParam); - - case SCI_WRAPCOUNT: - return WrapCount(wParam); - - case SCI_SETFOLDLEVEL: { - int prev = pdoc->SetLevel(wParam, lParam); - if (prev != lParam) - RedrawSelMargin(); - return prev; - } - - case SCI_GETFOLDLEVEL: - return pdoc->GetLevel(wParam); - - case SCI_GETLASTCHILD: - return pdoc->GetLastChild(wParam, lParam); - - case SCI_GETFOLDPARENT: - return pdoc->GetFoldParent(wParam); - - case SCI_SHOWLINES: - cs.SetVisible(wParam, lParam, true); - SetScrollBars(); - Redraw(); - break; - - case SCI_HIDELINES: - cs.SetVisible(wParam, lParam, false); - SetScrollBars(); - Redraw(); - break; - - case SCI_GETLINEVISIBLE: - return cs.GetVisible(wParam); - - case SCI_SETFOLDEXPANDED: - if (cs.SetExpanded(wParam, lParam != 0)) { - RedrawSelMargin(); - } - break; - - case SCI_GETFOLDEXPANDED: - return cs.GetExpanded(wParam); - - case SCI_SETFOLDFLAGS: - foldFlags = wParam; - Redraw(); - break; - - case SCI_TOGGLEFOLD: - ToggleContraction(wParam); - break; - - case SCI_ENSUREVISIBLE: - EnsureLineVisible(wParam, false); - break; - - case SCI_ENSUREVISIBLEENFORCEPOLICY: - EnsureLineVisible(wParam, true); - break; - - case SCI_SEARCHANCHOR: - SearchAnchor(); - break; - - case SCI_SEARCHNEXT: - case SCI_SEARCHPREV: - return SearchText(iMessage, wParam, lParam); - -#ifdef INCLUDE_DEPRECATED_FEATURES - case SCI_SETCARETPOLICY: // Deprecated - caretXPolicy = caretYPolicy = wParam; - caretXSlop = caretYSlop = lParam; - break; -#endif - - case SCI_SETXCARETPOLICY: - caretXPolicy = wParam; - caretXSlop = lParam; - break; - - case SCI_SETYCARETPOLICY: - caretYPolicy = wParam; - caretYSlop = lParam; - break; - - case SCI_SETVISIBLEPOLICY: - visiblePolicy = wParam; - visibleSlop = lParam; - break; - - case SCI_LINESONSCREEN: - return LinesOnScreen(); - - case SCI_SETSELFORE: - vs.selforeset = wParam != 0; - vs.selforeground.desired = ColourDesired(lParam); - InvalidateStyleRedraw(); - break; - - case SCI_SETSELBACK: - vs.selbackset = wParam != 0; - vs.selbackground.desired = ColourDesired(lParam); - InvalidateStyleRedraw(); - break; - - case SCI_SETSELALPHA: - vs.selAlpha = wParam; - InvalidateStyleRedraw(); - break; - - case SCI_GETSELALPHA: - return vs.selAlpha; - - case SCI_SETWHITESPACEFORE: - vs.whitespaceForegroundSet = wParam != 0; - vs.whitespaceForeground.desired = ColourDesired(lParam); - InvalidateStyleRedraw(); - break; - - case SCI_SETWHITESPACEBACK: - vs.whitespaceBackgroundSet = wParam != 0; - vs.whitespaceBackground.desired = ColourDesired(lParam); - InvalidateStyleRedraw(); - break; - - case SCI_SETCARETFORE: - vs.caretcolour.desired = ColourDesired(wParam); - InvalidateStyleRedraw(); - break; - - case SCI_GETCARETFORE: - return vs.caretcolour.desired.AsLong(); - - case SCI_SETCARETWIDTH: - if (wParam <= 0) - vs.caretWidth = 0; - else if (wParam >= 3) - vs.caretWidth = 3; - else - vs.caretWidth = wParam; - InvalidateStyleRedraw(); - break; - - case SCI_GETCARETWIDTH: - return vs.caretWidth; - - case SCI_ASSIGNCMDKEY: - kmap.AssignCmdKey(Platform::LowShortFromLong(wParam), - Platform::HighShortFromLong(wParam), lParam); - break; - - case SCI_CLEARCMDKEY: - kmap.AssignCmdKey(Platform::LowShortFromLong(wParam), - Platform::HighShortFromLong(wParam), SCI_NULL); - break; - - case SCI_CLEARALLCMDKEYS: - kmap.Clear(); - break; - - case SCI_INDICSETSTYLE: - if (wParam <= INDIC_MAX) { - vs.indicators[wParam].style = lParam; - InvalidateStyleRedraw(); - } - break; - - case SCI_INDICGETSTYLE: - return (wParam <= INDIC_MAX) ? vs.indicators[wParam].style : 0; - - case SCI_INDICSETFORE: - if (wParam <= INDIC_MAX) { - vs.indicators[wParam].fore.desired = ColourDesired(lParam); - InvalidateStyleRedraw(); - } - break; - - case SCI_INDICGETFORE: - return (wParam <= INDIC_MAX) ? vs.indicators[wParam].fore.desired.AsLong() : 0; - - case SCI_LINEDOWN: - case SCI_LINEDOWNEXTEND: - case SCI_PARADOWN: - case SCI_PARADOWNEXTEND: - case SCI_LINEUP: - case SCI_LINEUPEXTEND: - case SCI_PARAUP: - case SCI_PARAUPEXTEND: - case SCI_CHARLEFT: - case SCI_CHARLEFTEXTEND: - case SCI_CHARRIGHT: - case SCI_CHARRIGHTEXTEND: - case SCI_WORDLEFT: - case SCI_WORDLEFTEXTEND: - case SCI_WORDRIGHT: - case SCI_WORDRIGHTEXTEND: - case SCI_WORDLEFTEND: - case SCI_WORDLEFTENDEXTEND: - case SCI_WORDRIGHTEND: - case SCI_WORDRIGHTENDEXTEND: - case SCI_HOME: - case SCI_HOMEEXTEND: - case SCI_LINEEND: - case SCI_LINEENDEXTEND: - case SCI_HOMEWRAP: - case SCI_HOMEWRAPEXTEND: - case SCI_LINEENDWRAP: - case SCI_LINEENDWRAPEXTEND: - case SCI_DOCUMENTSTART: - case SCI_DOCUMENTSTARTEXTEND: - case SCI_DOCUMENTEND: - case SCI_DOCUMENTENDEXTEND: - - case SCI_STUTTEREDPAGEUP: - case SCI_STUTTEREDPAGEUPEXTEND: - case SCI_STUTTEREDPAGEDOWN: - case SCI_STUTTEREDPAGEDOWNEXTEND: - - case SCI_PAGEUP: - case SCI_PAGEUPEXTEND: - case SCI_PAGEDOWN: - case SCI_PAGEDOWNEXTEND: - case SCI_EDITTOGGLEOVERTYPE: - case SCI_CANCEL: - case SCI_DELETEBACK: - case SCI_TAB: - case SCI_BACKTAB: - case SCI_NEWLINE: - case SCI_FORMFEED: - case SCI_VCHOME: - case SCI_VCHOMEEXTEND: - case SCI_VCHOMEWRAP: - case SCI_VCHOMEWRAPEXTEND: - case SCI_ZOOMIN: - case SCI_ZOOMOUT: - case SCI_DELWORDLEFT: - case SCI_DELWORDRIGHT: - case SCI_DELLINELEFT: - case SCI_DELLINERIGHT: - case SCI_LINECOPY: - case SCI_LINECUT: - case SCI_LINEDELETE: - case SCI_LINETRANSPOSE: - case SCI_LINEDUPLICATE: - case SCI_LOWERCASE: - case SCI_UPPERCASE: - case SCI_LINESCROLLDOWN: - case SCI_LINESCROLLUP: - case SCI_WORDPARTLEFT: - case SCI_WORDPARTLEFTEXTEND: - case SCI_WORDPARTRIGHT: - case SCI_WORDPARTRIGHTEXTEND: - case SCI_DELETEBACKNOTLINE: - case SCI_HOMEDISPLAY: - case SCI_HOMEDISPLAYEXTEND: - case SCI_LINEENDDISPLAY: - case SCI_LINEENDDISPLAYEXTEND: - case SCI_LINEDOWNRECTEXTEND: - case SCI_LINEUPRECTEXTEND: - case SCI_CHARLEFTRECTEXTEND: - case SCI_CHARRIGHTRECTEXTEND: - case SCI_HOMERECTEXTEND: - case SCI_VCHOMERECTEXTEND: - case SCI_LINEENDRECTEXTEND: - case SCI_PAGEUPRECTEXTEND: - case SCI_PAGEDOWNRECTEXTEND: - case SCI_SELECTIONDUPLICATE: - return KeyCommand(iMessage); - - case SCI_BRACEHIGHLIGHT: - SetBraceHighlight(static_cast(wParam), lParam, STYLE_BRACELIGHT); - break; - - case SCI_BRACEBADLIGHT: - SetBraceHighlight(static_cast(wParam), -1, STYLE_BRACEBAD); - break; - - case SCI_BRACEMATCH: - // wParam is position of char to find brace for, - // lParam is maximum amount of text to restyle to find it - return pdoc->BraceMatch(wParam, lParam); - - case SCI_GETVIEWEOL: - return vs.viewEOL; - - case SCI_SETVIEWEOL: - vs.viewEOL = wParam != 0; - InvalidateStyleRedraw(); - break; - - case SCI_SETZOOM: - vs.zoomLevel = wParam; - InvalidateStyleRedraw(); - NotifyZoom(); - break; - - case SCI_GETZOOM: - return vs.zoomLevel; - - case SCI_GETEDGECOLUMN: - return theEdge; - - case SCI_SETEDGECOLUMN: - theEdge = wParam; - InvalidateStyleRedraw(); - break; - - case SCI_GETEDGEMODE: - return vs.edgeState; - - case SCI_SETEDGEMODE: - vs.edgeState = wParam; - InvalidateStyleRedraw(); - break; - - case SCI_GETEDGECOLOUR: - return vs.edgecolour.desired.AsLong(); - - case SCI_SETEDGECOLOUR: - vs.edgecolour.desired = ColourDesired(wParam); - InvalidateStyleRedraw(); - break; - - case SCI_GETDOCPOINTER: - return reinterpret_cast(pdoc); - - case SCI_SETDOCPOINTER: - CancelModes(); - SetDocPointer(reinterpret_cast(lParam)); - return 0; - - case SCI_CREATEDOCUMENT: { - Document *doc = new Document(); - if (doc) { - doc->AddRef(); - } - return reinterpret_cast(doc); - } - - case SCI_ADDREFDOCUMENT: - (reinterpret_cast(lParam))->AddRef(); - break; - - case SCI_RELEASEDOCUMENT: - (reinterpret_cast(lParam))->Release(); - break; - - case SCI_SETMODEVENTMASK: - modEventMask = wParam; - return 0; - - case SCI_GETMODEVENTMASK: - return modEventMask; - - case SCI_CONVERTEOLS: - pdoc->ConvertLineEnds(wParam); - SetSelection(currentPos, anchor); // Ensure selection inside document - return 0; - - case SCI_SETLENGTHFORENCODE: - lengthForEncode = wParam; - return 0; - - case SCI_SELECTIONISRECTANGLE: - return selType == selRectangle ? 1 : 0; - - case SCI_SETSELECTIONMODE: { - switch (wParam) { - case SC_SEL_STREAM: - moveExtendsSelection = !moveExtendsSelection || (selType != selStream); - selType = selStream; - break; - case SC_SEL_RECTANGLE: - moveExtendsSelection = !moveExtendsSelection || (selType != selRectangle); - selType = selRectangle; - break; - case SC_SEL_LINES: - moveExtendsSelection = !moveExtendsSelection || (selType != selLines); - selType = selLines; - break; - default: - moveExtendsSelection = !moveExtendsSelection || (selType != selStream); - selType = selStream; - } - InvalidateSelection(currentPos, anchor); - } - case SCI_GETSELECTIONMODE: - switch (selType) { - case selStream: - return SC_SEL_STREAM; - case selRectangle: - return SC_SEL_RECTANGLE; - case selLines: - return SC_SEL_LINES; - default: // ?! - return SC_SEL_STREAM; - } - case SCI_GETLINESELSTARTPOSITION: { - SelectionLineIterator lineIterator(this); - lineIterator.SetAt(wParam); - return lineIterator.startPos; - } - case SCI_GETLINESELENDPOSITION: { - SelectionLineIterator lineIterator(this); - lineIterator.SetAt(wParam); - return lineIterator.endPos; - } - - case SCI_SETOVERTYPE: - inOverstrike = wParam != 0; - break; - - case SCI_GETOVERTYPE: - return inOverstrike ? 1 : 0; - - case SCI_SETFOCUS: - SetFocusState(wParam != 0); - break; - - case SCI_GETFOCUS: - return hasFocus; - - case SCI_SETSTATUS: - errorStatus = wParam; - break; - - case SCI_GETSTATUS: - return errorStatus; - - case SCI_SETMOUSEDOWNCAPTURES: - mouseDownCaptures = wParam != 0; - break; - - case SCI_GETMOUSEDOWNCAPTURES: - return mouseDownCaptures; - - case SCI_SETCURSOR: - cursorMode = wParam; - DisplayCursor(Window::cursorText); - break; - - case SCI_GETCURSOR: - return cursorMode; - - case SCI_SETCONTROLCHARSYMBOL: - controlCharSymbol = wParam; - break; - - case SCI_GETCONTROLCHARSYMBOL: - return controlCharSymbol; - - case SCI_STARTRECORD: - recordingMacro = true; - return 0; - - case SCI_STOPRECORD: - recordingMacro = false; - return 0; - - case SCI_MOVECARETINSIDEVIEW: - MoveCaretInsideView(); - break; - - case SCI_SETFOLDMARGINCOLOUR: - vs.foldmarginColourSet = wParam != 0; - vs.foldmarginColour.desired = ColourDesired(lParam); - InvalidateStyleRedraw(); - break; - - case SCI_SETFOLDMARGINHICOLOUR: - vs.foldmarginHighlightColourSet = wParam != 0; - vs.foldmarginHighlightColour.desired = ColourDesired(lParam); - InvalidateStyleRedraw(); - break; - - case SCI_SETHOTSPOTACTIVEFORE: - vs.hotspotForegroundSet = wParam != 0; - vs.hotspotForeground.desired = ColourDesired(lParam); - InvalidateStyleRedraw(); - break; - - case SCI_SETHOTSPOTACTIVEBACK: - vs.hotspotBackgroundSet = wParam != 0; - vs.hotspotBackground.desired = ColourDesired(lParam); - InvalidateStyleRedraw(); - break; - - case SCI_SETHOTSPOTACTIVEUNDERLINE: - vs.hotspotUnderline = wParam != 0; - InvalidateStyleRedraw(); - break; - - case SCI_SETHOTSPOTSINGLELINE: - vs.hotspotSingleLine = wParam != 0; - InvalidateStyleRedraw(); - break; - - case SCI_SETPASTECONVERTENDINGS: - convertPastes = wParam != 0; - break; - - case SCI_GETPASTECONVERTENDINGS: - return convertPastes ? 1 : 0; - - default: - return DefWndProc(iMessage, wParam, lParam); - } - //Platform::DebugPrintf("end wnd proc\n"); - return 0l; -} diff --git a/MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/src/Editor.h b/MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/src/Editor.h deleted file mode 100644 index 23b7f921..00000000 --- a/MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/src/Editor.h +++ /dev/null @@ -1,582 +0,0 @@ -// Scintilla source code edit control -/** @file Editor.h - ** Defines the main editor class. - **/ -// Copyright 1998-2003 by Neil Hodgson -// The License.txt file describes the conditions under which this software may be distributed. - -#ifndef EDITOR_H -#define EDITOR_H - -/** - */ -class Caret { -public: - bool active; - bool on; - int period; - - Caret(); -}; - -/** - */ -class Timer { -public: - bool ticking; - int ticksToWait; - enum {tickSize = 100}; - TickerID tickerID; - - Timer(); -}; - -/** - */ -class Idler { -public: - bool state; - IdlerID idlerID; - - Idler(); -}; - -/** - */ -class LineLayout { -private: - friend class LineLayoutCache; - int *lineStarts; - int lenLineStarts; - /// Drawing is only performed for @a maxLineLength characters on each line. - int lineNumber; - bool inCache; -public: - enum { wrapWidthInfinite = 0x7ffffff }; - int maxLineLength; - int numCharsInLine; - enum validLevel { llInvalid, llCheckTextAndStyle, llPositions, llLines } validity; - int xHighlightGuide; - bool highlightColumn; - int selStart; - int selEnd; - bool containsCaret; - int edgeColumn; - char *chars; - unsigned char *styles; - int styleBitsSet; - char *indicators; - int *positions; - char bracePreviousStyles[2]; - - // Hotspot support - int hsStart; - int hsEnd; - - // Wrapped line support - int widthLine; - int lines; - - LineLayout(int maxLineLength_); - virtual ~LineLayout(); - void Resize(int maxLineLength_); - void Free(); - void Invalidate(validLevel validity_); - int LineStart(int line) { - if (line <= 0) { - return 0; - } else if ((line >= lines) || !lineStarts) { - return numCharsInLine; - } else { - return lineStarts[line]; - } - } - void SetLineStart(int line, int start); - void SetBracesHighlight(Range rangeLine, Position braces[], - char bracesMatchStyle, int xHighlight); - void RestoreBracesHighlight(Range rangeLine, Position braces[]); -}; - -/** - */ -class LineLayoutCache { - int level; - int length; - int size; - LineLayout **cache; - bool allInvalidated; - int styleClock; - int useCount; - void Allocate(int length_); - void AllocateForLevel(int linesOnScreen, int linesInDoc); -public: - LineLayoutCache(); - virtual ~LineLayoutCache(); - void Deallocate(); - enum { - llcNone=SC_CACHE_NONE, - llcCaret=SC_CACHE_CARET, - llcPage=SC_CACHE_PAGE, - llcDocument=SC_CACHE_DOCUMENT - }; - void Invalidate(LineLayout::validLevel validity_); - void SetLevel(int level_); - int GetLevel() { return level; } - LineLayout *Retrieve(int lineNumber, int lineCaret, int maxChars, int styleClock_, - int linesOnScreen, int linesInDoc); - void Dispose(LineLayout *ll); -}; - -/** - * Hold a piece of text selected for copying or dragging. - * The text is expected to hold a terminating '\0' and this is counted in len. - */ -class SelectionText { -public: - char *s; - int len; - bool rectangular; - int codePage; - int characterSet; - SelectionText() : s(0), len(0), rectangular(false), codePage(0), characterSet(0) {} - ~SelectionText() { - Free(); - } - void Free() { - Set(0, 0, 0, 0, false); - } - void Set(char *s_, int len_, int codePage_, int characterSet_, bool rectangular_) { - delete []s; - s = s_; - if (s) - len = len_; - else - len = 0; - codePage = codePage_; - characterSet = characterSet_; - rectangular = rectangular_; - } - void Copy(const char *s_, int len_, int codePage_, int characterSet_, bool rectangular_) { - delete []s; - s = new char[len_]; - if (s) { - len = len_; - for (int i = 0; i < len_; i++) { - s[i] = s_[i]; - } - } else { - len = 0; - } - codePage = codePage_; - characterSet = characterSet_; - rectangular = rectangular_; - } - void Copy(const SelectionText &other) { - Copy(other.s, other.len, other.codePage, other.characterSet, other.rectangular); - } -}; - -/** - */ -class Editor : public DocWatcher { - // Private so Editor objects can not be copied - Editor(const Editor &) : DocWatcher() {} - Editor &operator=(const Editor &) { return *this; } - -protected: // ScintillaBase subclass needs access to much of Editor - - /** On GTK+, Scintilla is a container widget holding two scroll bars - * whereas on Windows there is just one window with both scroll bars turned on. */ - Window wMain; ///< The Scintilla parent window - - /** Style resources may be expensive to allocate so are cached between uses. - * When a style attribute is changed, this cache is flushed. */ - bool stylesValid; - ViewStyle vs; - Palette palette; - - int printMagnification; - int printColourMode; - int printWrapState; - int cursorMode; - int controlCharSymbol; - - bool hasFocus; - bool hideSelection; - bool inOverstrike; - int errorStatus; - bool mouseDownCaptures; - - /** In bufferedDraw mode, graphics operations are drawn to a pixmap and then copied to - * the screen. This avoids flashing but is about 30% slower. */ - bool bufferedDraw; - /** In twoPhaseDraw mode, drawing is performed in two phases, first the background - * and then the foreground. This avoids chopping off characters that overlap the next run. */ - bool twoPhaseDraw; - - int xOffset; ///< Horizontal scrolled amount in pixels - int xCaretMargin; ///< Ensure this many pixels visible on both sides of caret - bool horizontalScrollBarVisible; - int scrollWidth; - bool verticalScrollBarVisible; - bool endAtLastLine; - bool caretSticky; - - Surface *pixmapLine; - Surface *pixmapSelMargin; - Surface *pixmapSelPattern; - Surface *pixmapIndentGuide; - Surface *pixmapIndentGuideHighlight; - - LineLayoutCache llc; - - KeyMap kmap; - - Caret caret; - Timer timer; - Timer autoScrollTimer; - enum { autoScrollDelay = 200 }; - - Idler idler; - - Point lastClick; - unsigned int lastClickTime; - int dwellDelay; - int ticksToDwell; - bool dwelling; - enum { selChar, selWord, selLine } selectionType; - Point ptMouseLast; - bool inDragDrop; - bool dropWentOutside; - int posDrag; - int posDrop; - int lastXChosen; - int lineAnchor; - int originalAnchorPos; - int currentPos; - int anchor; - int targetStart; - int targetEnd; - int searchFlags; - int topLine; - int posTopLine; - int lengthForEncode; - - bool needUpdateUI; - Position braces[2]; - int bracesMatchStyle; - int highlightGuideColumn; - - int theEdge; - - enum { notPainting, painting, paintAbandoned } paintState; - PRectangle rcPaint; - bool paintingAllText; - - int modEventMask; - - SelectionText drag; - enum selTypes { noSel, selStream, selRectangle, selLines }; - selTypes selType; - bool moveExtendsSelection; - int xStartSelect; ///< x position of start of rectangular selection - int xEndSelect; ///< x position of end of rectangular selection - bool primarySelection; - - int caretXPolicy; - int caretXSlop; ///< Ensure this many pixels visible on both sides of caret - - int caretYPolicy; - int caretYSlop; ///< Ensure this many lines visible on both sides of caret - - int visiblePolicy; - int visibleSlop; - - int searchAnchor; - - bool recordingMacro; - - int foldFlags; - ContractionState cs; - - // Hotspot support - int hsStart; - int hsEnd; - - // Wrapping support - enum { eWrapNone, eWrapWord, eWrapChar } wrapState; - enum { wrapLineLarge = 0x7ffffff }; - int wrapWidth; - int wrapStart; - int wrapEnd; - int wrapVisualFlags; - int wrapVisualFlagsLocation; - int wrapVisualStartIndent; - int actualWrapVisualStartIndent; - - bool convertPastes; - - Document *pdoc; - - Editor(); - virtual ~Editor(); - virtual void Initialise() = 0; - virtual void Finalise(); - - void InvalidateStyleData(); - void InvalidateStyleRedraw(); - virtual void RefreshColourPalette(Palette &pal, bool want); - void RefreshStyleData(); - void DropGraphics(); - - virtual PRectangle GetClientRectangle(); - PRectangle GetTextRectangle(); - - int LinesOnScreen(); - int LinesToScroll(); - int MaxScrollPos(); - Point LocationFromPosition(int pos); - int XFromPosition(int pos); - int PositionFromLocation(Point pt); - int PositionFromLocationClose(Point pt); - int PositionFromLineX(int line, int x); - int LineFromLocation(Point pt); - void SetTopLine(int topLineNew); - - bool AbandonPaint(); - void RedrawRect(PRectangle rc); - void Redraw(); - void RedrawSelMargin(int line=-1); - PRectangle RectangleFromRange(int start, int end); - void InvalidateRange(int start, int end); - - int CurrentPosition(); - bool SelectionEmpty(); - int SelectionStart(); - int SelectionEnd(); - void SetRectangularRange(); - void InvalidateSelection(int currentPos_, int anchor_); - void SetSelection(int currentPos_, int anchor_); - void SetSelection(int currentPos_); - void SetEmptySelection(int currentPos_); - bool RangeContainsProtected(int start, int end) const; - bool SelectionContainsProtected(); - int MovePositionOutsideChar(int pos, int moveDir, bool checkLineEnd=true); - int MovePositionTo(int newPos, selTypes sel=noSel, bool ensureVisible=true); - int MovePositionSoVisible(int pos, int moveDir); - void SetLastXChosen(); - - void ScrollTo(int line, bool moveThumb=true); - virtual void ScrollText(int linesToMove); - void HorizontalScrollTo(int xPos); - void MoveCaretInsideView(bool ensureVisible=true); - int DisplayFromPosition(int pos); - void EnsureCaretVisible(bool useMargin=true, bool vert=true, bool horiz=true); - void ShowCaretAtCurrentPosition(); - void DropCaret(); - void InvalidateCaret(); - virtual void UpdateSystemCaret(); - - void NeedWrapping(int docLineStart = 0, int docLineEnd = wrapLineLarge); - bool WrapLines(bool fullWrap, int priorityWrapLineStart); - void LinesJoin(); - void LinesSplit(int pixelWidth); - - int SubstituteMarkerIfEmpty(int markerCheck, int markerDefault); - void PaintSelMargin(Surface *surface, PRectangle &rc); - LineLayout *RetrieveLineLayout(int lineNumber); - void LayoutLine(int line, Surface *surface, ViewStyle &vstyle, LineLayout *ll, - int width=LineLayout::wrapWidthInfinite); - ColourAllocated SelectionBackground(ViewStyle &vsDraw); - ColourAllocated TextBackground(ViewStyle &vsDraw, bool overrideBackground, ColourAllocated background, bool inSelection, bool inHotspot, int styleMain, int i, LineLayout *ll); - void DrawIndentGuide(Surface *surface, int lineVisible, int lineHeight, int start, PRectangle rcSegment, bool highlight); - void DrawWrapMarker(Surface *surface, PRectangle rcPlace, bool isEndMarker, ColourAllocated wrapColour); - void DrawEOL(Surface *surface, ViewStyle &vsDraw, PRectangle rcLine, LineLayout *ll, - int line, int lineEnd, int xStart, int subLine, int subLineStart, - bool overrideBackground, ColourAllocated background, - bool drawWrapMark, ColourAllocated wrapColour); - void DrawLine(Surface *surface, ViewStyle &vsDraw, int line, int lineVisible, int xStart, - PRectangle rcLine, LineLayout *ll, int subLine=0); - void RefreshPixMaps(Surface *surfaceWindow); - void Paint(Surface *surfaceWindow, PRectangle rcArea); - long FormatRange(bool draw, RangeToFormat *pfr); - int TextWidth(int style, const char *text); - - virtual void SetVerticalScrollPos() = 0; - virtual void SetHorizontalScrollPos() = 0; - virtual bool ModifyScrollBars(int nMax, int nPage) = 0; - virtual void ReconfigureScrollBars(); - void SetScrollBars(); - void ChangeSize(); - - void AddChar(char ch); - virtual void AddCharUTF(char *s, unsigned int len, bool treatAsDBCS=false); - void ClearSelection(); - void ClearAll(); - void ClearDocumentStyle(); - void Cut(); - void PasteRectangular(int pos, const char *ptr, int len); - virtual void Copy() = 0; - virtual bool CanPaste(); - virtual void Paste() = 0; - void Clear(); - void SelectAll(); - void Undo(); - void Redo(); - void DelChar(); - void DelCharBack(bool allowLineStartDeletion); - virtual void ClaimSelection() = 0; - - virtual void NotifyChange() = 0; - virtual void NotifyFocus(bool focus); - virtual int GetCtrlID() { return ctrlID; } - virtual void NotifyParent(SCNotification scn) = 0; - virtual void NotifyStyleToNeeded(int endStyleNeeded); - void NotifyChar(int ch); - void NotifyMove(int position); - void NotifySavePoint(bool isSavePoint); - void NotifyModifyAttempt(); - virtual void NotifyDoubleClick(Point pt, bool shift); - void NotifyHotSpotClicked(int position, bool shift, bool ctrl, bool alt); - void NotifyHotSpotDoubleClicked(int position, bool shift, bool ctrl, bool alt); - void NotifyUpdateUI(); - void NotifyPainted(); - bool NotifyMarginClick(Point pt, bool shift, bool ctrl, bool alt); - void NotifyNeedShown(int pos, int len); - void NotifyDwelling(Point pt, bool state); - void NotifyZoom(); - - void NotifyModifyAttempt(Document *document, void *userData); - void NotifySavePoint(Document *document, void *userData, bool atSavePoint); - void CheckModificationForWrap(DocModification mh); - void NotifyModified(Document *document, DocModification mh, void *userData); - void NotifyDeleted(Document *document, void *userData); - void NotifyStyleNeeded(Document *doc, void *userData, int endPos); - void NotifyMacroRecord(unsigned int iMessage, uptr_t wParam, sptr_t lParam); - - void PageMove(int direction, selTypes sel=noSel, bool stuttered = false); - void ChangeCaseOfSelection(bool makeUpperCase); - void LineTranspose(); - void Duplicate(bool forLine); - virtual void CancelModes(); - void NewLine(); - void CursorUpOrDown(int direction, selTypes sel=noSel); - void ParaUpOrDown(int direction, selTypes sel=noSel); - int StartEndDisplayLine(int pos, bool start); - virtual int KeyCommand(unsigned int iMessage); - virtual int KeyDefault(int /* key */, int /*modifiers*/); - int KeyDown(int key, bool shift, bool ctrl, bool alt, bool *consumed=0); - - int GetWhitespaceVisible(); - void SetWhitespaceVisible(int view); - - void Indent(bool forwards); - - long FindText(uptr_t wParam, sptr_t lParam); - void SearchAnchor(); - long SearchText(unsigned int iMessage, uptr_t wParam, sptr_t lParam); - long SearchInTarget(const char *text, int length); - void GoToLine(int lineNo); - - virtual void CopyToClipboard(const SelectionText &selectedText) = 0; - char *CopyRange(int start, int end); - void CopySelectionFromRange(SelectionText *ss, int start, int end); - void CopySelectionRange(SelectionText *ss); - void CopyRangeToClipboard(int start, int end); - void CopyText(int length, const char *text); - void SetDragPosition(int newPos); - virtual void DisplayCursor(Window::Cursor c); - virtual void StartDrag(); - void DropAt(int position, const char *value, bool moving, bool rectangular); - /** PositionInSelection returns 0 if position in selection, -1 if position before selection, and 1 if after. - * Before means either before any line of selection or before selection on its line, with a similar meaning to after. */ - int PositionInSelection(int pos); - bool PointInSelection(Point pt); - bool PointInSelMargin(Point pt); - void LineSelection(int lineCurrent_, int lineAnchor_); - void DwellEnd(bool mouseMoved); - virtual void ButtonDown(Point pt, unsigned int curTime, bool shift, bool ctrl, bool alt); - void ButtonMove(Point pt); - void ButtonUp(Point pt, unsigned int curTime, bool ctrl); - - void Tick(); - bool Idle(); - virtual void SetTicking(bool on) = 0; - virtual bool SetIdle(bool) { return false; } - virtual void SetMouseCapture(bool on) = 0; - virtual bool HaveMouseCapture() = 0; - void SetFocusState(bool focusState); - - virtual bool PaintContains(PRectangle rc); - bool PaintContainsMargin(); - void CheckForChangeOutsidePaint(Range r); - void SetBraceHighlight(Position pos0, Position pos1, int matchStyle); - - void SetDocPointer(Document *document); - - void Expand(int &line, bool doExpand); - void ToggleContraction(int line); - void EnsureLineVisible(int lineDoc, bool enforcePolicy); - int ReplaceTarget(bool replacePatterns, const char *text, int length=-1); - - bool PositionIsHotspot(int position); - bool PointIsHotspot(Point pt); - void SetHotSpotRange(Point *pt); - void GetHotSpotRange(int& hsStart, int& hsEnd); - - int CodePage() const; - virtual bool ValidCodePage(int /* codePage */) const { return true; } - int WrapCount(int line); - - virtual sptr_t DefWndProc(unsigned int iMessage, uptr_t wParam, sptr_t lParam) = 0; - -public: - // Public so the COM thunks can access it. - bool IsUnicodeMode() const; - // Public so scintilla_send_message can use it. - virtual sptr_t WndProc(unsigned int iMessage, uptr_t wParam, sptr_t lParam); - // Public so scintilla_set_id can use it. - int ctrlID; - friend class AutoSurface; - friend class SelectionLineIterator; -}; - -/** - * A smart pointer class to ensure Surfaces are set up and deleted correctly. - */ -class AutoSurface { -private: - Surface *surf; -public: - AutoSurface(Editor *ed) : surf(0) { - if (ed->wMain.GetID()) { - surf = Surface::Allocate(); - if (surf) { - surf->Init(ed->wMain.GetID()); - surf->SetUnicodeMode(SC_CP_UTF8 == ed->CodePage()); - surf->SetDBCSMode(ed->CodePage()); - } - } - } - AutoSurface(SurfaceID sid, Editor *ed) : surf(0) { - if (ed->wMain.GetID()) { - surf = Surface::Allocate(); - if (surf) { - surf->Init(sid, ed->wMain.GetID()); - surf->SetUnicodeMode(SC_CP_UTF8 == ed->CodePage()); - surf->SetDBCSMode(ed->CodePage()); - } - } - } - ~AutoSurface() { - delete surf; - } - Surface *operator->() const { - return surf; - } - operator Surface *() const { - return surf; - } -}; - -#endif diff --git a/MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/src/ExternalLexer.cxx b/MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/src/ExternalLexer.cxx deleted file mode 100644 index 7abfbdd9..00000000 --- a/MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/src/ExternalLexer.cxx +++ /dev/null @@ -1,259 +0,0 @@ -// Scintilla source code edit control -/** @file ExternalLexer.cxx - ** Support external lexers in DLLs. - **/ -// Copyright 2001 Simon Steele , portions copyright Neil Hodgson. -// The License.txt file describes the conditions under which this software may be distributed. - -#include -#include -#include -#include - -#include "Platform.h" - -#include "Scintilla.h" - -#include "SciLexer.h" -#include "PropSet.h" -#include "Accessor.h" -#include "DocumentAccessor.h" -#include "KeyWords.h" -#include "ExternalLexer.h" - -LexerManager *LexerManager::theInstance = NULL; - -//------------------------------------------ -// -// ExternalLexerModule -// -//------------------------------------------ - -char **WordListsToStrings(WordList *val[]) { - int dim = 0; - while (val[dim]) - dim++; - char **wls = new char * [dim + 1]; - for (int i = 0;i < dim;i++) { - SString words; - words = ""; - for (int n = 0; n < val[i]->len; n++) { - words += val[i]->words[n]; - if (n != val[i]->len - 1) - words += " "; - } - wls[i] = new char[words.length() + 1]; - strcpy(wls[i], words.c_str()); - } - wls[dim] = 0; - return wls; -} - -void DeleteWLStrings(char *strs[]) { - int dim = 0; - while (strs[dim]) { - delete strs[dim]; - dim++; - } - delete [] strs; -} - -void ExternalLexerModule::Lex(unsigned int startPos, int lengthDoc, int initStyle, - WordList *keywordlists[], Accessor &styler) const { - if (!fneLexer) - return ; - - char **kwds = WordListsToStrings(keywordlists); - char *ps = styler.GetProperties(); - - // The accessor passed in is always a DocumentAccessor so this cast and the subsequent - // access will work. Can not use the stricter dynamic_cast as that requires RTTI. - DocumentAccessor &da = static_cast(styler); - WindowID wID = da.GetWindow(); - - fneLexer(externalLanguage, startPos, lengthDoc, initStyle, kwds, wID, ps); - - delete ps; - DeleteWLStrings(kwds); -} - -void ExternalLexerModule::Fold(unsigned int startPos, int lengthDoc, int initStyle, - WordList *keywordlists[], Accessor &styler) const { - if (!fneFolder) - return ; - - char **kwds = WordListsToStrings(keywordlists); - char *ps = styler.GetProperties(); - - // The accessor passed in is always a DocumentAccessor so this cast and the subsequent - // access will work. Can not use the stricter dynamic_cast as that requires RTTI. - DocumentAccessor &da = static_cast(styler); - WindowID wID = da.GetWindow(); - - fneFolder(externalLanguage, startPos, lengthDoc, initStyle, kwds, wID, ps); - - delete ps; - DeleteWLStrings(kwds); -} - -void ExternalLexerModule::SetExternal(ExtLexerFunction fLexer, ExtFoldFunction fFolder, int index) { - fneLexer = fLexer; - fneFolder = fFolder; - externalLanguage = index; -} - -//------------------------------------------ -// -// LexerLibrary -// -//------------------------------------------ - -LexerLibrary::LexerLibrary(const char* ModuleName) { - // Initialise some members... - first = NULL; - last = NULL; - - // Load the DLL - lib = DynamicLibrary::Load(ModuleName); - if (lib->IsValid()) { - m_sModuleName = ModuleName; - //Cannot use reinterpret_cast because: ANSI C++ forbids casting between pointers to functions and objects - GetLexerCountFn GetLexerCount = (GetLexerCountFn)(sptr_t)lib->FindFunction("GetLexerCount"); - - if (GetLexerCount) { - ExternalLexerModule *lex; - LexerMinder *lm; - - // Find functions in the DLL - GetLexerNameFn GetLexerName = (GetLexerNameFn)(sptr_t)lib->FindFunction("GetLexerName"); - ExtLexerFunction Lexer = (ExtLexerFunction)(sptr_t)lib->FindFunction("Lex"); - ExtFoldFunction Folder = (ExtFoldFunction)(sptr_t)lib->FindFunction("Fold"); - - // Assign a buffer for the lexer name. - char lexname[100]; - strcpy(lexname, ""); - - int nl = GetLexerCount(); - - for (int i = 0; i < nl; i++) { - GetLexerName(i, lexname, 100); - lex = new ExternalLexerModule(SCLEX_AUTOMATIC, NULL, lexname, NULL); - - // Create a LexerMinder so we don't leak the ExternalLexerModule... - lm = new LexerMinder; - lm->self = lex; - lm->next = NULL; - if (first != NULL) { - last->next = lm; - last = lm; - } else { - first = lm; - last = lm; - } - - // The external lexer needs to know how to call into its DLL to - // do its lexing and folding, we tell it here. Folder may be null. - lex->SetExternal(Lexer, Folder, i); - } - } - } - next = NULL; -} - -LexerLibrary::~LexerLibrary() { - Release(); - delete lib; -} - -void LexerLibrary::Release() { - //TODO maintain a list of lexers created, and delete them! - LexerMinder *lm; - LexerMinder *next; - lm = first; - while (NULL != lm) { - next = lm->next; - delete lm->self; - delete lm; - lm = next; - } - - first = NULL; - last = NULL; -} - -//------------------------------------------ -// -// LexerManager -// -//------------------------------------------ - -/// Return the single LexerManager instance... -LexerManager *LexerManager::GetInstance() { - if(!theInstance) - theInstance = new LexerManager; - return theInstance; -} - -/// Delete any LexerManager instance... -void LexerManager::DeleteInstance() -{ - if(theInstance) { - delete theInstance; - theInstance = NULL; - } -} - -/// protected constructor - this is a singleton... -LexerManager::LexerManager() { - first = NULL; - last = NULL; -} - -LexerManager::~LexerManager() { - Clear(); -} - -void LexerManager::Load(const char* path) -{ - LoadLexerLibrary(path); -} - -void LexerManager::LoadLexerLibrary(const char* module) -{ - LexerLibrary *lib = new LexerLibrary(module); - if (NULL != first) { - last->next = lib; - last = lib; - } else { - first = lib; - last = lib; - } -} - -void LexerManager::Clear() -{ - if (NULL != first) { - LexerLibrary *cur = first; - LexerLibrary *next; - while (cur) { - next = cur->next; - delete cur; - cur = next; - } - first = NULL; - last = NULL; - } -} - -//------------------------------------------ -// -// LexerManager -// -//------------------------------------------ - -LMMinder::~LMMinder() -{ - LexerManager::DeleteInstance(); -} - -LMMinder minder; diff --git a/MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/src/ExternalLexer.h b/MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/src/ExternalLexer.h deleted file mode 100644 index ad42ce04..00000000 --- a/MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/src/ExternalLexer.h +++ /dev/null @@ -1,95 +0,0 @@ -// Scintilla source code edit control -/** @file ExternalLexer.h - ** Support external lexers in DLLs. - **/ -// Copyright 2001 Simon Steele , portions copyright Neil Hodgson. -// The License.txt file describes the conditions under which this software may be distributed. - -#ifndef EXTERNALLEXER_H -#define EXTERNALLEXER_H - -#if PLAT_WIN -#define EXT_LEXER_DECL __stdcall -#elif PLAT_GTK -#define EXT_LEXER_DECL -#endif - -// External Lexer function definitions... -typedef void (EXT_LEXER_DECL *ExtLexerFunction)(unsigned int lexer, unsigned int startPos, int length, int initStyle, - char *words[], WindowID window, char *props); -typedef void (EXT_LEXER_DECL *ExtFoldFunction)(unsigned int lexer, unsigned int startPos, int length, int initStyle, - char *words[], WindowID window, char *props); -typedef void* (EXT_LEXER_DECL *GetLexerFunction)(unsigned int Index); -typedef int (EXT_LEXER_DECL *GetLexerCountFn)(); -typedef void (EXT_LEXER_DECL *GetLexerNameFn)(unsigned int Index, char *name, int buflength); - -//class DynamicLibrary; - -/// Sub-class of LexerModule to use an external lexer. -class ExternalLexerModule : protected LexerModule { -protected: - ExtLexerFunction fneLexer; - ExtFoldFunction fneFolder; - int externalLanguage; - char name[100]; -public: - ExternalLexerModule(int language_, LexerFunction fnLexer_, - const char *languageName_=0, LexerFunction fnFolder_=0) : LexerModule(language_, fnLexer_, 0, fnFolder_){ - strncpy(name, languageName_, sizeof(name)); - languageName = name; - }; - virtual void Lex(unsigned int startPos, int lengthDoc, int initStyle, - WordList *keywordlists[], Accessor &styler) const; - virtual void Fold(unsigned int startPos, int lengthDoc, int initStyle, - WordList *keywordlists[], Accessor &styler) const; - virtual void SetExternal(ExtLexerFunction fLexer, ExtFoldFunction fFolder, int index); -}; - -/// LexerMinder points to an ExternalLexerModule - so we don't leak them. -class LexerMinder { -public: - ExternalLexerModule *self; - LexerMinder *next; -}; - -/// LexerLibrary exists for every External Lexer DLL, contains LexerMinders. -class LexerLibrary { - DynamicLibrary *lib; - LexerMinder *first; - LexerMinder *last; - -public: - LexerLibrary(const char* ModuleName); - ~LexerLibrary(); - void Release(); - - LexerLibrary *next; - SString m_sModuleName; -}; - -/// LexerManager manages external lexers, contains LexerLibrarys. -class LexerManager { -public: - ~LexerManager(); - - static LexerManager *GetInstance(); - static void DeleteInstance(); - - void Load(const char* path); - void Clear(); - -private: - LexerManager(); - static LexerManager *theInstance; - - void LoadLexerLibrary(const char* module); - LexerLibrary *first; - LexerLibrary *last; -}; - -class LMMinder { -public: - ~LMMinder(); -}; - -#endif diff --git a/MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/src/Indicator.cxx b/MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/src/Indicator.cxx deleted file mode 100644 index 1c41036c..00000000 --- a/MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/src/Indicator.cxx +++ /dev/null @@ -1,77 +0,0 @@ -// Scintilla source code edit control -/** @file Indicator.cxx - ** Defines the style of indicators which are text decorations such as underlining. - **/ -// Copyright 1998-2001 by Neil Hodgson -// The License.txt file describes the conditions under which this software may be distributed. - -#include "Platform.h" - -#include "Scintilla.h" -#include "Indicator.h" - -void Indicator::Draw(Surface *surface, const PRectangle &rc, const PRectangle &rcLine) { - surface->PenColour(fore.allocated); - int ymid = (rc.bottom + rc.top) / 2; - if (style == INDIC_SQUIGGLE) { - surface->MoveTo(rc.left, rc.top); - int x = rc.left + 2; - int y = 2; - while (x < rc.right) { - surface->LineTo(x, rc.top + y); - x += 2; - y = 2 - y; - } - surface->LineTo(rc.right, rc.top + y); // Finish the line - } else if (style == INDIC_TT) { - surface->MoveTo(rc.left, ymid); - int x = rc.left + 5; - while (x < rc.right) { - surface->LineTo(x, ymid); - surface->MoveTo(x-3, ymid); - surface->LineTo(x-3, ymid+2); - x++; - surface->MoveTo(x, ymid); - x += 5; - } - surface->LineTo(rc.right, ymid); // Finish the line - if (x - 3 <= rc.right) { - surface->MoveTo(x-3, ymid); - surface->LineTo(x-3, ymid+2); - } - } else if (style == INDIC_DIAGONAL) { - int x = rc.left; - while (x < rc.right) { - surface->MoveTo(x, rc.top+2); - int endX = x+3; - int endY = rc.top - 1; - if (endX > rc.right) { - endY += endX - rc.right; - endX = rc.right; - } - surface->LineTo(endX, endY); - x += 4; - } - } else if (style == INDIC_STRIKE) { - surface->MoveTo(rc.left, rc.top - 4); - surface->LineTo(rc.right, rc.top - 4); - } else if (style == INDIC_HIDDEN) { - // Draw nothing - } else if (style == INDIC_BOX) { - surface->MoveTo(rc.left, ymid+1); - surface->LineTo(rc.right, ymid+1); - surface->LineTo(rc.right, rcLine.top+1); - surface->LineTo(rc.left, rcLine.top+1); - surface->LineTo(rc.left, ymid+1); - } else if (style == INDIC_ROUNDBOX) { - PRectangle rcBox = rcLine; - rcBox.top = rcLine.top + 1; - rcBox.left = rc.left; - rcBox.right = rc.right; - surface->AlphaRectangle(rcBox, 1, fore.allocated, 30, fore.allocated, 50, 0); - } else { // Either INDIC_PLAIN or unknown - surface->MoveTo(rc.left, ymid); - surface->LineTo(rc.right, ymid); - } -} - diff --git a/MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/src/Indicator.h b/MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/src/Indicator.h deleted file mode 100644 index 646728ce..00000000 --- a/MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/src/Indicator.h +++ /dev/null @@ -1,22 +0,0 @@ -// Scintilla source code edit control -/** @file Indicator.h - ** Defines the style of indicators which are text decorations such as underlining. - **/ -// Copyright 1998-2001 by Neil Hodgson -// The License.txt file describes the conditions under which this software may be distributed. - -#ifndef INDICATOR_H -#define INDICATOR_H - -/** - */ -class Indicator { -public: - int style; - ColourPair fore; - Indicator() : style(INDIC_PLAIN), fore(ColourDesired(0,0,0)) { - } - void Draw(Surface *surface, const PRectangle &rc, const PRectangle &rcLine); -}; - -#endif diff --git a/MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/src/KeyMap.cxx b/MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/src/KeyMap.cxx deleted file mode 100644 index faf8a21f..00000000 --- a/MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/src/KeyMap.cxx +++ /dev/null @@ -1,148 +0,0 @@ -// Scintilla source code edit control -/** @file KeyMap.cxx - ** Defines a mapping between keystrokes and commands. - **/ -// Copyright 1998-2003 by Neil Hodgson -// The License.txt file describes the conditions under which this software may be distributed. - -#include "Platform.h" - -#include "Scintilla.h" - -#include "KeyMap.h" - -KeyMap::KeyMap() : kmap(0), len(0), alloc(0) { - for (int i = 0; MapDefault[i].key; i++) { - AssignCmdKey(MapDefault[i].key, - MapDefault[i].modifiers, - MapDefault[i].msg); - } -} - -KeyMap::~KeyMap() { - Clear(); -} - -void KeyMap::Clear() { - delete []kmap; - kmap = 0; - len = 0; - alloc = 0; -} - -void KeyMap::AssignCmdKey(int key, int modifiers, unsigned int msg) { - if ((len+1) >= alloc) { - KeyToCommand *ktcNew = new KeyToCommand[alloc + 5]; - if (!ktcNew) - return; - for (int k = 0; k < len; k++) - ktcNew[k] = kmap[k]; - alloc += 5; - delete []kmap; - kmap = ktcNew; - } - for (int keyIndex = 0; keyIndex < len; keyIndex++) { - if ((key == kmap[keyIndex].key) && (modifiers == kmap[keyIndex].modifiers)) { - kmap[keyIndex].msg = msg; - return; - } - } - kmap[len].key = key; - kmap[len].modifiers = modifiers; - kmap[len].msg = msg; - len++; -} - -unsigned int KeyMap::Find(int key, int modifiers) { - for (int i = 0; i < len; i++) { - if ((key == kmap[i].key) && (modifiers == kmap[i].modifiers)) { - return kmap[i].msg; - } - } - return 0; -} - -const KeyToCommand KeyMap::MapDefault[] = { - {SCK_DOWN, SCI_NORM, SCI_LINEDOWN}, - {SCK_DOWN, SCI_SHIFT, SCI_LINEDOWNEXTEND}, - {SCK_DOWN, SCI_CTRL, SCI_LINESCROLLDOWN}, - {SCK_DOWN, SCI_ASHIFT, SCI_LINEDOWNRECTEXTEND}, - {SCK_UP, SCI_NORM, SCI_LINEUP}, - {SCK_UP, SCI_SHIFT, SCI_LINEUPEXTEND}, - {SCK_UP, SCI_CTRL, SCI_LINESCROLLUP}, - {SCK_UP, SCI_ASHIFT, SCI_LINEUPRECTEXTEND}, - {'[', SCI_CTRL, SCI_PARAUP}, - {'[', SCI_CSHIFT, SCI_PARAUPEXTEND}, - {']', SCI_CTRL, SCI_PARADOWN}, - {']', SCI_CSHIFT, SCI_PARADOWNEXTEND}, - {SCK_LEFT, SCI_NORM, SCI_CHARLEFT}, - {SCK_LEFT, SCI_SHIFT, SCI_CHARLEFTEXTEND}, - {SCK_LEFT, SCI_CTRL, SCI_WORDLEFT}, - {SCK_LEFT, SCI_CSHIFT, SCI_WORDLEFTEXTEND}, - {SCK_LEFT, SCI_ASHIFT, SCI_CHARLEFTRECTEXTEND}, - {SCK_RIGHT, SCI_NORM, SCI_CHARRIGHT}, - {SCK_RIGHT, SCI_SHIFT, SCI_CHARRIGHTEXTEND}, - {SCK_RIGHT, SCI_CTRL, SCI_WORDRIGHT}, - {SCK_RIGHT, SCI_CSHIFT, SCI_WORDRIGHTEXTEND}, - {SCK_RIGHT, SCI_ASHIFT, SCI_CHARRIGHTRECTEXTEND}, - {'/', SCI_CTRL, SCI_WORDPARTLEFT}, - {'/', SCI_CSHIFT, SCI_WORDPARTLEFTEXTEND}, - {'\\', SCI_CTRL, SCI_WORDPARTRIGHT}, - {'\\', SCI_CSHIFT, SCI_WORDPARTRIGHTEXTEND}, - {SCK_HOME, SCI_NORM, SCI_VCHOME}, - {SCK_HOME, SCI_SHIFT, SCI_VCHOMEEXTEND}, - {SCK_HOME, SCI_CTRL, SCI_DOCUMENTSTART}, - {SCK_HOME, SCI_CSHIFT, SCI_DOCUMENTSTARTEXTEND}, - {SCK_HOME, SCI_ALT, SCI_HOMEDISPLAY}, -// {SCK_HOME, SCI_ASHIFT, SCI_HOMEDISPLAYEXTEND}, - {SCK_HOME, SCI_ASHIFT, SCI_VCHOMERECTEXTEND}, - {SCK_END, SCI_NORM, SCI_LINEEND}, - {SCK_END, SCI_SHIFT, SCI_LINEENDEXTEND}, - {SCK_END, SCI_CTRL, SCI_DOCUMENTEND}, - {SCK_END, SCI_CSHIFT, SCI_DOCUMENTENDEXTEND}, - {SCK_END, SCI_ALT, SCI_LINEENDDISPLAY}, -// {SCK_END, SCI_ASHIFT, SCI_LINEENDDISPLAYEXTEND}, - {SCK_END, SCI_ASHIFT, SCI_LINEENDRECTEXTEND}, - {SCK_PRIOR, SCI_NORM, SCI_PAGEUP}, - {SCK_PRIOR, SCI_SHIFT, SCI_PAGEUPEXTEND}, - {SCK_PRIOR, SCI_ASHIFT, SCI_PAGEUPRECTEXTEND}, - {SCK_NEXT, SCI_NORM, SCI_PAGEDOWN}, - {SCK_NEXT, SCI_SHIFT, SCI_PAGEDOWNEXTEND}, - {SCK_NEXT, SCI_ASHIFT, SCI_PAGEDOWNRECTEXTEND}, - {SCK_DELETE, SCI_NORM, SCI_CLEAR}, - {SCK_DELETE, SCI_SHIFT, SCI_CUT}, - {SCK_DELETE, SCI_CTRL, SCI_DELWORDRIGHT}, - {SCK_DELETE, SCI_CSHIFT, SCI_DELLINERIGHT}, - {SCK_INSERT, SCI_NORM, SCI_EDITTOGGLEOVERTYPE}, - {SCK_INSERT, SCI_SHIFT, SCI_PASTE}, - {SCK_INSERT, SCI_CTRL, SCI_COPY}, - {SCK_ESCAPE, SCI_NORM, SCI_CANCEL}, - {SCK_BACK, SCI_NORM, SCI_DELETEBACK}, - {SCK_BACK, SCI_SHIFT, SCI_DELETEBACK}, - {SCK_BACK, SCI_CTRL, SCI_DELWORDLEFT}, - {SCK_BACK, SCI_ALT, SCI_UNDO}, - {SCK_BACK, SCI_CSHIFT, SCI_DELLINELEFT}, - {'Z', SCI_CTRL, SCI_UNDO}, - {'Y', SCI_CTRL, SCI_REDO}, - {'X', SCI_CTRL, SCI_CUT}, - {'C', SCI_CTRL, SCI_COPY}, - {'V', SCI_CTRL, SCI_PASTE}, - {'A', SCI_CTRL, SCI_SELECTALL}, - {SCK_TAB, SCI_NORM, SCI_TAB}, - {SCK_TAB, SCI_SHIFT, SCI_BACKTAB}, - {SCK_RETURN, SCI_NORM, SCI_NEWLINE}, - {SCK_RETURN, SCI_SHIFT, SCI_NEWLINE}, - {SCK_ADD, SCI_CTRL, SCI_ZOOMIN}, - {SCK_SUBTRACT, SCI_CTRL, SCI_ZOOMOUT}, - {SCK_DIVIDE, SCI_CTRL, SCI_SETZOOM}, - //'L', SCI_CTRL, SCI_FORMFEED, - {'L', SCI_CTRL, SCI_LINECUT}, - {'L', SCI_CSHIFT, SCI_LINEDELETE}, - {'T', SCI_CSHIFT, SCI_LINECOPY}, - {'T', SCI_CTRL, SCI_LINETRANSPOSE}, - {'D', SCI_CTRL, SCI_SELECTIONDUPLICATE}, - {'U', SCI_CTRL, SCI_LOWERCASE}, - {'U', SCI_CSHIFT, SCI_UPPERCASE}, - {0,0,0}, -}; - diff --git a/MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/src/KeyMap.h b/MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/src/KeyMap.h deleted file mode 100644 index 985d2cd5..00000000 --- a/MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/src/KeyMap.h +++ /dev/null @@ -1,43 +0,0 @@ -// Scintilla source code edit control -/** @file KeyMap.h - ** Defines a mapping between keystrokes and commands. - **/ -// Copyright 1998-2001 by Neil Hodgson -// The License.txt file describes the conditions under which this software may be distributed. - -#ifndef KEYTOCOMMAND_H -#define KEYTOCOMMAND_H - -#define SCI_NORM 0 -#define SCI_SHIFT SCMOD_SHIFT -#define SCI_CTRL SCMOD_CTRL -#define SCI_ALT SCMOD_ALT -#define SCI_CSHIFT (SCI_CTRL | SCI_SHIFT) -#define SCI_ASHIFT (SCI_ALT | SCI_SHIFT) - -/** - */ -class KeyToCommand { -public: - int key; - int modifiers; - unsigned int msg; -}; - -/** - */ -class KeyMap { - KeyToCommand *kmap; - int len; - int alloc; - static const KeyToCommand MapDefault[]; - -public: - KeyMap(); - ~KeyMap(); - void Clear(); - void AssignCmdKey(int key, int modifiers, unsigned int msg); - unsigned int Find(int key, int modifiers); // 0 returned on failure -}; - -#endif diff --git a/MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/src/KeyWords.cxx b/MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/src/KeyWords.cxx deleted file mode 100644 index bb33bd34..00000000 --- a/MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/src/KeyWords.cxx +++ /dev/null @@ -1,221 +0,0 @@ -// Scintilla source code edit control -/** @file KeyWords.cxx - ** Colourise for particular languages. - **/ -// Copyright 1998-2002 by Neil Hodgson -// The License.txt file describes the conditions under which this software may be distributed. - -#include -#include -#include -#include -#include - -#include "Platform.h" - -#include "PropSet.h" -#include "Accessor.h" -#include "KeyWords.h" -#include "Scintilla.h" -#include "SciLexer.h" - -const LexerModule *LexerModule::base = 0; -int LexerModule::nextLanguage = SCLEX_AUTOMATIC+1; - -LexerModule::LexerModule(int language_, - LexerFunction fnLexer_, - const char *languageName_, - LexerFunction fnFolder_, - const char * const wordListDescriptions_[], - int styleBits_) : - language(language_), - fnLexer(fnLexer_), - fnFolder(fnFolder_), - wordListDescriptions(wordListDescriptions_), - styleBits(styleBits_), - languageName(languageName_) { - next = base; - base = this; - if (language == SCLEX_AUTOMATIC) { - language = nextLanguage; - nextLanguage++; - } -} - -int LexerModule::GetNumWordLists() const { - if (wordListDescriptions == NULL) { - return -1; - } else { - int numWordLists = 0; - - while (wordListDescriptions[numWordLists]) { - ++numWordLists; - } - - return numWordLists; - } -} - -const char *LexerModule::GetWordListDescription(int index) const { - static const char *emptyStr = ""; - - PLATFORM_ASSERT(index < GetNumWordLists()); - if (index >= GetNumWordLists()) { - return emptyStr; - } else { - return wordListDescriptions[index]; - } -} - -int LexerModule::GetStyleBitsNeeded() const { - return styleBits; -} - -const LexerModule *LexerModule::Find(int language) { - const LexerModule *lm = base; - while (lm) { - if (lm->language == language) { - return lm; - } - lm = lm->next; - } - return 0; -} - -const LexerModule *LexerModule::Find(const char *languageName) { - if (languageName) { - const LexerModule *lm = base; - while (lm) { - if (lm->languageName && 0 == strcmp(lm->languageName, languageName)) { - return lm; - } - lm = lm->next; - } - } - return 0; -} - -void LexerModule::Lex(unsigned int startPos, int lengthDoc, int initStyle, - WordList *keywordlists[], Accessor &styler) const { - if (fnLexer) - fnLexer(startPos, lengthDoc, initStyle, keywordlists, styler); -} - -void LexerModule::Fold(unsigned int startPos, int lengthDoc, int initStyle, - WordList *keywordlists[], Accessor &styler) const { - if (fnFolder) { - int lineCurrent = styler.GetLine(startPos); - // Move back one line in case deletion wrecked current line fold state - if (lineCurrent > 0) { - lineCurrent--; - int newStartPos = styler.LineStart(lineCurrent); - lengthDoc += startPos - newStartPos; - startPos = newStartPos; - initStyle = 0; - if (startPos > 0) { - initStyle = styler.StyleAt(startPos - 1); - } - } - fnFolder(startPos, lengthDoc, initStyle, keywordlists, styler); - } -} - -// Alternative historical name for Scintilla_LinkLexers -int wxForceScintillaLexers(void) { - return Scintilla_LinkLexers(); -} - -// To add or remove a lexer, add or remove its file and run LexGen.py. - -// Force a reference to all of the Scintilla lexers so that the linker will -// not remove the code of the lexers. -int Scintilla_LinkLexers() { - static int forcer = 0; - -// Shorten the code that declares a lexer and ensures it is linked in by calling a method. -#define LINK_LEXER(lexer) extern LexerModule lexer; forcer += lexer.GetLanguage(); - -//++Autogenerated -- run src/LexGen.py to regenerate -//**\(\tLINK_LEXER(\*);\n\) - LINK_LEXER(lmAda); - LINK_LEXER(lmAns1); - LINK_LEXER(lmAPDL); - LINK_LEXER(lmAsm); - LINK_LEXER(lmASP); - LINK_LEXER(lmAU3); - LINK_LEXER(lmAVE); - LINK_LEXER(lmBaan); - LINK_LEXER(lmBash); - LINK_LEXER(lmBatch); - LINK_LEXER(lmBlitzBasic); - LINK_LEXER(lmBullant); - LINK_LEXER(lmCaml); - LINK_LEXER(lmClw); - LINK_LEXER(lmClwNoCase); - LINK_LEXER(lmConf); - LINK_LEXER(lmCPP); - LINK_LEXER(lmCPPNoCase); - LINK_LEXER(lmCsound); - LINK_LEXER(lmCss); - LINK_LEXER(lmDiff); - LINK_LEXER(lmEiffel); - LINK_LEXER(lmEiffelkw); - LINK_LEXER(lmErlang); - LINK_LEXER(lmErrorList); - LINK_LEXER(lmESCRIPT); - LINK_LEXER(lmF77); - LINK_LEXER(lmFlagShip); - LINK_LEXER(lmForth); - LINK_LEXER(lmFortran); - LINK_LEXER(lmFreeBasic); - LINK_LEXER(lmGui4Cli); - LINK_LEXER(lmHaskell); - LINK_LEXER(lmHTML); - LINK_LEXER(lmInno); - LINK_LEXER(lmKix); - LINK_LEXER(lmLatex); - LINK_LEXER(lmLISP); - LINK_LEXER(lmLot); - LINK_LEXER(lmLout); - LINK_LEXER(lmLua); - LINK_LEXER(lmMake); - LINK_LEXER(lmMatlab); - LINK_LEXER(lmMETAPOST); - LINK_LEXER(lmMMIXAL); - LINK_LEXER(lmMSSQL); - LINK_LEXER(lmNncrontab); - LINK_LEXER(lmNsis); - LINK_LEXER(lmNull); - LINK_LEXER(lmOctave); - LINK_LEXER(lmOpal); - LINK_LEXER(lmPascal); - LINK_LEXER(lmPB); - LINK_LEXER(lmPerl); - LINK_LEXER(lmPHP); - LINK_LEXER(lmPHPSCRIPT); - LINK_LEXER(lmPOV); - LINK_LEXER(lmProps); - LINK_LEXER(lmPS); - LINK_LEXER(lmPureBasic); - LINK_LEXER(lmPython); - LINK_LEXER(lmREBOL); - LINK_LEXER(lmRuby); - LINK_LEXER(lmScriptol); - LINK_LEXER(lmSmalltalk); - LINK_LEXER(lmSpecman); - LINK_LEXER(lmSpice); - LINK_LEXER(lmSQL); - LINK_LEXER(lmTADS3); - LINK_LEXER(lmTCL); - LINK_LEXER(lmTeX); - LINK_LEXER(lmVB); - LINK_LEXER(lmVBScript); - LINK_LEXER(lmVerilog); - LINK_LEXER(lmVHDL); - LINK_LEXER(lmXML); - LINK_LEXER(lmYAML); - -//--Autogenerated -- end of automatically generated section - - return 1; -} diff --git a/MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/src/LexAPDL.cxx b/MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/src/LexAPDL.cxx deleted file mode 100644 index d1347c2e..00000000 --- a/MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/src/LexAPDL.cxx +++ /dev/null @@ -1,136 +0,0 @@ -// Scintilla source code edit control -/** @file LexAPDL.cxx - ** Lexer for APDL. Based on the lexer for Assembler by The Black Horus. - ** By Hadar Raz. - **/ -// Copyright 1998-2003 by Neil Hodgson -// The License.txt file describes the conditions under which this software may be distributed. - -#include -#include -#include -#include -#include - -#include "Platform.h" - -#include "PropSet.h" -#include "Accessor.h" -#include "StyleContext.h" -#include "KeyWords.h" -#include "Scintilla.h" -#include "SciLexer.h" - - -static inline bool IsAWordChar(const int ch) { - return (ch < 0x80 && (isalnum(ch) || ch == '_')); -} - -static inline bool IsAnOperator(char ch) { - // '.' left out as it is used to make up numbers - if (ch == '*' || ch == '/' || ch == '-' || ch == '+' || - ch == '(' || ch == ')' || ch == '=' || ch == '^' || - ch == '[' || ch == ']' || ch == '<' || ch == '&' || - ch == '>' || ch == ',' || ch == '|' || ch == '~' || - ch == '$' || ch == ':' || ch == '%') - return true; - return false; -} - -static void ColouriseAPDLDoc(unsigned int startPos, int length, int initStyle, WordList *keywordlists[], - Accessor &styler) { - - int stringStart = ' '; - - WordList &processors = *keywordlists[0]; - WordList &commands = *keywordlists[1]; - WordList &slashcommands = *keywordlists[2]; - WordList &starcommands = *keywordlists[3]; - WordList &arguments = *keywordlists[4]; - WordList &functions = *keywordlists[5]; - - // Do not leak onto next line - initStyle = SCE_APDL_DEFAULT; - StyleContext sc(startPos, length, initStyle, styler); - - for (; sc.More(); sc.Forward()) { - // Determine if the current state should terminate. - if (sc.state == SCE_APDL_NUMBER) { - if (!(IsADigit(sc.ch) || sc.ch == '.' || (sc.ch == 'e' || sc.ch == 'E') || - ((sc.ch == '+' || sc.ch == '-') && (sc.chPrev == 'e' || sc.chPrev == 'E')))) { - sc.SetState(SCE_APDL_DEFAULT); - } - } else if (sc.state == SCE_APDL_COMMENT) { - if (sc.atLineEnd) { - sc.SetState(SCE_APDL_DEFAULT); - } - } else if (sc.state == SCE_APDL_COMMENTBLOCK) { - if (sc.atLineEnd) { - if (sc.ch == '\r') { - sc.Forward(); - } - sc.ForwardSetState(SCE_APDL_DEFAULT); - } - } else if (sc.state == SCE_APDL_STRING) { - if (sc.atLineEnd) { - sc.SetState(SCE_APDL_DEFAULT); - } else if ((sc.ch == '\'' && stringStart == '\'') || (sc.ch == '\"' && stringStart == '\"')) { - sc.ForwardSetState(SCE_APDL_DEFAULT); - } - } else if (sc.state == SCE_APDL_WORD) { - if (!IsAWordChar(sc.ch)) { - char s[100]; - sc.GetCurrentLowered(s, sizeof(s)); - if (processors.InList(s)) { - sc.ChangeState(SCE_APDL_PROCESSOR); - } else if (slashcommands.InList(s)) { - sc.ChangeState(SCE_APDL_SLASHCOMMAND); - } else if (starcommands.InList(s)) { - sc.ChangeState(SCE_APDL_STARCOMMAND); - } else if (commands.InList(s)) { - sc.ChangeState(SCE_APDL_COMMAND); - } else if (arguments.InList(s)) { - sc.ChangeState(SCE_APDL_ARGUMENT); - } else if (functions.InList(s)) { - sc.ChangeState(SCE_APDL_FUNCTION); - } - sc.SetState(SCE_APDL_DEFAULT); - } - } else if (sc.state == SCE_APDL_OPERATOR) { - if (!IsAnOperator(static_cast(sc.ch))) { - sc.SetState(SCE_APDL_DEFAULT); - } - } - - // Determine if a new state should be entered. - if (sc.state == SCE_APDL_DEFAULT) { - if (sc.ch == '!' && sc.chNext == '!') { - sc.SetState(SCE_APDL_COMMENTBLOCK); - } else if (sc.ch == '!') { - sc.SetState(SCE_APDL_COMMENT); - } else if (IsADigit(sc.ch) || (sc.ch == '.' && IsADigit(sc.chNext))) { - sc.SetState(SCE_APDL_NUMBER); - } else if (sc.ch == '\'' || sc.ch == '\"') { - sc.SetState(SCE_APDL_STRING); - stringStart = sc.ch; - } else if (IsAWordChar(sc.ch) || ((sc.ch == '*' || sc.ch == '/') && !isgraph(sc.chPrev))) { - sc.SetState(SCE_APDL_WORD); - } else if (IsAnOperator(static_cast(sc.ch))) { - sc.SetState(SCE_APDL_OPERATOR); - } - } - } - sc.Complete(); -} - -static const char * const apdlWordListDesc[] = { - "processors", - "commands", - "slashommands", - "starcommands", - "arguments", - "functions", - 0 -}; - -LexerModule lmAPDL(SCLEX_APDL, ColouriseAPDLDoc, "apdl", 0, apdlWordListDesc); diff --git a/MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/src/LexAU3.cxx b/MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/src/LexAU3.cxx deleted file mode 100644 index 2446b238..00000000 --- a/MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/src/LexAU3.cxx +++ /dev/null @@ -1,891 +0,0 @@ -// Scintilla source code edit control -// @file LexAU3.cxx -// Lexer for AutoIt3 http://www.hiddensoft.com/autoit3 -// by Jos van der Zande, jvdzande@yahoo.com -// -// Changes: -// March 28, 2004 - Added the standard Folding code -// April 21, 2004 - Added Preprosessor Table + Syntax Highlighting -// Fixed Number highlighting -// Changed default isoperator to IsAOperator to have a better match to AutoIt3 -// Fixed "#comments_start" -> "#comments-start" -// Fixed "#comments_end" -> "#comments-end" -// Fixed Sendkeys in Strings when not terminated with } -// Added support for Sendkey strings that have second parameter e.g. {UP 5} or {a down} -// April 26, 2004 - Fixed # pre-processor statement inside of comment block would invalidly change the color. -// Added logic for #include to treat the <> as string -// Added underscore to IsAOperator. -// May 17, 2004 - Changed the folding logic from indent to keyword folding. -// Added Folding logic for blocks of single-commentlines or commentblock. -// triggered by: fold.comment=1 -// Added Folding logic for preprocessor blocks triggered by fold.preprocessor=1 -// Added Special for #region - #endregion syntax highlight and folding. -// May 30, 2004 - Fixed issue with continuation lines on If statements. -// June 5, 2004 - Added comma to Operators for better readability. -// Added fold.compact support set with fold.compact=1 -// Changed folding inside of #cs-#ce. Default is no keyword folding inside comment blocks when fold.comment=1 -// it will now only happen when fold.comment=2. -// Sep 5, 2004 - Added logic to handle colourizing words on the last line. -// Typed Characters now show as "default" till they match any table. -// Oct 10, 2004 - Added logic to show Comments in "Special" directives. -// Nov 1, 2004 - Added better testing for Numbers supporting x and e notation. -// Nov 28, 2004 - Added logic to handle continuation lines for syntax highlighting. -// Jan 10, 2005 - Added Abbreviations Keyword used for expansion -// Mar 24, 2005 - Updated Abbreviations Keywords to fix when followed by Operator. -// Apr 18, 2005 - Updated #CE/#Comment-End logic to take a linecomment ";" into account -// - Added folding support for With...EndWith -// - Added support for a DOT in variable names -// - Fixed Underscore in CommentBlock -// May 23, 2005 - Fixed the SentKey lexing in case of a missing } -// Aug 11, 2005 - Fixed possible bug with s_save length > 100. -// Aug 23, 2005 - Added Switch/endswitch support to the folding logic. -// Sep 27, 2005 - Fixed the SentKey lexing logic in case of multiple sentkeys. -// Mar 12, 2006 - Fixed issue with <> coloring as String in stead of Operator in rare occasions. -// Apr 8, 2006 - Added support for AutoIt3 Standard UDF library (SCE_AU3_UDF) -// -// Copyright for Scintilla: 1998-2001 by Neil Hodgson -// The License.txt file describes the conditions under which this software may be distributed. -// Scintilla source code edit control - -#include -#include -#include -#include -#include - -#include "Platform.h" - -#include "PropSet.h" -#include "Accessor.h" -#include "StyleContext.h" -#include "KeyWords.h" -#include "Scintilla.h" -#include "SciLexer.h" - -static inline bool IsTypeCharacter(const int ch) -{ - return ch == '$'; -} -static inline bool IsAWordChar(const int ch) -{ - return (ch < 0x80) && (isalnum(ch) || ch == '_'); -} - -static inline bool IsAWordStart(const int ch) -{ - return (ch < 0x80) && (isalnum(ch) || ch == '_' || ch == '@' || ch == '#' || ch == '$' || ch == '.'); -} - -static inline bool IsAOperator(char ch) { - if (isascii(ch) && isalnum(ch)) - return false; - if (ch == '+' || ch == '-' || ch == '*' || ch == '/' || - ch == '&' || ch == '^' || ch == '=' || ch == '<' || ch == '>' || - ch == '(' || ch == ')' || ch == '[' || ch == ']' || ch == ',' ) - return true; - return false; -} - -/////////////////////////////////////////////////////////////////////////////// -// GetSendKey() filters the portion before and after a/multiple space(s) -// and return the first portion to be looked-up in the table -// also check if the second portion is valid... (up,down.on.off,toggle or a number) -/////////////////////////////////////////////////////////////////////////////// - -static int GetSendKey(const char *szLine, char *szKey) -{ - int nFlag = 0; - int nStartFound = 0; - int nKeyPos = 0; - int nSpecPos= 0; - int nSpecNum= 1; - int nPos = 0; - char cTemp; - char szSpecial[100]; - - // split the portion of the sendkey in the part before and after the spaces - while ( ( (cTemp = szLine[nPos]) != '\0')) - { - // skip leading Ctrl/Shift/Alt state - if (cTemp == '{') { - nStartFound = 1; - } - // - if (nStartFound == 1) { - if ((cTemp == ' ') && (nFlag == 0) ) // get the stuff till first space - { - nFlag = 1; - // Add } to the end of the first bit for table lookup later. - szKey[nKeyPos++] = '}'; - } - else if (cTemp == ' ') - { - // skip other spaces - } - else if (nFlag == 0) - { - // save first portion into var till space or } is hit - szKey[nKeyPos++] = cTemp; - } - else if ((nFlag == 1) && (cTemp != '}')) - { - // Save second portion into var... - szSpecial[nSpecPos++] = cTemp; - // check if Second portion is all numbers for repeat fuction - if (isdigit(cTemp) == false) {nSpecNum = 0;} - } - } - nPos++; // skip to next char - - } // End While - - - // Check if the second portion is either a number or one of these keywords - szKey[nKeyPos] = '\0'; - szSpecial[nSpecPos] = '\0'; - if (strcmp(szSpecial,"down")== 0 || strcmp(szSpecial,"up")== 0 || - strcmp(szSpecial,"on")== 0 || strcmp(szSpecial,"off")== 0 || - strcmp(szSpecial,"toggle")== 0 || nSpecNum == 1 ) - { - nFlag = 0; - } - else - { - nFlag = 1; - } - return nFlag; // 1 is bad, 0 is good - -} // GetSendKey() - -// -// Routine to check the last "none comment" character on a line to see if its a continuation -// -static bool IsContinuationLine(unsigned int szLine, Accessor &styler) -{ - int nsPos = styler.LineStart(szLine); - int nePos = styler.LineStart(szLine+1) - 2; - //int stylech = styler.StyleAt(nsPos); - while (nsPos < nePos) - { - //stylech = styler.StyleAt(nePos); - int stylech = styler.StyleAt(nsPos); - if (!(stylech == SCE_AU3_COMMENT)) { - char ch = styler.SafeGetCharAt(nePos); - if (!isspacechar(ch)) { - if (ch == '_') - return true; - else - return false; - } - } - nePos--; // skip to next char - } // End While - return false; -} // IsContinuationLine() - -// -// syntax highlighting logic -static void ColouriseAU3Doc(unsigned int startPos, - int length, int initStyle, - WordList *keywordlists[], - Accessor &styler) { - - WordList &keywords = *keywordlists[0]; - WordList &keywords2 = *keywordlists[1]; - WordList &keywords3 = *keywordlists[2]; - WordList &keywords4 = *keywordlists[3]; - WordList &keywords5 = *keywordlists[4]; - WordList &keywords6 = *keywordlists[5]; - WordList &keywords7 = *keywordlists[6]; - WordList &keywords8 = *keywordlists[7]; - // find the first previous line without continuation character at the end - int lineCurrent = styler.GetLine(startPos); - int s_startPos = startPos; - // When not inside a Block comment: find First line without _ - if (!(initStyle==SCE_AU3_COMMENTBLOCK)) { - while ((lineCurrent > 0 && IsContinuationLine(lineCurrent,styler)) || - (lineCurrent > 1 && IsContinuationLine(lineCurrent-1,styler))) { - lineCurrent--; - startPos = styler.LineStart(lineCurrent); // get start position - initStyle = 0; // reset the start style to 0 - } - } - // Set the new length to include it from the start and set the start position - length = length + s_startPos - startPos; // correct the total length to process - styler.StartAt(startPos); - - StyleContext sc(startPos, length, initStyle, styler); - char si; // string indicator "=1 '=2 - char ni; // Numeric indicator error=9 normal=0 normal+dec=1 hex=2 Enot=3 - char ci; // comment indicator 0=not linecomment(;) - char s_save[100]; - si=0; - ni=0; - ci=0; - //$$$ - for (; sc.More(); sc.Forward()) { - char s[100]; - sc.GetCurrentLowered(s, sizeof(s)); - // ********************************************** - // save the total current word for eof processing - if (IsAWordChar(sc.ch) || sc.ch == '}') - { - strcpy(s_save,s); - int tp = strlen(s_save); - if (tp < 99) { - s_save[tp] = static_cast(tolower(sc.ch)); - s_save[tp+1] = '\0'; - } - } - // ********************************************** - // - switch (sc.state) - { - case SCE_AU3_COMMENTBLOCK: - { - //Reset at line end - if (sc.atLineEnd) { - ci=0; - sc.SetState(SCE_AU3_COMMENTBLOCK); - } - //skip rest of line when a ; is encountered - if (sc.chPrev == ';') { - ci=2; - sc.SetState(SCE_AU3_COMMENTBLOCK); - } - // skip rest of the line - if (ci==2) - break; - // check when first character is detected on the line - if (ci==0) { - if (IsAWordStart(static_cast(sc.ch)) || IsAOperator(static_cast(sc.ch))) { - ci=1; - sc.SetState(SCE_AU3_COMMENTBLOCK); - } - break; - } - if (!(IsAWordChar(sc.ch) || (sc.ch == '-' && strcmp(s, "#comments") == 0))) { - if ((strcmp(s, "#ce")== 0 || strcmp(s, "#comments-end")== 0)) - sc.SetState(SCE_AU3_COMMENT); // set to comment line for the rest of the line - else - ci=2; // line doesn't begin with #CE so skip the rest of the line - } - break; - } - case SCE_AU3_COMMENT: - { - if (sc.atLineEnd) {sc.SetState(SCE_AU3_DEFAULT);} - break; - } - case SCE_AU3_OPERATOR: - { - // check if its a COMobject - if (sc.chPrev == '.' && IsAWordChar(sc.ch)) { - sc.SetState(SCE_AU3_COMOBJ); - } - else { - sc.SetState(SCE_AU3_DEFAULT); - } - break; - } - case SCE_AU3_SPECIAL: - { - if (sc.ch == ';') {sc.SetState(SCE_AU3_COMMENT);} - if (sc.atLineEnd) {sc.SetState(SCE_AU3_DEFAULT);} - break; - } - case SCE_AU3_KEYWORD: - { - if (!(IsAWordChar(sc.ch) || (sc.ch == '-' && (strcmp(s, "#comments") == 0 || strcmp(s, "#include") == 0)))) - { - if (!IsTypeCharacter(sc.ch)) - { - if (strcmp(s, "#cs")== 0 || strcmp(s, "#comments-start")== 0 ) - { - sc.ChangeState(SCE_AU3_COMMENTBLOCK); - sc.SetState(SCE_AU3_COMMENTBLOCK); - } - else if (keywords.InList(s)) { - sc.ChangeState(SCE_AU3_KEYWORD); - sc.SetState(SCE_AU3_DEFAULT); - } - else if (keywords2.InList(s)) { - sc.ChangeState(SCE_AU3_FUNCTION); - sc.SetState(SCE_AU3_DEFAULT); - } - else if (keywords3.InList(s)) { - sc.ChangeState(SCE_AU3_MACRO); - sc.SetState(SCE_AU3_DEFAULT); - } - else if (keywords5.InList(s)) { - sc.ChangeState(SCE_AU3_PREPROCESSOR); - sc.SetState(SCE_AU3_DEFAULT); - if (strcmp(s, "#include")== 0) - { - si = 3; // use to determine string start for #inlude <> - } - } - else if (keywords6.InList(s)) { - sc.ChangeState(SCE_AU3_SPECIAL); - sc.SetState(SCE_AU3_SPECIAL); - } - else if ((keywords7.InList(s)) && (!IsAOperator(static_cast(sc.ch)))) { - sc.ChangeState(SCE_AU3_EXPAND); - sc.SetState(SCE_AU3_DEFAULT); - } - else if (keywords8.InList(s)) { - sc.ChangeState(SCE_AU3_UDF); - sc.SetState(SCE_AU3_DEFAULT); - } - else if (strcmp(s, "_") == 0) { - sc.ChangeState(SCE_AU3_OPERATOR); - sc.SetState(SCE_AU3_DEFAULT); - } - else if (!IsAWordChar(sc.ch)) { - sc.ChangeState(SCE_AU3_DEFAULT); - sc.SetState(SCE_AU3_DEFAULT); - } - } - } - if (sc.atLineEnd) { - sc.SetState(SCE_AU3_DEFAULT);} - break; - } - case SCE_AU3_NUMBER: - { - // Numeric indicator error=9 normal=0 normal+dec=1 hex=2 E-not=3 - // - // test for Hex notation - if (strcmp(s, "0") == 0 && (sc.ch == 'x' || sc.ch == 'X') && ni == 0) - { - ni = 2; - break; - } - // test for E notation - if (IsADigit(sc.chPrev) && (sc.ch == 'e' || sc.ch == 'E') && ni <= 1) - { - ni = 3; - break; - } - // Allow Hex characters inside hex numeric strings - if ((ni == 2) && - (sc.ch == 'a' || sc.ch == 'b' || sc.ch == 'c' || sc.ch == 'd' || sc.ch == 'e' || sc.ch == 'f' || - sc.ch == 'A' || sc.ch == 'B' || sc.ch == 'C' || sc.ch == 'D' || sc.ch == 'E' || sc.ch == 'F' )) - { - break; - } - // test for 1 dec point only - if (sc.ch == '.') - { - if (ni==0) - { - ni=1; - } - else - { - ni=9; - } - break; - } - // end of numeric string ? - if (!(IsADigit(sc.ch))) - { - if (ni==9) - { - sc.ChangeState(SCE_AU3_DEFAULT); - } - sc.SetState(SCE_AU3_DEFAULT); - } - break; - } - case SCE_AU3_VARIABLE: - { - // Check if its a COMObject - if (sc.ch == '.' && !IsADigit(sc.chNext)) { - sc.SetState(SCE_AU3_OPERATOR); - } - else if (!IsAWordChar(sc.ch)) { - sc.SetState(SCE_AU3_DEFAULT); - } - break; - } - case SCE_AU3_COMOBJ: - { - if (!(IsAWordChar(sc.ch))) { - sc.SetState(SCE_AU3_DEFAULT); - } - break; - } - case SCE_AU3_STRING: - { - // check for " to end a double qouted string or - // check for ' to end a single qouted string - if ((si == 1 && sc.ch == '\"') || (si == 2 && sc.ch == '\'') || (si == 3 && sc.ch == '>')) - { - sc.ForwardSetState(SCE_AU3_DEFAULT); - si=0; - } - if (sc.atLineEnd) - { - si=0; - // at line end and not found a continuation char then reset to default - int lineCurrent = styler.GetLine(sc.currentPos); - if (!IsContinuationLine(lineCurrent,styler)) - { - sc.SetState(SCE_AU3_DEFAULT); - } - } - // find Sendkeys in a STRING - if (sc.ch == '{' || sc.ch == '+' || sc.ch == '!' || sc.ch == '^' || sc.ch == '#' ) { - sc.SetState(SCE_AU3_SENT);} - break; - } - - case SCE_AU3_SENT: - { - // Send key string ended - if (sc.chPrev == '}' && sc.ch != '}') - { - // set color to SENDKEY when valid sendkey .. else set back to regular string - char sk[100]; - // split {111 222} and return {111} and check if 222 is valid. - // if return code = 1 then invalid 222 so must be string - if (GetSendKey(s,sk)) - { - sc.ChangeState(SCE_AU3_STRING); - } - // if single char between {?} then its ok as sendkey for a single character - else if (strlen(sk) == 3) - { - sc.ChangeState(SCE_AU3_SENT); - } - // if sendkey {111} is in table then ok as sendkey - else if (keywords4.InList(sk)) - { - sc.ChangeState(SCE_AU3_SENT); - } - else - { - sc.ChangeState(SCE_AU3_STRING); - } - sc.SetState(SCE_AU3_STRING); - } - else - { - // check if the start is a valid SendKey start - int nPos = 0; - int nState = 1; - char cTemp; - while (!(nState == 2) && ((cTemp = s[nPos]) != '\0')) - { - if (cTemp == '{' && nState == 1) - { - nState = 2; - } - if (nState == 1 && !(cTemp == '+' || cTemp == '!' || cTemp == '^' || cTemp == '#' )) - { - nState = 0; - } - nPos++; - } - //Verify characters infront of { ... if not assume regular string - if (nState == 1 && (!(sc.ch == '{' || sc.ch == '+' || sc.ch == '!' || sc.ch == '^' || sc.ch == '#' ))) { - sc.ChangeState(SCE_AU3_STRING); - sc.SetState(SCE_AU3_STRING); - } - // If invalid character found then assume its a regular string - if (nState == 0) { - sc.ChangeState(SCE_AU3_STRING); - sc.SetState(SCE_AU3_STRING); - } - } - // check if next portion is again a sendkey - if (sc.atLineEnd) - { - sc.ChangeState(SCE_AU3_STRING); - sc.SetState(SCE_AU3_DEFAULT); - si = 0; // reset string indicator - } - //* check in next characters following a sentkey are again a sent key - // Need this test incase of 2 sentkeys like {F1}{ENTER} but not detect {{} - if (sc.state == SCE_AU3_STRING && (sc.ch == '{' || sc.ch == '+' || sc.ch == '!' || sc.ch == '^' || sc.ch == '#' )) { - sc.SetState(SCE_AU3_SENT);} - // check to see if the string ended... - // Sendkey string isn't complete but the string ended.... - if ((si == 1 && sc.ch == '\"') || (si == 2 && sc.ch == '\'')) - { - sc.ChangeState(SCE_AU3_STRING); - sc.ForwardSetState(SCE_AU3_DEFAULT); - } - break; - } - } //switch (sc.state) - - // Determine if a new state should be entered: - - if (sc.state == SCE_AU3_DEFAULT) - { - if (sc.ch == ';') {sc.SetState(SCE_AU3_COMMENT);} - else if (sc.ch == '#') {sc.SetState(SCE_AU3_KEYWORD);} - else if (sc.ch == '$') {sc.SetState(SCE_AU3_VARIABLE);} - else if (sc.ch == '.' && !IsADigit(sc.chNext)) {sc.SetState(SCE_AU3_OPERATOR);} - else if (sc.ch == '@') {sc.SetState(SCE_AU3_KEYWORD);} - //else if (sc.ch == '_') {sc.SetState(SCE_AU3_KEYWORD);} - else if (sc.ch == '<' && si==3) {sc.SetState(SCE_AU3_STRING);} // string after #include - else if (sc.ch == '\"') { - sc.SetState(SCE_AU3_STRING); - si = 1; } - else if (sc.ch == '\'') { - sc.SetState(SCE_AU3_STRING); - si = 2; } - else if (IsADigit(sc.ch) || (sc.ch == '.' && IsADigit(sc.chNext))) - { - sc.SetState(SCE_AU3_NUMBER); - ni = 0; - } - else if (IsAWordStart(sc.ch)) {sc.SetState(SCE_AU3_KEYWORD);} - else if (IsAOperator(static_cast(sc.ch))) {sc.SetState(SCE_AU3_OPERATOR);} - else if (sc.atLineEnd) {sc.SetState(SCE_AU3_DEFAULT);} - } - } //for (; sc.More(); sc.Forward()) - - //************************************* - // Colourize the last word correctly - //************************************* - if (sc.state == SCE_AU3_KEYWORD) - { - if (strcmp(s_save, "#cs")== 0 || strcmp(s_save, "#comments-start")== 0 ) - { - sc.ChangeState(SCE_AU3_COMMENTBLOCK); - sc.SetState(SCE_AU3_COMMENTBLOCK); - } - else if (keywords.InList(s_save)) { - sc.ChangeState(SCE_AU3_KEYWORD); - sc.SetState(SCE_AU3_KEYWORD); - } - else if (keywords2.InList(s_save)) { - sc.ChangeState(SCE_AU3_FUNCTION); - sc.SetState(SCE_AU3_FUNCTION); - } - else if (keywords3.InList(s_save)) { - sc.ChangeState(SCE_AU3_MACRO); - sc.SetState(SCE_AU3_MACRO); - } - else if (keywords5.InList(s_save)) { - sc.ChangeState(SCE_AU3_PREPROCESSOR); - sc.SetState(SCE_AU3_PREPROCESSOR); - } - else if (keywords6.InList(s_save)) { - sc.ChangeState(SCE_AU3_SPECIAL); - sc.SetState(SCE_AU3_SPECIAL); - } - else if (keywords7.InList(s_save) && sc.atLineEnd) { - sc.ChangeState(SCE_AU3_EXPAND); - sc.SetState(SCE_AU3_EXPAND); - } - else if (keywords8.InList(s_save)) { - sc.ChangeState(SCE_AU3_UDF); - sc.SetState(SCE_AU3_UDF); - } - else { - sc.ChangeState(SCE_AU3_DEFAULT); - sc.SetState(SCE_AU3_DEFAULT); - } - } - if (sc.state == SCE_AU3_SENT) - { - // Send key string ended - if (sc.chPrev == '}' && sc.ch != '}') - { - // set color to SENDKEY when valid sendkey .. else set back to regular string - char sk[100]; - // split {111 222} and return {111} and check if 222 is valid. - // if return code = 1 then invalid 222 so must be string - if (GetSendKey(s_save,sk)) - { - sc.ChangeState(SCE_AU3_STRING); - } - // if single char between {?} then its ok as sendkey for a single character - else if (strlen(sk) == 3) - { - sc.ChangeState(SCE_AU3_SENT); - } - // if sendkey {111} is in table then ok as sendkey - else if (keywords4.InList(sk)) - { - sc.ChangeState(SCE_AU3_SENT); - } - else - { - sc.ChangeState(SCE_AU3_STRING); - } - sc.SetState(SCE_AU3_STRING); - } - // check if next portion is again a sendkey - if (sc.atLineEnd) - { - sc.ChangeState(SCE_AU3_STRING); - sc.SetState(SCE_AU3_DEFAULT); - } - } - //************************************* - sc.Complete(); -} - -// -static bool IsStreamCommentStyle(int style) { - return style == SCE_AU3_COMMENT || style == SCE_AU3_COMMENTBLOCK; -} - -// -// Routine to find first none space on the current line and return its Style -// needed for comment lines not starting on pos 1 -static int GetStyleFirstWord(unsigned int szLine, Accessor &styler) -{ - int nsPos = styler.LineStart(szLine); - int nePos = styler.LineStart(szLine+1) - 1; - while (isspacechar(styler.SafeGetCharAt(nsPos)) && nsPos < nePos) - { - nsPos++; // skip to next char - - } // End While - return styler.StyleAt(nsPos); - -} // GetStyleFirstWord() - - -// -static void FoldAU3Doc(unsigned int startPos, int length, int, WordList *[], Accessor &styler) -{ - int endPos = startPos + length; - // get settings from the config files for folding comments and preprocessor lines - bool foldComment = styler.GetPropertyInt("fold.comment") != 0; - bool foldInComment = styler.GetPropertyInt("fold.comment") == 2; - bool foldCompact = styler.GetPropertyInt("fold.compact", 1) != 0; - bool foldpreprocessor = styler.GetPropertyInt("fold.preprocessor") != 0; - // Backtrack to previous line in case need to fix its fold status - int lineCurrent = styler.GetLine(startPos); - if (startPos > 0) { - if (lineCurrent > 0) { - lineCurrent--; - startPos = styler.LineStart(lineCurrent); - } - } - // vars for style of previous/current/next lines - int style = GetStyleFirstWord(lineCurrent,styler); - int stylePrev = 0; - // find the first previous line without continuation character at the end - while ((lineCurrent > 0 && IsContinuationLine(lineCurrent,styler)) || - (lineCurrent > 1 && IsContinuationLine(lineCurrent-1,styler))) { - lineCurrent--; - startPos = styler.LineStart(lineCurrent); - } - if (lineCurrent > 0) { - stylePrev = GetStyleFirstWord(lineCurrent-1,styler); - } - // vars for getting first word to check for keywords - bool FirstWordStart = false; - bool FirstWordEnd = false; - char szKeyword[10]=""; - int szKeywordlen = 0; - char szThen[5]=""; - int szThenlen = 0; - bool ThenFoundLast = false; - // var for indentlevel - int levelCurrent = SC_FOLDLEVELBASE; - if (lineCurrent > 0) - levelCurrent = styler.LevelAt(lineCurrent-1) >> 16; - int levelNext = levelCurrent; - // - int visibleChars = 0; - char chNext = styler.SafeGetCharAt(startPos); - char chPrev = ' '; - // - for (int i = startPos; i < endPos; i++) { - char ch = chNext; - chNext = styler.SafeGetCharAt(i + 1); - if (IsAWordChar(ch)) { - visibleChars++; - } - // get the syle for the current character neede to check in comment - int stylech = styler.StyleAt(i); - // get first word for the line for indent check max 9 characters - if (FirstWordStart && (!(FirstWordEnd))) { - if (!IsAWordChar(ch)) { - FirstWordEnd = true; - szKeyword[szKeywordlen] = '\0'; - } - else { - if (szKeywordlen < 10) { - szKeyword[szKeywordlen++] = static_cast(tolower(ch)); - } - } - } - // start the capture of the first word - if (!(FirstWordStart)) { - if (IsAWordChar(ch) || IsAWordStart(ch) || ch == ';') { - FirstWordStart = true; - szKeyword[szKeywordlen++] = static_cast(tolower(ch)); - } - } - // only process this logic when not in comment section - if (!(stylech == SCE_AU3_COMMENT)) { - if (ThenFoundLast) { - if (IsAWordChar(ch)) { - ThenFoundLast = false; - } - } - // find out if the word "then" is the last on a "if" line - if (FirstWordEnd && strcmp(szKeyword,"if") == 0) { - if (szThenlen == 4) { - szThen[0] = szThen[1]; - szThen[1] = szThen[2]; - szThen[2] = szThen[3]; - szThen[3] = static_cast(tolower(ch)); - if (strcmp(szThen,"then") == 0 ) { - ThenFoundLast = true; - } - } - else { - szThen[szThenlen++] = static_cast(tolower(ch)); - if (szThenlen == 5) { - szThen[4] = '\0'; - } - } - } - } - // End of Line found so process the information - if ((ch == '\r' && chNext != '\n') || (ch == '\n') || (i == endPos)) { - // ************************** - // Folding logic for Keywords - // ************************** - // if a keyword is found on the current line and the line doesn't end with _ (continuation) - // and we are not inside a commentblock. - if (szKeywordlen > 0 && (!(chPrev == '_')) && - ((!(IsStreamCommentStyle(style)) || foldInComment)) ) { - szKeyword[szKeywordlen] = '\0'; - // only fold "if" last keyword is "then" (else its a one line if) - if (strcmp(szKeyword,"if") == 0 && ThenFoundLast) { - levelNext++; - } - // create new fold for these words - if (strcmp(szKeyword,"do") == 0 || strcmp(szKeyword,"for") == 0 || - strcmp(szKeyword,"func") == 0 || strcmp(szKeyword,"while") == 0|| - strcmp(szKeyword,"with") == 0 || strcmp(szKeyword,"#region") == 0 ) { - levelNext++; - } - // create double Fold for select&switch because Case will subtract one of the current level - if (strcmp(szKeyword,"select") == 0 || strcmp(szKeyword,"switch") == 0) { - levelNext++; - levelNext++; - } - // end the fold for these words before the current line - if (strcmp(szKeyword,"endfunc") == 0 || strcmp(szKeyword,"endif") == 0 || - strcmp(szKeyword,"next") == 0 || strcmp(szKeyword,"until") == 0 || - strcmp(szKeyword,"endwith") == 0 ||strcmp(szKeyword,"wend") == 0){ - levelNext--; - levelCurrent--; - } - // end the fold for these words before the current line and Start new fold - if (strcmp(szKeyword,"case") == 0 || strcmp(szKeyword,"else") == 0 || - strcmp(szKeyword,"elseif") == 0 ) { - levelCurrent--; - } - // end the double fold for this word before the current line - if (strcmp(szKeyword,"endselect") == 0 || strcmp(szKeyword,"endswitch") == 0 ) { - levelNext--; - levelNext--; - levelCurrent--; - levelCurrent--; - } - // end the fold for these words on the current line - if (strcmp(szKeyword,"#endregion") == 0 ) { - levelNext--; - } - } - // Preprocessor and Comment folding - int styleNext = GetStyleFirstWord(lineCurrent + 1,styler); - // ************************************* - // Folding logic for preprocessor blocks - // ************************************* - // process preprosessor line - if (foldpreprocessor && style == SCE_AU3_PREPROCESSOR) { - if (!(stylePrev == SCE_AU3_PREPROCESSOR) && (styleNext == SCE_AU3_PREPROCESSOR)) { - levelNext++; - } - // fold till the last line for normal comment lines - else if (stylePrev == SCE_AU3_PREPROCESSOR && !(styleNext == SCE_AU3_PREPROCESSOR)) { - levelNext--; - } - } - // ********************************* - // Folding logic for Comment blocks - // ********************************* - if (foldComment && IsStreamCommentStyle(style)) { - // Start of a comment block - if (!(stylePrev==style) && IsStreamCommentStyle(styleNext) && styleNext==style) { - levelNext++; - } - // fold till the last line for normal comment lines - else if (IsStreamCommentStyle(stylePrev) - && !(styleNext == SCE_AU3_COMMENT) - && stylePrev == SCE_AU3_COMMENT - && style == SCE_AU3_COMMENT) { - levelNext--; - } - // fold till the one but last line for Blockcomment lines - else if (IsStreamCommentStyle(stylePrev) - && !(styleNext == SCE_AU3_COMMENTBLOCK) - && style == SCE_AU3_COMMENTBLOCK) { - levelNext--; - levelCurrent--; - } - } - int levelUse = levelCurrent; - int lev = levelUse | levelNext << 16; - if (visibleChars == 0 && foldCompact) - lev |= SC_FOLDLEVELWHITEFLAG; - if (levelUse < levelNext) { - lev |= SC_FOLDLEVELHEADERFLAG; - } - if (lev != styler.LevelAt(lineCurrent)) { - styler.SetLevel(lineCurrent, lev); - } - // reset values for the next line - lineCurrent++; - stylePrev = style; - style = styleNext; - levelCurrent = levelNext; - visibleChars = 0; - // if the last character is an Underscore then don't reset since the line continues on the next line. - if (!(chPrev == '_')) { - szKeywordlen = 0; - szThenlen = 0; - FirstWordStart = false; - FirstWordEnd = false; - ThenFoundLast = false; - } - } - // save the last processed character - if (!isspacechar(ch)) { - chPrev = ch; - visibleChars++; - } - } -} - - -// - -static const char * const AU3WordLists[] = { - "#autoit keywords", - "#autoit functions", - "#autoit macros", - "#autoit Sent keys", - "#autoit Pre-processors", - "#autoit Special", - "#autoit Expand", - "#autoit UDF", - 0 -}; -LexerModule lmAU3(SCLEX_AU3, ColouriseAU3Doc, "au3", FoldAU3Doc , AU3WordLists); diff --git a/MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/src/LexAVE.cxx b/MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/src/LexAVE.cxx deleted file mode 100644 index aa57f169..00000000 --- a/MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/src/LexAVE.cxx +++ /dev/null @@ -1,225 +0,0 @@ -// SciTE - Scintilla based Text Editor -/** @file LexAVE.cxx - ** Lexer for Avenue. - ** - ** Written by Alexey Yutkin . - **/ -// Copyright 1998-2002 by Neil Hodgson -// The License.txt file describes the conditions under which this software may be distributed. - -#include -#include -#include -#include -#include - -#include "Platform.h" - -#include "PropSet.h" -#include "Accessor.h" -#include "StyleContext.h" -#include "KeyWords.h" -#include "Scintilla.h" -#include "SciLexer.h" - - - -static inline bool IsAWordChar(const int ch) { - return (ch < 0x80) && (isalnum(ch) || ch == '.' || ch == '_'); -} -static inline bool IsEnumChar(const int ch) { - return (ch < 0x80) && (isalnum(ch)|| ch == '_'); -} -static inline bool IsANumberChar(const int ch) { - return (ch < 0x80) && (isalnum(ch) || ch == '.' ); -} - -inline bool IsAWordStart(const int ch) { - return (ch < 0x80) && (isalnum(ch) || ch == '_'); -} - -inline bool isAveOperator(char ch) { - if (isalnum(ch)) - return false; - // '.' left out as it is used to make up numbers - if (ch == '*' || ch == '/' || ch == '-' || ch == '+' || - ch == '(' || ch == ')' || ch == '=' || - ch == '{' || ch == '}' || - ch == '[' || ch == ']' || ch == ';' || - ch == '<' || ch == '>' || ch == ',' || - ch == '.' ) - return true; - return false; -} - -static void ColouriseAveDoc( - unsigned int startPos, - int length, - int initStyle, - WordList *keywordlists[], - Accessor &styler) { - - WordList &keywords = *keywordlists[0]; - WordList &keywords2 = *keywordlists[1]; - WordList &keywords3 = *keywordlists[2]; - WordList &keywords4 = *keywordlists[3]; - WordList &keywords5 = *keywordlists[4]; - WordList &keywords6 = *keywordlists[5]; - - // Do not leak onto next line - if (initStyle == SCE_AVE_STRINGEOL) { - initStyle = SCE_AVE_DEFAULT; - } - - StyleContext sc(startPos, length, initStyle, styler); - - for (; sc.More(); sc.Forward()) { - if (sc.atLineEnd) { - // Update the line state, so it can be seen by next line - int currentLine = styler.GetLine(sc.currentPos); - styler.SetLineState(currentLine, 0); - } - if (sc.atLineStart && (sc.state == SCE_AVE_STRING)) { - // Prevent SCE_AVE_STRINGEOL from leaking back to previous line - sc.SetState(SCE_AVE_STRING); - } - - - // Determine if the current state should terminate. - if (sc.state == SCE_AVE_OPERATOR) { - sc.SetState(SCE_AVE_DEFAULT); - } else if (sc.state == SCE_AVE_NUMBER) { - if (!IsANumberChar(sc.ch)) { - sc.SetState(SCE_AVE_DEFAULT); - } - } else if (sc.state == SCE_AVE_ENUM) { - if (!IsEnumChar(sc.ch)) { - sc.SetState(SCE_AVE_DEFAULT); - } - } else if (sc.state == SCE_AVE_IDENTIFIER) { - if (!IsAWordChar(sc.ch) || (sc.ch == '.')) { - char s[100]; - //sc.GetCurrent(s, sizeof(s)); - sc.GetCurrentLowered(s, sizeof(s)); - if (keywords.InList(s)) { - sc.ChangeState(SCE_AVE_WORD); - } else if (keywords2.InList(s)) { - sc.ChangeState(SCE_AVE_WORD2); - } else if (keywords3.InList(s)) { - sc.ChangeState(SCE_AVE_WORD3); - } else if (keywords4.InList(s)) { - sc.ChangeState(SCE_AVE_WORD4); - } else if (keywords5.InList(s)) { - sc.ChangeState(SCE_AVE_WORD5); - } else if (keywords6.InList(s)) { - sc.ChangeState(SCE_AVE_WORD6); - } - sc.SetState(SCE_AVE_DEFAULT); - } - } else if (sc.state == SCE_AVE_COMMENT) { - if (sc.atLineEnd) { - sc.SetState(SCE_AVE_DEFAULT); - } - } else if (sc.state == SCE_AVE_STRING) { - if (sc.ch == '\"') { - sc.ForwardSetState(SCE_AVE_DEFAULT); - } else if (sc.atLineEnd) { - sc.ChangeState(SCE_AVE_STRINGEOL); - sc.ForwardSetState(SCE_AVE_DEFAULT); - } - } - - // Determine if a new state should be entered. - if (sc.state == SCE_AVE_DEFAULT) { - if (IsADigit(sc.ch) || (sc.ch == '.' && IsADigit(sc.chNext))) { - sc.SetState(SCE_AVE_NUMBER); - } else if (IsAWordStart(sc.ch)) { - sc.SetState(SCE_AVE_IDENTIFIER); - } else if (sc.Match('\"')) { - sc.SetState(SCE_AVE_STRING); - } else if (sc.Match('\'')) { - sc.SetState(SCE_AVE_COMMENT); - sc.Forward(); - } else if (isAveOperator(static_cast(sc.ch))) { - sc.SetState(SCE_AVE_OPERATOR); - } else if (sc.Match('#')) { - sc.SetState(SCE_AVE_ENUM); - sc.Forward(); - } - } - } - sc.Complete(); -} - -static void FoldAveDoc(unsigned int startPos, int length, int /* initStyle */, WordList *[], - Accessor &styler) { - unsigned int lengthDoc = startPos + length; - int visibleChars = 0; - int lineCurrent = styler.GetLine(startPos); - int levelPrev = styler.LevelAt(lineCurrent) & SC_FOLDLEVELNUMBERMASK; - int levelCurrent = levelPrev; - char chNext = static_cast(tolower(styler[startPos])); - bool foldCompact = styler.GetPropertyInt("fold.compact", 1) != 0; - int styleNext = styler.StyleAt(startPos); - char s[10]; - - for (unsigned int i = startPos; i < lengthDoc; i++) { - char ch = static_cast(tolower(chNext)); - chNext = static_cast(tolower(styler.SafeGetCharAt(i + 1))); - int style = styleNext; - styleNext = styler.StyleAt(i + 1); - bool atEOL = (ch == '\r' && chNext != '\n') || (ch == '\n'); - if (style == SCE_AVE_WORD) { - if (ch == 't' || ch == 'f' || ch == 'w' || ch == 'e') { - for (unsigned int j = 0; j < 6; j++) { - if (!iswordchar(styler[i + j])) { - break; - } - s[j] = static_cast(tolower(styler[i + j])); - s[j + 1] = '\0'; - } - - if ((strcmp(s, "then") == 0) || (strcmp(s, "for") == 0) || (strcmp(s, "while") == 0)) { - levelCurrent++; - } - if ((strcmp(s, "end") == 0) || (strcmp(s, "elseif") == 0)) { - // Normally "elseif" and "then" will be on the same line and will cancel - // each other out. // As implemented, this does not support fold.at.else. - levelCurrent--; - } - } - } else if (style == SCE_AVE_OPERATOR) { - if (ch == '{' || ch == '(') { - levelCurrent++; - } else if (ch == '}' || ch == ')') { - levelCurrent--; - } - } - - if (atEOL) { - int lev = levelPrev; - if (visibleChars == 0 && foldCompact) { - lev |= SC_FOLDLEVELWHITEFLAG; - } - if ((levelCurrent > levelPrev) && (visibleChars > 0)) { - lev |= SC_FOLDLEVELHEADERFLAG; - } - if (lev != styler.LevelAt(lineCurrent)) { - styler.SetLevel(lineCurrent, lev); - } - lineCurrent++; - levelPrev = levelCurrent; - visibleChars = 0; - } - if (!isspacechar(ch)) { - visibleChars++; - } - } - // Fill in the real level of the next line, keeping the current flags as they will be filled in later - - int flagsNext = styler.LevelAt(lineCurrent) & ~SC_FOLDLEVELNUMBERMASK; - styler.SetLevel(lineCurrent, levelPrev | flagsNext); -} - -LexerModule lmAVE(SCLEX_AVE, ColouriseAveDoc, "ave", FoldAveDoc); - diff --git a/MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/src/LexAda.cxx b/MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/src/LexAda.cxx deleted file mode 100644 index ac284ba7..00000000 --- a/MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/src/LexAda.cxx +++ /dev/null @@ -1,520 +0,0 @@ -// Scintilla source code edit control -/** @file LexAda.cxx - ** Lexer for Ada 95 - **/ -// Copyright 2002 by Sergey Koshcheyev -// The License.txt file describes the conditions under which this software may be distributed. - -#include -#include -#include -#include - -#include "Platform.h" - -#include "Accessor.h" -#include "StyleContext.h" -#include "PropSet.h" -#include "KeyWords.h" -#include "SciLexer.h" -#include "SString.h" - -/* - * Interface - */ - -static void ColouriseDocument( - unsigned int startPos, - int length, - int initStyle, - WordList *keywordlists[], - Accessor &styler); - -static const char * const adaWordListDesc[] = { - "Keywords", - 0 -}; - -LexerModule lmAda(SCLEX_ADA, ColouriseDocument, "ada", NULL, adaWordListDesc); - -/* - * Implementation - */ - -// Functions that have apostropheStartsAttribute as a parameter set it according to whether -// an apostrophe encountered after processing the current token will start an attribute or -// a character literal. -static void ColouriseCharacter(StyleContext& sc, bool& apostropheStartsAttribute); -static void ColouriseComment(StyleContext& sc, bool& apostropheStartsAttribute); -static void ColouriseContext(StyleContext& sc, char chEnd, int stateEOL); -static void ColouriseDelimiter(StyleContext& sc, bool& apostropheStartsAttribute); -static void ColouriseLabel(StyleContext& sc, WordList& keywords, bool& apostropheStartsAttribute); -static void ColouriseNumber(StyleContext& sc, bool& apostropheStartsAttribute); -static void ColouriseString(StyleContext& sc, bool& apostropheStartsAttribute); -static void ColouriseWhiteSpace(StyleContext& sc, bool& apostropheStartsAttribute); -static void ColouriseWord(StyleContext& sc, WordList& keywords, bool& apostropheStartsAttribute); - -static inline bool IsDelimiterCharacter(int ch); -static inline bool IsNumberStartCharacter(int ch); -static inline bool IsNumberCharacter(int ch); -static inline bool IsSeparatorOrDelimiterCharacter(int ch); -static bool IsValidIdentifier(const SString& identifier); -static bool IsValidNumber(const SString& number); -static inline bool IsWordStartCharacter(int ch); -static inline bool IsWordCharacter(int ch); - -static void ColouriseCharacter(StyleContext& sc, bool& apostropheStartsAttribute) { - apostropheStartsAttribute = true; - - sc.SetState(SCE_ADA_CHARACTER); - - // Skip the apostrophe and one more character (so that '' is shown as non-terminated and ''' - // is handled correctly) - sc.Forward(); - sc.Forward(); - - ColouriseContext(sc, '\'', SCE_ADA_CHARACTEREOL); -} - -static void ColouriseContext(StyleContext& sc, char chEnd, int stateEOL) { - while (!sc.atLineEnd && !sc.Match(chEnd)) { - sc.Forward(); - } - - if (!sc.atLineEnd) { - sc.ForwardSetState(SCE_ADA_DEFAULT); - } else { - sc.ChangeState(stateEOL); - } -} - -static void ColouriseComment(StyleContext& sc, bool& /*apostropheStartsAttribute*/) { - // Apostrophe meaning is not changed, but the parameter is present for uniformity - - sc.SetState(SCE_ADA_COMMENTLINE); - - while (!sc.atLineEnd) { - sc.Forward(); - } -} - -static void ColouriseDelimiter(StyleContext& sc, bool& apostropheStartsAttribute) { - apostropheStartsAttribute = sc.Match (')'); - sc.SetState(SCE_ADA_DELIMITER); - sc.ForwardSetState(SCE_ADA_DEFAULT); -} - -static void ColouriseLabel(StyleContext& sc, WordList& keywords, bool& apostropheStartsAttribute) { - apostropheStartsAttribute = false; - - sc.SetState(SCE_ADA_LABEL); - - // Skip "<<" - sc.Forward(); - sc.Forward(); - - SString identifier; - - while (!sc.atLineEnd && !IsSeparatorOrDelimiterCharacter(sc.ch)) { - identifier += static_cast(tolower(sc.ch)); - sc.Forward(); - } - - // Skip ">>" - if (sc.Match('>', '>')) { - sc.Forward(); - sc.Forward(); - } else { - sc.ChangeState(SCE_ADA_ILLEGAL); - } - - // If the name is an invalid identifier or a keyword, then make it invalid label - if (!IsValidIdentifier(identifier) || keywords.InList(identifier.c_str())) { - sc.ChangeState(SCE_ADA_ILLEGAL); - } - - sc.SetState(SCE_ADA_DEFAULT); - -} - -static void ColouriseNumber(StyleContext& sc, bool& apostropheStartsAttribute) { - apostropheStartsAttribute = true; - - SString number; - sc.SetState(SCE_ADA_NUMBER); - - // Get all characters up to a delimiter or a separator, including points, but excluding - // double points (ranges). - while (!IsSeparatorOrDelimiterCharacter(sc.ch) || (sc.ch == '.' && sc.chNext != '.')) { - number += static_cast(sc.ch); - sc.Forward(); - } - - // Special case: exponent with sign - if ((sc.chPrev == 'e' || sc.chPrev == 'E') && - (sc.ch == '+' || sc.ch == '-')) { - number += static_cast(sc.ch); - sc.Forward (); - - while (!IsSeparatorOrDelimiterCharacter(sc.ch)) { - number += static_cast(sc.ch); - sc.Forward(); - } - } - - if (!IsValidNumber(number)) { - sc.ChangeState(SCE_ADA_ILLEGAL); - } - - sc.SetState(SCE_ADA_DEFAULT); -} - -static void ColouriseString(StyleContext& sc, bool& apostropheStartsAttribute) { - apostropheStartsAttribute = true; - - sc.SetState(SCE_ADA_STRING); - sc.Forward(); - - ColouriseContext(sc, '"', SCE_ADA_STRINGEOL); -} - -static void ColouriseWhiteSpace(StyleContext& sc, bool& /*apostropheStartsAttribute*/) { - // Apostrophe meaning is not changed, but the parameter is present for uniformity - sc.SetState(SCE_ADA_DEFAULT); - sc.ForwardSetState(SCE_ADA_DEFAULT); -} - -static void ColouriseWord(StyleContext& sc, WordList& keywords, bool& apostropheStartsAttribute) { - apostropheStartsAttribute = true; - sc.SetState(SCE_ADA_IDENTIFIER); - - SString word; - - while (!sc.atLineEnd && !IsSeparatorOrDelimiterCharacter(sc.ch)) { - word += static_cast(tolower(sc.ch)); - sc.Forward(); - } - - if (!IsValidIdentifier(word)) { - sc.ChangeState(SCE_ADA_ILLEGAL); - - } else if (keywords.InList(word.c_str())) { - sc.ChangeState(SCE_ADA_WORD); - - if (word != "all") { - apostropheStartsAttribute = false; - } - } - - sc.SetState(SCE_ADA_DEFAULT); -} - -// -// ColouriseDocument -// - -static void ColouriseDocument( - unsigned int startPos, - int length, - int initStyle, - WordList *keywordlists[], - Accessor &styler) { - WordList &keywords = *keywordlists[0]; - - StyleContext sc(startPos, length, initStyle, styler); - - int lineCurrent = styler.GetLine(startPos); - bool apostropheStartsAttribute = (styler.GetLineState(lineCurrent) & 1) != 0; - - while (sc.More()) { - if (sc.atLineEnd) { - // Go to the next line - sc.Forward(); - lineCurrent++; - - // Remember the line state for future incremental lexing - styler.SetLineState(lineCurrent, apostropheStartsAttribute); - - // Don't continue any styles on the next line - sc.SetState(SCE_ADA_DEFAULT); - } - - // Comments - if (sc.Match('-', '-')) { - ColouriseComment(sc, apostropheStartsAttribute); - - // Strings - } else if (sc.Match('"')) { - ColouriseString(sc, apostropheStartsAttribute); - - // Characters - } else if (sc.Match('\'') && !apostropheStartsAttribute) { - ColouriseCharacter(sc, apostropheStartsAttribute); - - // Labels - } else if (sc.Match('<', '<')) { - ColouriseLabel(sc, keywords, apostropheStartsAttribute); - - // Whitespace - } else if (IsASpace(sc.ch)) { - ColouriseWhiteSpace(sc, apostropheStartsAttribute); - - // Delimiters - } else if (IsDelimiterCharacter(sc.ch)) { - ColouriseDelimiter(sc, apostropheStartsAttribute); - - // Numbers - } else if (IsADigit(sc.ch) || sc.ch == '#') { - ColouriseNumber(sc, apostropheStartsAttribute); - - // Keywords or identifiers - } else { - ColouriseWord(sc, keywords, apostropheStartsAttribute); - } - } - - sc.Complete(); -} - -static inline bool IsDelimiterCharacter(int ch) { - switch (ch) { - case '&': - case '\'': - case '(': - case ')': - case '*': - case '+': - case ',': - case '-': - case '.': - case '/': - case ':': - case ';': - case '<': - case '=': - case '>': - case '|': - return true; - default: - return false; - } -} - -static inline bool IsNumberCharacter(int ch) { - return IsNumberStartCharacter(ch) || - ch == '_' || - ch == '.' || - ch == '#' || - (ch >= 'a' && ch <= 'f') || - (ch >= 'A' && ch <= 'F'); -} - -static inline bool IsNumberStartCharacter(int ch) { - return IsADigit(ch); -} - -static inline bool IsSeparatorOrDelimiterCharacter(int ch) { - return IsASpace(ch) || IsDelimiterCharacter(ch); -} - -static bool IsValidIdentifier(const SString& identifier) { - // First character can't be '_', so initialize the flag to true - bool lastWasUnderscore = true; - - size_t length = identifier.length(); - - // Zero-length identifiers are not valid (these can occur inside labels) - if (length == 0) { - return false; - } - - // Check for valid character at the start - if (!IsWordStartCharacter(identifier[0])) { - return false; - } - - // Check for only valid characters and no double underscores - for (size_t i = 0; i < length; i++) { - if (!IsWordCharacter(identifier[i]) || - (identifier[i] == '_' && lastWasUnderscore)) { - return false; - } - lastWasUnderscore = identifier[i] == '_'; - } - - // Check for underscore at the end - if (lastWasUnderscore == true) { - return false; - } - - // All checks passed - return true; -} - -static bool IsValidNumber(const SString& number) { - int hashPos = number.search("#"); - bool seenDot = false; - - size_t i = 0; - size_t length = number.length(); - - if (length == 0) - return false; // Just in case - - // Decimal number - if (hashPos == -1) { - bool canBeSpecial = false; - - for (; i < length; i++) { - if (number[i] == '_') { - if (!canBeSpecial) { - return false; - } - canBeSpecial = false; - } else if (number[i] == '.') { - if (!canBeSpecial || seenDot) { - return false; - } - canBeSpecial = false; - seenDot = true; - } else if (IsADigit(number[i])) { - canBeSpecial = true; - } else { - break; - } - } - - if (!canBeSpecial) - return false; - } else { - // Based number - bool canBeSpecial = false; - int base = 0; - - // Parse base - for (; i < length; i++) { - int ch = number[i]; - if (ch == '_') { - if (!canBeSpecial) - return false; - canBeSpecial = false; - } else if (IsADigit(ch)) { - base = base * 10 + (ch - '0'); - if (base > 16) - return false; - canBeSpecial = true; - } else if (ch == '#' && canBeSpecial) { - break; - } else { - return false; - } - } - - if (base < 2) - return false; - if (i == length) - return false; - - i++; // Skip over '#' - - // Parse number - canBeSpecial = false; - - for (; i < length; i++) { - int ch = tolower(number[i]); - - if (ch == '_') { - if (!canBeSpecial) { - return false; - } - canBeSpecial = false; - - } else if (ch == '.') { - if (!canBeSpecial || seenDot) { - return false; - } - canBeSpecial = false; - seenDot = true; - - } else if (IsADigit(ch)) { - if (ch - '0' >= base) { - return false; - } - canBeSpecial = true; - - } else if (ch >= 'a' && ch <= 'f') { - if (ch - 'a' + 10 >= base) { - return false; - } - canBeSpecial = true; - - } else if (ch == '#' && canBeSpecial) { - break; - - } else { - return false; - } - } - - if (i == length) { - return false; - } - - i++; - } - - // Exponent (optional) - if (i < length) { - if (number[i] != 'e' && number[i] != 'E') - return false; - - i++; // Move past 'E' - - if (i == length) { - return false; - } - - if (number[i] == '+') - i++; - else if (number[i] == '-') { - if (seenDot) { - i++; - } else { - return false; // Integer literals should not have negative exponents - } - } - - if (i == length) { - return false; - } - - bool canBeSpecial = false; - - for (; i < length; i++) { - if (number[i] == '_') { - if (!canBeSpecial) { - return false; - } - canBeSpecial = false; - } else if (IsADigit(number[i])) { - canBeSpecial = true; - } else { - return false; - } - } - - if (!canBeSpecial) - return false; - } - - // if i == length, number was parsed successfully. - return i == length; -} - -static inline bool IsWordCharacter(int ch) { - return IsWordStartCharacter(ch) || IsADigit(ch); -} - -static inline bool IsWordStartCharacter(int ch) { - return (isascii(ch) && isalpha(ch)) || ch == '_'; -} diff --git a/MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/src/LexAsm.cxx b/MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/src/LexAsm.cxx deleted file mode 100644 index dad70628..00000000 --- a/MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/src/LexAsm.cxx +++ /dev/null @@ -1,177 +0,0 @@ -// Scintilla source code edit control -/** @file LexAsm.cxx - ** Lexer for Assembler, just for the MASM syntax - ** Written by The Black Horus - ** Enhancements and NASM stuff by Kein-Hong Man, 2003-10 - ** SCE_ASM_COMMENTBLOCK and SCE_ASM_CHARACTER are for future GNU as colouring - **/ -// Copyright 1998-2003 by Neil Hodgson -// The License.txt file describes the conditions under which this software may be distributed. - -#include -#include -#include -#include -#include - -#include "Platform.h" - -#include "PropSet.h" -#include "Accessor.h" -#include "StyleContext.h" -#include "KeyWords.h" -#include "Scintilla.h" -#include "SciLexer.h" - - -static inline bool IsAWordChar(const int ch) { - return (ch < 0x80) && (isalnum(ch) || ch == '.' || - ch == '_' || ch == '?'); -} - -static inline bool IsAWordStart(const int ch) { - return (ch < 0x80) && (isalnum(ch) || ch == '_' || ch == '.' || - ch == '%' || ch == '@' || ch == '$' || ch == '?'); -} - -static inline bool IsAsmOperator(char ch) { - if (isalnum(ch)) - return false; - // '.' left out as it is used to make up numbers - if (ch == '*' || ch == '/' || ch == '-' || ch == '+' || - ch == '(' || ch == ')' || ch == '=' || ch == '^' || - ch == '[' || ch == ']' || ch == '<' || ch == '&' || - ch == '>' || ch == ',' || ch == '|' || ch == '~' || - ch == '%' || ch == ':') - return true; - return false; -} - -static void ColouriseAsmDoc(unsigned int startPos, int length, int initStyle, WordList *keywordlists[], - Accessor &styler) { - - WordList &cpuInstruction = *keywordlists[0]; - WordList &mathInstruction = *keywordlists[1]; - WordList ®isters = *keywordlists[2]; - WordList &directive = *keywordlists[3]; - WordList &directiveOperand = *keywordlists[4]; - WordList &extInstruction = *keywordlists[5]; - - // Do not leak onto next line - if (initStyle == SCE_ASM_STRINGEOL) - initStyle = SCE_ASM_DEFAULT; - - StyleContext sc(startPos, length, initStyle, styler); - - for (; sc.More(); sc.Forward()) - { - - // Prevent SCE_ASM_STRINGEOL from leaking back to previous line - if (sc.atLineStart && (sc.state == SCE_ASM_STRING)) { - sc.SetState(SCE_ASM_STRING); - } else if (sc.atLineStart && (sc.state == SCE_ASM_CHARACTER)) { - sc.SetState(SCE_ASM_CHARACTER); - } - - // Handle line continuation generically. - if (sc.ch == '\\') { - if (sc.chNext == '\n' || sc.chNext == '\r') { - sc.Forward(); - if (sc.ch == '\r' && sc.chNext == '\n') { - sc.Forward(); - } - continue; - } - } - - // Determine if the current state should terminate. - if (sc.state == SCE_ASM_OPERATOR) { - if (!IsAsmOperator(static_cast(sc.ch))) { - sc.SetState(SCE_ASM_DEFAULT); - } - }else if (sc.state == SCE_ASM_NUMBER) { - if (!IsAWordChar(sc.ch)) { - sc.SetState(SCE_ASM_DEFAULT); - } - } else if (sc.state == SCE_ASM_IDENTIFIER) { - if (!IsAWordChar(sc.ch) ) { - char s[100]; - sc.GetCurrentLowered(s, sizeof(s)); - - if (cpuInstruction.InList(s)) { - sc.ChangeState(SCE_ASM_CPUINSTRUCTION); - } else if (mathInstruction.InList(s)) { - sc.ChangeState(SCE_ASM_MATHINSTRUCTION); - } else if (registers.InList(s)) { - sc.ChangeState(SCE_ASM_REGISTER); - } else if (directive.InList(s)) { - sc.ChangeState(SCE_ASM_DIRECTIVE); - } else if (directiveOperand.InList(s)) { - sc.ChangeState(SCE_ASM_DIRECTIVEOPERAND); - } else if (extInstruction.InList(s)) { - sc.ChangeState(SCE_ASM_EXTINSTRUCTION); - } - sc.SetState(SCE_ASM_DEFAULT); - } - } - else if (sc.state == SCE_ASM_COMMENT ) { - if (sc.atLineEnd) { - sc.SetState(SCE_ASM_DEFAULT); - } - } else if (sc.state == SCE_ASM_STRING) { - if (sc.ch == '\\') { - if (sc.chNext == '\"' || sc.chNext == '\'' || sc.chNext == '\\') { - sc.Forward(); - } - } else if (sc.ch == '\"') { - sc.ForwardSetState(SCE_ASM_DEFAULT); - } else if (sc.atLineEnd) { - sc.ChangeState(SCE_ASM_STRINGEOL); - sc.ForwardSetState(SCE_ASM_DEFAULT); - } - } else if (sc.state == SCE_ASM_CHARACTER) { - if (sc.ch == '\\') { - if (sc.chNext == '\"' || sc.chNext == '\'' || sc.chNext == '\\') { - sc.Forward(); - } - } else if (sc.ch == '\'') { - sc.ForwardSetState(SCE_ASM_DEFAULT); - } else if (sc.atLineEnd) { - sc.ChangeState(SCE_ASM_STRINGEOL); - sc.ForwardSetState(SCE_ASM_DEFAULT); - } - } - - // Determine if a new state should be entered. - if (sc.state == SCE_ASM_DEFAULT) { - if (sc.ch == ';'){ - sc.SetState(SCE_ASM_COMMENT); - } else if (isdigit(sc.ch) || (sc.ch == '.' && isdigit(sc.chNext))) { - sc.SetState(SCE_ASM_NUMBER); - } else if (IsAWordStart(sc.ch)) { - sc.SetState(SCE_ASM_IDENTIFIER); - } else if (sc.ch == '\"') { - sc.SetState(SCE_ASM_STRING); - } else if (sc.ch == '\'') { - sc.SetState(SCE_ASM_CHARACTER); - } else if (IsAsmOperator(static_cast(sc.ch))) { - sc.SetState(SCE_ASM_OPERATOR); - } - } - - } - sc.Complete(); -} - -static const char * const asmWordListDesc[] = { - "CPU instructions", - "FPU instructions", - "Registers", - "Directives", - "Directive operands", - "Extended instructions", - 0 -}; - -LexerModule lmAsm(SCLEX_ASM, ColouriseAsmDoc, "asm", 0, asmWordListDesc); - diff --git a/MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/src/LexAsn1.cxx b/MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/src/LexAsn1.cxx deleted file mode 100644 index a4b08617..00000000 --- a/MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/src/LexAsn1.cxx +++ /dev/null @@ -1,181 +0,0 @@ -// Scintilla source code edit control -/** @file LexAsn1.cxx - ** Lexer for ASN.1 - **/ -// Copyright 2004 by Herr Pfarrer rpfarrer yahoo de -// Last Updated: 20/07/2004 -// The License.txt file describes the conditions under which this software may be distributed. -#include -#include -#include -#include -#include - -#include "Platform.h" - -#include "PropSet.h" -#include "Accessor.h" -#include "StyleContext.h" -#include "KeyWords.h" -#include "Scintilla.h" -#include "SciLexer.h" - -// Some char test functions -static bool isAsn1Number(int ch) -{ - return (ch >= '0' && ch <= '9'); -} - -static bool isAsn1Letter(int ch) -{ - return (ch >= 'A' && ch <= 'Z') || (ch >= 'a' && ch <= 'z'); -} - -static bool isAsn1Char(int ch) -{ - return (ch == '-' ) || isAsn1Number(ch) || isAsn1Letter (ch); -} - -// -// Function determining the color of a given code portion -// Based on a "state" -// -static void ColouriseAsn1Doc(unsigned int startPos, int length, int initStyle, WordList *keywordLists[], Accessor &styler) -{ - // The keywords - WordList &Keywords = *keywordLists[0]; - WordList &Attributes = *keywordLists[1]; - WordList &Descriptors = *keywordLists[2]; - WordList &Types = *keywordLists[3]; - - // Parse the whole buffer character by character using StyleContext - StyleContext sc(startPos, length, initStyle, styler); - for (; sc.More(); sc.Forward()) - { - // The state engine - switch (sc.state) - { - case SCE_ASN1_DEFAULT: // Plain characters -asn1_default: - if (sc.ch == '-' && sc.chNext == '-') - // A comment begins here - sc.SetState(SCE_ASN1_COMMENT); - else if (sc.ch == '"') - // A string begins here - sc.SetState(SCE_ASN1_STRING); - else if (isAsn1Number (sc.ch)) - // A number starts here (identifier should start with a letter in ASN.1) - sc.SetState(SCE_ASN1_SCALAR); - else if (isAsn1Char (sc.ch)) - // An identifier starts here (identifier always start with a letter) - sc.SetState(SCE_ASN1_IDENTIFIER); - else if (sc.ch == ':') - // A ::= operator starts here - sc.SetState(SCE_ASN1_OPERATOR); - break; - case SCE_ASN1_COMMENT: // A comment - if (sc.ch == '\r' || sc.ch == '\n') - // A comment ends here - sc.SetState(SCE_ASN1_DEFAULT); - break; - case SCE_ASN1_IDENTIFIER: // An identifier (keyword, attribute, descriptor or type) - if (!isAsn1Char (sc.ch)) - { - // The end of identifier is here: we can look for it in lists by now and change its state - char s[100]; - sc.GetCurrent(s, sizeof(s)); - if (Keywords.InList(s)) - // It's a keyword, change its state - sc.ChangeState(SCE_ASN1_KEYWORD); - else if (Attributes.InList(s)) - // It's an attribute, change its state - sc.ChangeState(SCE_ASN1_ATTRIBUTE); - else if (Descriptors.InList(s)) - // It's a descriptor, change its state - sc.ChangeState(SCE_ASN1_DESCRIPTOR); - else if (Types.InList(s)) - // It's a type, change its state - sc.ChangeState(SCE_ASN1_TYPE); - - // Set to default now - sc.SetState(SCE_ASN1_DEFAULT); - } - break; - case SCE_ASN1_STRING: // A string delimited by "" - if (sc.ch == '"') - { - // A string ends here - sc.ForwardSetState(SCE_ASN1_DEFAULT); - - // To correctly manage a char sticking to the string quote - goto asn1_default; - } - break; - case SCE_ASN1_SCALAR: // A plain number - if (!isAsn1Number (sc.ch)) - // A number ends here - sc.SetState(SCE_ASN1_DEFAULT); - break; - case SCE_ASN1_OPERATOR: // The affectation operator ::= and wath follows (eg: ::= { org 6 } OID or ::= 12 trap) - if (sc.ch == '{') - { - // An OID definition starts here: enter the sub loop - for (; sc.More(); sc.Forward()) - { - if (isAsn1Number (sc.ch) && (!isAsn1Char (sc.chPrev) || isAsn1Number (sc.chPrev))) - // The OID number is highlighted - sc.SetState(SCE_ASN1_OID); - else if (isAsn1Char (sc.ch)) - // The OID parent identifier is plain - sc.SetState(SCE_ASN1_IDENTIFIER); - else - sc.SetState(SCE_ASN1_DEFAULT); - - if (sc.ch == '}') - // Here ends the OID and the operator sub loop: go back to main loop - break; - } - } - else if (isAsn1Number (sc.ch)) - { - // A trap number definition starts here: enter the sub loop - for (; sc.More(); sc.Forward()) - { - if (isAsn1Number (sc.ch)) - // The trap number is highlighted - sc.SetState(SCE_ASN1_OID); - else - { - // The number ends here: go back to main loop - sc.SetState(SCE_ASN1_DEFAULT); - break; - } - } - } - else if (sc.ch != ':' && sc.ch != '=' && sc.ch != ' ') - // The operator doesn't imply an OID definition nor a trap, back to main loop - goto asn1_default; // To be sure to handle actually the state change - break; - } - } - sc.Complete(); -} - -static void FoldAsn1Doc(unsigned int, int, int, WordList *[], Accessor &styler) -{ - // No folding enabled, no reason to continue... - if( styler.GetPropertyInt("fold") == 0 ) - return; - - // No folding implemented: doesn't make sense for ASN.1 -} - -static const char * const asn1WordLists[] = { - "Keywords", - "Attributes", - "Descriptors", - "Types", - 0, }; - - -LexerModule lmAns1(SCLEX_ASN1, ColouriseAsn1Doc, "asn1", FoldAsn1Doc, asn1WordLists); diff --git a/MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/src/LexBaan.cxx b/MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/src/LexBaan.cxx deleted file mode 100644 index e38a2715..00000000 --- a/MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/src/LexBaan.cxx +++ /dev/null @@ -1,189 +0,0 @@ -// Scintilla source code edit control -/** @file LexBaan.cxx - ** Lexer for Baan. - ** Based heavily on LexCPP.cxx - **/ -// Copyright 2001- by Vamsi Potluru & Praveen Ambekar -// The License.txt file describes the conditions under which this software may be distributed. - -#include -#include -#include -#include -#include - -#include "Platform.h" - -#include "PropSet.h" -#include "Accessor.h" -#include "StyleContext.h" -#include "KeyWords.h" -#include "Scintilla.h" -#include "SciLexer.h" - -static inline bool IsAWordChar(const int ch) { - return (ch < 0x80) && (isalnum(ch) || ch == '.' || ch == '_' || ch == '$' || ch == ':'); -} - -static inline bool IsAWordStart(const int ch) { - return (ch < 0x80) && (isalnum(ch) || ch == '_'); -} - -static void ColouriseBaanDoc(unsigned int startPos, int length, int initStyle, WordList *keywordlists[], - Accessor &styler) { - - WordList &keywords = *keywordlists[0]; - WordList &keywords2 = *keywordlists[1]; - bool stylingWithinPreprocessor = styler.GetPropertyInt("styling.within.preprocessor") != 0; - - if (initStyle == SCE_BAAN_STRINGEOL) // Does not leak onto next line - initStyle = SCE_BAAN_DEFAULT; - - int visibleChars = 0; - - StyleContext sc(startPos, length, initStyle, styler); - - for (; sc.More(); sc.Forward()) { - - if (sc.state == SCE_BAAN_OPERATOR) { - sc.SetState(SCE_BAAN_DEFAULT); - } else if (sc.state == SCE_BAAN_NUMBER) { - if (!IsAWordChar(sc.ch)) { - sc.SetState(SCE_BAAN_DEFAULT); - } - } else if (sc.state == SCE_BAAN_IDENTIFIER) { - if (!IsAWordChar(sc.ch)) { - char s[100]; - sc.GetCurrentLowered(s, sizeof(s)); - if (keywords.InList(s)) { - sc.ChangeState(SCE_BAAN_WORD); - } else if (keywords2.InList(s)) { - sc.ChangeState(SCE_BAAN_WORD2); - } - sc.SetState(SCE_BAAN_DEFAULT); - } - } else if (sc.state == SCE_BAAN_PREPROCESSOR) { - if (stylingWithinPreprocessor) { - if (IsASpace(sc.ch)) { - sc.SetState(SCE_BAAN_DEFAULT); - } - } else { - if (sc.atLineEnd && (sc.chNext != '^')) { - sc.SetState(SCE_BAAN_DEFAULT); - } - } - } else if (sc.state == SCE_BAAN_COMMENT) { - if (sc.atLineEnd) { - sc.SetState(SCE_BAAN_DEFAULT); - } - } else if (sc.state == SCE_BAAN_COMMENTDOC) { - if (sc.MatchIgnoreCase("enddllusage")) { - for (unsigned int i = 0; i < 10; i++){ - sc.Forward(); - } - sc.ForwardSetState(SCE_BAAN_DEFAULT); - } - } else if (sc.state == SCE_BAAN_STRING) { - if (sc.ch == '\"') { - sc.ForwardSetState(SCE_BAAN_DEFAULT); - } else if ((sc.atLineEnd) && (sc.chNext != '^')) { - sc.ChangeState(SCE_BAAN_STRINGEOL); - sc.ForwardSetState(SCE_C_DEFAULT); - visibleChars = 0; - } - } - - if (sc.state == SCE_BAAN_DEFAULT) { - if (IsADigit(sc.ch) || (sc.ch == '.' && IsADigit(sc.chNext))) { - sc.SetState(SCE_BAAN_NUMBER); - } else if (sc.MatchIgnoreCase("dllusage")){ - sc.SetState(SCE_BAAN_COMMENTDOC); - do { - sc.Forward(); - } while ((!sc.atLineEnd) && sc.More()); - } else if (IsAWordStart(sc.ch)) { - sc.SetState(SCE_BAAN_IDENTIFIER); - } else if (sc.Match('|')){ - sc.SetState(SCE_BAAN_COMMENT); - } else if (sc.ch == '\"') { - sc.SetState(SCE_BAAN_STRING); - } else if (sc.ch == '#' && visibleChars == 0) { - // Preprocessor commands are alone on their line - sc.SetState(SCE_BAAN_PREPROCESSOR); - // Skip whitespace between # and preprocessor word - do { - sc.Forward(); - } while (IsASpace(sc.ch) && sc.More()); - } else if (isoperator(static_cast(sc.ch))) { - sc.SetState(SCE_BAAN_OPERATOR); - } - } - if (sc.atLineEnd) { - // Reset states to begining of colourise so no surprises - // if different sets of lines lexed. - visibleChars = 0; - } - if (!IsASpace(sc.ch)) { - visibleChars++; - } - } - sc.Complete(); -} - -static void FoldBaanDoc(unsigned int startPos, int length, int initStyle, WordList *[], - Accessor &styler) { - bool foldComment = styler.GetPropertyInt("fold.comment") != 0; - bool foldCompact = styler.GetPropertyInt("fold.compact", 1) != 0; - unsigned int endPos = startPos + length; - int visibleChars = 0; - int lineCurrent = styler.GetLine(startPos); - int levelPrev = styler.LevelAt(lineCurrent) & SC_FOLDLEVELNUMBERMASK; - int levelCurrent = levelPrev; - char chNext = styler[startPos]; - int styleNext = styler.StyleAt(startPos); - int style = initStyle; - for (unsigned int i = startPos; i < endPos; i++) { - char ch = chNext; - chNext = styler.SafeGetCharAt(i + 1); - int stylePrev = style; - style = styleNext; - styleNext = styler.StyleAt(i + 1); - bool atEOL = (ch == '\r' && chNext != '\n') || (ch == '\n'); - if (foldComment && - (style == SCE_BAAN_COMMENT || style == SCE_BAAN_COMMENTDOC)) { - if (style != stylePrev) { - levelCurrent++; - } else if ((style != styleNext) && !atEOL) { - // Comments don't end at end of line and the next character may be unstyled. - levelCurrent--; - } - } - if (style == SCE_BAAN_OPERATOR) { - if (ch == '{') { - levelCurrent++; - } else if (ch == '}') { - levelCurrent--; - } - } - if (atEOL) { - int lev = levelPrev; - if (visibleChars == 0 && foldCompact) - lev |= SC_FOLDLEVELWHITEFLAG; - if ((levelCurrent > levelPrev) && (visibleChars > 0)) - lev |= SC_FOLDLEVELHEADERFLAG; - if (lev != styler.LevelAt(lineCurrent)) { - styler.SetLevel(lineCurrent, lev); - } - lineCurrent++; - levelPrev = levelCurrent; - visibleChars = 0; - } - if (!isspacechar(ch)) - visibleChars++; - } - // Fill in the real level of the next line, keeping the current flags as they will be filled in later - int flagsNext = styler.LevelAt(lineCurrent) & ~SC_FOLDLEVELNUMBERMASK; - styler.SetLevel(lineCurrent, levelPrev | flagsNext); -} - -LexerModule lmBaan(SCLEX_BAAN, ColouriseBaanDoc, "baan", FoldBaanDoc); diff --git a/MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/src/LexBash.cxx b/MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/src/LexBash.cxx deleted file mode 100644 index f6401ece..00000000 --- a/MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/src/LexBash.cxx +++ /dev/null @@ -1,663 +0,0 @@ -// Scintilla source code edit control -/** @file LexBash.cxx - ** Lexer for Bash. - **/ -// Copyright 2004-2005 by Neil Hodgson -// Adapted from LexPerl by Kein-Hong Man 2004 -// The License.txt file describes the conditions under which this software may be distributed. - -#include -#include -#include -#include -#include - -#include "Platform.h" - -#include "PropSet.h" -#include "Accessor.h" -#include "KeyWords.h" -#include "Scintilla.h" -#include "SciLexer.h" - -#define BASH_BASE_ERROR 65 -#define BASH_BASE_DECIMAL 66 -#define BASH_BASE_HEX 67 -#define BASH_BASE_OCTAL 68 -#define BASH_BASE_OCTAL_ERROR 69 - -#define HERE_DELIM_MAX 256 - -static inline int translateBashDigit(char ch) { - if (ch >= '0' && ch <= '9') { - return ch - '0'; - } else if (ch >= 'a' && ch <= 'z') { - return ch - 'a' + 10; - } else if (ch >= 'A' && ch <= 'Z') { - return ch - 'A' + 36; - } else if (ch == '@') { - return 62; - } else if (ch == '_') { - return 63; - } - return BASH_BASE_ERROR; -} - -static inline bool isEOLChar(char ch) { - return (ch == '\r') || (ch == '\n'); -} - -static bool isSingleCharOp(char ch) { - char strCharSet[2]; - strCharSet[0] = ch; - strCharSet[1] = '\0'; - return (NULL != strstr("rwxoRWXOezsfdlpSbctugkTBMACahGLNn", strCharSet)); -} - -static inline bool isBashOperator(char ch) { - if (ch == '^' || ch == '&' || ch == '\\' || ch == '%' || - ch == '(' || ch == ')' || ch == '-' || ch == '+' || - ch == '=' || ch == '|' || ch == '{' || ch == '}' || - ch == '[' || ch == ']' || ch == ':' || ch == ';' || - ch == '>' || ch == ',' || ch == '/' || ch == '<' || - ch == '?' || ch == '!' || ch == '.' || ch == '~' || - ch == '@') - return true; - return false; -} - -static int classifyWordBash(unsigned int start, unsigned int end, WordList &keywords, Accessor &styler) { - char s[100]; - for (unsigned int i = 0; i < end - start + 1 && i < 30; i++) { - s[i] = styler[start + i]; - s[i + 1] = '\0'; - } - char chAttr = SCE_SH_IDENTIFIER; - if (keywords.InList(s)) - chAttr = SCE_SH_WORD; - styler.ColourTo(end, chAttr); - return chAttr; -} - -static inline int getBashNumberBase(unsigned int start, unsigned int end, Accessor &styler) { - int base = 0; - for (unsigned int i = 0; i < end - start + 1 && i < 10; i++) { - base = base * 10 + (styler[start + i] - '0'); - } - if (base > 64 || (end - start) > 1) { - return BASH_BASE_ERROR; - } - return base; -} - -static inline bool isEndVar(char ch) { - return !isalnum(ch) && ch != '$' && ch != '_'; -} - -static inline bool isNonQuote(char ch) { - return isalnum(ch) || ch == '_'; -} - -static bool isMatch(Accessor &styler, int lengthDoc, int pos, const char *val) { - if ((pos + static_cast(strlen(val))) >= lengthDoc) { - return false; - } - while (*val) { - if (*val != styler[pos++]) { - return false; - } - val++; - } - return true; -} - -static char opposite(char ch) { - if (ch == '(') - return ')'; - if (ch == '[') - return ']'; - if (ch == '{') - return '}'; - if (ch == '<') - return '>'; - return ch; -} - -static void ColouriseBashDoc(unsigned int startPos, int length, int initStyle, - WordList *keywordlists[], Accessor &styler) { - - // Lexer for bash often has to backtrack to start of current style to determine - // which characters are being used as quotes, how deeply nested is the - // start position and what the termination string is for here documents - - WordList &keywords = *keywordlists[0]; - - class HereDocCls { - public: - int State; // 0: '<<' encountered - // 1: collect the delimiter - // 2: here doc text (lines after the delimiter) - char Quote; // the char after '<<' - bool Quoted; // true if Quote in ('\'','"','`') - bool Indent; // indented delimiter (for <<-) - int DelimiterLength; // strlen(Delimiter) - char *Delimiter; // the Delimiter, 256: sizeof PL_tokenbuf - HereDocCls() { - State = 0; - Quote = 0; - Quoted = false; - Indent = 0; - DelimiterLength = 0; - Delimiter = new char[HERE_DELIM_MAX]; - Delimiter[0] = '\0'; - } - ~HereDocCls() { - delete []Delimiter; - } - }; - HereDocCls HereDoc; - - class QuoteCls { - public: - int Rep; - int Count; - char Up; - char Down; - QuoteCls() { - this->New(1); - } - void New(int r) { - Rep = r; - Count = 0; - Up = '\0'; - Down = '\0'; - } - void Open(char u) { - Count++; - Up = u; - Down = opposite(Up); - } - }; - QuoteCls Quote; - - int state = initStyle; - int numBase = 0; - unsigned int lengthDoc = startPos + length; - - // If in a long distance lexical state, seek to the beginning to find quote characters - // Bash strings can be multi-line with embedded newlines, so backtrack. - // Bash numbers have additional state during lexing, so backtrack too. - if (state == SCE_SH_HERE_Q) { - while ((startPos > 1) && (styler.StyleAt(startPos) != SCE_SH_HERE_DELIM)) { - startPos--; - } - startPos = styler.LineStart(styler.GetLine(startPos)); - state = styler.StyleAt(startPos - 1); - } - if (state == SCE_SH_STRING - || state == SCE_SH_BACKTICKS - || state == SCE_SH_CHARACTER - || state == SCE_SH_NUMBER - || state == SCE_SH_IDENTIFIER - || state == SCE_SH_COMMENTLINE - ) { - while ((startPos > 1) && (styler.StyleAt(startPos - 1) == state)) { - startPos--; - } - state = SCE_SH_DEFAULT; - } - - styler.StartAt(startPos); - char chPrev = styler.SafeGetCharAt(startPos - 1); - if (startPos == 0) - chPrev = '\n'; - char chNext = styler[startPos]; - styler.StartSegment(startPos); - - for (unsigned int i = startPos; i < lengthDoc; i++) { - char ch = chNext; - // if the current character is not consumed due to the completion of an - // earlier style, lexing can be restarted via a simple goto - restartLexer: - chNext = styler.SafeGetCharAt(i + 1); - char chNext2 = styler.SafeGetCharAt(i + 2); - - if (styler.IsLeadByte(ch)) { - chNext = styler.SafeGetCharAt(i + 2); - chPrev = ' '; - i += 1; - continue; - } - - if ((chPrev == '\r' && ch == '\n')) { // skip on DOS/Windows - styler.ColourTo(i, state); - chPrev = ch; - continue; - } - - if (HereDoc.State == 1 && isEOLChar(ch)) { - // Begin of here-doc (the line after the here-doc delimiter): - // Lexically, the here-doc starts from the next line after the >>, but the - // first line of here-doc seem to follow the style of the last EOL sequence - HereDoc.State = 2; - if (HereDoc.Quoted) { - if (state == SCE_SH_HERE_DELIM) { - // Missing quote at end of string! We are stricter than bash. - // Colour here-doc anyway while marking this bit as an error. - state = SCE_SH_ERROR; - } - styler.ColourTo(i - 1, state); - // HereDoc.Quote always == '\'' - state = SCE_SH_HERE_Q; - } else { - styler.ColourTo(i - 1, state); - // always switch - state = SCE_SH_HERE_Q; - } - } - - if (state == SCE_SH_DEFAULT) { - if (ch == '\\') { // escaped character - if (i < lengthDoc - 1) - i++; - ch = chNext; - chNext = chNext2; - styler.ColourTo(i, SCE_SH_IDENTIFIER); - } else if (isdigit(ch)) { - state = SCE_SH_NUMBER; - numBase = BASH_BASE_DECIMAL; - if (ch == '0') { // hex,octal - if (chNext == 'x' || chNext == 'X') { - numBase = BASH_BASE_HEX; - i++; - ch = chNext; - chNext = chNext2; - } else if (isdigit(chNext)) { - numBase = BASH_BASE_OCTAL; - } - } - } else if (iswordstart(ch)) { - state = SCE_SH_WORD; - if (!iswordchar(chNext) && chNext != '+' && chNext != '-') { - // We need that if length of word == 1! - // This test is copied from the SCE_SH_WORD handler. - classifyWordBash(styler.GetStartSegment(), i, keywords, styler); - state = SCE_SH_DEFAULT; - } - } else if (ch == '#') { - state = SCE_SH_COMMENTLINE; - } else if (ch == '\"') { - state = SCE_SH_STRING; - Quote.New(1); - Quote.Open(ch); - } else if (ch == '\'') { - state = SCE_SH_CHARACTER; - Quote.New(1); - Quote.Open(ch); - } else if (ch == '`') { - state = SCE_SH_BACKTICKS; - Quote.New(1); - Quote.Open(ch); - } else if (ch == '$') { - if (chNext == '{') { - state = SCE_SH_PARAM; - goto startQuote; - } else if (chNext == '\'') { - state = SCE_SH_CHARACTER; - goto startQuote; - } else if (chNext == '"') { - state = SCE_SH_STRING; - goto startQuote; - } else if (chNext == '(' && chNext2 == '(') { - styler.ColourTo(i, SCE_SH_OPERATOR); - state = SCE_SH_DEFAULT; - goto skipChar; - } else if (chNext == '(' || chNext == '`') { - state = SCE_SH_BACKTICKS; - startQuote: - Quote.New(1); - Quote.Open(chNext); - goto skipChar; - } else { - state = SCE_SH_SCALAR; - skipChar: - i++; - ch = chNext; - chNext = chNext2; - } - } else if (ch == '*') { - if (chNext == '*') { // exponentiation - i++; - ch = chNext; - chNext = chNext2; - } - styler.ColourTo(i, SCE_SH_OPERATOR); - } else if (ch == '<' && chNext == '<') { - state = SCE_SH_HERE_DELIM; - HereDoc.State = 0; - HereDoc.Indent = false; - } else if (ch == '-' // file test operators - && isSingleCharOp(chNext) - && !isalnum((chNext2 = styler.SafeGetCharAt(i+2)))) { - styler.ColourTo(i + 1, SCE_SH_WORD); - state = SCE_SH_DEFAULT; - i++; - ch = chNext; - chNext = chNext2; - } else if (isBashOperator(ch)) { - styler.ColourTo(i, SCE_SH_OPERATOR); - } else { - // keep colouring defaults to make restart easier - styler.ColourTo(i, SCE_SH_DEFAULT); - } - } else if (state == SCE_SH_NUMBER) { - int digit = translateBashDigit(ch); - if (numBase == BASH_BASE_DECIMAL) { - if (ch == '#') { - numBase = getBashNumberBase(styler.GetStartSegment(), i - 1, styler); - if (numBase == BASH_BASE_ERROR) // take the rest as comment - goto numAtEnd; - } else if (!isdigit(ch)) - goto numAtEnd; - } else if (numBase == BASH_BASE_HEX) { - if ((digit < 16) || (digit >= 36 && digit <= 41)) { - // hex digit 0-9a-fA-F - } else - goto numAtEnd; - } else if (numBase == BASH_BASE_OCTAL || - numBase == BASH_BASE_OCTAL_ERROR) { - if (digit > 7) { - if (digit <= 9) { - numBase = BASH_BASE_OCTAL_ERROR; - } else - goto numAtEnd; - } - } else if (numBase == BASH_BASE_ERROR) { - if (digit > 9) - goto numAtEnd; - } else { // DD#DDDD number style handling - if (digit != BASH_BASE_ERROR) { - if (numBase <= 36) { - // case-insensitive if base<=36 - if (digit >= 36) digit -= 26; - } - if (digit >= numBase) { - if (digit <= 9) { - numBase = BASH_BASE_ERROR; - } else - goto numAtEnd; - } - } else { - numAtEnd: - if (numBase == BASH_BASE_ERROR || - numBase == BASH_BASE_OCTAL_ERROR) - state = SCE_SH_ERROR; - styler.ColourTo(i - 1, state); - state = SCE_SH_DEFAULT; - goto restartLexer; - } - } - } else if (state == SCE_SH_WORD) { - if (!iswordchar(chNext) && chNext != '+' && chNext != '-') { - // "." never used in Bash variable names - // but used in file names - classifyWordBash(styler.GetStartSegment(), i, keywords, styler); - state = SCE_SH_DEFAULT; - ch = ' '; - } - } else if (state == SCE_SH_IDENTIFIER) { - if (!iswordchar(chNext) && chNext != '+' && chNext != '-') { - styler.ColourTo(i, SCE_SH_IDENTIFIER); - state = SCE_SH_DEFAULT; - ch = ' '; - } - } else { - if (state == SCE_SH_COMMENTLINE) { - if (ch == '\\' && isEOLChar(chNext)) { - // comment continuation - if (chNext == '\r' && chNext2 == '\n') { - i += 2; - ch = styler.SafeGetCharAt(i); - chNext = styler.SafeGetCharAt(i + 1); - } else { - i++; - ch = chNext; - chNext = chNext2; - } - } else if (isEOLChar(ch)) { - styler.ColourTo(i - 1, state); - state = SCE_SH_DEFAULT; - goto restartLexer; - } else if (isEOLChar(chNext)) { - styler.ColourTo(i, state); - state = SCE_SH_DEFAULT; - } - } else if (state == SCE_SH_HERE_DELIM) { - // - // From Bash info: - // --------------- - // Specifier format is: <<[-]WORD - // Optional '-' is for removal of leading tabs from here-doc. - // Whitespace acceptable after <<[-] operator - // - if (HereDoc.State == 0) { // '<<' encountered - HereDoc.State = 1; - HereDoc.Quote = chNext; - HereDoc.Quoted = false; - HereDoc.DelimiterLength = 0; - HereDoc.Delimiter[HereDoc.DelimiterLength] = '\0'; - if (chNext == '\'' || chNext == '\"') { // a quoted here-doc delimiter (' or ") - i++; - ch = chNext; - chNext = chNext2; - HereDoc.Quoted = true; - } else if (!HereDoc.Indent && chNext == '-') { // <<- indent case - HereDoc.Indent = true; - HereDoc.State = 0; - } else if (isalpha(chNext) || chNext == '_' || chNext == '\\' - || chNext == '-' || chNext == '+' || chNext == '!') { - // an unquoted here-doc delimiter, no special handling - // TODO check what exactly bash considers part of the delim - } else if (chNext == '<') { // HERE string <<< - i++; - ch = chNext; - chNext = chNext2; - styler.ColourTo(i, SCE_SH_HERE_DELIM); - state = SCE_SH_DEFAULT; - HereDoc.State = 0; - } else if (isspacechar(chNext)) { - // eat whitespace - HereDoc.State = 0; - } else if (isdigit(chNext) || chNext == '=' || chNext == '$') { - // left shift << or <<= operator cases - styler.ColourTo(i, SCE_SH_OPERATOR); - state = SCE_SH_DEFAULT; - HereDoc.State = 0; - } else { - // symbols terminates; deprecated zero-length delimiter - } - } else if (HereDoc.State == 1) { // collect the delimiter - if (HereDoc.Quoted) { // a quoted here-doc delimiter - if (ch == HereDoc.Quote) { // closing quote => end of delimiter - styler.ColourTo(i, state); - state = SCE_SH_DEFAULT; - } else { - if (ch == '\\' && chNext == HereDoc.Quote) { // escaped quote - i++; - ch = chNext; - chNext = chNext2; - } - HereDoc.Delimiter[HereDoc.DelimiterLength++] = ch; - HereDoc.Delimiter[HereDoc.DelimiterLength] = '\0'; - } - } else { // an unquoted here-doc delimiter - if (isalnum(ch) || ch == '_' || ch == '-' || ch == '+' || ch == '!') { - HereDoc.Delimiter[HereDoc.DelimiterLength++] = ch; - HereDoc.Delimiter[HereDoc.DelimiterLength] = '\0'; - } else if (ch == '\\') { - // skip escape prefix - } else { - styler.ColourTo(i - 1, state); - state = SCE_SH_DEFAULT; - goto restartLexer; - } - } - if (HereDoc.DelimiterLength >= HERE_DELIM_MAX - 1) { - styler.ColourTo(i - 1, state); - state = SCE_SH_ERROR; - goto restartLexer; - } - } - } else if (HereDoc.State == 2) { - // state == SCE_SH_HERE_Q - if (isMatch(styler, lengthDoc, i, HereDoc.Delimiter)) { - if (!HereDoc.Indent && isEOLChar(chPrev)) { - endHereDoc: - // standard HERE delimiter - i += HereDoc.DelimiterLength; - chPrev = styler.SafeGetCharAt(i - 1); - ch = styler.SafeGetCharAt(i); - if (isEOLChar(ch)) { - styler.ColourTo(i - 1, state); - state = SCE_SH_DEFAULT; - HereDoc.State = 0; - goto restartLexer; - } - chNext = styler.SafeGetCharAt(i + 1); - } else if (HereDoc.Indent) { - // indented HERE delimiter - unsigned int bk = (i > 0)? i - 1: 0; - while (i > 0) { - ch = styler.SafeGetCharAt(bk--); - if (isEOLChar(ch)) { - goto endHereDoc; - } else if (!isspacechar(ch)) { - break; // got leading non-whitespace - } - } - } - } - } else if (state == SCE_SH_SCALAR) { // variable names - if (isEndVar(ch)) { - if ((state == SCE_SH_SCALAR) - && i == (styler.GetStartSegment() + 1)) { - // Special variable: $(, $_ etc. - styler.ColourTo(i, state); - state = SCE_SH_DEFAULT; - } else { - styler.ColourTo(i - 1, state); - state = SCE_SH_DEFAULT; - goto restartLexer; - } - } - } else if (state == SCE_SH_STRING - || state == SCE_SH_CHARACTER - || state == SCE_SH_BACKTICKS - || state == SCE_SH_PARAM - ) { - if (!Quote.Down && !isspacechar(ch)) { - Quote.Open(ch); - } else if (ch == '\\' && Quote.Up != '\\') { - i++; - ch = chNext; - chNext = styler.SafeGetCharAt(i + 1); - } else if (ch == Quote.Down) { - Quote.Count--; - if (Quote.Count == 0) { - Quote.Rep--; - if (Quote.Rep <= 0) { - styler.ColourTo(i, state); - state = SCE_SH_DEFAULT; - ch = ' '; - } - if (Quote.Up == Quote.Down) { - Quote.Count++; - } - } - } else if (ch == Quote.Up) { - Quote.Count++; - } - } - } - if (state == SCE_SH_ERROR) { - break; - } - chPrev = ch; - } - styler.ColourTo(lengthDoc - 1, state); -} - -static bool IsCommentLine(int line, Accessor &styler) { - int pos = styler.LineStart(line); - int eol_pos = styler.LineStart(line + 1) - 1; - for (int i = pos; i < eol_pos; i++) { - char ch = styler[i]; - if (ch == '#') - return true; - else if (ch != ' ' && ch != '\t') - return false; - } - return false; -} - -static void FoldBashDoc(unsigned int startPos, int length, int, WordList *[], - Accessor &styler) { - bool foldComment = styler.GetPropertyInt("fold.comment") != 0; - bool foldCompact = styler.GetPropertyInt("fold.compact", 1) != 0; - unsigned int endPos = startPos + length; - int visibleChars = 0; - int lineCurrent = styler.GetLine(startPos); - int levelPrev = styler.LevelAt(lineCurrent) & SC_FOLDLEVELNUMBERMASK; - int levelCurrent = levelPrev; - char chNext = styler[startPos]; - int styleNext = styler.StyleAt(startPos); - for (unsigned int i = startPos; i < endPos; i++) { - char ch = chNext; - chNext = styler.SafeGetCharAt(i + 1); - int style = styleNext; - styleNext = styler.StyleAt(i + 1); - bool atEOL = (ch == '\r' && chNext != '\n') || (ch == '\n'); - // Comment folding - if (foldComment && atEOL && IsCommentLine(lineCurrent, styler)) - { - if (!IsCommentLine(lineCurrent - 1, styler) - && IsCommentLine(lineCurrent + 1, styler)) - levelCurrent++; - else if (IsCommentLine(lineCurrent - 1, styler) - && !IsCommentLine(lineCurrent+1, styler)) - levelCurrent--; - } - if (style == SCE_SH_OPERATOR) { - if (ch == '{') { - levelCurrent++; - } else if (ch == '}') { - levelCurrent--; - } - } - if (atEOL) { - int lev = levelPrev; - if (visibleChars == 0 && foldCompact) - lev |= SC_FOLDLEVELWHITEFLAG; - if ((levelCurrent > levelPrev) && (visibleChars > 0)) - lev |= SC_FOLDLEVELHEADERFLAG; - if (lev != styler.LevelAt(lineCurrent)) { - styler.SetLevel(lineCurrent, lev); - } - lineCurrent++; - levelPrev = levelCurrent; - visibleChars = 0; - } - if (!isspacechar(ch)) - visibleChars++; - } - // Fill in the real level of the next line, keeping the current flags as they will be filled in later - int flagsNext = styler.LevelAt(lineCurrent) & ~SC_FOLDLEVELNUMBERMASK; - styler.SetLevel(lineCurrent, levelPrev | flagsNext); -} - -static const char * const bashWordListDesc[] = { - "Keywords", - 0 -}; - -LexerModule lmBash(SCLEX_BASH, ColouriseBashDoc, "bash", FoldBashDoc, bashWordListDesc); diff --git a/MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/src/LexBasic.cxx b/MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/src/LexBasic.cxx deleted file mode 100644 index 5661b0b9..00000000 --- a/MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/src/LexBasic.cxx +++ /dev/null @@ -1,369 +0,0 @@ -// Scintilla source code edit control -/** @file LexBasic.cxx - ** Lexer for BlitzBasic and PureBasic. - **/ -// Copyright 1998-2003 by Neil Hodgson -// The License.txt file describes the conditions under which this software may be distributed. - -// This tries to be a unified Lexer/Folder for all the BlitzBasic/BlitzMax/PurBasic basics -// and derivatives. Once they diverge enough, might want to split it into multiple -// lexers for more code clearity. -// -// Mail me (elias users sf net) for any bugs. - -// Folding only works for simple things like functions or types. - -// You may want to have a look at my ctags lexer as well, if you additionally to coloring -// and folding need to extract things like label tags in your editor. - -#include -#include -#include -#include -#include - -#include "Platform.h" - -#include "PropSet.h" -#include "Accessor.h" -#include "StyleContext.h" -#include "KeyWords.h" -#include "Scintilla.h" -#include "SciLexer.h" - -/* Bits: - * 1 - whitespace - * 2 - operator - * 4 - identifier - * 8 - decimal digit - * 16 - hex digit - * 32 - bin digit - */ -static int character_classification[128] = -{ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1, 2, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 10, 2, - 60, 60, 28, 28, 28, 28, 28, 28, 28, 28, 2, 2, 2, 2, 2, 2, - 2, 20, 20, 20, 20, 20, 20, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 2, 2, 2, 2, 4, - 2, 20, 20, 20, 20, 20, 20, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 2, 2, 2, 2, 0 -}; - -static bool IsSpace(int c) { - return c < 128 && (character_classification[c] & 1); -} - -static bool IsOperator(int c) { - return c < 128 && (character_classification[c] & 2); -} - -static bool IsIdentifier(int c) { - return c < 128 && (character_classification[c] & 4); -} - -static bool IsDigit(int c) { - return c < 128 && (character_classification[c] & 8); -} - -static bool IsHexDigit(int c) { - return c < 128 && (character_classification[c] & 16); -} - -static bool IsBinDigit(int c) { - return c < 128 && (character_classification[c] & 32); -} - -static int LowerCase(int c) -{ - if (c >= 'A' && c <= 'Z') - return 'a' + c - 'A'; - return c; -} - -static void ColouriseBasicDoc(unsigned int startPos, int length, int initStyle, - WordList *keywordlists[], Accessor &styler, char comment_char) { - bool wasfirst = true, isfirst = true; // true if first token in a line - styler.StartAt(startPos); - - StyleContext sc(startPos, length, initStyle, styler); - - // Can't use sc.More() here else we miss the last character - for (; ; sc.Forward()) { - if (sc.state == SCE_B_IDENTIFIER) { - if (!IsIdentifier(sc.ch)) { - // Labels - if (wasfirst && sc.Match(':')) { - sc.ChangeState(SCE_B_LABEL); - sc.ForwardSetState(SCE_B_DEFAULT); - } else { - char s[100]; - int kstates[4] = { - SCE_B_KEYWORD, - SCE_B_KEYWORD2, - SCE_B_KEYWORD3, - SCE_B_KEYWORD4, - }; - sc.GetCurrentLowered(s, sizeof(s)); - for (int i = 0; i < 4; i++) { - if (keywordlists[i]->InList(s)) { - sc.ChangeState(kstates[i]); - } - } - // Types, must set them as operator else they will be - // matched as number/constant - if (sc.Match('.') || sc.Match('$') || sc.Match('%') || - sc.Match('#')) { - sc.SetState(SCE_B_OPERATOR); - } else { - sc.SetState(SCE_B_DEFAULT); - } - } - } - } else if (sc.state == SCE_B_OPERATOR) { - if (!IsOperator(sc.ch) || sc.Match('#')) - sc.SetState(SCE_B_DEFAULT); - } else if (sc.state == SCE_B_LABEL) { - if (!IsIdentifier(sc.ch)) - sc.SetState(SCE_B_DEFAULT); - } else if (sc.state == SCE_B_CONSTANT) { - if (!IsIdentifier(sc.ch)) - sc.SetState(SCE_B_DEFAULT); - } else if (sc.state == SCE_B_NUMBER) { - if (!IsDigit(sc.ch)) - sc.SetState(SCE_B_DEFAULT); - } else if (sc.state == SCE_B_HEXNUMBER) { - if (!IsHexDigit(sc.ch)) - sc.SetState(SCE_B_DEFAULT); - } else if (sc.state == SCE_B_BINNUMBER) { - if (!IsBinDigit(sc.ch)) - sc.SetState(SCE_B_DEFAULT); - } else if (sc.state == SCE_B_STRING) { - if (sc.ch == '"') { - sc.ForwardSetState(SCE_B_DEFAULT); - } - if (sc.atLineEnd) { - sc.ChangeState(SCE_B_ERROR); - sc.SetState(SCE_B_DEFAULT); - } - } else if (sc.state == SCE_B_COMMENT || sc.state == SCE_B_PREPROCESSOR) { - if (sc.atLineEnd) { - sc.SetState(SCE_B_DEFAULT); - } - } - - if (sc.atLineStart) - isfirst = true; - - if (sc.state == SCE_B_DEFAULT || sc.state == SCE_B_ERROR) { - if (isfirst && sc.Match('.')) { - sc.SetState(SCE_B_LABEL); - } else if (isfirst && sc.Match('#')) { - wasfirst = isfirst; - sc.SetState(SCE_B_IDENTIFIER); - } else if (sc.Match(comment_char)) { - // Hack to make deprecated QBASIC '$Include show - // up in freebasic with SCE_B_PREPROCESSOR. - if (comment_char == '\'' && sc.Match(comment_char, '$')) - sc.SetState(SCE_B_PREPROCESSOR); - else - sc.SetState(SCE_B_COMMENT); - } else if (sc.Match('"')) { - sc.SetState(SCE_B_STRING); - } else if (IsDigit(sc.ch)) { - sc.SetState(SCE_B_NUMBER); - } else if (sc.Match('$')) { - sc.SetState(SCE_B_HEXNUMBER); - } else if (sc.Match('%')) { - sc.SetState(SCE_B_BINNUMBER); - } else if (sc.Match('#')) { - sc.SetState(SCE_B_CONSTANT); - } else if (IsOperator(sc.ch)) { - sc.SetState(SCE_B_OPERATOR); - } else if (IsIdentifier(sc.ch)) { - wasfirst = isfirst; - sc.SetState(SCE_B_IDENTIFIER); - } else if (!IsSpace(sc.ch)) { - sc.SetState(SCE_B_ERROR); - } - } - - if (!IsSpace(sc.ch)) - isfirst = false; - - if (!sc.More()) - break; - } - sc.Complete(); -} - -static int CheckBlitzFoldPoint(char const *token, int &level) { - if (!strcmp(token, "function") || - !strcmp(token, "type")) { - level |= SC_FOLDLEVELHEADERFLAG; - return 1; - } - if (!strcmp(token, "end function") || - !strcmp(token, "end type")) { - return -1; - } - return 0; -} - -static int CheckPureFoldPoint(char const *token, int &level) { - if (!strcmp(token, "procedure") || - !strcmp(token, "enumeration") || - !strcmp(token, "interface") || - !strcmp(token, "structure")) { - level |= SC_FOLDLEVELHEADERFLAG; - return 1; - } - if (!strcmp(token, "endprocedure") || - !strcmp(token, "endenumeration") || - !strcmp(token, "endinterface") || - !strcmp(token, "endstructure")) { - return -1; - } - return 0; -} - -static int CheckFreeFoldPoint(char const *token, int &level) { - if (!strcmp(token, "function") || - !strcmp(token, "sub") || - !strcmp(token, "type")) { - level |= SC_FOLDLEVELHEADERFLAG; - return 1; - } - if (!strcmp(token, "end function") || - !strcmp(token, "end sub") || - !strcmp(token, "end type")) { - return -1; - } - return 0; -} - -static void FoldBasicDoc(unsigned int startPos, int length, - Accessor &styler, int (*CheckFoldPoint)(char const *, int &)) { - int line = styler.GetLine(startPos); - int level = styler.LevelAt(line); - int go = 0, done = 0; - int endPos = startPos + length; - char word[256]; - int wordlen = 0; - int i; - bool foldCompact = styler.GetPropertyInt("fold.compact", 1) != 0; - // Scan for tokens at the start of the line (they may include - // whitespace, for tokens like "End Function" - for (i = startPos; i < endPos; i++) { - int c = styler.SafeGetCharAt(i); - if (!done && !go) { - if (wordlen) { // are we scanning a token already? - word[wordlen] = static_cast(LowerCase(c)); - if (!IsIdentifier(c)) { // done with token - word[wordlen] = '\0'; - go = CheckFoldPoint(word, level); - if (!go) { - // Treat any whitespace as single blank, for - // things like "End Function". - if (IsSpace(c) && IsIdentifier(word[wordlen - 1])) { - word[wordlen] = ' '; - if (wordlen < 255) - wordlen++; - } - else // done with this line - done = 1; - } - } else if (wordlen < 255) { - wordlen++; - } - } else { // start scanning at first non-whitespace character - if (!IsSpace(c)) { - if (IsIdentifier(c)) { - word[0] = static_cast(LowerCase(c)); - wordlen = 1; - } else // done with this line - done = 1; - } - } - } - if (c == '\n') { // line end - if (!done && wordlen == 0 && foldCompact) // line was only space - level |= SC_FOLDLEVELWHITEFLAG; - if (level != styler.LevelAt(line)) - styler.SetLevel(line, level); - level += go; - line++; - // reset state - wordlen = 0; - level &= ~SC_FOLDLEVELHEADERFLAG; - level &= ~SC_FOLDLEVELWHITEFLAG; - go = 0; - done = 0; - } - } -} - -static void ColouriseBlitzBasicDoc(unsigned int startPos, int length, int initStyle, - WordList *keywordlists[], Accessor &styler) { - ColouriseBasicDoc(startPos, length, initStyle, keywordlists, styler, ';'); -} - -static void ColourisePureBasicDoc(unsigned int startPos, int length, int initStyle, - WordList *keywordlists[], Accessor &styler) { - ColouriseBasicDoc(startPos, length, initStyle, keywordlists, styler, ';'); -} - -static void ColouriseFreeBasicDoc(unsigned int startPos, int length, int initStyle, - WordList *keywordlists[], Accessor &styler) { - ColouriseBasicDoc(startPos, length, initStyle, keywordlists, styler, '\''); -} - -static void FoldBlitzBasicDoc(unsigned int startPos, int length, int, - WordList *[], Accessor &styler) { - FoldBasicDoc(startPos, length, styler, CheckBlitzFoldPoint); -} - -static void FoldPureBasicDoc(unsigned int startPos, int length, int, - WordList *[], Accessor &styler) { - FoldBasicDoc(startPos, length, styler, CheckPureFoldPoint); -} - -static void FoldFreeBasicDoc(unsigned int startPos, int length, int, - WordList *[], Accessor &styler) { - FoldBasicDoc(startPos, length, styler, CheckFreeFoldPoint); -} - -static const char * const blitzbasicWordListDesc[] = { - "BlitzBasic Keywords", - "user1", - "user2", - "user3", - 0 -}; - -static const char * const purebasicWordListDesc[] = { - "PureBasic Keywords", - "PureBasic PreProcessor Keywords", - "user defined 1", - "user defined 2", - 0 -}; - -static const char * const freebasicWordListDesc[] = { - "FreeBasic Keywords", - "FreeBasic PreProcessor Keywords", - "user defined 1", - "user defined 2", - 0 -}; - -LexerModule lmBlitzBasic(SCLEX_BLITZBASIC, ColouriseBlitzBasicDoc, "blitzbasic", - FoldBlitzBasicDoc, blitzbasicWordListDesc); - -LexerModule lmPureBasic(SCLEX_PUREBASIC, ColourisePureBasicDoc, "purebasic", - FoldPureBasicDoc, purebasicWordListDesc); - -LexerModule lmFreeBasic(SCLEX_FREEBASIC, ColouriseFreeBasicDoc, "freebasic", - FoldFreeBasicDoc, freebasicWordListDesc); - diff --git a/MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/src/LexBullant.cxx b/MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/src/LexBullant.cxx deleted file mode 100644 index 59fe6c41..00000000 --- a/MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/src/LexBullant.cxx +++ /dev/null @@ -1,225 +0,0 @@ -// SciTE - Scintilla based Text Editor -// LexBullant.cxx - lexer for Bullant - -#include -#include -#include -#include -#include - -#include "Platform.h" - -#include "PropSet.h" -#include "Accessor.h" -#include "KeyWords.h" -#include "Scintilla.h" -#include "SciLexer.h" - - -static int classifyWordBullant(unsigned int start, unsigned int end, WordList &keywords, Accessor &styler) { - char s[100]; - for (unsigned int i = 0; i < end - start + 1 && i < 30; i++) { - s[i] = static_cast(tolower(styler[start + i])); - s[i + 1] = '\0'; - } - int lev= 0; - char chAttr = SCE_C_IDENTIFIER; - if (isdigit(s[0]) || (s[0] == '.')){ - chAttr = SCE_C_NUMBER; - } - else { - if (keywords.InList(s)) { - chAttr = SCE_C_WORD; - if (strcmp(s, "end") == 0) - lev = -1; - else if (strcmp(s, "method") == 0 || - strcmp(s, "case") == 0 || - strcmp(s, "class") == 0 || - strcmp(s, "debug") == 0 || - strcmp(s, "test") == 0 || - strcmp(s, "if") == 0 || - strcmp(s, "lock") == 0 || - strcmp(s, "transaction") == 0 || - strcmp(s, "trap") == 0 || - strcmp(s, "until") == 0 || - strcmp(s, "while") == 0) - lev = 1; - } - } - styler.ColourTo(end, chAttr); - return lev; -} - -static void ColouriseBullantDoc(unsigned int startPos, int length, int initStyle, WordList *keywordlists[], - Accessor &styler) { - WordList &keywords = *keywordlists[0]; - - styler.StartAt(startPos); - - bool fold = styler.GetPropertyInt("fold") != 0; - int lineCurrent = styler.GetLine(startPos); - int levelPrev = styler.LevelAt(lineCurrent) & SC_FOLDLEVELNUMBERMASK; - int levelCurrent = levelPrev; - - int state = initStyle; - if (state == SCE_C_STRINGEOL) // Does not leak onto next line - state = SCE_C_DEFAULT; - char chPrev = ' '; - char chNext = styler[startPos]; - unsigned int lengthDoc = startPos + length; - int visibleChars = 0; - styler.StartSegment(startPos); - int endFoundThisLine = 0; - for (unsigned int i = startPos; i < lengthDoc; i++) { - char ch = chNext; - chNext = styler.SafeGetCharAt(i + 1); - - if ((ch == '\r' && chNext != '\n') || (ch == '\n')) { - // Trigger on CR only (Mac style) or either on LF from CR+LF (Dos/Win) or on LF alone (Unix) - // Avoid triggering two times on Dos/Win - // End of line - endFoundThisLine = 0; - if (state == SCE_C_STRINGEOL) { - styler.ColourTo(i, state); - state = SCE_C_DEFAULT; - } - if (fold) { - int lev = levelPrev; - if (visibleChars == 0) - lev |= SC_FOLDLEVELWHITEFLAG; - if ((levelCurrent > levelPrev) && (visibleChars > 0)) - lev |= SC_FOLDLEVELHEADERFLAG; - styler.SetLevel(lineCurrent, lev); - lineCurrent++; - levelPrev = levelCurrent; - } - visibleChars = 0; - -/* int indentBlock = GetLineIndentation(lineCurrent); - if (blockChange==1){ - lineCurrent++; - int pos=SetLineIndentation(lineCurrent, indentBlock + indentSize); - } else if (blockChange==-1) { - indentBlock -= indentSize; - if (indentBlock < 0) - indentBlock = 0; - SetLineIndentation(lineCurrent, indentBlock); - lineCurrent++; - } - blockChange=0; -*/ } - if (!isspace(ch)) - visibleChars++; - - if (styler.IsLeadByte(ch)) { - chNext = styler.SafeGetCharAt(i + 2); - chPrev = ' '; - i += 1; - continue; - } - - if (state == SCE_C_DEFAULT) { - if (iswordstart(ch)) { - styler.ColourTo(i-1, state); - state = SCE_C_IDENTIFIER; - } else if (ch == '@' && chNext == 'o') { - if ((styler.SafeGetCharAt(i+2) =='f') && (styler.SafeGetCharAt(i+3) == 'f')) { - styler.ColourTo(i-1, state); - state = SCE_C_COMMENT; - } - } else if (ch == '#') { - styler.ColourTo(i-1, state); - state = SCE_C_COMMENTLINE; - } else if (ch == '\"') { - styler.ColourTo(i-1, state); - state = SCE_C_STRING; - } else if (ch == '\'') { - styler.ColourTo(i-1, state); - state = SCE_C_CHARACTER; - } else if (isoperator(ch)) { - styler.ColourTo(i-1, state); - styler.ColourTo(i, SCE_C_OPERATOR); - } - } else if (state == SCE_C_IDENTIFIER) { - if (!iswordchar(ch)) { - int levelChange = classifyWordBullant(styler.GetStartSegment(), i - 1, keywords, styler); - state = SCE_C_DEFAULT; - chNext = styler.SafeGetCharAt(i + 1); - if (ch == '#') { - state = SCE_C_COMMENTLINE; - } else if (ch == '\"') { - state = SCE_C_STRING; - } else if (ch == '\'') { - state = SCE_C_CHARACTER; - } else if (isoperator(ch)) { - styler.ColourTo(i, SCE_C_OPERATOR); - } - if (endFoundThisLine == 0) - levelCurrent+=levelChange; - if (levelChange == -1) - endFoundThisLine=1; - } - } else if (state == SCE_C_COMMENT) { - if (ch == '@' && chNext == 'o') { - if (styler.SafeGetCharAt(i+2) == 'n') { - styler.ColourTo(i+2, state); - state = SCE_C_DEFAULT; - i+=2; - } - } - } else if (state == SCE_C_COMMENTLINE) { - if (ch == '\r' || ch == '\n') { - endFoundThisLine = 0; - styler.ColourTo(i-1, state); - state = SCE_C_DEFAULT; - } - } else if (state == SCE_C_STRING) { - if (ch == '\\') { - if (chNext == '\"' || chNext == '\'' || chNext == '\\') { - i++; - ch = chNext; - chNext = styler.SafeGetCharAt(i + 1); - } - } else if (ch == '\"') { - styler.ColourTo(i, state); - state = SCE_C_DEFAULT; - } else if (chNext == '\r' || chNext == '\n') { - endFoundThisLine = 0; - styler.ColourTo(i-1, SCE_C_STRINGEOL); - state = SCE_C_STRINGEOL; - } - } else if (state == SCE_C_CHARACTER) { - if ((ch == '\r' || ch == '\n') && (chPrev != '\\')) { - endFoundThisLine = 0; - styler.ColourTo(i-1, SCE_C_STRINGEOL); - state = SCE_C_STRINGEOL; - } else if (ch == '\\') { - if (chNext == '\"' || chNext == '\'' || chNext == '\\') { - i++; - ch = chNext; - chNext = styler.SafeGetCharAt(i + 1); - } - } else if (ch == '\'') { - styler.ColourTo(i, state); - state = SCE_C_DEFAULT; - } - } - chPrev = ch; - } - styler.ColourTo(lengthDoc - 1, state); - - // Fill in the real level of the next line, keeping the current flags as they will be filled in later - if (fold) { - int flagsNext = styler.LevelAt(lineCurrent) & ~SC_FOLDLEVELNUMBERMASK; - //styler.SetLevel(lineCurrent, levelCurrent | flagsNext); - styler.SetLevel(lineCurrent, levelPrev | flagsNext); - - } -} - -static const char * const bullantWordListDesc[] = { - "Keywords", - 0 -}; - -LexerModule lmBullant(SCLEX_BULLANT, ColouriseBullantDoc, "bullant", 0, bullantWordListDesc); diff --git a/MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/src/LexCLW.cxx b/MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/src/LexCLW.cxx deleted file mode 100644 index e768b731..00000000 --- a/MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/src/LexCLW.cxx +++ /dev/null @@ -1,675 +0,0 @@ -// Scintilla source code edit control -/** @file LexClw.cxx - ** Lexer for Clarion. - ** 2004/12/17 Updated Lexer - **/ -// Copyright 2003-2004 by Ron Schofield -// The License.txt file describes the conditions under which this software may be distributed. - -#include -#include -#include -#include -#include - -#include "Platform.h" - -#include "PropSet.h" -#include "Accessor.h" -#include "StyleContext.h" -#include "KeyWords.h" -#include "Scintilla.h" -#include "SciLexer.h" - -// Is an end of line character -inline bool IsEOL(const int ch) { - - return(ch == '\n'); -} - -// Convert character to uppercase -static char CharacterUpper(char chChar) { - - if (chChar < 'a' || chChar > 'z') { - return(chChar); - } - else { - return(static_cast(chChar - 'a' + 'A')); - } -} - -// Convert string to uppercase -static void StringUpper(char *szString) { - - while (*szString) { - *szString = CharacterUpper(*szString); - szString++; - } -} - -// Is a label start character -inline bool IsALabelStart(const int iChar) { - - return(isalpha(iChar) || iChar == '_'); -} - -// Is a label character -inline bool IsALabelCharacter(const int iChar) { - - return(isalnum(iChar) || iChar == '_' || iChar == ':'); -} - -// Is the character is a ! and the the next character is not a ! -inline bool IsACommentStart(const int iChar) { - - return(iChar == '!'); -} - -// Is the character a Clarion hex character (ABCDEF) -inline bool IsAHexCharacter(const int iChar, bool bCaseSensitive) { - - // Case insensitive. - if (!bCaseSensitive) { - if (strchr("ABCDEFabcdef", iChar) != NULL) { - return(true); - } - } - // Case sensitive - else { - if (strchr("ABCDEF", iChar) != NULL) { - return(true); - } - } - return(false); -} - -// Is the character a Clarion base character (B=Binary, O=Octal, H=Hex) -inline bool IsANumericBaseCharacter(const int iChar, bool bCaseSensitive) { - - // Case insensitive. - if (!bCaseSensitive) { - // If character is a numeric base character - if (strchr("BOHboh", iChar) != NULL) { - return(true); - } - } - // Case sensitive - else { - // If character is a numeric base character - if (strchr("BOH", iChar) != NULL) { - return(true); - } - } - return(false); -} - -// Set the correct numeric constant state -inline bool SetNumericConstantState(StyleContext &scDoc) { - - int iPoints = 0; // Point counter - char cNumericString[512]; // Numeric string buffer - - // Buffer the current numberic string - scDoc.GetCurrent(cNumericString, sizeof(cNumericString)); - // Loop through the string until end of string (NULL termination) - for (int iIndex = 0; cNumericString[iIndex] != '\0'; iIndex++) { - // Depending on the character - switch (cNumericString[iIndex]) { - // Is a . (point) - case '.' : - // Increment point counter - iPoints++; - break; - default : - break; - } - } - // If points found (can be more than one for improper formatted number - if (iPoints > 0) { - return(true); - } - // Else no points found - else { - return(false); - } -} - -// Get the next word in uppercase from the current position (keyword lookahead) -inline bool GetNextWordUpper(Accessor &styler, unsigned int uiStartPos, int iLength, char *cWord) { - - unsigned int iIndex = 0; // Buffer Index - - // Loop through the remaining string from the current position - for (int iOffset = uiStartPos; iOffset < iLength; iOffset++) { - // Get the character from the buffer using the offset - char cCharacter = styler[iOffset]; - if (IsEOL(cCharacter)) { - break; - } - // If the character is alphabet character - if (isalpha(cCharacter)) { - // Add UPPERCASE character to the word buffer - cWord[iIndex++] = CharacterUpper(cCharacter); - } - } - // Add null termination - cWord[iIndex] = '\0'; - // If no word was found - if (iIndex == 0) { - // Return failure - return(false); - } - // Else word was found - else { - // Return success - return(true); - } -} - -// Clarion Language Colouring Procedure -static void ColouriseClarionDoc(unsigned int uiStartPos, int iLength, int iInitStyle, WordList *wlKeywords[], Accessor &accStyler, bool bCaseSensitive) { - - int iParenthesesLevel = 0; // Parenthese Level - int iColumn1Label = false; // Label starts in Column 1 - - WordList &wlClarionKeywords = *wlKeywords[0]; // Clarion Keywords - WordList &wlCompilerDirectives = *wlKeywords[1]; // Compiler Directives - WordList &wlRuntimeExpressions = *wlKeywords[2]; // Runtime Expressions - WordList &wlBuiltInProcsFuncs = *wlKeywords[3]; // Builtin Procedures and Functions - WordList &wlStructsDataTypes = *wlKeywords[4]; // Structures and Data Types - WordList &wlAttributes = *wlKeywords[5]; // Procedure Attributes - WordList &wlStandardEquates = *wlKeywords[6]; // Standard Equates - WordList &wlLabelReservedWords = *wlKeywords[7]; // Clarion Reserved Keywords (Labels) - WordList &wlProcLabelReservedWords = *wlKeywords[8]; // Clarion Reserved Keywords (Procedure Labels) - - const char wlProcReservedKeywordList[] = - "PROCEDURE FUNCTION"; - WordList wlProcReservedKeywords; - wlProcReservedKeywords.Set(wlProcReservedKeywordList); - - const char wlCompilerKeywordList[] = - "COMPILE OMIT"; - WordList wlCompilerKeywords; - wlCompilerKeywords.Set(wlCompilerKeywordList); - - const char wlLegacyStatementsList[] = - "BOF EOF FUNCTION POINTER SHARE"; - WordList wlLegacyStatements; - wlLegacyStatements.Set(wlLegacyStatementsList); - - StyleContext scDoc(uiStartPos, iLength, iInitStyle, accStyler); - - // lex source code - for (; scDoc.More(); scDoc.Forward()) - { - // - // Determine if the current state should terminate. - // - - // Label State Handling - if (scDoc.state == SCE_CLW_LABEL) { - // If the character is not a valid label - if (!IsALabelCharacter(scDoc.ch)) { - // If the character is a . (dot syntax) - if (scDoc.ch == '.') { - // Turn off column 1 label flag as label now cannot be reserved work - iColumn1Label = false; - // Uncolour the . (dot) to default state, move forward one character, - // and change back to the label state. - scDoc.SetState(SCE_CLW_DEFAULT); - scDoc.Forward(); - scDoc.SetState(SCE_CLW_LABEL); - } - // Else check label - else { - char cLabel[512]; // Label buffer - // Buffer the current label string - scDoc.GetCurrent(cLabel,sizeof(cLabel)); - // If case insensitive, convert string to UPPERCASE to match passed keywords. - if (!bCaseSensitive) { - StringUpper(cLabel); - } - // Else if UPPERCASE label string is in the Clarion compiler keyword list - if (wlCompilerKeywords.InList(cLabel) && iColumn1Label){ - // change the label to error state - scDoc.ChangeState(SCE_CLW_COMPILER_DIRECTIVE); - } - // Else if UPPERCASE label string is in the Clarion reserved keyword list - else if (wlLabelReservedWords.InList(cLabel) && iColumn1Label){ - // change the label to error state - scDoc.ChangeState(SCE_CLW_ERROR); - } - // Else if UPPERCASE label string is - else if (wlProcLabelReservedWords.InList(cLabel) && iColumn1Label) { - char cWord[512]; // Word buffer - // Get the next word from the current position - if (GetNextWordUpper(accStyler,scDoc.currentPos,uiStartPos+iLength,cWord)) { - // If the next word is a procedure reserved word - if (wlProcReservedKeywords.InList(cWord)) { - // Change the label to error state - scDoc.ChangeState(SCE_CLW_ERROR); - } - } - } - // Else if label string is in the compiler directive keyword list - else if (wlCompilerDirectives.InList(cLabel)) { - // change the state to compiler directive state - scDoc.ChangeState(SCE_CLW_COMPILER_DIRECTIVE); - } - // Terminate the label state and set to default state - scDoc.SetState(SCE_CLW_DEFAULT); - } - } - } - // Keyword State Handling - else if (scDoc.state == SCE_CLW_KEYWORD) { - // If character is : (colon) - if (scDoc.ch == ':') { - char cEquate[512]; // Equate buffer - // Move forward to include : (colon) in buffer - scDoc.Forward(); - // Buffer the equate string - scDoc.GetCurrent(cEquate,sizeof(cEquate)); - // If case insensitive, convert string to UPPERCASE to match passed keywords. - if (!bCaseSensitive) { - StringUpper(cEquate); - } - // If statement string is in the equate list - if (wlStandardEquates.InList(cEquate)) { - // Change to equate state - scDoc.ChangeState(SCE_CLW_STANDARD_EQUATE); - } - } - // If the character is not a valid label character - else if (!IsALabelCharacter(scDoc.ch)) { - char cStatement[512]; // Statement buffer - // Buffer the statement string - scDoc.GetCurrent(cStatement,sizeof(cStatement)); - // If case insensitive, convert string to UPPERCASE to match passed keywords. - if (!bCaseSensitive) { - StringUpper(cStatement); - } - // If statement string is in the Clarion keyword list - if (wlClarionKeywords.InList(cStatement)) { - // Change the statement string to the Clarion keyword state - scDoc.ChangeState(SCE_CLW_KEYWORD); - } - // Else if statement string is in the compiler directive keyword list - else if (wlCompilerDirectives.InList(cStatement)) { - // Change the statement string to the compiler directive state - scDoc.ChangeState(SCE_CLW_COMPILER_DIRECTIVE); - } - // Else if statement string is in the runtime expressions keyword list - else if (wlRuntimeExpressions.InList(cStatement)) { - // Change the statement string to the runtime expressions state - scDoc.ChangeState(SCE_CLW_RUNTIME_EXPRESSIONS); - } - // Else if statement string is in the builtin procedures and functions keyword list - else if (wlBuiltInProcsFuncs.InList(cStatement)) { - // Change the statement string to the builtin procedures and functions state - scDoc.ChangeState(SCE_CLW_BUILTIN_PROCEDURES_FUNCTION); - } - // Else if statement string is in the tructures and data types keyword list - else if (wlStructsDataTypes.InList(cStatement)) { - // Change the statement string to the structures and data types state - scDoc.ChangeState(SCE_CLW_STRUCTURE_DATA_TYPE); - } - // Else if statement string is in the procedure attribute keyword list - else if (wlAttributes.InList(cStatement)) { - // Change the statement string to the procedure attribute state - scDoc.ChangeState(SCE_CLW_ATTRIBUTE); - } - // Else if statement string is in the standard equate keyword list - else if (wlStandardEquates.InList(cStatement)) { - // Change the statement string to the standard equate state - scDoc.ChangeState(SCE_CLW_STANDARD_EQUATE); - } - // Else if statement string is in the deprecated or legacy keyword list - else if (wlLegacyStatements.InList(cStatement)) { - // Change the statement string to the standard equate state - scDoc.ChangeState(SCE_CLW_DEPRECATED); - } - // Else the statement string doesn't match any work list - else { - // Change the statement string to the default state - scDoc.ChangeState(SCE_CLW_DEFAULT); - } - // Terminate the keyword state and set to default state - scDoc.SetState(SCE_CLW_DEFAULT); - } - } - // String State Handling - else if (scDoc.state == SCE_CLW_STRING) { - // If the character is an ' (single quote) - if (scDoc.ch == '\'') { - // Set the state to default and move forward colouring - // the ' (single quote) as default state - // terminating the string state - scDoc.SetState(SCE_CLW_DEFAULT); - scDoc.Forward(); - } - // If the next character is an ' (single quote) - if (scDoc.chNext == '\'') { - // Move forward one character and set to default state - // colouring the next ' (single quote) as default state - // terminating the string state - scDoc.ForwardSetState(SCE_CLW_DEFAULT); - scDoc.Forward(); - } - } - // Picture String State Handling - else if (scDoc.state == SCE_CLW_PICTURE_STRING) { - // If the character is an ( (open parenthese) - if (scDoc.ch == '(') { - // Increment the parenthese level - iParenthesesLevel++; - } - // Else if the character is a ) (close parenthese) - else if (scDoc.ch == ')') { - // If the parenthese level is set to zero - // parentheses matched - if (!iParenthesesLevel) { - scDoc.SetState(SCE_CLW_DEFAULT); - } - // Else parenthese level is greater than zero - // still looking for matching parentheses - else { - // Decrement the parenthese level - iParenthesesLevel--; - } - } - } - // Standard Equate State Handling - else if (scDoc.state == SCE_CLW_STANDARD_EQUATE) { - if (!isalnum(scDoc.ch)) { - scDoc.SetState(SCE_CLW_DEFAULT); - } - } - // Integer Constant State Handling - else if (scDoc.state == SCE_CLW_INTEGER_CONSTANT) { - // If the character is not a digit (0-9) - // or character is not a hexidecimal character (A-F) - // or character is not a . (point) - // or character is not a numberic base character (B,O,H) - if (!(isdigit(scDoc.ch) - || IsAHexCharacter(scDoc.ch, bCaseSensitive) - || scDoc.ch == '.' - || IsANumericBaseCharacter(scDoc.ch, bCaseSensitive))) { - // If the number was a real - if (SetNumericConstantState(scDoc)) { - // Colour the matched string to the real constant state - scDoc.ChangeState(SCE_CLW_REAL_CONSTANT); - } - // Else the number was an integer - else { - // Colour the matched string to an integer constant state - scDoc.ChangeState(SCE_CLW_INTEGER_CONSTANT); - } - // Terminate the integer constant state and set to default state - scDoc.SetState(SCE_CLW_DEFAULT); - } - } - - // - // Determine if a new state should be entered. - // - - // Beginning of Line Handling - if (scDoc.atLineStart) { - // Reset the column 1 label flag - iColumn1Label = false; - // If column 1 character is a label start character - if (IsALabelStart(scDoc.ch)) { - // Label character is found in column 1 - // so set column 1 label flag and clear last column 1 label - iColumn1Label = true; - // Set the state to label - scDoc.SetState(SCE_CLW_LABEL); - } - // else if character is a space or tab - else if (IsASpace(scDoc.ch)){ - // Set to default state - scDoc.SetState(SCE_CLW_DEFAULT); - } - // else if comment start (!) or is an * (asterisk) - else if (IsACommentStart(scDoc.ch) || scDoc.ch == '*' ) { - // then set the state to comment. - scDoc.SetState(SCE_CLW_COMMENT); - } - // else the character is a ? (question mark) - else if (scDoc.ch == '?') { - // Change to the compiler directive state, move forward, - // colouring the ? (question mark), change back to default state. - scDoc.ChangeState(SCE_CLW_COMPILER_DIRECTIVE); - scDoc.Forward(); - scDoc.SetState(SCE_CLW_DEFAULT); - } - // else an invalid character in column 1 - else { - // Set to error state - scDoc.SetState(SCE_CLW_ERROR); - } - } - // End of Line Handling - else if (scDoc.atLineEnd) { - // Reset to the default state at the end of each line. - scDoc.SetState(SCE_CLW_DEFAULT); - } - // Default Handling - else { - // If in default state - if (scDoc.state == SCE_CLW_DEFAULT) { - // If is a letter could be a possible statement - if (isalpha(scDoc.ch)) { - // Set the state to Clarion Keyword and verify later - scDoc.SetState(SCE_CLW_KEYWORD); - } - // else is a number - else if (isdigit(scDoc.ch)) { - // Set the state to Integer Constant and verify later - scDoc.SetState(SCE_CLW_INTEGER_CONSTANT); - } - // else if the start of a comment or a | (line continuation) - else if (IsACommentStart(scDoc.ch) || scDoc.ch == '|') { - // then set the state to comment. - scDoc.SetState(SCE_CLW_COMMENT); - } - // else if the character is a ' (single quote) - else if (scDoc.ch == '\'') { - // If the character is also a ' (single quote) - // Embedded Apostrophe - if (scDoc.chNext == '\'') { - // Move forward colouring it as default state - scDoc.ForwardSetState(SCE_CLW_DEFAULT); - } - else { - // move to the next character and then set the state to comment. - scDoc.ForwardSetState(SCE_CLW_STRING); - } - } - // else the character is an @ (ampersand) - else if (scDoc.ch == '@') { - // Case insensitive. - if (!bCaseSensitive) { - // If character is a valid picture token character - if (strchr("DEKNPSTdeknpst", scDoc.chNext) != NULL) { - // Set to the picture string state - scDoc.SetState(SCE_CLW_PICTURE_STRING); - } - } - // Case sensitive - else { - // If character is a valid picture token character - if (strchr("DEKNPST", scDoc.chNext) != NULL) { - // Set the picture string state - scDoc.SetState(SCE_CLW_PICTURE_STRING); - } - } - } - } - } - } - // lexing complete - scDoc.Complete(); -} - -// Clarion Language Case Sensitive Colouring Procedure -static void ColouriseClarionDocSensitive(unsigned int uiStartPos, int iLength, int iInitStyle, WordList *wlKeywords[], Accessor &accStyler) { - - ColouriseClarionDoc(uiStartPos, iLength, iInitStyle, wlKeywords, accStyler, true); -} - -// Clarion Language Case Insensitive Colouring Procedure -static void ColouriseClarionDocInsensitive(unsigned int uiStartPos, int iLength, int iInitStyle, WordList *wlKeywords[], Accessor &accStyler) { - - ColouriseClarionDoc(uiStartPos, iLength, iInitStyle, wlKeywords, accStyler, false); -} - -// Fill Buffer - -static void FillBuffer(unsigned int uiStart, unsigned int uiEnd, Accessor &accStyler, char *szBuffer, unsigned int uiLength) { - - unsigned int uiPos = 0; - - while ((uiPos < uiEnd - uiStart + 1) && (uiPos < uiLength-1)) { - szBuffer[uiPos] = static_cast(toupper(accStyler[uiStart + uiPos])); - uiPos++; - } - szBuffer[uiPos] = '\0'; -} - -// Classify Clarion Fold Point - -static int ClassifyClarionFoldPoint(int iLevel, const char* szString) { - - if (!(isdigit(szString[0]) || (szString[0] == '.'))) { - if (strcmp(szString, "PROCEDURE") == 0) { - // iLevel = SC_FOLDLEVELBASE + 1; - } - else if (strcmp(szString, "MAP") == 0 || - strcmp(szString,"ACCEPT") == 0 || - strcmp(szString,"BEGIN") == 0 || - strcmp(szString,"CASE") == 0 || - strcmp(szString,"EXECUTE") == 0 || - strcmp(szString,"IF") == 0 || - strcmp(szString,"ITEMIZE") == 0 || - strcmp(szString,"INTERFACE") == 0 || - strcmp(szString,"JOIN") == 0 || - strcmp(szString,"LOOP") == 0 || - strcmp(szString,"MODULE") == 0 || - strcmp(szString,"RECORD") == 0) { - iLevel++; - } - else if (strcmp(szString, "APPLICATION") == 0 || - strcmp(szString, "CLASS") == 0 || - strcmp(szString, "DETAIL") == 0 || - strcmp(szString, "FILE") == 0 || - strcmp(szString, "FOOTER") == 0 || - strcmp(szString, "FORM") == 0 || - strcmp(szString, "GROUP") == 0 || - strcmp(szString, "HEADER") == 0 || - strcmp(szString, "INTERFACE") == 0 || - strcmp(szString, "MENU") == 0 || - strcmp(szString, "MENUBAR") == 0 || - strcmp(szString, "OLE") == 0 || - strcmp(szString, "OPTION") == 0 || - strcmp(szString, "QUEUE") == 0 || - strcmp(szString, "REPORT") == 0 || - strcmp(szString, "SHEET") == 0 || - strcmp(szString, "TAB") == 0 || - strcmp(szString, "TOOLBAR") == 0 || - strcmp(szString, "VIEW") == 0 || - strcmp(szString, "WINDOW") == 0) { - iLevel++; - } - else if (strcmp(szString, "END") == 0 || - strcmp(szString, "UNTIL") == 0 || - strcmp(szString, "WHILE") == 0) { - iLevel--; - } - } - return(iLevel); -} - -// Clarion Language Folding Procedure -static void FoldClarionDoc(unsigned int uiStartPos, int iLength, int iInitStyle, WordList *[], Accessor &accStyler) { - - unsigned int uiEndPos = uiStartPos + iLength; - int iLineCurrent = accStyler.GetLine(uiStartPos); - int iLevelPrev = accStyler.LevelAt(iLineCurrent) & SC_FOLDLEVELNUMBERMASK; - int iLevelCurrent = iLevelPrev; - char chNext = accStyler[uiStartPos]; - int iStyle = iInitStyle; - int iStyleNext = accStyler.StyleAt(uiStartPos); - int iVisibleChars = 0; - int iLastStart = 0; - - for (unsigned int uiPos = uiStartPos; uiPos < uiEndPos; uiPos++) { - - char chChar = chNext; - chNext = accStyler.SafeGetCharAt(uiPos + 1); - int iStylePrev = iStyle; - iStyle = iStyleNext; - iStyleNext = accStyler.StyleAt(uiPos + 1); - bool bEOL = (chChar == '\r' && chNext != '\n') || (chChar == '\n'); - - if (iStylePrev == SCE_CLW_DEFAULT) { - if (iStyle == SCE_CLW_KEYWORD || iStyle == SCE_CLW_STRUCTURE_DATA_TYPE) { - // Store last word start point. - iLastStart = uiPos; - } - } - - if (iStylePrev == SCE_CLW_KEYWORD || iStylePrev == SCE_CLW_STRUCTURE_DATA_TYPE) { - if(iswordchar(chChar) && !iswordchar(chNext)) { - char chBuffer[100]; - FillBuffer(iLastStart, uiPos, accStyler, chBuffer, sizeof(chBuffer)); - iLevelCurrent = ClassifyClarionFoldPoint(iLevelCurrent,chBuffer); - // if ((iLevelCurrent == SC_FOLDLEVELBASE + 1) && iLineCurrent > 1) { - // accStyler.SetLevel(iLineCurrent-1,SC_FOLDLEVELBASE); - // iLevelPrev = SC_FOLDLEVELBASE; - // } - } - } - - if (bEOL) { - int iLevel = iLevelPrev; - if ((iLevelCurrent > iLevelPrev) && (iVisibleChars > 0)) - iLevel |= SC_FOLDLEVELHEADERFLAG; - if (iLevel != accStyler.LevelAt(iLineCurrent)) { - accStyler.SetLevel(iLineCurrent,iLevel); - } - iLineCurrent++; - iLevelPrev = iLevelCurrent; - iVisibleChars = 0; - } - - if (!isspacechar(chChar)) - iVisibleChars++; - } - - // Fill in the real level of the next line, keeping the current flags - // as they will be filled in later. - int iFlagsNext = accStyler.LevelAt(iLineCurrent) & ~SC_FOLDLEVELNUMBERMASK; - accStyler.SetLevel(iLineCurrent, iLevelPrev | iFlagsNext); -} - -// Word List Descriptions -static const char * const rgWordListDescriptions[] = { - "Clarion Keywords", - "Compiler Directives", - "Built-in Procedures and Functions", - "Runtime Expressions", - "Structure and Data Types", - "Attributes", - "Standard Equates", - "Reserved Words (Labels)", - "Reserved Words (Procedure Labels)", - 0, -}; - -// Case Sensitive Clarion Language Lexer -LexerModule lmClw(SCLEX_CLW, ColouriseClarionDocSensitive, "clarion", FoldClarionDoc, rgWordListDescriptions); - -// Case Insensitive Clarion Language Lexer -LexerModule lmClwNoCase(SCLEX_CLWNOCASE, ColouriseClarionDocInsensitive, "clarionnocase", FoldClarionDoc, rgWordListDescriptions); diff --git a/MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/src/LexCPP.cxx b/MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/src/LexCPP.cxx deleted file mode 100644 index affa36e0..00000000 --- a/MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/src/LexCPP.cxx +++ /dev/null @@ -1,489 +0,0 @@ -// Scintilla source code edit control -/** @file LexCPP.cxx - ** Lexer for C++, C, Java, and JavaScript. - **/ -// Copyright 1998-2005 by Neil Hodgson -// The License.txt file describes the conditions under which this software may be distributed. - -#include -#include -#include -#include -#include - -#include "Platform.h" - -#include "PropSet.h" -#include "Accessor.h" -#include "StyleContext.h" -#include "KeyWords.h" -#include "Scintilla.h" -#include "SciLexer.h" - -#define SET_LOWER "abcdefghijklmnopqrstuvwxyz" -#define SET_UPPER "ABCDEFGHIJKLMNOPQRSTUVWXYZ" -#define SET_DIGITS "0123456789" - -class SetOfCharacters { - int size; - bool valueAfter; - bool *bset; -public: - SetOfCharacters(const char *setOfCharacters, int size_=0x80, bool valueAfter_=false) { - size = size_; - valueAfter = valueAfter_; - bset = new bool[size]; - for (int i=0; i < size; i++) { - bset[i] = false; - } - for (const char *cp=setOfCharacters; *cp; cp++) { - int val = static_cast(*cp); - PLATFORM_ASSERT(val >= 0); - PLATFORM_ASSERT(val < size); - bset[val] = true; - } - } - ~SetOfCharacters() { - delete []bset; - bset = 0; - size = 0; - } - void Add(int val) { - PLATFORM_ASSERT(val >= 0); - PLATFORM_ASSERT(val < size); - bset[val] = true; - } - bool Contains(int val) { - PLATFORM_ASSERT(val >= 0); - return (val < size) ? bset[val] : valueAfter; - } -}; - -static bool IsSpaceEquiv(int state) { - return (state <= SCE_C_COMMENTDOC) || - // including SCE_C_DEFAULT, SCE_C_COMMENT, SCE_C_COMMENTLINE - (state == SCE_C_COMMENTLINEDOC) || (state == SCE_C_COMMENTDOCKEYWORD) || - (state == SCE_C_COMMENTDOCKEYWORDERROR); -} - -static void ColouriseCppDoc(unsigned int startPos, int length, int initStyle, WordList *keywordlists[], - Accessor &styler, bool caseSensitive) { - - WordList &keywords = *keywordlists[0]; - WordList &keywords2 = *keywordlists[1]; - WordList &keywords3 = *keywordlists[2]; - WordList &keywords4 = *keywordlists[3]; - - bool stylingWithinPreprocessor = styler.GetPropertyInt("styling.within.preprocessor") != 0; - - SetOfCharacters setOKBeforeRE("(=,"); - - SetOfCharacters setDoxygen("$@\\&<>#{}[]" SET_LOWER); - - SetOfCharacters setWordStart("_" SET_LOWER SET_UPPER, 0x80, true); - SetOfCharacters setWord("._" SET_LOWER SET_UPPER SET_DIGITS, 0x80, true); - if (styler.GetPropertyInt("lexer.cpp.allow.dollars", 1) != 0) { - setWordStart.Add('$'); - setWord.Add('$'); - } - - int chPrevNonWhite = ' '; - int visibleChars = 0; - bool lastWordWasUUID = false; - int styleBeforeDCKeyword = SCE_C_DEFAULT; - bool continuationLine = false; - - if (initStyle == SCE_C_PREPROCESSOR) { - // Set continuationLine if last character of previous line is '\' - int lineCurrent = styler.GetLine(startPos); - if (lineCurrent > 0) { - int chBack = styler.SafeGetCharAt(startPos-1, 0); - int chBack2 = styler.SafeGetCharAt(startPos-2, 0); - int lineEndChar = '!'; - if (chBack2 == '\r' && chBack == '\n') { - lineEndChar = styler.SafeGetCharAt(startPos-3, 0); - } else if (chBack == '\n' || chBack == '\r') { - lineEndChar = chBack2; - } - continuationLine = lineEndChar == '\\'; - } - } - - // look back to set chPrevNonWhite properly for better regex colouring - if (startPos > 0) { - int back = startPos; - while (--back && IsSpaceEquiv(styler.StyleAt(back))) - ; - if (styler.StyleAt(back) == SCE_C_OPERATOR) { - chPrevNonWhite = styler.SafeGetCharAt(back); - } - } - - StyleContext sc(startPos, length, initStyle, styler); - - for (; sc.More(); sc.Forward()) { - - if (sc.atLineStart) { - if (sc.state == SCE_C_STRING) { - // Prevent SCE_C_STRINGEOL from leaking back to previous line which - // ends with a line continuation by locking in the state upto this position. - sc.SetState(SCE_C_STRING); - } - // Reset states to begining of colourise so no surprises - // if different sets of lines lexed. - visibleChars = 0; - lastWordWasUUID = false; - } - - // Handle line continuation generically. - if (sc.ch == '\\') { - if (sc.chNext == '\n' || sc.chNext == '\r') { - sc.Forward(); - if (sc.ch == '\r' && sc.chNext == '\n') { - sc.Forward(); - } - continuationLine = true; - continue; - } - } - - // Determine if the current state should terminate. - switch (sc.state) { - case SCE_C_OPERATOR: - sc.SetState(SCE_C_DEFAULT); - break; - case SCE_C_NUMBER: - // We accept almost anything because of hex. and number suffixes - if (!setWord.Contains(sc.ch)) { - sc.SetState(SCE_C_DEFAULT); - } - break; - case SCE_C_IDENTIFIER: - if (!setWord.Contains(sc.ch) || (sc.ch == '.')) { - char s[1000]; - if (caseSensitive) { - sc.GetCurrent(s, sizeof(s)); - } else { - sc.GetCurrentLowered(s, sizeof(s)); - } - if (keywords.InList(s)) { - lastWordWasUUID = strcmp(s, "uuid") == 0; - sc.ChangeState(SCE_C_WORD); - } else if (keywords2.InList(s)) { - sc.ChangeState(SCE_C_WORD2); - } else if (keywords4.InList(s)) { - sc.ChangeState(SCE_C_GLOBALCLASS); - } - sc.SetState(SCE_C_DEFAULT); - } - break; - case SCE_C_PREPROCESSOR: - if (sc.atLineStart && !continuationLine) { - sc.SetState(SCE_C_DEFAULT); - } else if (stylingWithinPreprocessor) { - if (IsASpace(sc.ch)) { - sc.SetState(SCE_C_DEFAULT); - } - } else { - if (sc.Match('/', '*') || sc.Match('/', '/')) { - sc.SetState(SCE_C_DEFAULT); - } - } - break; - case SCE_C_COMMENT: - if (sc.Match('*', '/')) { - sc.Forward(); - sc.ForwardSetState(SCE_C_DEFAULT); - } - break; - case SCE_C_COMMENTDOC: - if (sc.Match('*', '/')) { - sc.Forward(); - sc.ForwardSetState(SCE_C_DEFAULT); - } else if (sc.ch == '@' || sc.ch == '\\') { // JavaDoc and Doxygen support - // Verify that we have the conditions to mark a comment-doc-keyword - if ((IsASpace(sc.chPrev) || sc.chPrev == '*') && (!IsASpace(sc.chNext))) { - styleBeforeDCKeyword = SCE_C_COMMENTDOC; - sc.SetState(SCE_C_COMMENTDOCKEYWORD); - } - } - break; - case SCE_C_COMMENTLINE: - if (sc.atLineStart) { - sc.SetState(SCE_C_DEFAULT); - } - break; - case SCE_C_COMMENTLINEDOC: - if (sc.atLineStart) { - sc.SetState(SCE_C_DEFAULT); - } else if (sc.ch == '@' || sc.ch == '\\') { // JavaDoc and Doxygen support - // Verify that we have the conditions to mark a comment-doc-keyword - if ((IsASpace(sc.chPrev) || sc.chPrev == '/' || sc.chPrev == '!') && (!IsASpace(sc.chNext))) { - styleBeforeDCKeyword = SCE_C_COMMENTLINEDOC; - sc.SetState(SCE_C_COMMENTDOCKEYWORD); - } - } - break; - case SCE_C_COMMENTDOCKEYWORD: - if ((styleBeforeDCKeyword == SCE_C_COMMENTDOC) && sc.Match('*', '/')) { - sc.ChangeState(SCE_C_COMMENTDOCKEYWORDERROR); - sc.Forward(); - sc.ForwardSetState(SCE_C_DEFAULT); - } else if (!setDoxygen.Contains(sc.ch)) { - char s[100]; - if (caseSensitive) { - sc.GetCurrent(s, sizeof(s)); - } else { - sc.GetCurrentLowered(s, sizeof(s)); - } - if (!IsASpace(sc.ch) || !keywords3.InList(s + 1)) { - sc.ChangeState(SCE_C_COMMENTDOCKEYWORDERROR); - } - sc.SetState(styleBeforeDCKeyword); - } - break; - case SCE_C_STRING: - if (sc.atLineEnd) { - sc.ChangeState(SCE_C_STRINGEOL); - } else if (sc.ch == '\\') { - if (sc.chNext == '\"' || sc.chNext == '\'' || sc.chNext == '\\') { - sc.Forward(); - } - } else if (sc.ch == '\"') { - sc.ForwardSetState(SCE_C_DEFAULT); - } - break; - case SCE_C_CHARACTER: - if (sc.atLineEnd) { - sc.ChangeState(SCE_C_STRINGEOL); - } else if (sc.ch == '\\') { - if (sc.chNext == '\"' || sc.chNext == '\'' || sc.chNext == '\\') { - sc.Forward(); - } - } else if (sc.ch == '\'') { - sc.ForwardSetState(SCE_C_DEFAULT); - } - break; - case SCE_C_REGEX: - if (sc.atLineStart) { - sc.SetState(SCE_C_DEFAULT); - } else if (sc.ch == '/') { - sc.Forward(); - while ((sc.ch < 0x80) && islower(sc.ch)) - sc.Forward(); // gobble regex flags - sc.SetState(SCE_C_DEFAULT); - } else if (sc.ch == '\\') { - // Gobble up the quoted character - if (sc.chNext == '\\' || sc.chNext == '/') { - sc.Forward(); - } - } - break; - case SCE_C_STRINGEOL: - if (sc.atLineStart) { - sc.SetState(SCE_C_DEFAULT); - } - break; - case SCE_C_VERBATIM: - if (sc.ch == '\"') { - if (sc.chNext == '\"') { - sc.Forward(); - } else { - sc.ForwardSetState(SCE_C_DEFAULT); - } - } - break; - case SCE_C_UUID: - if (sc.ch == '\r' || sc.ch == '\n' || sc.ch == ')') { - sc.SetState(SCE_C_DEFAULT); - } - } - - // Determine if a new state should be entered. - if (sc.state == SCE_C_DEFAULT) { - if (sc.Match('@', '\"')) { - sc.SetState(SCE_C_VERBATIM); - sc.Forward(); - } else if (IsADigit(sc.ch) || (sc.ch == '.' && IsADigit(sc.chNext))) { - if (lastWordWasUUID) { - sc.SetState(SCE_C_UUID); - lastWordWasUUID = false; - } else { - sc.SetState(SCE_C_NUMBER); - } - } else if (setWordStart.Contains(sc.ch) || (sc.ch == '@')) { - if (lastWordWasUUID) { - sc.SetState(SCE_C_UUID); - lastWordWasUUID = false; - } else { - sc.SetState(SCE_C_IDENTIFIER); - } - } else if (sc.Match('/', '*')) { - if (sc.Match("/**") || sc.Match("/*!")) { // Support of Qt/Doxygen doc. style - sc.SetState(SCE_C_COMMENTDOC); - } else { - sc.SetState(SCE_C_COMMENT); - } - sc.Forward(); // Eat the * so it isn't used for the end of the comment - } else if (sc.Match('/', '/')) { - if ((sc.Match("///") && !sc.Match("////")) || sc.Match("//!")) - // Support of Qt/Doxygen doc. style - sc.SetState(SCE_C_COMMENTLINEDOC); - else - sc.SetState(SCE_C_COMMENTLINE); - } else if (sc.ch == '/' && setOKBeforeRE.Contains(chPrevNonWhite)) { - sc.SetState(SCE_C_REGEX); // JavaScript's RegEx - } else if (sc.ch == '\"') { - sc.SetState(SCE_C_STRING); - } else if (sc.ch == '\'') { - sc.SetState(SCE_C_CHARACTER); - } else if (sc.ch == '#' && visibleChars == 0) { - // Preprocessor commands are alone on their line - sc.SetState(SCE_C_PREPROCESSOR); - // Skip whitespace between # and preprocessor word - do { - sc.Forward(); - } while ((sc.ch == ' ' || sc.ch == '\t') && sc.More()); - if (sc.atLineEnd) { - sc.SetState(SCE_C_DEFAULT); - } - } else if (isoperator(static_cast(sc.ch))) { - sc.SetState(SCE_C_OPERATOR); - } - } - - if (!IsASpace(sc.ch) && !IsSpaceEquiv(sc.state)) { - chPrevNonWhite = sc.ch; - visibleChars++; - } - continuationLine = false; - } - sc.Complete(); -} - -static bool IsStreamCommentStyle(int style) { - return style == SCE_C_COMMENT || - style == SCE_C_COMMENTDOC || - style == SCE_C_COMMENTDOCKEYWORD || - style == SCE_C_COMMENTDOCKEYWORDERROR; -} - -// Store both the current line's fold level and the next lines in the -// level store to make it easy to pick up with each increment -// and to make it possible to fiddle the current level for "} else {". -static void FoldNoBoxCppDoc(unsigned int startPos, int length, int initStyle, - Accessor &styler) { - bool foldComment = styler.GetPropertyInt("fold.comment") != 0; - bool foldPreprocessor = styler.GetPropertyInt("fold.preprocessor") != 0; - bool foldCompact = styler.GetPropertyInt("fold.compact", 1) != 0; - bool foldAtElse = styler.GetPropertyInt("fold.at.else", 0) != 0; - unsigned int endPos = startPos + length; - int visibleChars = 0; - int lineCurrent = styler.GetLine(startPos); - int levelCurrent = SC_FOLDLEVELBASE; - if (lineCurrent > 0) - levelCurrent = styler.LevelAt(lineCurrent-1) >> 16; - int levelMinCurrent = levelCurrent; - int levelNext = levelCurrent; - char chNext = styler[startPos]; - int styleNext = styler.StyleAt(startPos); - int style = initStyle; - for (unsigned int i = startPos; i < endPos; i++) { - char ch = chNext; - chNext = styler.SafeGetCharAt(i + 1); - int stylePrev = style; - style = styleNext; - styleNext = styler.StyleAt(i + 1); - bool atEOL = (ch == '\r' && chNext != '\n') || (ch == '\n'); - if (foldComment && IsStreamCommentStyle(style)) { - if (!IsStreamCommentStyle(stylePrev)) { - levelNext++; - } else if (!IsStreamCommentStyle(styleNext) && !atEOL) { - // Comments don't end at end of line and the next character may be unstyled. - levelNext--; - } - } - if (foldComment && (style == SCE_C_COMMENTLINE)) { - if ((ch == '/') && (chNext == '/')) { - char chNext2 = styler.SafeGetCharAt(i + 2); - if (chNext2 == '{') { - levelNext++; - } else if (chNext2 == '}') { - levelNext--; - } - } - } - if (foldPreprocessor && (style == SCE_C_PREPROCESSOR)) { - if (ch == '#') { - unsigned int j = i + 1; - while ((j < endPos) && IsASpaceOrTab(styler.SafeGetCharAt(j))) { - j++; - } - if (styler.Match(j, "region") || styler.Match(j, "if")) { - levelNext++; - } else if (styler.Match(j, "end")) { - levelNext--; - } - } - } - if (style == SCE_C_OPERATOR) { - if (ch == '{') { - // Measure the minimum before a '{' to allow - // folding on "} else {" - if (levelMinCurrent > levelNext) { - levelMinCurrent = levelNext; - } - levelNext++; - } else if (ch == '}') { - levelNext--; - } - } - if (atEOL) { - int levelUse = levelCurrent; - if (foldAtElse) { - levelUse = levelMinCurrent; - } - int lev = levelUse | levelNext << 16; - if (visibleChars == 0 && foldCompact) - lev |= SC_FOLDLEVELWHITEFLAG; - if (levelUse < levelNext) - lev |= SC_FOLDLEVELHEADERFLAG; - if (lev != styler.LevelAt(lineCurrent)) { - styler.SetLevel(lineCurrent, lev); - } - lineCurrent++; - levelCurrent = levelNext; - levelMinCurrent = levelCurrent; - visibleChars = 0; - } - if (!IsASpace(ch)) - visibleChars++; - } -} - -static void FoldCppDoc(unsigned int startPos, int length, int initStyle, WordList *[], - Accessor &styler) { - FoldNoBoxCppDoc(startPos, length, initStyle, styler); -} - -static const char * const cppWordLists[] = { - "Primary keywords and identifiers", - "Secondary keywords and identifiers", - "Documentation comment keywords", - "Unused", - "Global classes and typedefs", - 0, - }; - -static void ColouriseCppDocSensitive(unsigned int startPos, int length, int initStyle, WordList *keywordlists[], - Accessor &styler) { - ColouriseCppDoc(startPos, length, initStyle, keywordlists, styler, true); -} - -static void ColouriseCppDocInsensitive(unsigned int startPos, int length, int initStyle, WordList *keywordlists[], - Accessor &styler) { - ColouriseCppDoc(startPos, length, initStyle, keywordlists, styler, false); -} - -LexerModule lmCPP(SCLEX_CPP, ColouriseCppDocSensitive, "cpp", FoldCppDoc, cppWordLists); -LexerModule lmCPPNoCase(SCLEX_CPPNOCASE, ColouriseCppDocInsensitive, "cppnocase", FoldCppDoc, cppWordLists); diff --git a/MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/src/LexCSS.cxx b/MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/src/LexCSS.cxx deleted file mode 100644 index 88e14545..00000000 --- a/MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/src/LexCSS.cxx +++ /dev/null @@ -1,303 +0,0 @@ -// Scintilla source code edit control -/** @file LexCSS.cxx - ** Lexer for Cascading Style Sheets - ** Written by Jakub Vrána - ** Improved by Philippe Lhoste (CSS2) - **/ -// Copyright 1998-2002 by Neil Hodgson -// The License.txt file describes the conditions under which this software may be distributed. - -#include -#include -#include -#include -#include - -#include "Platform.h" - -#include "PropSet.h" -#include "Accessor.h" -#include "StyleContext.h" -#include "KeyWords.h" -#include "Scintilla.h" -#include "SciLexer.h" - - -static inline bool IsAWordChar(const unsigned int ch) { - return (isalnum(ch) || ch == '-' || ch == '_' || ch >= 161); // _ is not in fact correct CSS word-character -} - -inline bool IsCssOperator(const char ch) { - if (!isalnum(ch) && - (ch == '{' || ch == '}' || ch == ':' || ch == ',' || ch == ';' || - ch == '.' || ch == '#' || ch == '!' || ch == '@' || - /* CSS2 */ - ch == '*' || ch == '>' || ch == '+' || ch == '=' || ch == '~' || ch == '|' || - ch == '[' || ch == ']' || ch == '(' || ch == ')')) { - return true; - } - return false; -} - -static void ColouriseCssDoc(unsigned int startPos, int length, int initStyle, WordList *keywordlists[], Accessor &styler) { - WordList &keywords = *keywordlists[0]; - WordList &pseudoClasses = *keywordlists[1]; - WordList &keywords2 = *keywordlists[2]; - - StyleContext sc(startPos, length, initStyle, styler); - - int lastState = -1; // before operator - int lastStateC = -1; // before comment - int op = ' '; // last operator - - for (; sc.More(); sc.Forward()) { - if (sc.state == SCE_CSS_COMMENT && sc.Match('*', '/')) { - if (lastStateC == -1) { - // backtrack to get last state: - // comments are like whitespace, so we must return to the previous state - unsigned int i = startPos; - for (; i > 0; i--) { - if ((lastStateC = styler.StyleAt(i-1)) != SCE_CSS_COMMENT) { - if (lastStateC == SCE_CSS_OPERATOR) { - op = styler.SafeGetCharAt(i-1); - while (--i) { - lastState = styler.StyleAt(i-1); - if (lastState != SCE_CSS_OPERATOR && lastState != SCE_CSS_COMMENT) - break; - } - if (i == 0) - lastState = SCE_CSS_DEFAULT; - } - break; - } - } - if (i == 0) - lastStateC = SCE_CSS_DEFAULT; - } - sc.Forward(); - sc.ForwardSetState(lastStateC); - } - - if (sc.state == SCE_CSS_COMMENT) - continue; - - if (sc.state == SCE_CSS_DOUBLESTRING || sc.state == SCE_CSS_SINGLESTRING) { - if (sc.ch != (sc.state == SCE_CSS_DOUBLESTRING ? '\"' : '\'')) - continue; - unsigned int i = sc.currentPos; - while (i && styler[i-1] == '\\') - i--; - if ((sc.currentPos - i) % 2 == 1) - continue; - sc.ForwardSetState(SCE_CSS_VALUE); - } - - if (sc.state == SCE_CSS_OPERATOR) { - if (op == ' ') { - unsigned int i = startPos; - op = styler.SafeGetCharAt(i-1); - while (--i) { - lastState = styler.StyleAt(i-1); - if (lastState != SCE_CSS_OPERATOR && lastState != SCE_CSS_COMMENT) - break; - } - } - switch (op) { - case '@': - if (lastState == SCE_CSS_DEFAULT) - sc.SetState(SCE_CSS_DIRECTIVE); - break; - case '*': - if (lastState == SCE_CSS_DEFAULT) - sc.SetState(SCE_CSS_TAG); - break; - case '>': - case '+': - if (lastState == SCE_CSS_TAG || lastState == SCE_CSS_PSEUDOCLASS || lastState == SCE_CSS_CLASS - || lastState == SCE_CSS_ID || lastState == SCE_CSS_UNKNOWN_PSEUDOCLASS) - sc.SetState(SCE_CSS_DEFAULT); - break; - case '[': - if (lastState == SCE_CSS_TAG || lastState == SCE_CSS_PSEUDOCLASS || lastState == SCE_CSS_DEFAULT || - lastState == SCE_CSS_CLASS || lastState == SCE_CSS_ID || lastState == SCE_CSS_UNKNOWN_PSEUDOCLASS) - sc.SetState(SCE_CSS_ATTRIBUTE); - break; - case ']': - if (lastState == SCE_CSS_ATTRIBUTE) - sc.SetState(SCE_CSS_TAG); - break; - case '{': - if (lastState == SCE_CSS_DIRECTIVE) - sc.SetState(SCE_CSS_DEFAULT); - else if (lastState == SCE_CSS_TAG) - sc.SetState(SCE_CSS_IDENTIFIER); - break; - case '}': - if (lastState == SCE_CSS_DEFAULT || lastState == SCE_CSS_VALUE || lastState == SCE_CSS_IMPORTANT || - lastState == SCE_CSS_IDENTIFIER || lastState == SCE_CSS_IDENTIFIER2) - sc.SetState(SCE_CSS_DEFAULT); - break; - case ':': - if (lastState == SCE_CSS_TAG || lastState == SCE_CSS_PSEUDOCLASS || lastState == SCE_CSS_DEFAULT || - lastState == SCE_CSS_CLASS || lastState == SCE_CSS_ID || lastState == SCE_CSS_UNKNOWN_PSEUDOCLASS) - sc.SetState(SCE_CSS_PSEUDOCLASS); - else if (lastState == SCE_CSS_IDENTIFIER || lastState == SCE_CSS_IDENTIFIER2 || lastState == SCE_CSS_UNKNOWN_IDENTIFIER) - sc.SetState(SCE_CSS_VALUE); - break; - case '.': - if (lastState == SCE_CSS_TAG || lastState == SCE_CSS_PSEUDOCLASS || lastState == SCE_CSS_DEFAULT || - lastState == SCE_CSS_CLASS || lastState == SCE_CSS_ID || lastState == SCE_CSS_UNKNOWN_PSEUDOCLASS) - sc.SetState(SCE_CSS_CLASS); - break; - case '#': - if (lastState == SCE_CSS_TAG || lastState == SCE_CSS_PSEUDOCLASS || lastState == SCE_CSS_DEFAULT || - lastState == SCE_CSS_CLASS || lastState == SCE_CSS_ID || lastState == SCE_CSS_UNKNOWN_PSEUDOCLASS) - sc.SetState(SCE_CSS_ID); - break; - case ',': - if (lastState == SCE_CSS_TAG) - sc.SetState(SCE_CSS_DEFAULT); - break; - case ';': - if (lastState == SCE_CSS_DIRECTIVE) - sc.SetState(SCE_CSS_DEFAULT); - else if (lastState == SCE_CSS_VALUE || lastState == SCE_CSS_IMPORTANT) - sc.SetState(SCE_CSS_IDENTIFIER); - break; - case '!': - if (lastState == SCE_CSS_VALUE) - sc.SetState(SCE_CSS_IMPORTANT); - break; - } - } - - if (IsAWordChar(sc.ch)) { - if (sc.state == SCE_CSS_DEFAULT) - sc.SetState(SCE_CSS_TAG); - continue; - } - - if (IsAWordChar(sc.chPrev) && ( - sc.state == SCE_CSS_IDENTIFIER || sc.state == SCE_CSS_IDENTIFIER2 - || sc.state == SCE_CSS_UNKNOWN_IDENTIFIER - || sc.state == SCE_CSS_PSEUDOCLASS || sc.state == SCE_CSS_UNKNOWN_PSEUDOCLASS - || sc.state == SCE_CSS_IMPORTANT - )) { - char s[100]; - sc.GetCurrentLowered(s, sizeof(s)); - char *s2 = s; - while (*s2 && !IsAWordChar(*s2)) - s2++; - switch (sc.state) { - case SCE_CSS_IDENTIFIER: - if (!keywords.InList(s2)) { - if (keywords2.InList(s2)) { - sc.ChangeState(SCE_CSS_IDENTIFIER2); - } else { - sc.ChangeState(SCE_CSS_UNKNOWN_IDENTIFIER); - } - } - break; - case SCE_CSS_UNKNOWN_IDENTIFIER: - if (keywords.InList(s2)) - sc.ChangeState(SCE_CSS_IDENTIFIER); - else if (keywords2.InList(s2)) - sc.ChangeState(SCE_CSS_IDENTIFIER2); - break; - case SCE_CSS_PSEUDOCLASS: - if (!pseudoClasses.InList(s2)) - sc.ChangeState(SCE_CSS_UNKNOWN_PSEUDOCLASS); - break; - case SCE_CSS_UNKNOWN_PSEUDOCLASS: - if (pseudoClasses.InList(s2)) - sc.ChangeState(SCE_CSS_PSEUDOCLASS); - break; - case SCE_CSS_IMPORTANT: - if (strcmp(s2, "important") != 0) - sc.ChangeState(SCE_CSS_VALUE); - break; - } - } - - if (sc.ch != '.' && sc.ch != ':' && sc.ch != '#' && (sc.state == SCE_CSS_CLASS || sc.state == SCE_CSS_PSEUDOCLASS || sc.state == SCE_CSS_UNKNOWN_PSEUDOCLASS || sc.state == SCE_CSS_ID)) - sc.SetState(SCE_CSS_TAG); - - if (sc.Match('/', '*')) { - lastStateC = sc.state; - sc.SetState(SCE_CSS_COMMENT); - sc.Forward(); - } else if (sc.state == SCE_CSS_VALUE && (sc.ch == '\"' || sc.ch == '\'')) { - sc.SetState((sc.ch == '\"' ? SCE_CSS_DOUBLESTRING : SCE_CSS_SINGLESTRING)); - } else if (IsCssOperator(static_cast(sc.ch)) - && (sc.state != SCE_CSS_ATTRIBUTE || sc.ch == ']') - && (sc.state != SCE_CSS_VALUE || sc.ch == ';' || sc.ch == '}' || sc.ch == '!') - && (sc.state != SCE_CSS_DIRECTIVE || sc.ch == ';' || sc.ch == '{') - ) { - if (sc.state != SCE_CSS_OPERATOR) - lastState = sc.state; - sc.SetState(SCE_CSS_OPERATOR); - op = sc.ch; - } - } - - sc.Complete(); -} - -static void FoldCSSDoc(unsigned int startPos, int length, int, WordList *[], Accessor &styler) { - bool foldComment = styler.GetPropertyInt("fold.comment") != 0; - bool foldCompact = styler.GetPropertyInt("fold.compact", 1) != 0; - unsigned int endPos = startPos + length; - int visibleChars = 0; - int lineCurrent = styler.GetLine(startPos); - int levelPrev = styler.LevelAt(lineCurrent) & SC_FOLDLEVELNUMBERMASK; - int levelCurrent = levelPrev; - char chNext = styler[startPos]; - bool inComment = (styler.StyleAt(startPos-1) == SCE_CSS_COMMENT); - for (unsigned int i = startPos; i < endPos; i++) { - char ch = chNext; - chNext = styler.SafeGetCharAt(i + 1); - int style = styler.StyleAt(i); - bool atEOL = (ch == '\r' && chNext != '\n') || (ch == '\n'); - if (foldComment) { - if (!inComment && (style == SCE_CSS_COMMENT)) - levelCurrent++; - else if (inComment && (style != SCE_CSS_COMMENT)) - levelCurrent--; - inComment = (style == SCE_CSS_COMMENT); - } - if (style == SCE_CSS_OPERATOR) { - if (ch == '{') { - levelCurrent++; - } else if (ch == '}') { - levelCurrent--; - } - } - if (atEOL) { - int lev = levelPrev; - if (visibleChars == 0 && foldCompact) - lev |= SC_FOLDLEVELWHITEFLAG; - if ((levelCurrent > levelPrev) && (visibleChars > 0)) - lev |= SC_FOLDLEVELHEADERFLAG; - if (lev != styler.LevelAt(lineCurrent)) { - styler.SetLevel(lineCurrent, lev); - } - lineCurrent++; - levelPrev = levelCurrent; - visibleChars = 0; - } - if (!isspacechar(ch)) - visibleChars++; - } - // Fill in the real level of the next line, keeping the current flags as they will be filled in later - int flagsNext = styler.LevelAt(lineCurrent) & ~SC_FOLDLEVELNUMBERMASK; - styler.SetLevel(lineCurrent, levelPrev | flagsNext); -} - -static const char * const cssWordListDesc[] = { - "CSS1 Keywords", - "Pseudo classes", - "CSS2 Keywords", - 0 -}; - -LexerModule lmCss(SCLEX_CSS, ColouriseCssDoc, "css", FoldCSSDoc, cssWordListDesc); diff --git a/MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/src/LexCaml.cxx b/MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/src/LexCaml.cxx deleted file mode 100644 index 6d6eee75..00000000 --- a/MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/src/LexCaml.cxx +++ /dev/null @@ -1,399 +0,0 @@ -// Scintilla source code edit control -/** @file LexCaml.cxx - ** Lexer for Objective Caml. - **/ -// Copyright 2005 by Robert Roessler -// The License.txt file describes the conditions under which this software may be distributed. -/* Release History - 20050204 Initial release. - 20050205 Quick compiler standards/"cleanliness" adjustment. - 20050206 Added cast for IsLeadByte(). - 20050209 Changes to "external" build support. - 20050306 Fix for 1st-char-in-doc "corner" case. - 20050502 Fix for [harmless] one-past-the-end coloring. - 20050515 Refined numeric token recognition logic. - 20051125 Added 2nd "optional" keywords class. - 20051129 Support "magic" (read-only) comments for RCaml. - 20051204 Swtich to using StyleContext infrastructure. -*/ - -#include -#include -#include -#include -#include - -#include "Platform.h" - -#include "PropSet.h" -#include "Accessor.h" -#include "StyleContext.h" -#include "KeyWords.h" -#include "Scintilla.h" -#include "SciLexer.h" - -// Since the Microsoft __iscsym[f] funcs are not ANSI... -inline int iscaml(int c) {return isalnum(c) || c == '_';} -inline int iscamlf(int c) {return isalpha(c) || c == '_';} -inline int iscamld(int c) {return isdigit(c) || c == '_';} - -static const int baseT[24] = { - 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* A - L */ - 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0,16 /* M - X */ -}; - -#ifdef BUILD_AS_EXTERNAL_LEXER -/* - (actually seems to work!) -*/ -#include "WindowAccessor.h" -#include "ExternalLexer.h" - -#if PLAT_WIN -#include -#endif - -static void ColouriseCamlDoc( - unsigned int startPos, int length, - int initStyle, - WordList *keywordlists[], - Accessor &styler); - -static void FoldCamlDoc( - unsigned int startPos, int length, - int initStyle, - WordList *keywordlists[], - Accessor &styler); - -static void InternalLexOrFold(int lexOrFold, unsigned int startPos, int length, - int initStyle, char *words[], WindowID window, char *props); - -static const char* LexerName = "caml"; - -#ifdef TRACE -void Platform::DebugPrintf(const char *format, ...) { - char buffer[2000]; - va_list pArguments; - va_start(pArguments, format); - vsprintf(buffer,format,pArguments); - va_end(pArguments); - Platform::DebugDisplay(buffer); -} -#else -void Platform::DebugPrintf(const char *, ...) { -} -#endif - -bool Platform::IsDBCSLeadByte(int codePage, char ch) { - return ::IsDBCSLeadByteEx(codePage, ch) != 0; -} - -long Platform::SendScintilla(WindowID w, unsigned int msg, unsigned long wParam, long lParam) { - return ::SendMessage(reinterpret_cast(w), msg, wParam, lParam); -} - -long Platform::SendScintillaPointer(WindowID w, unsigned int msg, unsigned long wParam, void *lParam) { - return ::SendMessage(reinterpret_cast(w), msg, wParam, - reinterpret_cast(lParam)); -} - -void EXT_LEXER_DECL Fold(unsigned int lexer, unsigned int startPos, int length, - int initStyle, char *words[], WindowID window, char *props) -{ - // below useless evaluation(s) to supress "not used" warnings - lexer; - // build expected data structures and do the Fold - InternalLexOrFold(1, startPos, length, initStyle, words, window, props); - -} - -int EXT_LEXER_DECL GetLexerCount() -{ - return 1; // just us [Objective] Caml lexers here! -} - -void EXT_LEXER_DECL GetLexerName(unsigned int Index, char *name, int buflength) -{ - // below useless evaluation(s) to supress "not used" warnings - Index; - // return as much of our lexer name as will fit (what's up with Index?) - if (buflength > 0) { - buflength--; - int n = strlen(LexerName); - if (n > buflength) - n = buflength; - memcpy(name, LexerName, n), name[n] = '\0'; - } -} - -void EXT_LEXER_DECL Lex(unsigned int lexer, unsigned int startPos, int length, - int initStyle, char *words[], WindowID window, char *props) -{ - // below useless evaluation(s) to supress "not used" warnings - lexer; - // build expected data structures and do the Lex - InternalLexOrFold(0, startPos, length, initStyle, words, window, props); -} - -static void InternalLexOrFold(int foldOrLex, unsigned int startPos, int length, - int initStyle, char *words[], WindowID window, char *props) -{ - // create and initialize a WindowAccessor (including contained PropSet) - PropSet ps; - ps.SetMultiple(props); - WindowAccessor wa(window, ps); - // create and initialize WordList(s) - int nWL = 0; - for (; words[nWL]; nWL++) ; // count # of WordList PTRs needed - WordList** wl = new WordList* [nWL + 1];// alloc WordList PTRs - int i = 0; - for (; i < nWL; i++) { - wl[i] = new WordList(); // (works or THROWS bad_alloc EXCEPTION) - wl[i]->Set(words[i]); - } - wl[i] = 0; - // call our "internal" folder/lexer (... then do Flush!) - if (foldOrLex) - FoldCamlDoc(startPos, length, initStyle, wl, wa); - else - ColouriseCamlDoc(startPos, length, initStyle, wl, wa); - wa.Flush(); - // clean up before leaving - for (i = nWL - 1; i >= 0; i--) - delete wl[i]; - delete [] wl; -} - -static -#endif /* BUILD_AS_EXTERNAL_LEXER */ - -void ColouriseCamlDoc( - unsigned int startPos, int length, - int initStyle, - WordList *keywordlists[], - Accessor &styler) -{ - // initialize styler - StyleContext sc(startPos, length, initStyle, styler); - // set up [initial] state info (terminating states that shouldn't "bleed") - int nesting = 0; - if (sc.state < SCE_CAML_STRING) - sc.state = SCE_CAML_DEFAULT; - if (sc.state >= SCE_CAML_COMMENT) - nesting = (sc.state & 0x0f) - SCE_CAML_COMMENT; - - int chBase = 0, chToken = 0, chLit = 0; - WordList& keywords = *keywordlists[0]; - WordList& keywords2 = *keywordlists[1]; - WordList& keywords3 = *keywordlists[2]; - const int useMagic = styler.GetPropertyInt("lexer.caml.magic", 0); - - // foreach char in range... - while (sc.More()) { - // set up [per-char] state info - int state2 = -1; // (ASSUME no state change) - int chColor = sc.currentPos - 1;// (ASSUME standard coloring range) - bool advance = true; // (ASSUME scanner "eats" 1 char) - - // step state machine - switch (sc.state & 0x0f) { - case SCE_CAML_DEFAULT: - chToken = sc.currentPos; // save [possible] token start (JIC) - // it's wide open; what do we have? - if (iscamlf(sc.ch)) - state2 = SCE_CAML_IDENTIFIER; - else if (sc.Match('`') && iscamlf(sc.chNext)) - state2 = SCE_CAML_TAGNAME; - else if (sc.Match('#') && isdigit(sc.chNext)) - state2 = SCE_CAML_LINENUM; - else if (isdigit(sc.ch)) { - state2 = SCE_CAML_NUMBER, chBase = 10; - if (sc.Match('0') && strchr("bBoOxX", sc.chNext)) - chBase = baseT[tolower(sc.chNext) - 'a'], sc.Forward(); - } else if (sc.Match('\'')) /* (char literal?) */ - state2 = SCE_CAML_CHAR, chLit = 0; - else if (sc.Match('\"')) - state2 = SCE_CAML_STRING; - else if (sc.Match('(', '*')) - state2 = SCE_CAML_COMMENT, - sc.ch = ' ', // (make SURE "(*)" isn't seen as a closed comment) - sc.Forward(); - else if (strchr("!?~" /* Caml "prefix-symbol" */ - "=<>@^|&+-*/$%" /* Caml "infix-symbol" */ - "()[]{};,:.#", sc.ch)) /* Caml "bracket" or ;,:.# */ - state2 = SCE_CAML_OPERATOR; - break; - - case SCE_CAML_IDENTIFIER: - // [try to] interpret as [additional] identifier char - if (!(iscaml(sc.ch) || sc.Match('\''))) { - const int n = sc.currentPos - chToken; - if (n < 24) { - // length is believable as keyword, [re-]construct token - char t[24]; - for (int i = -n; i < 0; i++) - t[n + i] = static_cast(sc.GetRelative(i)); - t[n] = '\0'; - // special-case "_" token as KEYWORD - if ((n == 1 && sc.chPrev == '_') || keywords.InList(t)) - sc.ChangeState(SCE_CAML_KEYWORD); - else if (keywords2.InList(t)) - sc.ChangeState(SCE_CAML_KEYWORD2); - else if (keywords3.InList(t)) - sc.ChangeState(SCE_CAML_KEYWORD3); - } - state2 = SCE_CAML_DEFAULT, advance = false; - } - break; - - case SCE_CAML_TAGNAME: - // [try to] interpret as [additional] tagname char - if (!(iscaml(sc.ch) || sc.Match('\''))) - state2 = SCE_CAML_DEFAULT, advance = false; - break; - - /*case SCE_CAML_KEYWORD: - case SCE_CAML_KEYWORD2: - case SCE_CAML_KEYWORD3: - // [try to] interpret as [additional] keyword char - if (!iscaml(ch)) - state2 = SCE_CAML_DEFAULT, advance = false; - break;*/ - - case SCE_CAML_LINENUM: - // [try to] interpret as [additional] linenum directive char - if (!isdigit(sc.ch)) - state2 = SCE_CAML_DEFAULT, advance = false; - break; - - case SCE_CAML_OPERATOR: { - // [try to] interpret as [additional] operator char - const char* o = 0; - if (iscaml(sc.ch) || isspace(sc.ch) /* ident or whitespace */ - || (o = strchr(")]};,\'\"`#", sc.ch),o)/* "termination" chars */ - || !strchr("!$%&*+-./:<=>?@^|~", sc.ch)/* "operator" chars */) { - // check for INCLUSIVE termination - if (o && strchr(")]};,", sc.ch)) { - if ((sc.Match(')') && sc.chPrev == '(') - || (sc.Match(']') && sc.chPrev == '[')) - // special-case "()" and "[]" tokens as KEYWORDS - sc.ChangeState(SCE_CAML_KEYWORD); - chColor++; - } else - advance = false; - state2 = SCE_CAML_DEFAULT; - } - break; - } - - case SCE_CAML_NUMBER: - // [try to] interpret as [additional] numeric literal char - // N.B. - improperly accepts "extra" digits in base 2 or 8 literals - if (iscamld(sc.ch) || IsADigit(sc.ch, chBase)) - break; - // how about an integer suffix? - if ((sc.Match('l') || sc.Match('L') || sc.Match('n')) - && (iscamld(sc.chPrev) || IsADigit(sc.chPrev, chBase))) - break; - // or a floating-point literal? - if (chBase == 10) { - // with a decimal point? - if (sc.Match('.') && iscamld(sc.chPrev)) - break; - // with an exponent? (I) - if ((sc.Match('e') || sc.Match('E')) - && (iscamld(sc.chPrev) || sc.chPrev == '.')) - break; - // with an exponent? (II) - if ((sc.Match('+') || sc.Match('-')) - && (sc.chPrev == 'e' || sc.chPrev == 'E')) - break; - } - // it looks like we have run out of number - state2 = SCE_CAML_DEFAULT, advance = false; - break; - - case SCE_CAML_CHAR: - // [try to] interpret as [additional] char literal char - if (sc.Match('\\')) { - chLit = 1; // (definitely IS a char literal) - if (sc.chPrev == '\\') - sc.ch = ' '; // (so termination test isn't fooled) - // should we be terminating - one way or another? - } else if ((sc.Match('\'') && sc.chPrev != '\\') || sc.atLineEnd) { - state2 = SCE_CAML_DEFAULT; - if (sc.Match('\'')) - chColor++; - else - sc.ChangeState(SCE_CAML_IDENTIFIER); - // ... maybe a char literal, maybe not - } else if (chLit < 1 && sc.currentPos - chToken >= 2) - sc.ChangeState(SCE_CAML_IDENTIFIER), advance = false; - break; - - case SCE_CAML_STRING: - // [try to] interpret as [additional] string literal char - if (sc.Match('\\') && sc.chPrev == '\\') - sc.ch = ' '; // (so '\\' doesn't cause us trouble) - else if (sc.Match('\"') && sc.chPrev != '\\') - state2 = SCE_CAML_DEFAULT, chColor++; - break; - - case SCE_CAML_COMMENT: - case SCE_CAML_COMMENT1: - case SCE_CAML_COMMENT2: - case SCE_CAML_COMMENT3: - // we're IN a comment - does this start a NESTED comment? - if (sc.Match('(', '*')) - state2 = sc.state + 1, chToken = sc.currentPos, - sc.ch = ' ', // (make SURE "(*)" isn't seen as a closed comment) - sc.Forward(), nesting++; - // [try to] interpret as [additional] comment char - else if (sc.Match(')') && sc.chPrev == '*') { - if (nesting) - state2 = (sc.state & 0x0f) - 1, chToken = 0, nesting--; - else - state2 = SCE_CAML_DEFAULT; - chColor++; - // enable "magic" (read-only) comment AS REQUIRED - } else if (useMagic && sc.currentPos - chToken == 4 - && sc.Match('c') && sc.chPrev == 'r' && sc.GetRelative(-2) == '@') - sc.state |= 0x10; // (switch to read-only comment style) - break; - } - - // handle state change and char coloring as required - if (state2 >= 0) - styler.ColourTo(chColor, sc.state), sc.ChangeState(state2); - // move to next char UNLESS re-scanning current char - if (advance) - sc.Forward(); - } - - // do any required terminal char coloring (JIC) - sc.Complete(); -} - -#ifdef BUILD_AS_EXTERNAL_LEXER -static -#endif /* BUILD_AS_EXTERNAL_LEXER */ -void FoldCamlDoc( - unsigned int startPos, int length, - int initStyle, - WordList *keywordlists[], - Accessor &styler) -{ - // below useless evaluation(s) to supress "not used" warnings - startPos || length || initStyle || keywordlists[0] || styler.Length(); -} - -static const char * const camlWordListDesc[] = { - "Keywords", // primary Objective Caml keywords - "Keywords2", // "optional" keywords (typically from Pervasives) - "Keywords3", // "optional" keywords (typically typenames) - 0 -}; - -#ifndef BUILD_AS_EXTERNAL_LEXER -LexerModule lmCaml(SCLEX_CAML, ColouriseCamlDoc, "caml", FoldCamlDoc, camlWordListDesc); -#endif /* BUILD_AS_EXTERNAL_LEXER */ diff --git a/MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/src/LexConf.cxx b/MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/src/LexConf.cxx deleted file mode 100644 index 3325b341..00000000 --- a/MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/src/LexConf.cxx +++ /dev/null @@ -1,184 +0,0 @@ -// Scintilla source code edit control -/** @file LexConf.cxx - ** Lexer for Apache Configuration Files. - ** - ** First working version contributed by Ahmad Zawawi on October 28, 2000. - ** i created this lexer because i needed something pretty when dealing - ** when Apache Configuration files... - **/ -// Copyright 1998-2001 by Neil Hodgson -// The License.txt file describes the conditions under which this software may be distributed. - -#include -#include -#include -#include -#include - -#include "Platform.h" - -#include "PropSet.h" -#include "Accessor.h" -#include "KeyWords.h" -#include "Scintilla.h" -#include "SciLexer.h" - -static void ColouriseConfDoc(unsigned int startPos, int length, int, WordList *keywordLists[], Accessor &styler) -{ - int state = SCE_CONF_DEFAULT; - char chNext = styler[startPos]; - int lengthDoc = startPos + length; - // create a buffer large enough to take the largest chunk... - char *buffer = new char[length]; - int bufferCount = 0; - - // this assumes that we have 2 keyword list in conf.properties - WordList &directives = *keywordLists[0]; - WordList ¶ms = *keywordLists[1]; - - // go through all provided text segment - // using the hand-written state machine shown below - styler.StartAt(startPos); - styler.StartSegment(startPos); - for (int i = startPos; i < lengthDoc; i++) { - char ch = chNext; - chNext = styler.SafeGetCharAt(i + 1); - - if (styler.IsLeadByte(ch)) { - chNext = styler.SafeGetCharAt(i + 2); - i++; - continue; - } - switch(state) { - case SCE_CONF_DEFAULT: - if( ch == '\n' || ch == '\r' || ch == '\t' || ch == ' ') { - // whitespace is simply ignored here... - styler.ColourTo(i,SCE_CONF_DEFAULT); - break; - } else if( ch == '#' ) { - // signals the start of a comment... - state = SCE_CONF_COMMENT; - styler.ColourTo(i,SCE_CONF_COMMENT); - } else if( ch == '.' /*|| ch == '/'*/) { - // signals the start of a file... - state = SCE_CONF_EXTENSION; - styler.ColourTo(i,SCE_CONF_EXTENSION); - } else if( ch == '"') { - state = SCE_CONF_STRING; - styler.ColourTo(i,SCE_CONF_STRING); - } else if( ispunct(ch) ) { - // signals an operator... - // no state jump necessary for this - // simple case... - styler.ColourTo(i,SCE_CONF_OPERATOR); - } else if( isalpha(ch) ) { - // signals the start of an identifier - bufferCount = 0; - buffer[bufferCount++] = static_cast(tolower(ch)); - state = SCE_CONF_IDENTIFIER; - } else if( isdigit(ch) ) { - // signals the start of a number - bufferCount = 0; - buffer[bufferCount++] = ch; - //styler.ColourTo(i,SCE_CONF_NUMBER); - state = SCE_CONF_NUMBER; - } else { - // style it the default style.. - styler.ColourTo(i,SCE_CONF_DEFAULT); - } - break; - - case SCE_CONF_COMMENT: - // if we find a newline here, - // we simply go to default state - // else continue to work on it... - if( ch == '\n' || ch == '\r' ) { - state = SCE_CONF_DEFAULT; - } else { - styler.ColourTo(i,SCE_CONF_COMMENT); - } - break; - - case SCE_CONF_EXTENSION: - // if we find a non-alphanumeric char, - // we simply go to default state - // else we're still dealing with an extension... - if( isalnum(ch) || (ch == '_') || - (ch == '-') || (ch == '$') || - (ch == '/') || (ch == '.') || (ch == '*') ) - { - styler.ColourTo(i,SCE_CONF_EXTENSION); - } else { - state = SCE_CONF_DEFAULT; - chNext = styler[i--]; - } - break; - - case SCE_CONF_STRING: - // if we find the end of a string char, we simply go to default state - // else we're still dealing with an string... - if( (ch == '"' && styler.SafeGetCharAt(i-1)!='\\') || (ch == '\n') || (ch == '\r') ) { - state = SCE_CONF_DEFAULT; - } - styler.ColourTo(i,SCE_CONF_STRING); - break; - - case SCE_CONF_IDENTIFIER: - // stay in CONF_IDENTIFIER state until we find a non-alphanumeric - if( isalnum(ch) || (ch == '_') || (ch == '-') || (ch == '/') || (ch == '$') || (ch == '.') || (ch == '*')) { - buffer[bufferCount++] = static_cast(tolower(ch)); - } else { - state = SCE_CONF_DEFAULT; - buffer[bufferCount] = '\0'; - - // check if the buffer contains a keyword, and highlight it if it is a keyword... - if(directives.InList(buffer)) { - styler.ColourTo(i-1,SCE_CONF_DIRECTIVE ); - } else if(params.InList(buffer)) { - styler.ColourTo(i-1,SCE_CONF_PARAMETER ); - } else if(strchr(buffer,'/') || strchr(buffer,'.')) { - styler.ColourTo(i-1,SCE_CONF_EXTENSION); - } else { - styler.ColourTo(i-1,SCE_CONF_DEFAULT); - } - - // push back the faulty character - chNext = styler[i--]; - - } - break; - - case SCE_CONF_NUMBER: - // stay in CONF_NUMBER state until we find a non-numeric - if( isdigit(ch) || ch == '.') { - buffer[bufferCount++] = ch; - } else { - state = SCE_CONF_DEFAULT; - buffer[bufferCount] = '\0'; - - // Colourize here... - if( strchr(buffer,'.') ) { - // it is an IP address... - styler.ColourTo(i-1,SCE_CONF_IP); - } else { - // normal number - styler.ColourTo(i-1,SCE_CONF_NUMBER); - } - - // push back a character - chNext = styler[i--]; - } - break; - - } - } - delete []buffer; -} - -static const char * const confWordListDesc[] = { - "Directives", - "Parameters", - 0 -}; - -LexerModule lmConf(SCLEX_CONF, ColouriseConfDoc, "conf", 0, confWordListDesc); diff --git a/MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/src/LexCrontab.cxx b/MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/src/LexCrontab.cxx deleted file mode 100644 index f04ff4b8..00000000 --- a/MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/src/LexCrontab.cxx +++ /dev/null @@ -1,218 +0,0 @@ -// Scintilla source code edit control -/** @file LexCrontab.cxx - ** Lexer to use with extended crontab files used by a powerful - ** Windows scheduler/event monitor/automation manager nnCron. - ** (http://nemtsev.eserv.ru/) - **/ -// Copyright 1998-2001 by Neil Hodgson -// The License.txt file describes the conditions under which this software may be distributed. - -#include -#include -#include -#include -#include - -#include "Platform.h" - -#include "PropSet.h" -#include "Accessor.h" -#include "KeyWords.h" -#include "Scintilla.h" -#include "SciLexer.h" - -static void ColouriseNncrontabDoc(unsigned int startPos, int length, int, WordList -*keywordLists[], Accessor &styler) -{ - int state = SCE_NNCRONTAB_DEFAULT; - char chNext = styler[startPos]; - int lengthDoc = startPos + length; - // create a buffer large enough to take the largest chunk... - char *buffer = new char[length]; - int bufferCount = 0; - // used when highliting environment variables inside quoted string: - bool insideString = false; - - // this assumes that we have 3 keyword list in conf.properties - WordList §ion = *keywordLists[0]; - WordList &keyword = *keywordLists[1]; - WordList &modifier = *keywordLists[2]; - - // go through all provided text segment - // using the hand-written state machine shown below - styler.StartAt(startPos); - styler.StartSegment(startPos); - for (int i = startPos; i < lengthDoc; i++) { - char ch = chNext; - chNext = styler.SafeGetCharAt(i + 1); - - if (styler.IsLeadByte(ch)) { - chNext = styler.SafeGetCharAt(i + 2); - i++; - continue; - } - switch(state) { - case SCE_NNCRONTAB_DEFAULT: - if( ch == '\n' || ch == '\r' || ch == '\t' || ch == ' ') { - // whitespace is simply ignored here... - styler.ColourTo(i,SCE_NNCRONTAB_DEFAULT); - break; - } else if( ch == '#' && styler.SafeGetCharAt(i+1) == '(') { - // signals the start of a task... - state = SCE_NNCRONTAB_TASK; - styler.ColourTo(i,SCE_NNCRONTAB_TASK); - } - else if( ch == '\\' && (styler.SafeGetCharAt(i+1) == ' ' || - styler.SafeGetCharAt(i+1) == '\t')) { - // signals the start of an extended comment... - state = SCE_NNCRONTAB_COMMENT; - styler.ColourTo(i,SCE_NNCRONTAB_COMMENT); - } else if( ch == '#' ) { - // signals the start of a plain comment... - state = SCE_NNCRONTAB_COMMENT; - styler.ColourTo(i,SCE_NNCRONTAB_COMMENT); - } else if( ch == ')' && styler.SafeGetCharAt(i+1) == '#') { - // signals the end of a task... - state = SCE_NNCRONTAB_TASK; - styler.ColourTo(i,SCE_NNCRONTAB_TASK); - } else if( ch == '"') { - state = SCE_NNCRONTAB_STRING; - styler.ColourTo(i,SCE_NNCRONTAB_STRING); - } else if( ch == '%') { - // signals environment variables - state = SCE_NNCRONTAB_ENVIRONMENT; - styler.ColourTo(i,SCE_NNCRONTAB_ENVIRONMENT); - } else if( ch == '<' && styler.SafeGetCharAt(i+1) == '%') { - // signals environment variables - state = SCE_NNCRONTAB_ENVIRONMENT; - styler.ColourTo(i,SCE_NNCRONTAB_ENVIRONMENT); - } else if( ch == '*' ) { - // signals an asterisk - // no state jump necessary for this simple case... - styler.ColourTo(i,SCE_NNCRONTAB_ASTERISK); - } else if( isalpha(ch) || ch == '<' ) { - // signals the start of an identifier - bufferCount = 0; - buffer[bufferCount++] = ch; - state = SCE_NNCRONTAB_IDENTIFIER; - } else if( isdigit(ch) ) { - // signals the start of a number - bufferCount = 0; - buffer[bufferCount++] = ch; - state = SCE_NNCRONTAB_NUMBER; - } else { - // style it the default style.. - styler.ColourTo(i,SCE_NNCRONTAB_DEFAULT); - } - break; - - case SCE_NNCRONTAB_COMMENT: - // if we find a newline here, - // we simply go to default state - // else continue to work on it... - if( ch == '\n' || ch == '\r' ) { - state = SCE_NNCRONTAB_DEFAULT; - } else { - styler.ColourTo(i,SCE_NNCRONTAB_COMMENT); - } - break; - - case SCE_NNCRONTAB_TASK: - // if we find a newline here, - // we simply go to default state - // else continue to work on it... - if( ch == '\n' || ch == '\r' ) { - state = SCE_NNCRONTAB_DEFAULT; - } else { - styler.ColourTo(i,SCE_NNCRONTAB_TASK); - } - break; - - case SCE_NNCRONTAB_STRING: - if( ch == '%' ) { - state = SCE_NNCRONTAB_ENVIRONMENT; - insideString = true; - styler.ColourTo(i-1,SCE_NNCRONTAB_STRING); - break; - } - // if we find the end of a string char, we simply go to default state - // else we're still dealing with an string... - if( (ch == '"' && styler.SafeGetCharAt(i-1)!='\\') || - (ch == '\n') || (ch == '\r') ) { - state = SCE_NNCRONTAB_DEFAULT; - } - styler.ColourTo(i,SCE_NNCRONTAB_STRING); - break; - - case SCE_NNCRONTAB_ENVIRONMENT: - // if we find the end of a string char, we simply go to default state - // else we're still dealing with an string... - if( ch == '%' && insideString ) { - state = SCE_NNCRONTAB_STRING; - insideString = false; - break; - } - if( (ch == '%' && styler.SafeGetCharAt(i-1)!='\\') - || (ch == '\n') || (ch == '\r') || (ch == '>') ) { - state = SCE_NNCRONTAB_DEFAULT; - styler.ColourTo(i,SCE_NNCRONTAB_ENVIRONMENT); - break; - } - styler.ColourTo(i+1,SCE_NNCRONTAB_ENVIRONMENT); - break; - - case SCE_NNCRONTAB_IDENTIFIER: - // stay in CONF_IDENTIFIER state until we find a non-alphanumeric - if( isalnum(ch) || (ch == '_') || (ch == '-') || (ch == '/') || - (ch == '$') || (ch == '.') || (ch == '<') || (ch == '>') || - (ch == '@') ) { - buffer[bufferCount++] = ch; - } else { - state = SCE_NNCRONTAB_DEFAULT; - buffer[bufferCount] = '\0'; - - // check if the buffer contains a keyword, - // and highlight it if it is a keyword... - if(section.InList(buffer)) { - styler.ColourTo(i,SCE_NNCRONTAB_SECTION ); - } else if(keyword.InList(buffer)) { - styler.ColourTo(i-1,SCE_NNCRONTAB_KEYWORD ); - } // else if(strchr(buffer,'/') || strchr(buffer,'.')) { - // styler.ColourTo(i-1,SCE_NNCRONTAB_EXTENSION); - // } - else if(modifier.InList(buffer)) { - styler.ColourTo(i-1,SCE_NNCRONTAB_MODIFIER ); - } else { - styler.ColourTo(i-1,SCE_NNCRONTAB_DEFAULT); - } - // push back the faulty character - chNext = styler[i--]; - } - break; - - case SCE_NNCRONTAB_NUMBER: - // stay in CONF_NUMBER state until we find a non-numeric - if( isdigit(ch) /* || ch == '.' */ ) { - buffer[bufferCount++] = ch; - } else { - state = SCE_NNCRONTAB_DEFAULT; - buffer[bufferCount] = '\0'; - // Colourize here... (normal number) - styler.ColourTo(i-1,SCE_NNCRONTAB_NUMBER); - // push back a character - chNext = styler[i--]; - } - break; - } - } - delete []buffer; -} - -static const char * const cronWordListDesc[] = { - "Section keywords and Forth words", - "nnCrontab keywords", - "Modifiers", - 0 -}; - -LexerModule lmNncrontab(SCLEX_NNCRONTAB, ColouriseNncrontabDoc, "nncrontab", 0, cronWordListDesc); diff --git a/MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/src/LexCsound.cxx b/MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/src/LexCsound.cxx deleted file mode 100644 index 67656988..00000000 --- a/MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/src/LexCsound.cxx +++ /dev/null @@ -1,207 +0,0 @@ -// Scintilla source code edit control -/** @file LexCsound.cxx - ** Lexer for Csound (Orchestra & Score) - ** Written by Georg Ritter - - **/ -// Copyright 1998-2003 by Neil Hodgson -// The License.txt file describes the conditions under which this software may be distributed. - -#include -#include -#include -#include -#include -#include "Platform.h" - -#include "PropSet.h" -#include "Accessor.h" -#include "StyleContext.h" -#include "KeyWords.h" -#include "Scintilla.h" -#include "SciLexer.h" - - -static inline bool IsAWordChar(const int ch) { - return (ch < 0x80) && (isalnum(ch) || ch == '.' || - ch == '_' || ch == '?'); -} - -static inline bool IsAWordStart(const int ch) { - return (ch < 0x80) && (isalnum(ch) || ch == '_' || ch == '.' || - ch == '%' || ch == '@' || ch == '$' || ch == '?'); -} - -static inline bool IsCsoundOperator(char ch) { - if (isalnum(ch)) - return false; - // '.' left out as it is used to make up numbers - if (ch == '*' || ch == '/' || ch == '-' || ch == '+' || - ch == '(' || ch == ')' || ch == '=' || ch == '^' || - ch == '[' || ch == ']' || ch == '<' || ch == '&' || - ch == '>' || ch == ',' || ch == '|' || ch == '~' || - ch == '%' || ch == ':') - return true; - return false; -} - -static void ColouriseCsoundDoc(unsigned int startPos, int length, int initStyle, WordList *keywordlists[], - Accessor &styler) { - - WordList &opcode = *keywordlists[0]; - WordList &headerStmt = *keywordlists[1]; - WordList &otherKeyword = *keywordlists[2]; - - // Do not leak onto next line - if (initStyle == SCE_CSOUND_STRINGEOL) - initStyle = SCE_CSOUND_DEFAULT; - - StyleContext sc(startPos, length, initStyle, styler); - - for (; sc.More(); sc.Forward()) - { - // Handle line continuation generically. - if (sc.ch == '\\') { - if (sc.chNext == '\n' || sc.chNext == '\r') { - sc.Forward(); - if (sc.ch == '\r' && sc.chNext == '\n') { - sc.Forward(); - } - continue; - } - } - - // Determine if the current state should terminate. - if (sc.state == SCE_CSOUND_OPERATOR) { - if (!IsCsoundOperator(static_cast(sc.ch))) { - sc.SetState(SCE_CSOUND_DEFAULT); - } - }else if (sc.state == SCE_CSOUND_NUMBER) { - if (!IsAWordChar(sc.ch)) { - sc.SetState(SCE_CSOUND_DEFAULT); - } - } else if (sc.state == SCE_CSOUND_IDENTIFIER) { - if (!IsAWordChar(sc.ch) ) { - char s[100]; - sc.GetCurrent(s, sizeof(s)); - - if (opcode.InList(s)) { - sc.ChangeState(SCE_CSOUND_OPCODE); - } else if (headerStmt.InList(s)) { - sc.ChangeState(SCE_CSOUND_HEADERSTMT); - } else if (otherKeyword.InList(s)) { - sc.ChangeState(SCE_CSOUND_USERKEYWORD); - } else if (s[0] == 'p') { - sc.ChangeState(SCE_CSOUND_PARAM); - } else if (s[0] == 'a') { - sc.ChangeState(SCE_CSOUND_ARATE_VAR); - } else if (s[0] == 'k') { - sc.ChangeState(SCE_CSOUND_KRATE_VAR); - } else if (s[0] == 'i') { // covers both i-rate variables and i-statements - sc.ChangeState(SCE_CSOUND_IRATE_VAR); - } else if (s[0] == 'g') { - sc.ChangeState(SCE_CSOUND_GLOBAL_VAR); - } - sc.SetState(SCE_CSOUND_DEFAULT); - } - } - else if (sc.state == SCE_CSOUND_COMMENT ) { - if (sc.atLineEnd) { - sc.SetState(SCE_CSOUND_DEFAULT); - } - } - else if ((sc.state == SCE_CSOUND_ARATE_VAR) || - (sc.state == SCE_CSOUND_KRATE_VAR) || - (sc.state == SCE_CSOUND_IRATE_VAR)) { - if (!IsAWordChar(sc.ch)) { - sc.SetState(SCE_CSOUND_DEFAULT); - } - } - - // Determine if a new state should be entered. - if (sc.state == SCE_CSOUND_DEFAULT) { - if (sc.ch == ';'){ - sc.SetState(SCE_CSOUND_COMMENT); - } else if (isdigit(sc.ch) || (sc.ch == '.' && isdigit(sc.chNext))) { - sc.SetState(SCE_CSOUND_NUMBER); - } else if (IsAWordStart(sc.ch)) { - sc.SetState(SCE_CSOUND_IDENTIFIER); - } else if (IsCsoundOperator(static_cast(sc.ch))) { - sc.SetState(SCE_CSOUND_OPERATOR); - } else if (sc.ch == 'p') { - sc.SetState(SCE_CSOUND_PARAM); - } else if (sc.ch == 'a') { - sc.SetState(SCE_CSOUND_ARATE_VAR); - } else if (sc.ch == 'k') { - sc.SetState(SCE_CSOUND_KRATE_VAR); - } else if (sc.ch == 'i') { // covers both i-rate variables and i-statements - sc.SetState(SCE_CSOUND_IRATE_VAR); - } else if (sc.ch == 'g') { - sc.SetState(SCE_CSOUND_GLOBAL_VAR); - } - } - } - sc.Complete(); -} - -static void FoldCsoundInstruments(unsigned int startPos, int length, int /* initStyle */, WordList *[], - Accessor &styler) { - unsigned int lengthDoc = startPos + length; - int visibleChars = 0; - int lineCurrent = styler.GetLine(startPos); - int levelPrev = styler.LevelAt(lineCurrent) & SC_FOLDLEVELNUMBERMASK; - int levelCurrent = levelPrev; - char chNext = styler[startPos]; - int stylePrev = 0; - int styleNext = styler.StyleAt(startPos); - for (unsigned int i = startPos; i < lengthDoc; i++) { - char ch = chNext; - chNext = styler.SafeGetCharAt(i + 1); - int style = styleNext; - styleNext = styler.StyleAt(i + 1); - bool atEOL = (ch == '\r' && chNext != '\n') || (ch == '\n'); - if ((stylePrev != SCE_CSOUND_OPCODE) && (style == SCE_CSOUND_OPCODE)) { - char s[20]; - unsigned int j = 0; - while ((j < (sizeof(s) - 1)) && (iswordchar(styler[i + j]))) { - s[j] = styler[i + j]; - j++; - } - s[j] = '\0'; - - if (strcmp(s, "instr") == 0) - levelCurrent++; - if (strcmp(s, "endin") == 0) - levelCurrent--; - } - - if (atEOL) { - int lev = levelPrev; - if (visibleChars == 0) - lev |= SC_FOLDLEVELWHITEFLAG; - if ((levelCurrent > levelPrev) && (visibleChars > 0)) - lev |= SC_FOLDLEVELHEADERFLAG; - if (lev != styler.LevelAt(lineCurrent)) { - styler.SetLevel(lineCurrent, lev); - } - lineCurrent++; - levelPrev = levelCurrent; - visibleChars = 0; - } - if (!isspacechar(ch)) - visibleChars++; - stylePrev = style; - } - // Fill in the real level of the next line, keeping the current flags as they will be filled in later - int flagsNext = styler.LevelAt(lineCurrent) & ~SC_FOLDLEVELNUMBERMASK; - styler.SetLevel(lineCurrent, levelPrev | flagsNext); -} - - -static const char * const csoundWordListDesc[] = { - "Opcodes", - "Header Statements", - "User keywords", - 0 -}; - -LexerModule lmCsound(SCLEX_CSOUND, ColouriseCsoundDoc, "csound", FoldCsoundInstruments, csoundWordListDesc); diff --git a/MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/src/LexEScript.cxx b/MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/src/LexEScript.cxx deleted file mode 100644 index 9de3a3ea..00000000 --- a/MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/src/LexEScript.cxx +++ /dev/null @@ -1,270 +0,0 @@ -// Scintilla source code edit control -/** @file LexESCRIPT.cxx - ** Lexer for ESCRIPT - **/ -// Copyright 2003 by Patrizio Bekerle (patrizio@bekerle.com) - -#include -#include -#include -#include -#include - -#include "Platform.h" - -#include "PropSet.h" -#include "Accessor.h" -#include "StyleContext.h" -#include "KeyWords.h" -#include "Scintilla.h" -#include "SciLexer.h" - - - -static inline bool IsAWordChar(const int ch) { - return (ch < 0x80) && (isalnum(ch) || ch == '.' || ch == '_'); -} - -static inline bool IsAWordStart(const int ch) { - return (ch < 0x80) && (isalnum(ch) || ch == '_'); -} - - - -static void ColouriseESCRIPTDoc(unsigned int startPos, int length, int initStyle, WordList *keywordlists[], - Accessor &styler) { - - WordList &keywords = *keywordlists[0]; - WordList &keywords2 = *keywordlists[1]; - WordList &keywords3 = *keywordlists[2]; - - // Do not leak onto next line - /*if (initStyle == SCE_ESCRIPT_STRINGEOL) - initStyle = SCE_ESCRIPT_DEFAULT;*/ - - StyleContext sc(startPos, length, initStyle, styler); - - bool caseSensitive = styler.GetPropertyInt("escript.case.sensitive", 0) != 0; - - for (; sc.More(); sc.Forward()) { - - /*if (sc.atLineStart && (sc.state == SCE_ESCRIPT_STRING)) { - // Prevent SCE_ESCRIPT_STRINGEOL from leaking back to previous line - sc.SetState(SCE_ESCRIPT_STRING); - }*/ - - // Handle line continuation generically. - if (sc.ch == '\\') { - if (sc.chNext == '\n' || sc.chNext == '\r') { - sc.Forward(); - if (sc.ch == '\r' && sc.chNext == '\n') { - sc.Forward(); - } - continue; - } - } - - // Determine if the current state should terminate. - if (sc.state == SCE_ESCRIPT_OPERATOR || sc.state == SCE_ESCRIPT_BRACE) { - sc.SetState(SCE_ESCRIPT_DEFAULT); - } else if (sc.state == SCE_ESCRIPT_NUMBER) { - if (!IsADigit(sc.ch) || sc.ch != '.') { - sc.SetState(SCE_ESCRIPT_DEFAULT); - } - } else if (sc.state == SCE_ESCRIPT_IDENTIFIER) { - if (!IsAWordChar(sc.ch) || (sc.ch == '.')) { - char s[100]; - if (caseSensitive) { - sc.GetCurrent(s, sizeof(s)); - } else { - sc.GetCurrentLowered(s, sizeof(s)); - } - -// sc.GetCurrentLowered(s, sizeof(s)); - - if (keywords.InList(s)) { - sc.ChangeState(SCE_ESCRIPT_WORD); - } else if (keywords2.InList(s)) { - sc.ChangeState(SCE_ESCRIPT_WORD2); - } else if (keywords3.InList(s)) { - sc.ChangeState(SCE_ESCRIPT_WORD3); - // sc.state = SCE_ESCRIPT_IDENTIFIER; - } - sc.SetState(SCE_ESCRIPT_DEFAULT); - } - } else if (sc.state == SCE_ESCRIPT_COMMENT) { - if (sc.Match('*', '/')) { - sc.Forward(); - sc.ForwardSetState(SCE_ESCRIPT_DEFAULT); - } - } else if (sc.state == SCE_ESCRIPT_COMMENTDOC) { - if (sc.Match('*', '/')) { - sc.Forward(); - sc.ForwardSetState(SCE_ESCRIPT_DEFAULT); - } - } else if (sc.state == SCE_ESCRIPT_COMMENTLINE) { - if (sc.atLineEnd) { - sc.SetState(SCE_ESCRIPT_DEFAULT); - } - } else if (sc.state == SCE_ESCRIPT_STRING) { - if (sc.ch == '\\') { - if (sc.chNext == '\"' || sc.chNext == '\\') { - sc.Forward(); - } - } else if (sc.ch == '\"') { - sc.ForwardSetState(SCE_ESCRIPT_DEFAULT); - } - } - - // Determine if a new state should be entered. - if (sc.state == SCE_ESCRIPT_DEFAULT) { - if (IsADigit(sc.ch) || (sc.ch == '.' && IsADigit(sc.chNext))) { - sc.SetState(SCE_ESCRIPT_NUMBER); - } else if (IsAWordStart(sc.ch) || (sc.ch == '#')) { - sc.SetState(SCE_ESCRIPT_IDENTIFIER); - } else if (sc.Match('/', '*')) { - sc.SetState(SCE_ESCRIPT_COMMENT); - sc.Forward(); // Eat the * so it isn't used for the end of the comment - } else if (sc.Match('/', '/')) { - sc.SetState(SCE_ESCRIPT_COMMENTLINE); - } else if (sc.ch == '\"') { - sc.SetState(SCE_ESCRIPT_STRING); - //} else if (isoperator(static_cast(sc.ch))) { - } else if (sc.ch == '+' || sc.ch == '-' || sc.ch == '*' || sc.ch == '/' || sc.ch == '=' || sc.ch == '<' || sc.ch == '>' || sc.ch == '&' || sc.ch == '|' || sc.ch == '!' || sc.ch == '?' || sc.ch == ':') { - sc.SetState(SCE_ESCRIPT_OPERATOR); - } else if (sc.ch == '{' || sc.ch == '}') { - sc.SetState(SCE_ESCRIPT_BRACE); - } - } - - } - sc.Complete(); -} - - -static int classifyFoldPointESCRIPT(const char* s, const char* prevWord) { - int lev = 0; - if (strcmp(prevWord, "end") == 0) return lev; - if ((strcmp(prevWord, "else") == 0 && strcmp(s, "if") == 0) || strcmp(s, "elseif") == 0) - return -1; - - if (strcmp(s, "for") == 0 || strcmp(s, "foreach") == 0 - || strcmp(s, "program") == 0 || strcmp(s, "function") == 0 - || strcmp(s, "while") == 0 || strcmp(s, "case") == 0 - || strcmp(s, "if") == 0 ) { - lev = 1; - } else if ( strcmp(s, "endfor") == 0 || strcmp(s, "endforeach") == 0 - || strcmp(s, "endprogram") == 0 || strcmp(s, "endfunction") == 0 - || strcmp(s, "endwhile") == 0 || strcmp(s, "endcase") == 0 - || strcmp(s, "endif") == 0 ) { - lev = -1; - } - - return lev; -} - - -static bool IsStreamCommentStyle(int style) { - return style == SCE_ESCRIPT_COMMENT || - style == SCE_ESCRIPT_COMMENTDOC || - style == SCE_ESCRIPT_COMMENTLINE; -} - -static void FoldESCRIPTDoc(unsigned int startPos, int length, int initStyle, WordList *[], Accessor &styler) { - //~ bool foldComment = styler.GetPropertyInt("fold.comment") != 0; - // Do not know how to fold the comment at the moment. - bool foldCompact = styler.GetPropertyInt("fold.compact", 1) != 0; - bool foldComment = true; - unsigned int endPos = startPos + length; - int visibleChars = 0; - int lineCurrent = styler.GetLine(startPos); - int levelPrev = styler.LevelAt(lineCurrent) & SC_FOLDLEVELNUMBERMASK; - int levelCurrent = levelPrev; - char chNext = styler[startPos]; - int styleNext = styler.StyleAt(startPos); - int style = initStyle; - - int lastStart = 0; - char prevWord[32] = ""; - - for (unsigned int i = startPos; i < endPos; i++) { - char ch = chNext; - chNext = styler.SafeGetCharAt(i + 1); - int stylePrev = style; - style = styleNext; - styleNext = styler.StyleAt(i + 1); - bool atEOL = (ch == '\r' && chNext != '\n') || (ch == '\n'); - - - if (foldComment && IsStreamCommentStyle(style)) { - if (!IsStreamCommentStyle(stylePrev)) { - levelCurrent++; - } else if (!IsStreamCommentStyle(styleNext) && !atEOL) { - // Comments don't end at end of line and the next character may be unstyled. - levelCurrent--; - } - } - - if (foldComment && (style == SCE_ESCRIPT_COMMENTLINE)) { - if ((ch == '/') && (chNext == '/')) { - char chNext2 = styler.SafeGetCharAt(i + 2); - if (chNext2 == '{') { - levelCurrent++; - } else if (chNext2 == '}') { - levelCurrent--; - } - } - } - - if (stylePrev == SCE_ESCRIPT_DEFAULT && style == SCE_ESCRIPT_WORD3) - { - // Store last word start point. - lastStart = i; - } - - if (style == SCE_ESCRIPT_WORD3) { - if(iswordchar(ch) && !iswordchar(chNext)) { - char s[32]; - unsigned int j; - for(j = 0; ( j < 31 ) && ( j < i-lastStart+1 ); j++) { - s[j] = static_cast(tolower(styler[lastStart + j])); - } - s[j] = '\0'; - levelCurrent += classifyFoldPointESCRIPT(s, prevWord); - strcpy(prevWord, s); - } - } - if (atEOL) { - int lev = levelPrev; - if (visibleChars == 0 && foldCompact) - lev |= SC_FOLDLEVELWHITEFLAG; - if ((levelCurrent > levelPrev) && (visibleChars > 0)) - lev |= SC_FOLDLEVELHEADERFLAG; - if (lev != styler.LevelAt(lineCurrent)) { - styler.SetLevel(lineCurrent, lev); - } - lineCurrent++; - levelPrev = levelCurrent; - visibleChars = 0; - strcpy(prevWord, ""); - } - - if (!isspacechar(ch)) - visibleChars++; - } - - // Fill in the real level of the next line, keeping the current flags as they will be filled in later - int flagsNext = styler.LevelAt(lineCurrent) & ~SC_FOLDLEVELNUMBERMASK; - styler.SetLevel(lineCurrent, levelPrev | flagsNext); -} - - - -static const char * const ESCRIPTWordLists[] = { - "Primary keywords and identifiers", - "Intrinsic functions", - "Extended and user defined functions", - 0, -}; - -LexerModule lmESCRIPT(SCLEX_ESCRIPT, ColouriseESCRIPTDoc, "escript", FoldESCRIPTDoc, ESCRIPTWordLists); diff --git a/MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/src/LexEiffel.cxx b/MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/src/LexEiffel.cxx deleted file mode 100644 index 6bc8b16a..00000000 --- a/MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/src/LexEiffel.cxx +++ /dev/null @@ -1,234 +0,0 @@ -// Scintilla source code edit control -/** @file LexEiffel.cxx - ** Lexer for Eiffel. - **/ -// Copyright 1998-2001 by Neil Hodgson -// The License.txt file describes the conditions under which this software may be distributed. - -#include -#include -#include -#include -#include - -#include "Platform.h" - -#include "PropSet.h" -#include "Accessor.h" -#include "StyleContext.h" -#include "KeyWords.h" -#include "Scintilla.h" -#include "SciLexer.h" - -static inline bool isEiffelOperator(unsigned int ch) { - // '.' left out as it is used to make up numbers - return ch == '*' || ch == '/' || ch == '\\' || ch == '-' || ch == '+' || - ch == '(' || ch == ')' || ch == '=' || - ch == '{' || ch == '}' || ch == '~' || - ch == '[' || ch == ']' || ch == ';' || - ch == '<' || ch == '>' || ch == ',' || - ch == '.' || ch == '^' || ch == '%' || ch == ':' || - ch == '!' || ch == '@' || ch == '?'; -} - -static inline bool IsAWordChar(unsigned int ch) { - return (ch < 0x80) && (isalnum(ch) || ch == '_'); -} - -static inline bool IsAWordStart(unsigned int ch) { - return (ch < 0x80) && (isalnum(ch) || ch == '_'); -} - -static void ColouriseEiffelDoc(unsigned int startPos, - int length, - int initStyle, - WordList *keywordlists[], - Accessor &styler) { - - WordList &keywords = *keywordlists[0]; - - StyleContext sc(startPos, length, initStyle, styler); - - for (; sc.More(); sc.Forward()) { - - if (sc.state == SCE_EIFFEL_STRINGEOL) { - if (sc.ch != '\r' && sc.ch != '\n') { - sc.SetState(SCE_EIFFEL_DEFAULT); - } - } else if (sc.state == SCE_EIFFEL_OPERATOR) { - sc.SetState(SCE_EIFFEL_DEFAULT); - } else if (sc.state == SCE_EIFFEL_WORD) { - if (!IsAWordChar(sc.ch)) { - char s[100]; - sc.GetCurrentLowered(s, sizeof(s)); - if (!keywords.InList(s)) { - sc.ChangeState(SCE_EIFFEL_IDENTIFIER); - } - sc.SetState(SCE_EIFFEL_DEFAULT); - } - } else if (sc.state == SCE_EIFFEL_NUMBER) { - if (!IsAWordChar(sc.ch)) { - sc.SetState(SCE_EIFFEL_DEFAULT); - } - } else if (sc.state == SCE_EIFFEL_COMMENTLINE) { - if (sc.ch == '\r' || sc.ch == '\n') { - sc.SetState(SCE_EIFFEL_DEFAULT); - } - } else if (sc.state == SCE_EIFFEL_STRING) { - if (sc.ch == '%') { - sc.Forward(); - } else if (sc.ch == '\"') { - sc.Forward(); - sc.SetState(SCE_EIFFEL_DEFAULT); - } - } else if (sc.state == SCE_EIFFEL_CHARACTER) { - if (sc.ch == '\r' || sc.ch == '\n') { - sc.SetState(SCE_EIFFEL_STRINGEOL); - } else if (sc.ch == '%') { - sc.Forward(); - } else if (sc.ch == '\'') { - sc.Forward(); - sc.SetState(SCE_EIFFEL_DEFAULT); - } - } - - if (sc.state == SCE_EIFFEL_DEFAULT) { - if (sc.ch == '-' && sc.chNext == '-') { - sc.SetState(SCE_EIFFEL_COMMENTLINE); - } else if (sc.ch == '\"') { - sc.SetState(SCE_EIFFEL_STRING); - } else if (sc.ch == '\'') { - sc.SetState(SCE_EIFFEL_CHARACTER); - } else if (IsADigit(sc.ch) || (sc.ch == '.')) { - sc.SetState(SCE_EIFFEL_NUMBER); - } else if (IsAWordStart(sc.ch)) { - sc.SetState(SCE_EIFFEL_WORD); - } else if (isEiffelOperator(sc.ch)) { - sc.SetState(SCE_EIFFEL_OPERATOR); - } - } - } - sc.Complete(); -} - -static bool IsEiffelComment(Accessor &styler, int pos, int len) { - return len>1 && styler[pos]=='-' && styler[pos+1]=='-'; -} - -static void FoldEiffelDocIndent(unsigned int startPos, int length, int, - WordList *[], Accessor &styler) { - int lengthDoc = startPos + length; - - // Backtrack to previous line in case need to fix its fold status - int lineCurrent = styler.GetLine(startPos); - if (startPos > 0) { - if (lineCurrent > 0) { - lineCurrent--; - startPos = styler.LineStart(lineCurrent); - } - } - int spaceFlags = 0; - int indentCurrent = styler.IndentAmount(lineCurrent, &spaceFlags, IsEiffelComment); - char chNext = styler[startPos]; - for (int i = startPos; i < lengthDoc; i++) { - char ch = chNext; - chNext = styler.SafeGetCharAt(i + 1); - - if ((ch == '\r' && chNext != '\n') || (ch == '\n') || (i == lengthDoc)) { - int lev = indentCurrent; - int indentNext = styler.IndentAmount(lineCurrent + 1, &spaceFlags, IsEiffelComment); - if (!(indentCurrent & SC_FOLDLEVELWHITEFLAG)) { - // Only non whitespace lines can be headers - if ((indentCurrent & SC_FOLDLEVELNUMBERMASK) < (indentNext & SC_FOLDLEVELNUMBERMASK)) { - lev |= SC_FOLDLEVELHEADERFLAG; - } else if (indentNext & SC_FOLDLEVELWHITEFLAG) { - // Line after is blank so check the next - maybe should continue further? - int spaceFlags2 = 0; - int indentNext2 = styler.IndentAmount(lineCurrent + 2, &spaceFlags2, IsEiffelComment); - if ((indentCurrent & SC_FOLDLEVELNUMBERMASK) < (indentNext2 & SC_FOLDLEVELNUMBERMASK)) { - lev |= SC_FOLDLEVELHEADERFLAG; - } - } - } - indentCurrent = indentNext; - styler.SetLevel(lineCurrent, lev); - lineCurrent++; - } - } -} - -static void FoldEiffelDocKeyWords(unsigned int startPos, int length, int /* initStyle */, WordList *[], - Accessor &styler) { - unsigned int lengthDoc = startPos + length; - int visibleChars = 0; - int lineCurrent = styler.GetLine(startPos); - int levelPrev = styler.LevelAt(lineCurrent) & SC_FOLDLEVELNUMBERMASK; - int levelCurrent = levelPrev; - char chNext = styler[startPos]; - int stylePrev = 0; - int styleNext = styler.StyleAt(startPos); - // lastDeferred should be determined by looking back to last keyword in case - // the "deferred" is on a line before "class" - bool lastDeferred = false; - for (unsigned int i = startPos; i < lengthDoc; i++) { - char ch = chNext; - chNext = styler.SafeGetCharAt(i + 1); - int style = styleNext; - styleNext = styler.StyleAt(i + 1); - bool atEOL = (ch == '\r' && chNext != '\n') || (ch == '\n'); - if ((stylePrev != SCE_EIFFEL_WORD) && (style == SCE_EIFFEL_WORD)) { - char s[20]; - unsigned int j = 0; - while ((j < (sizeof(s) - 1)) && (iswordchar(styler[i + j]))) { - s[j] = styler[i + j]; - j++; - } - s[j] = '\0'; - - if ( - (strcmp(s, "check") == 0) || - (strcmp(s, "debug") == 0) || - (strcmp(s, "deferred") == 0) || - (strcmp(s, "do") == 0) || - (strcmp(s, "from") == 0) || - (strcmp(s, "if") == 0) || - (strcmp(s, "inspect") == 0) || - (strcmp(s, "once") == 0) - ) - levelCurrent++; - if (!lastDeferred && (strcmp(s, "class") == 0)) - levelCurrent++; - if (strcmp(s, "end") == 0) - levelCurrent--; - lastDeferred = strcmp(s, "deferred") == 0; - } - - if (atEOL) { - int lev = levelPrev; - if (visibleChars == 0) - lev |= SC_FOLDLEVELWHITEFLAG; - if ((levelCurrent > levelPrev) && (visibleChars > 0)) - lev |= SC_FOLDLEVELHEADERFLAG; - if (lev != styler.LevelAt(lineCurrent)) { - styler.SetLevel(lineCurrent, lev); - } - lineCurrent++; - levelPrev = levelCurrent; - visibleChars = 0; - } - if (!isspacechar(ch)) - visibleChars++; - stylePrev = style; - } - // Fill in the real level of the next line, keeping the current flags as they will be filled in later - int flagsNext = styler.LevelAt(lineCurrent) & ~SC_FOLDLEVELNUMBERMASK; - styler.SetLevel(lineCurrent, levelPrev | flagsNext); -} - -static const char * const eiffelWordListDesc[] = { - "Keywords", - 0 -}; - -LexerModule lmEiffel(SCLEX_EIFFEL, ColouriseEiffelDoc, "eiffel", FoldEiffelDocIndent, eiffelWordListDesc); -LexerModule lmEiffelkw(SCLEX_EIFFELKW, ColouriseEiffelDoc, "eiffelkw", FoldEiffelDocKeyWords, eiffelWordListDesc); diff --git a/MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/src/LexErlang.cxx b/MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/src/LexErlang.cxx deleted file mode 100644 index b75a766e..00000000 --- a/MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/src/LexErlang.cxx +++ /dev/null @@ -1,522 +0,0 @@ -// Scintilla source code edit control -/** @file LexErlang.cxx - ** Lexer for Erlang. - ** Written by Peter-Henry Mander, based on Matlab lexer by José Fonseca - **/ -// Copyright 1998-2001 by Neil Hodgson -// The License.txt file describes the conditions under which this software may be distributed. - -#include -#include -#include -#include -#include - -#include "Platform.h" - -#include "PropSet.h" -#include "Accessor.h" -#include "StyleContext.h" -#include "KeyWords.h" -#include "Scintilla.h" -#include "SciLexer.h" - -/* - TODO: - o _Param should be a new lexical type -*/ - -static int is_radix(int radix, int ch) { - int digit; - if ( 16 < radix || 2 > radix ) { - return 0; - } - if ( isdigit(ch) ) { - digit = ch - '0'; - } else if ( isxdigit(ch) ) { - digit = toupper(ch) - 'A' + 10; - } else { - return 0; - } - if ( digit < radix ) { - return 1; - } else { - return 0; - } -} - -typedef enum { - STATE_NULL, - ATOM_UNQUOTED, - ATOM_QUOTED, - ATOM_FUN_NAME, - NODE_NAME_UNQUOTED, - NODE_NAME_QUOTED, - MACRO_START, - MACRO_UNQUOTED, - MACRO_QUOTED, - RECORD_START, - RECORD_UNQUOTED, - RECORD_QUOTED, - NUMERAL_START, - NUMERAL_SIGNED, - NUMERAL_RADIX_LITERAL, - NUMERAL_SPECULATIVE_MANTISSA, - NUMERAL_FLOAT_MANTISSA, - NUMERAL_FLOAT_EXPONENT, - NUMERAL_FLOAT_SIGNED_EXPONENT, - PARSE_ERROR -} atom_parse_state_t; - -static void ColouriseErlangDoc(unsigned int startPos, int length, int initStyle, - WordList *keywordlists[], Accessor &styler) { - - WordList &keywords = *keywordlists[0]; - - styler.StartAt(startPos); - - StyleContext sc(startPos, length, initStyle, styler); - atom_parse_state_t parse_state = STATE_NULL; - int radix_digits = 0; - int exponent_digits = 0; - for (; sc.More(); sc.Forward()) { - if ( STATE_NULL != parse_state ) { - switch (parse_state) { - case STATE_NULL: - sc.SetState(SCE_ERLANG_DEFAULT); - break; - case ATOM_UNQUOTED: - if ( '@' == sc.ch ){ - parse_state = NODE_NAME_UNQUOTED; - } else if ( !isalnum(sc.ch) && sc.ch != '_' ) { - char s[100]; - sc.GetCurrent(s, sizeof(s)); - if (keywords.InList(s)) { - sc.ChangeState(SCE_ERLANG_KEYWORD); - sc.SetState(SCE_ERLANG_DEFAULT); - parse_state = STATE_NULL; - } else { - if ( '/' == sc.ch ) { - parse_state = ATOM_FUN_NAME; - } else { - sc.ChangeState(SCE_ERLANG_ATOM); - sc.SetState(SCE_ERLANG_DEFAULT); - parse_state = STATE_NULL; - } - } - } - break; - case ATOM_QUOTED: - if ( '@' == sc.ch ){ - parse_state = NODE_NAME_QUOTED; - } else if ( '\'' == sc.ch && '\\' != sc.chPrev ) { - sc.ChangeState(SCE_ERLANG_ATOM); - sc.ForwardSetState(SCE_ERLANG_DEFAULT); - parse_state = STATE_NULL; - } - break; - case ATOM_FUN_NAME: - if ( !isdigit(sc.ch) ) { - sc.ChangeState(SCE_ERLANG_FUNCTION_NAME); - sc.SetState(SCE_ERLANG_DEFAULT); - parse_state = STATE_NULL; - } - break; - case NODE_NAME_QUOTED: - if ( '@' == sc.ch ) { - sc.SetState(SCE_ERLANG_DEFAULT); - parse_state = STATE_NULL; - } else if ( '\'' == sc.ch && '\\' != sc.chPrev ) { - sc.ChangeState(SCE_ERLANG_NODE_NAME); - sc.ForwardSetState(SCE_ERLANG_DEFAULT); - parse_state = STATE_NULL; - } - break; - case NODE_NAME_UNQUOTED: - if ( '@' == sc.ch ) { - sc.SetState(SCE_ERLANG_DEFAULT); - parse_state = STATE_NULL; - } else if ( !isalnum(sc.ch) && sc.ch != '_' ) { - sc.ChangeState(SCE_ERLANG_NODE_NAME); - sc.SetState(SCE_ERLANG_DEFAULT); - parse_state = STATE_NULL; - } - break; - case RECORD_START: - if ( '\'' == sc.ch ) { - parse_state = RECORD_QUOTED; - } else if (isalpha(sc.ch) && islower(sc.ch)) { - parse_state = RECORD_UNQUOTED; - } else { // error - sc.SetState(SCE_ERLANG_DEFAULT); - parse_state = STATE_NULL; - } - break; - case RECORD_QUOTED: - if ( '\'' == sc.ch && '\\' != sc.chPrev ) { - sc.ChangeState(SCE_ERLANG_RECORD); - sc.ForwardSetState(SCE_ERLANG_DEFAULT); - parse_state = STATE_NULL; - } - break; - case RECORD_UNQUOTED: - if ( !isalpha(sc.ch) && '_' != sc.ch ) { - sc.ChangeState(SCE_ERLANG_RECORD); - sc.SetState(SCE_ERLANG_DEFAULT); - parse_state = STATE_NULL; - } - break; - case MACRO_START: - if ( '\'' == sc.ch ) { - parse_state = MACRO_QUOTED; - } else if (isalpha(sc.ch)) { - parse_state = MACRO_UNQUOTED; - } else { // error - sc.SetState(SCE_ERLANG_DEFAULT); - parse_state = STATE_NULL; - } - break; - case MACRO_UNQUOTED: - if ( !isalpha(sc.ch) && '_' != sc.ch ) { - sc.ChangeState(SCE_ERLANG_MACRO); - sc.SetState(SCE_ERLANG_DEFAULT); - parse_state = STATE_NULL; - } - break; - case MACRO_QUOTED: - if ( '\'' == sc.ch && '\\' != sc.chPrev ) { - sc.ChangeState(SCE_ERLANG_MACRO); - sc.ForwardSetState(SCE_ERLANG_DEFAULT); - parse_state = STATE_NULL; - } - break; - case NUMERAL_START: - if ( isdigit(sc.ch) ) { - radix_digits *= 10; - radix_digits += sc.ch - '0'; // Assuming ASCII here! - } else if ( '#' == sc.ch ) { - if ( 2 > radix_digits || 16 < radix_digits) { - sc.SetState(SCE_ERLANG_DEFAULT); - parse_state = STATE_NULL; - } else { - parse_state = NUMERAL_RADIX_LITERAL; - } - } else if ( '.' == sc.ch && isdigit(sc.chNext)) { - radix_digits = 0; - parse_state = NUMERAL_FLOAT_MANTISSA; - } else if ( 'e' == sc.ch || 'E' == sc.ch ) { - exponent_digits = 0; - parse_state = NUMERAL_FLOAT_EXPONENT; - } else { - radix_digits = 0; - sc.ChangeState(SCE_ERLANG_NUMBER); - sc.SetState(SCE_ERLANG_DEFAULT); - parse_state = STATE_NULL; - } - break; - case NUMERAL_RADIX_LITERAL: - if ( !is_radix(radix_digits,sc.ch) ) { - radix_digits = 0; - if ( !isalnum(sc.ch) ) { - sc.ChangeState(SCE_ERLANG_NUMBER); - } - sc.SetState(SCE_ERLANG_DEFAULT); - parse_state = STATE_NULL; - } - break; - case NUMERAL_FLOAT_MANTISSA: - if ( 'e' == sc.ch || 'E' == sc.ch ) { - exponent_digits = 0; - parse_state = NUMERAL_FLOAT_EXPONENT; - } else if ( !isdigit(sc.ch) ) { - sc.ChangeState(SCE_ERLANG_NUMBER); - sc.SetState(SCE_ERLANG_DEFAULT); - parse_state = STATE_NULL; - } - break; - case NUMERAL_FLOAT_EXPONENT: - if ( '-' == sc.ch || '+' == sc.ch ) { - parse_state = NUMERAL_FLOAT_SIGNED_EXPONENT; - } else if ( !isdigit(sc.ch) ) { - if ( 0 < exponent_digits ) { - sc.ChangeState(SCE_ERLANG_NUMBER); - } - sc.SetState(SCE_ERLANG_DEFAULT); - parse_state = STATE_NULL; - } else { - ++exponent_digits; - } - break; - case NUMERAL_FLOAT_SIGNED_EXPONENT: - if ( !isdigit(sc.ch) ) { - if ( 0 < exponent_digits ) { - sc.ChangeState(SCE_ERLANG_NUMBER); - } - sc.SetState(SCE_ERLANG_DEFAULT); - parse_state = STATE_NULL; - } else { - ++exponent_digits; - } - break; - case NUMERAL_SIGNED: - if ( !isdigit(sc.ch) ) { - sc.ChangeState(SCE_ERLANG_NUMBER); - sc.SetState(SCE_ERLANG_DEFAULT); - parse_state = STATE_NULL; - } else if ( '.' == sc.ch ) { - parse_state = NUMERAL_FLOAT_MANTISSA; - } - break; - case NUMERAL_SPECULATIVE_MANTISSA: - if ( !isdigit(sc.ch) ) { - sc.ChangeState(SCE_ERLANG_OPERATOR); - sc.SetState(SCE_ERLANG_DEFAULT); - parse_state = STATE_NULL; - } else { - parse_state = NUMERAL_FLOAT_MANTISSA; - } - break; - case PARSE_ERROR: - sc.SetState(SCE_ERLANG_DEFAULT); - parse_state = STATE_NULL; - break; - } - } else if (sc.state == SCE_ERLANG_OPERATOR) { - if (sc.chPrev == '.') { - if (sc.ch == '*' || sc.ch == '/' || sc.ch == '\\' || sc.ch == '^') { - sc.ForwardSetState(SCE_ERLANG_DEFAULT); - } else if (sc.ch == '\'') { - sc.ForwardSetState(SCE_ERLANG_DEFAULT); - } else { - sc.SetState(SCE_ERLANG_DEFAULT); - } - } else { - sc.SetState(SCE_ERLANG_DEFAULT); - } - } else if (sc.state == SCE_ERLANG_VARIABLE) { - if (!isalnum(sc.ch) && sc.ch != '_') { - sc.SetState(SCE_ERLANG_DEFAULT); - } - } else if (sc.state == SCE_ERLANG_STRING) { - if (sc.ch == '\"' && sc.chPrev != '\\') { - sc.ForwardSetState(SCE_ERLANG_DEFAULT); - } - } else if (sc.state == SCE_ERLANG_COMMENT ) { - if (sc.atLineEnd) { - sc.SetState(SCE_ERLANG_DEFAULT); - } - } else if (sc.state == SCE_ERLANG_CHARACTER ) { - if ( sc.chPrev == '\\' ) { - sc.ForwardSetState(SCE_ERLANG_DEFAULT); - } else if ( sc.ch != '\\' ) { - sc.ForwardSetState(SCE_ERLANG_DEFAULT); - } - } - - if (sc.state == SCE_ERLANG_DEFAULT) { - if (sc.ch == '%') { - sc.SetState(SCE_ERLANG_COMMENT); - } else if (sc.ch == '\"') { - sc.SetState(SCE_ERLANG_STRING); - } else if (sc.ch == '#') { - parse_state = RECORD_START; - sc.SetState(SCE_ERLANG_UNKNOWN); - } else if (sc.ch == '?') { - parse_state = MACRO_START; - sc.SetState(SCE_ERLANG_UNKNOWN); - } else if (sc.ch == '$') { - sc.SetState(SCE_ERLANG_CHARACTER); - } else if (sc.ch == '\'') { - parse_state = ATOM_QUOTED; - sc.SetState(SCE_ERLANG_UNKNOWN); - } else if ( isdigit(sc.ch) ) { - parse_state = NUMERAL_START; - radix_digits = sc.ch - '0'; - sc.SetState(SCE_ERLANG_UNKNOWN); - } else if ( '.' == sc.ch ) { - parse_state = NUMERAL_SPECULATIVE_MANTISSA; - sc.SetState(SCE_ERLANG_UNKNOWN); - } else if (isalpha(sc.ch) && isupper(sc.ch)) { - sc.SetState(SCE_ERLANG_VARIABLE); - } else if (isalpha(sc.ch)) { - parse_state = ATOM_UNQUOTED; - sc.SetState(SCE_ERLANG_UNKNOWN); - } else if (isoperator(static_cast(sc.ch)) || sc.ch == '\\') { - sc.SetState(SCE_ERLANG_OPERATOR); - } - } - } - sc.Complete(); -} - -static int ClassifyFoldPointErlang( - Accessor &styler, - int styleNext, - int keyword_start -) { - int lev = 0; - if ( styler.Match(keyword_start,"case") - || ( - styler.Match(keyword_start,"fun") - && SCE_ERLANG_FUNCTION_NAME != styleNext) - || styler.Match(keyword_start,"if") - || styler.Match(keyword_start,"query") - || styler.Match(keyword_start,"receive") - ) { - ++lev; - } else if ( styler.Match(keyword_start,"end") ) { - --lev; - } - return lev; -} - - -static void FoldErlangDoc( - unsigned int startPos, int length, int initStyle, - WordList** /*keywordlists*/, Accessor &styler -) { - unsigned int endPos = startPos + length; - //~ int visibleChars = 0; - int lineCurrent = styler.GetLine(startPos); - int levelPrev = styler.LevelAt(lineCurrent) & SC_FOLDLEVELNUMBERMASK; - int levelCurrent = levelPrev; - char chNext = styler.SafeGetCharAt(startPos); - int styleNext = styler.StyleAt(startPos); - int style = initStyle; - int keyword_start = 0; - - bool fold_keywords = true; - bool fold_comments = true; - bool fold_braces = true; - bool fold_function_clauses = false; - bool fold_clauses = false; - - //int clause_level = 0; - - for (unsigned int i = startPos; i < endPos; i++) { - char ch = chNext; - chNext = styler.SafeGetCharAt(i + 1); - int stylePrev = style; - style = styleNext; - styleNext = styler.StyleAt(i + 1); - bool atEOL = (ch == '\r' && chNext != '\n') || (ch == '\n'); - - if ( (stylePrev != SCE_ERLANG_KEYWORD) && (style == SCE_ERLANG_KEYWORD) ) { - keyword_start = i; - } - if ( fold_keywords ) { - if ( (stylePrev == SCE_ERLANG_KEYWORD) - && (style != SCE_ERLANG_KEYWORD) - && (style != SCE_ERLANG_ATOM) - ) { - levelCurrent += ClassifyFoldPointErlang(styler,styleNext,keyword_start); - } - } - - if ( fold_comments ) { - if (style == SCE_ERLANG_COMMENT) { - if ((ch == '%') && (chNext == '{')) { - levelCurrent++; - } else if ((ch == '%') && (chNext == '}')) { - levelCurrent--; - } - } - } - - if ( fold_function_clauses ) { - if ( (SC_FOLDLEVELBASE == levelCurrent) /*&& (style == SCE_ERLANG_OPERATOR)*/ ) { - if ( (ch == '-') && (chNext == '>')) { - //~ fprintf(stderr,"levelCurrent=%d\n", levelCurrent); - //++clause_level; - //~ if ( 0 < clause_level ) - ++levelCurrent; - } - } - //~ if ( (stylePrev != SCE_ERLANG_RECORD) - //~ && (style != SCE_ERLANG_NUMBER) - //~ && (style != SCE_ERLANG_STRING) - //~ && (style != SCE_ERLANG_COMMENT) - //~ ) { - if ( (SC_FOLDLEVELBASE+1 == levelCurrent) && (ch == '.') ) { - //--clause_level; - //~ if ( 0 == clause_level ) - --levelCurrent; - } - //~ } - } - - if ( fold_clauses ) { - if ( (0 < levelCurrent) && (style == SCE_ERLANG_OPERATOR) ) { - if ((ch == '-') && (chNext == '>')) { - levelCurrent++; - } - if ( (ch == ';') ) { - levelCurrent--; - } - } - if ( (stylePrev != SCE_ERLANG_RECORD) - && (style != SCE_ERLANG_NUMBER) - && (style != SCE_ERLANG_STRING) - && (style != SCE_ERLANG_COMMENT) - ) { - if ( (ch == '.') ) { - levelCurrent--; - } - } - if ( (stylePrev == SCE_ERLANG_KEYWORD) - && (style != SCE_ERLANG_KEYWORD) - && (style != SCE_ERLANG_ATOM) - && ( - styler.Match(keyword_start,"end") // 'end' counted twice if fold_keywords too - || styler.Match(keyword_start,"after") ) - ) { - levelCurrent--; - } - } - - if ( fold_braces ) { - if (style == SCE_ERLANG_OPERATOR) { - if ( (ch == '{') || (ch == '(') || (ch == '[') ) { - levelCurrent++; - } else if ( (ch == '}') || (ch == ')') || (ch == ']') ) { - levelCurrent--; - } - } - } - - if (atEOL) { - int lev = levelPrev; - //~ if (visibleChars == 0 && foldCompact) - //~ lev |= SC_FOLDLEVELWHITEFLAG; - //~ if ((levelCurrent > levelPrev) && (visibleChars > 0)) - if ((levelCurrent > levelPrev)) { - lev |= SC_FOLDLEVELHEADERFLAG; - } - if (lev != styler.LevelAt(lineCurrent)) { - styler.SetLevel(lineCurrent, lev); - } - lineCurrent++; - levelPrev = levelCurrent; - //~ visibleChars = 0; - } - //~ if (!isspacechar(ch)) - //~ visibleChars++; - - } - // Fill in the real level of the next line, keeping the current flags as they will be filled in later - int flagsNext = styler.LevelAt(lineCurrent) & ~SC_FOLDLEVELNUMBERMASK; - styler.SetLevel(lineCurrent, levelPrev | flagsNext); -} - -static const char * const erlangWordListDesc[] = { - "Keywords", - 0 -}; - -LexerModule lmErlang( - SCLEX_ERLANG, - ColouriseErlangDoc, - "erlang", - FoldErlangDoc, - erlangWordListDesc); - diff --git a/MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/src/LexFlagship.cxx b/MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/src/LexFlagship.cxx deleted file mode 100644 index 335726ec..00000000 --- a/MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/src/LexFlagship.cxx +++ /dev/null @@ -1,226 +0,0 @@ -// Scintilla source code edit control -/** @file LexFlagShip.cxx - ** Lexer for FlagShip - ** (Syntactically compatible to other XBase dialects, like dBase, Clipper, Fox etc.) - **/ -// Copyright 2005 by Randy Butler -// Copyright 1998-2003 by Neil Hodgson -// The License.txt file describes the conditions under which this software may be distributed. - -#include -#include -#include -#include -#include - -#include "Platform.h" - -#include "PropSet.h" -#include "Accessor.h" -#include "StyleContext.h" -#include "KeyWords.h" -#include "Scintilla.h" -#include "SciLexer.h" - -static bool IsFlagShipComment(Accessor &styler, int pos, int len) { - return len>0 && styler[pos]=='\''; -} - -static inline bool IsTypeCharacter(int ch) { - return ch == '%' || ch == '&' || ch == '@' || ch == '!' || ch == '#' || ch == '$'; -} - -// Extended to accept accented characters -static inline bool IsAWordChar(int ch) { - return ch >= 0x80 || - (isalnum(ch) || ch == '.' || ch == '_'); -} - -static inline bool IsAWordStart(int ch) { - return ch >= 0x80 || - (isalnum(ch) || ch == '_'); -} - -static inline bool IsADateCharacter(const int ch) { - return (ch < 0x80) && - (isalnum(ch) || ch == '|' || ch == '-' || ch == '/' || ch == ':' || ch == ' ' || ch == '\t'); -} - - -static void ColouriseFlagShipDoc(unsigned int startPos, int length, int initStyle, - WordList *keywordlists[], Accessor &styler) { - - //bool FSScriptSyntax = true; - WordList &keywords = *keywordlists[0]; - WordList &keywords2 = *keywordlists[1]; - WordList &keywords3 = *keywordlists[2]; - WordList &keywords4 = *keywordlists[3]; - - styler.StartAt(startPos); - - int visibleChars = 0; - - StyleContext sc(startPos, length, initStyle, styler); - - for (; sc.More(); sc.Forward()) { - - if (sc.state == SCE_FS_OPERATOR) { - sc.SetState(SCE_FS_DEFAULT); - } else if (sc.state == SCE_FS_IDENTIFIER) { - if (!IsAWordChar(sc.ch)) { - char s[100]; - sc.GetCurrentLowered(s, sizeof(s)); - if (keywords.InList(s)) { - sc.ChangeState(SCE_FS_KEYWORD); - } else if (keywords2.InList(s)) { - sc.ChangeState(SCE_FS_KEYWORD2); - } else if (keywords3.InList(s)) { - sc.ChangeState(SCE_FS_KEYWORD3); - } else if (keywords4.InList(s)) { - sc.ChangeState(SCE_FS_KEYWORD4); - }// Else, it is really an identifier... - sc.SetState(SCE_FS_DEFAULT); - } - } else if (sc.state == SCE_FS_NUMBER) { - if (!IsAWordChar(sc.ch)) { - sc.SetState(SCE_FS_DEFAULT); - } - } else if (sc.state == SCE_FS_STRING) { - // VB doubles quotes to preserve them, so just end this string - // state now as a following quote will start again - if (sc.ch == '\"') { - if (tolower(sc.chNext) == 'c') { - sc.Forward(); - } - sc.ForwardSetState(SCE_FS_DEFAULT); - } else if (sc.atLineEnd) { - sc.ChangeState(SCE_FS_STRINGEOL); - sc.ForwardSetState(SCE_FS_DEFAULT); - } - } else if (sc.state == SCE_FS_COMMENT) { - if (sc.Match('*', '/')) { // new code - sc.Forward(); - sc.ForwardSetState(SCE_FS_DEFAULT); - //if (sc.atLineEnd) { // old code - // sc.SetState(SCE_FS_DEFAULT); - } - } else if (sc.state == SCE_FS_COMMENTLINE) { //new code - if (sc.ch == '\r' || sc.ch == '\n') { - sc.SetState(SCE_FS_DEFAULT); - visibleChars = 0; - } - } else if (sc.state == SCE_FS_PREPROCESSOR) { - if (sc.atLineEnd) { - sc.SetState(SCE_FS_DEFAULT); - } - } else if (sc.state == SCE_FS_DATE) { - if (sc.ch == '#' || !IsADateCharacter(sc.chNext)) { - sc.ForwardSetState(SCE_FS_DEFAULT); - } - } - - // Determine if a new state should be entered. - if (sc.state == SCE_FS_DEFAULT) { - if (sc.Match('/', '*')) { // New code - sc.SetState(SCE_FS_COMMENT); - sc.Forward(); // Eat the * so it isn't used for the end of the comment - //if (sc.ch == '\'') { // Old code - // sc.SetState(SCE_FS_COMMENT); // old code - } else if (sc.Match('/', '/')) { // New code - sc.SetState(SCE_FS_COMMENTLINE); - } else if (sc.ch == '\"') { - sc.SetState(SCE_FS_STRING); - } else if (sc.ch == '#' && visibleChars == 0) { - // Preprocessor commands are alone on their line - sc.SetState(SCE_FS_PREPROCESSOR); - } else if (sc.ch == '#') { - int n = 1; - int chSeek = ' '; - while ((n < 100) && (chSeek == ' ' || chSeek == '\t')) { - chSeek = sc.GetRelative(n); - n++; - } - if (IsADigit(chSeek)) { - sc.SetState(SCE_FS_DATE); - } else { - sc.SetState(SCE_FS_OPERATOR); - } - } else if (sc.ch == '&' && tolower(sc.chNext) == 'h') { - sc.SetState(SCE_FS_NUMBER); - } else if (sc.ch == '&' && tolower(sc.chNext) == 'o') { - sc.SetState(SCE_FS_NUMBER); - } else if (IsADigit(sc.ch) || (sc.ch == '.' && IsADigit(sc.chNext))) { - sc.SetState(SCE_FS_NUMBER); - } else if (IsAWordStart(sc.ch) || (sc.ch == '[')) { - sc.SetState(SCE_FS_IDENTIFIER); - } else if (isoperator(static_cast(sc.ch)) || (sc.ch == '\\')) { - sc.SetState(SCE_FS_OPERATOR); - } - } - - if (sc.atLineEnd) { - visibleChars = 0; - } - if (!IsASpace(sc.ch)) { - visibleChars++; - } - } - sc.Complete(); -} - -static void FoldFlagShipDoc(unsigned int startPos, int length, int, - WordList *[], Accessor &styler) { - - int endPos = startPos + length; - - // Backtrack to previous line in case need to fix its fold status - int lineCurrent = styler.GetLine(startPos); - if (startPos > 0) { - if (lineCurrent > 0) { - lineCurrent--; - startPos = styler.LineStart(lineCurrent); - } - } - int spaceFlags = 0; - int indentCurrent = styler.IndentAmount(lineCurrent, &spaceFlags, IsFlagShipComment); - char chNext = styler[startPos]; - for (int i = startPos; i < endPos; i++) { - char ch = chNext; - chNext = styler.SafeGetCharAt(i + 1); - - if ((ch == '\r' && chNext != '\n') || (ch == '\n') || (i == endPos)) { - int lev = indentCurrent; - int indentNext = styler.IndentAmount(lineCurrent + 1, &spaceFlags, IsFlagShipComment); - if (!(indentCurrent & SC_FOLDLEVELWHITEFLAG)) { - // Only non whitespace lines can be headers - if ((indentCurrent & SC_FOLDLEVELNUMBERMASK) < (indentNext & SC_FOLDLEVELNUMBERMASK)) { - lev |= SC_FOLDLEVELHEADERFLAG; - } else if (indentNext & SC_FOLDLEVELWHITEFLAG) { - // Line after is blank so check the next - maybe should continue further? - int spaceFlags2 = 0; - int indentNext2 = styler.IndentAmount(lineCurrent + 2, &spaceFlags2, IsFlagShipComment); - if ((indentCurrent & SC_FOLDLEVELNUMBERMASK) < (indentNext2 & SC_FOLDLEVELNUMBERMASK)) { - lev |= SC_FOLDLEVELHEADERFLAG; - } - } - } - indentCurrent = indentNext; - styler.SetLevel(lineCurrent, lev); - lineCurrent++; - } - } -} - - -static const char * const FSWordListDesc[] = { - "Keywords", - "functions", - "user2", - "user3", - 0 -}; - -LexerModule lmFlagShip(SCLEX_FLAGSHIP, ColouriseFlagShipDoc, "flagship", FoldFlagShipDoc, FSWordListDesc); - - - diff --git a/MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/src/LexForth.cxx b/MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/src/LexForth.cxx deleted file mode 100644 index 9be7d644..00000000 --- a/MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/src/LexForth.cxx +++ /dev/null @@ -1,348 +0,0 @@ -// Scintilla source code edit control -/** @file LexCrontab.cxx - ** Lexer to use with extended crontab files used by a powerful - ** Windows scheduler/event monitor/automation manager nnCron. - ** (http://nemtsev.eserv.ru/) - **/ -// Copyright 1998-2001 by Neil Hodgson -// The License.txt file describes the conditions under which this software may be distributed. - -#include -#include -#include -#include -#include - -#include "Platform.h" - -#include "PropSet.h" -#include "Accessor.h" -#include "KeyWords.h" -#include "Scintilla.h" -#include "SciLexer.h" - -bool is_whitespace(int ch){ - return ch == '\n' || ch == '\r' || ch == '\t' || ch == ' '; -} - -bool is_blank(int ch){ - return ch == '\t' || ch == ' '; -} -//#define FORTH_DEBUG -#ifdef FORTH_DEBUG -static FILE *f_debug; -#define log(x) fputs(f_debug,x); -#else -#define log(x) -#endif - -#define STATE_LOCALE -#define BL ' ' - -static Accessor *st; -static int cur_pos,pos1,pos2,pos0,lengthDoc; -char *buffer; - -char getChar(bool is_bl){ - char ch=st->SafeGetCharAt(cur_pos); - if(is_bl) if(is_whitespace(ch)) ch=BL; - return ch; -} - -char getCharBL(){ - char ch=st->SafeGetCharAt(cur_pos); - return ch; -} -bool is_eol(char ch){ - return ch=='\n' || ch=='\r'; -} - -int parse(char ch, bool skip_eol){ -// pos1 - start pos of word -// pos2 - pos after of word -// pos0 - start pos - char c=0; - int len; - bool is_bl=ch==BL; - pos0=pos1=pos2=cur_pos; - for(;cur_pos9 && base>10) digit-=7; - if(digit<0) return false; - if(digit>=base) return false; - } - return true; -} - -bool is_number(char *s){ - if(strncmp(s,"0x",2)==0) return _is_number(s+2,16); - return _is_number(s,10); -} - -static void ColouriseForthDoc(unsigned int startPos, int length, int, WordList *keywordLists[], Accessor &styler) -{ - st=&styler; - cur_pos=startPos; - lengthDoc = startPos + length; - buffer = new char[length]; - -#ifdef FORTH_DEBUG - f_debug=fopen("c:\\sci.log","at"); -#endif - - WordList &control = *keywordLists[0]; - WordList &keyword = *keywordLists[1]; - WordList &defword = *keywordLists[2]; - WordList &preword1 = *keywordLists[3]; - WordList &preword2 = *keywordLists[4]; - WordList &strings = *keywordLists[5]; - - // go through all provided text segment - // using the hand-written state machine shown below - styler.StartAt(startPos); - styler.StartSegment(startPos); - while(parse(BL,true)!=0){ - if(pos0!=pos1){ - styler.ColourTo(pos0,SCE_FORTH_DEFAULT); - styler.ColourTo(pos1-1,SCE_FORTH_DEFAULT); - } - if(strcmp("\\",buffer)==0){ - styler.ColourTo(pos1,SCE_FORTH_COMMENT); - parse(1,false); - styler.ColourTo(pos2,SCE_FORTH_COMMENT); - }else if(strcmp("(",buffer)==0){ - styler.ColourTo(pos1,SCE_FORTH_COMMENT); - parse(')',true); - if(cur_pos -// The License.txt file describes the conditions under which this software may be distributed. -/***************************************/ -#include -#include -#include -#include -#include -/***************************************/ -#include "Platform.h" -#include "PropSet.h" -#include "Accessor.h" -#include "StyleContext.h" -#include "KeyWords.h" -#include "Scintilla.h" -#include "SciLexer.h" -/***********************************************/ -static inline bool IsAWordChar(const int ch) { - return (ch < 0x80) && (isalnum(ch) || ch == '_' || ch == '%'); -} -/**********************************************/ -static inline bool IsAWordStart(const int ch) { - return (ch < 0x80) && (isalnum(ch)); -} -/***************************************/ -inline bool IsABlank(unsigned int ch) { - return (ch == ' ') || (ch == 0x09) || (ch == 0x0b) ; -} -/***************************************/ -inline bool IsALineEnd(char ch) { - return ((ch == '\n') || (ch == '\r')) ; -} -/***************************************/ -unsigned int GetContinuedPos(unsigned int pos, Accessor &styler) { - while (!IsALineEnd(styler.SafeGetCharAt(pos++))) continue; - if (styler.SafeGetCharAt(pos) == '\n') pos++; - while (IsABlank(styler.SafeGetCharAt(pos++))) continue; - char chCur = styler.SafeGetCharAt(pos); - if (chCur == '&') { - while (IsABlank(styler.SafeGetCharAt(++pos))) continue; - return pos; - } else { - return pos; - } -} -/***************************************/ -static void ColouriseFortranDoc(unsigned int startPos, int length, int initStyle, - WordList *keywordlists[], Accessor &styler, bool isFixFormat) { - WordList &keywords = *keywordlists[0]; - WordList &keywords2 = *keywordlists[1]; - WordList &keywords3 = *keywordlists[2]; - /***************************************/ - int posLineStart = 0, numNonBlank = 0, prevState = 0; - int endPos = startPos + length; - /***************************************/ - // backtrack to the nearest keyword - while ((startPos > 1) && (styler.StyleAt(startPos) != SCE_F_WORD)) { - startPos--; - } - startPos = styler.LineStart(styler.GetLine(startPos)); - initStyle = styler.StyleAt(startPos - 1); - StyleContext sc(startPos, endPos-startPos, initStyle, styler); - /***************************************/ - for (; sc.More(); sc.Forward()) { - // remember the start position of the line - if (sc.atLineStart) { - posLineStart = sc.currentPos; - numNonBlank = 0; - sc.SetState(SCE_F_DEFAULT); - } - if (!IsASpaceOrTab(sc.ch)) numNonBlank ++; - /***********************************************/ - // Handle the fix format generically - int toLineStart = sc.currentPos - posLineStart; - if (isFixFormat && (toLineStart < 6 || toLineStart > 72)) { - if (toLineStart == 0 && (tolower(sc.ch) == 'c' || sc.ch == '*') || sc.ch == '!') { - sc.SetState(SCE_F_COMMENT); - while (!sc.atLineEnd && sc.More()) sc.Forward(); // Until line end - } else if (toLineStart > 72) { - sc.SetState(SCE_F_COMMENT); - while (!sc.atLineEnd && sc.More()) sc.Forward(); // Until line end - } else if (toLineStart < 5) { - if (IsADigit(sc.ch)) - sc.SetState(SCE_F_LABEL); - else - sc.SetState(SCE_F_DEFAULT); - } else if (toLineStart == 5) { - if (!IsASpace(sc.ch) && sc.ch != '0') { - sc.SetState(SCE_F_CONTINUATION); - sc.ForwardSetState(prevState); - } else - sc.SetState(SCE_F_DEFAULT); - } - continue; - } - /***************************************/ - // Handle line continuation generically. - if (!isFixFormat && sc.ch == '&') { - char chTemp = ' '; - int j = 1; - while (IsABlank(chTemp) && j<132) { - chTemp = static_cast(sc.GetRelative(j)); - j++; - } - if (chTemp == '!') { - sc.SetState(SCE_F_CONTINUATION); - if (sc.chNext == '!') sc.ForwardSetState(SCE_F_COMMENT); - } else if (chTemp == '\r' || chTemp == '\n') { - int currentState = sc.state; - sc.SetState(SCE_F_CONTINUATION); - sc.ForwardSetState(SCE_F_DEFAULT); - while (IsASpace(sc.ch) && sc.More()) sc.Forward(); - if (sc.ch == '&') { - sc.SetState(SCE_F_CONTINUATION); - sc.Forward(); - } - sc.SetState(currentState); - } - } - /***************************************/ - // Determine if the current state should terminate. - if (sc.state == SCE_F_OPERATOR) { - sc.SetState(SCE_F_DEFAULT); - } else if (sc.state == SCE_F_NUMBER) { - if (!(IsAWordChar(sc.ch) || sc.ch=='\'' || sc.ch=='\"' || sc.ch=='.')) { - sc.SetState(SCE_F_DEFAULT); - } - } else if (sc.state == SCE_F_IDENTIFIER) { - if (!IsAWordChar(sc.ch) || (sc.ch == '%')) { - char s[100]; - sc.GetCurrentLowered(s, sizeof(s)); - if (keywords.InList(s)) { - sc.ChangeState(SCE_F_WORD); - } else if (keywords2.InList(s)) { - sc.ChangeState(SCE_F_WORD2); - } else if (keywords3.InList(s)) { - sc.ChangeState(SCE_F_WORD3); - } - sc.SetState(SCE_F_DEFAULT); - } - } else if (sc.state == SCE_F_COMMENT || sc.state == SCE_F_PREPROCESSOR) { - if (sc.ch == '\r' || sc.ch == '\n') { - sc.SetState(SCE_F_DEFAULT); - } - } else if (sc.state == SCE_F_STRING1) { - prevState = sc.state; - if (sc.ch == '\'') { - if (sc.chNext == '\'') { - sc.Forward(); - } else { - sc.ForwardSetState(SCE_F_DEFAULT); - prevState = SCE_F_DEFAULT; - } - } else if (sc.atLineEnd) { - sc.ChangeState(SCE_F_STRINGEOL); - sc.ForwardSetState(SCE_F_DEFAULT); - } - } else if (sc.state == SCE_F_STRING2) { - prevState = sc.state; - if (sc.atLineEnd) { - sc.ChangeState(SCE_F_STRINGEOL); - sc.ForwardSetState(SCE_F_DEFAULT); - } else if (sc.ch == '\"') { - if (sc.chNext == '\"') { - sc.Forward(); - } else { - sc.ForwardSetState(SCE_F_DEFAULT); - prevState = SCE_F_DEFAULT; - } - } - } else if (sc.state == SCE_F_OPERATOR2) { - if (sc.ch == '.') { - sc.ForwardSetState(SCE_F_DEFAULT); - } - } else if (sc.state == SCE_F_CONTINUATION) { - sc.SetState(SCE_F_DEFAULT); - } else if (sc.state == SCE_F_LABEL) { - if (!IsADigit(sc.ch)) { - sc.SetState(SCE_F_DEFAULT); - } else { - if (isFixFormat && sc.currentPos-posLineStart > 4) - sc.SetState(SCE_F_DEFAULT); - else if (numNonBlank > 5) - sc.SetState(SCE_F_DEFAULT); - } - } - /***************************************/ - // Determine if a new state should be entered. - if (sc.state == SCE_F_DEFAULT) { - if (sc.ch == '!') { - if (sc.chNext == '$') { - sc.SetState(SCE_F_PREPROCESSOR); - } else { - sc.SetState(SCE_F_COMMENT); - } - } else if ((!isFixFormat) && IsADigit(sc.ch) && numNonBlank == 1) { - sc.SetState(SCE_F_LABEL); - } else if (IsADigit(sc.ch) || (sc.ch == '.' && IsADigit(sc.chNext))) { - sc.SetState(SCE_F_NUMBER); - } else if ((tolower(sc.ch) == 'b' || tolower(sc.ch) == 'o' || - tolower(sc.ch) == 'z') && (sc.chNext == '\"' || sc.chNext == '\'')) { - sc.SetState(SCE_F_NUMBER); - sc.Forward(); - } else if (sc.ch == '.' && isalpha(sc.chNext)) { - sc.SetState(SCE_F_OPERATOR2); - } else if (IsAWordStart(sc.ch)) { - sc.SetState(SCE_F_IDENTIFIER); - } else if (sc.ch == '\"') { - sc.SetState(SCE_F_STRING2); - } else if (sc.ch == '\'') { - sc.SetState(SCE_F_STRING1); - } else if (isoperator(static_cast(sc.ch))) { - sc.SetState(SCE_F_OPERATOR); - } - } - } - sc.Complete(); -} -/***************************************/ -// To determine the folding level depending on keywords -static int classifyFoldPointFortran(const char* s, const char* prevWord, const char chNextNonBlank) { - int lev = 0; - if ((strcmp(prevWord, "else") == 0 && strcmp(s, "if") == 0) || strcmp(s, "elseif") == 0) - return -1; - if (strcmp(s, "associate") == 0 || strcmp(s, "block") == 0 - || strcmp(s, "blockdata") == 0 || strcmp(s, "select") == 0 - || strcmp(s, "do") == 0 || strcmp(s, "enum") ==0 - || strcmp(s, "function") == 0 || strcmp(s, "interface") == 0 - || strcmp(s, "module") == 0 || strcmp(s, "program") == 0 - || strcmp(s, "subroutine") == 0 || strcmp(s, "then") == 0 - || (strcmp(s, "type") == 0 && chNextNonBlank != '(') ){ - if (strcmp(prevWord, "end") == 0) - lev = 0; - else - lev = 1; - } else if (strcmp(s, "end") == 0 && chNextNonBlank != '=' - || strcmp(s, "endassociate") == 0 || strcmp(s, "endblock") == 0 - || strcmp(s, "endblockdata") == 0 || strcmp(s, "endselect") == 0 - || strcmp(s, "enddo") == 0 || strcmp(s, "endenum") ==0 - || strcmp(s, "endif") == 0 || strcmp(s, "endforall") == 0 - || strcmp(s, "endfunction") == 0 || strcmp(s, "endinterface") == 0 - || strcmp(s, "endmodule") == 0 || strcmp(s, "endprogram") == 0 - || strcmp(s, "endsubroutine") == 0 || strcmp(s, "endtype") == 0 - || strcmp(s, "endwhere") == 0 - || strcmp(s, "procedure") == 0 ) { // Take care of the module procedure statement - lev = -1; - } else if (strcmp(prevWord, "end") == 0 && strcmp(s, "if") == 0){ // end if - lev = 0; - } - return lev; -} -// Folding the code -static void FoldFortranDoc(unsigned int startPos, int length, int initStyle, - Accessor &styler, bool isFixFormat) { - // - // bool foldComment = styler.GetPropertyInt("fold.comment") != 0; - // Do not know how to fold the comment at the moment. - // - bool foldCompact = styler.GetPropertyInt("fold.compact", 1) != 0; - unsigned int endPos = startPos + length; - int visibleChars = 0; - int lineCurrent = styler.GetLine(startPos); - int levelPrev = styler.LevelAt(lineCurrent) & SC_FOLDLEVELNUMBERMASK; - int levelCurrent = levelPrev; - char chNext = styler[startPos]; - char chNextNonBlank; - int styleNext = styler.StyleAt(startPos); - int style = initStyle; - /***************************************/ - int lastStart = 0; - char prevWord[32] = ""; - char Label[6] = ""; - // Variables for do label folding. - static int doLabels[100]; - static int posLabel=-1; - /***************************************/ - for (unsigned int i = startPos; i < endPos; i++) { - char ch = chNext; - chNext = styler.SafeGetCharAt(i + 1); - chNextNonBlank = chNext; - unsigned int j=i+1; - while(IsABlank(chNextNonBlank) && j(tolower(styler[lastStart+k])); - } - s[k] = '\0'; - // Handle the forall and where statement and structure. - if (strcmp(s, "forall") == 0 || strcmp(s, "where") == 0) { - if (strcmp(prevWord, "end") != 0) { - j = i + 1; - char chBrace = '(', chSeek = ')', ch1 = styler.SafeGetCharAt(j); - // Find the position of the first ( - while (ch1 != chBrace && j -1) { - levelCurrent--; - posLabel--; - } - } - } - if (atEOL) { - int lev = levelPrev; - if (visibleChars == 0 && foldCompact) - lev |= SC_FOLDLEVELWHITEFLAG; - if ((levelCurrent > levelPrev) && (visibleChars > 0)) - lev |= SC_FOLDLEVELHEADERFLAG; - if (lev != styler.LevelAt(lineCurrent)) { - styler.SetLevel(lineCurrent, lev); - } - lineCurrent++; - levelPrev = levelCurrent; - visibleChars = 0; - strcpy(prevWord, ""); - } - /***************************************/ - if (!isspacechar(ch)) visibleChars++; - } - /***************************************/ - // Fill in the real level of the next line, keeping the current flags as they will be filled in later - int flagsNext = styler.LevelAt(lineCurrent) & ~SC_FOLDLEVELNUMBERMASK; - styler.SetLevel(lineCurrent, levelPrev | flagsNext); -} -/***************************************/ -static const char * const FortranWordLists[] = { - "Primary keywords and identifiers", - "Intrinsic functions", - "Extended and user defined functions", - 0, -}; -/***************************************/ -static void ColouriseFortranDocFreeFormat(unsigned int startPos, int length, int initStyle, WordList *keywordlists[], - Accessor &styler) { - ColouriseFortranDoc(startPos, length, initStyle, keywordlists, styler, false); -} -/***************************************/ -static void ColouriseFortranDocFixFormat(unsigned int startPos, int length, int initStyle, WordList *keywordlists[], - Accessor &styler) { - ColouriseFortranDoc(startPos, length, initStyle, keywordlists, styler, true); -} -/***************************************/ -static void FoldFortranDocFreeFormat(unsigned int startPos, int length, int initStyle, - WordList *[], Accessor &styler) { - FoldFortranDoc(startPos, length, initStyle,styler, false); -} -/***************************************/ -static void FoldFortranDocFixFormat(unsigned int startPos, int length, int initStyle, - WordList *[], Accessor &styler) { - FoldFortranDoc(startPos, length, initStyle,styler, true); -} -/***************************************/ -LexerModule lmFortran(SCLEX_FORTRAN, ColouriseFortranDocFreeFormat, "fortran", FoldFortranDocFreeFormat, FortranWordLists); -LexerModule lmF77(SCLEX_F77, ColouriseFortranDocFixFormat, "f77", FoldFortranDocFixFormat, FortranWordLists); diff --git a/MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/src/LexGen.py b/MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/src/LexGen.py deleted file mode 100644 index 59c25722..00000000 --- a/MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/src/LexGen.py +++ /dev/null @@ -1,241 +0,0 @@ -# LexGen.py - implemented 2002 by Neil Hodgson neilh@scintilla.org -# Released to the public domain. - -# Regenerate the Scintilla and SciTE source files that list -# all the lexers and all the properties files. -# Should be run whenever a new lexer is added or removed. -# Requires Python 2.1 or later -# Most files are regenerated in place with templates stored in comments. -# The VS .NET project file is generated into a different file as the -# VS .NET environment will not retain comments when modifying the file. -# The files are copied to a string apart from sections between a -# ++Autogenerated comment and a --Autogenerated comment which is -# generated by the CopyWithInsertion function. After the whole -# string is instantiated, it is compared with the target file and -# if different the file is rewritten. -# Does not regenerate the Visual C++ 6 project files but does the VS .NET -# project file. - -import string -import sys -import os -import glob - -# EOL constants -CR = "\r" -LF = "\n" -CRLF = "\r\n" -if sys.platform == "win32": - NATIVE = CRLF -else: - # Yes, LF is the native EOL even on Mac OS X. CR is just for - # Mac OS <=9 (a.k.a. "Mac Classic") - NATIVE = LF - -# Automatically generated sections contain start and end comments, -# a definition line and the results. -# The results are replaced by regenerating based on the definition line. -# The definition line is a comment prefix followed by "**". -# If there is a digit after the ** then this indicates which list to use -# and the digit and next character are not part of the definition -# Backslash is used as an escape within the definition line. -# The part between \( and \) is repeated for each item in the list. -# \* is replaced by each list item. \t, and \n are tab and newline. -def CopyWithInsertion(input, commentPrefix, retainDefs, eolType, *lists): - copying = 1 - listid = 0 - output = [] - for line in input.splitlines(0): - isStartGenerated = line.startswith(commentPrefix + "++Autogenerated") - if copying and not isStartGenerated: - output.append(line) - if isStartGenerated: - if retainDefs: - output.append(line) - copying = 0 - definition = "" - elif not copying and line.startswith(commentPrefix + "**"): - if retainDefs: - output.append(line) - definition = line[len(commentPrefix + "**"):] - listid = 0 - if definition[0] in string.digits: - listid = int(definition[:1]) - definition = definition[2:] - # Hide double slashes as a control character - definition = definition.replace("\\\\", "\001") - # Do some normal C style transforms - definition = definition.replace("\\n", "\n") - definition = definition.replace("\\t", "\t") - # Get the doubled backslashes back as single backslashes - definition = definition.replace("\001", "\\") - startRepeat = definition.find("\\(") - endRepeat = definition.find("\\)") - intro = definition[:startRepeat] - out = "" - if intro.endswith("\n"): - pos = 0 - else: - pos = len(intro) - out += intro - middle = definition[startRepeat+2:endRepeat] - for i in lists[listid]: - item = middle.replace("\\*", i) - if pos and (pos + len(item) >= 80): - out += "\\\n" - pos = 0 - out += item - pos += len(item) - if item.endswith("\n"): - pos = 0 - outro = definition[endRepeat+2:] - out += outro - out = out.replace("\n", eolType) # correct EOLs in generated content - output.append(out) - elif line.startswith(commentPrefix + "--Autogenerated"): - copying = 1 - if retainDefs: - output.append(line) - output = [line.rstrip(" \t") for line in output] # trim trailing whitespace - return eolType.join(output) + eolType - -def UpdateFile(filename, updated): - """ If the file is different to updated then copy updated - into the file else leave alone so CVS and make don't treat - it as modified. """ - try: - infile = open(filename, "rb") - except IOError: # File is not there yet - out = open(filename, "wb") - out.write(updated) - out.close() - print "New", filename - return - original = infile.read() - infile.close() - if updated != original: - os.unlink(filename) - out = open(filename, "wb") - out.write(updated) - out.close() - print "Changed", filename - #~ else: - #~ print "Unchanged", filename - -def Generate(inpath, outpath, commentPrefix, eolType, *lists): - """Generate 'outpath' from 'inpath'. - - "eolType" indicates the type of EOLs to use in the generated - file. It should be one of following constants: LF, CRLF, - CR, or NATIVE. - """ - #print "generate '%s' -> '%s' (comment prefix: %r, eols: %r)"\ - # % (inpath, outpath, commentPrefix, eolType) - try: - infile = open(inpath, "r") - except IOError: - print "Can not open", inpath - return - original = infile.read() - infile.close() - updated = CopyWithInsertion(original, commentPrefix, - inpath == outpath, eolType, *lists) - UpdateFile(outpath, updated) - -def Regenerate(filename, commentPrefix, eolType, *lists): - """Regenerate the given file. - - "eolType" indicates the type of EOLs to use in the generated - file. It should be one of following constants: LF, CRLF, - CR, or NATIVE. - """ - Generate(filename, filename, commentPrefix, eolType, *lists) - -def FindModules(lexFile): - modules = [] - f = open(lexFile) - for l in f.readlines(): - if l.startswith("LexerModule"): - l = l.replace("(", " ") - modules.append(l.split()[1]) - return modules - -knownIrregularProperties = [ - "fold", - "styling.within.preprocessor", - "tab.timmy.whinge.level", - "asp.default.language", - "html.tags.case.sensitive", - "ps.level", - "ps.tokenize", - "sql.backslash.escapes", - "nsis.uservars", - "nsis.ignorecase" -] - -def FindProperties(lexFile): - properties = set() - f = open(lexFile) - for l in f.readlines(): - if "GetProperty" in l: - l = l.strip() - if not l.startswith("//"): # Drop comments - propertyName = l.split("\"")[1] - if propertyName.lower() == propertyName: - # Only allow lower case property names - if propertyName in knownIrregularProperties or \ - propertyName.startswith("fold.") or \ - propertyName.startswith("lexer."): - properties.add(propertyName) - return properties - -def ciCompare(a,b): - return cmp(a.lower(), b.lower()) - -def RegenerateAll(): - root="../../" - - # Find all the lexer source code files - lexFilePaths = glob.glob(root + "scintilla/src/Lex*.cxx") - lexFiles = [os.path.basename(f)[:-4] for f in lexFilePaths] - print lexFiles - lexerModules = [] - lexerProperties = set() - for lexFile in lexFilePaths: - lexerModules.extend(FindModules(lexFile)) - lexerProperties.update(FindProperties(lexFile)) - lexerModules.sort(ciCompare) - lexerProperties.remove("fold.comment.python") - lexerProperties = list(lexerProperties) - lexerProperties.sort(ciCompare) - - # Find all the SciTE properties files - otherProps = ["abbrev.properties", "Embedded.properties", "SciTEGlobal.properties", "SciTE.properties"] - propFilePaths = glob.glob(root + "scite/src/*.properties") - propFiles = [os.path.basename(f) for f in propFilePaths if os.path.basename(f) not in otherProps] - propFiles.sort(ciCompare) - print propFiles - - # Find all the menu command IDs in the SciTE header - SciTEHeader = file(root + "scite/src/SciTE.h") - lines = SciTEHeader.read().split("\n") - SciTEHeader.close() - ids = [id for id in [l.split()[1] for l in lines if l.startswith("#define")] if id.startswith("IDM_")] - #print ids - - Regenerate(root + "scintilla/src/KeyWords.cxx", "//", NATIVE, lexerModules) - Regenerate(root + "scintilla/win32/makefile", "#", NATIVE, lexFiles) - Regenerate(root + "scintilla/win32/scintilla.mak", "#", NATIVE, lexFiles) - Regenerate(root + "scintilla/win32/scintilla_vc6.mak", "#", NATIVE, lexFiles) - # Use Unix EOLs for gtk Makefiles so they work for Linux users when - # extracted from the Scintilla source ZIP (typically created on - # Windows). - Regenerate(root + "scintilla/gtk/makefile", "#", LF, lexFiles) - Regenerate(root + "scintilla/gtk/scintilla.mak", "#", NATIVE, lexFiles) - Regenerate(root + "scite/win32/makefile", "#", NATIVE, lexFiles, propFiles) - Regenerate(root + "scite/win32/scite.mak", "#", NATIVE, lexFiles, propFiles) - Regenerate(root + "scite/src/SciTEProps.cxx", "//", NATIVE, lexerProperties, ids) - Generate(root + "scite/boundscheck/vcproj.gen", - root + "scite/boundscheck/SciTE.vcproj", "#", NATIVE, lexFiles) - -RegenerateAll() diff --git a/MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/src/LexGui4Cli.cxx b/MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/src/LexGui4Cli.cxx deleted file mode 100644 index 417d1f2b..00000000 --- a/MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/src/LexGui4Cli.cxx +++ /dev/null @@ -1,309 +0,0 @@ -// Scintilla source code edit control -// Copyright 1998-2002 by Neil Hodgson -/* -This is the Lexer for Gui4Cli, included in SciLexer.dll -- by d. Keletsekis, 2/10/2003 - -To add to SciLexer.dll: -1. Add the values below to INCLUDE\Scintilla.iface -2. Run the include/HFacer.py script -3. Run the src/lexGen.py script - -val SCE_GC_DEFAULT=0 -val SCE_GC_COMMENTLINE=1 -val SCE_GC_COMMENTBLOCK=2 -val SCE_GC_GLOBAL=3 -val SCE_GC_EVENT=4 -val SCE_GC_ATTRIBUTE=5 -val SCE_GC_CONTROL=6 -val SCE_GC_COMMAND=7 -val SCE_GC_STRING=8 -val SCE_GC_OPERATOR=9 -*/ - -#include -#include -#include -#include -#include - -#include "Platform.h" - -#include "PropSet.h" -#include "Accessor.h" -#include "StyleContext.h" -#include "KeyWords.h" -#include "Scintilla.h" -#include "SciLexer.h" - -#define debug Platform::DebugPrintf - -static inline bool IsAWordChar(const int ch) { - return (ch < 0x80) && (isalnum(ch) || ch == '.' || ch == '_' || ch =='\\'); -} - -static inline bool IsAWordStart(const int ch) { - return (ch < 0x80) && (isalnum(ch) || ch == '_' || ch == '.'); -} - -inline bool isGCOperator(int ch) -{ if (isalnum(ch)) - return false; - // '.' left out as it is used to make up numbers - if (ch == '*' || ch == '/' || ch == '-' || ch == '+' || - ch == '(' || ch == ')' || ch == '=' || ch == '%' || - ch == '[' || ch == ']' || ch == '<' || ch == '>' || - ch == ',' || ch == ';' || ch == ':') - return true; - return false; -} - -#define isSpace(x) ((x)==' ' || (x)=='\t') -#define isNL(x) ((x)=='\n' || (x)=='\r') -#define isSpaceOrNL(x) (isSpace(x) || isNL(x)) -#define BUFFSIZE 500 -#define isFoldPoint(x) ((styler.LevelAt(x) & SC_FOLDLEVELNUMBERMASK) == 1024) - -static void colorFirstWord(WordList *keywordlists[], Accessor &styler, - StyleContext *sc, char *buff, int length, int) -{ - int c = 0; - while (sc->More() && isSpaceOrNL(sc->ch)) - { sc->Forward(); - } - styler.ColourTo(sc->currentPos - 1, sc->state); - - if (!IsAWordChar(sc->ch)) // comment, marker, etc.. - return; - - while (sc->More() && !isSpaceOrNL(sc->ch) && (c < length-1) && !isGCOperator(sc->ch)) - { buff[c] = static_cast(sc->ch); - ++c; sc->Forward(); - } - buff[c] = '\0'; - char *p = buff; - while (*p) // capitalize.. - { if (islower(*p)) *p = static_cast(toupper(*p)); - ++p; - } - - WordList &kGlobal = *keywordlists[0]; // keyword lists set by the user - WordList &kEvent = *keywordlists[1]; - WordList &kAttribute = *keywordlists[2]; - WordList &kControl = *keywordlists[3]; - WordList &kCommand = *keywordlists[4]; - - int state = 0; - // int level = styler.LevelAt(line) & SC_FOLDLEVELNUMBERMASK; - // debug ("line = %d, level = %d", line, level); - - if (kGlobal.InList(buff)) state = SCE_GC_GLOBAL; - else if (kAttribute.InList(buff)) state = SCE_GC_ATTRIBUTE; - else if (kControl.InList(buff)) state = SCE_GC_CONTROL; - else if (kCommand.InList(buff)) state = SCE_GC_COMMAND; - else if (kEvent.InList(buff)) state = SCE_GC_EVENT; - - if (state) - { sc->ChangeState(state); - styler.ColourTo(sc->currentPos - 1, sc->state); - sc->ChangeState(SCE_GC_DEFAULT); - } - else - { sc->ChangeState(SCE_GC_DEFAULT); - styler.ColourTo(sc->currentPos - 1, sc->state); - } -} - -// Main colorizing function called by Scintilla -static void -ColouriseGui4CliDoc(unsigned int startPos, int length, int initStyle, - WordList *keywordlists[], Accessor &styler) -{ - styler.StartAt(startPos); - - int quotestart = 0, oldstate, currentline = styler.GetLine(startPos); - styler.StartSegment(startPos); - bool noforward; - char buff[BUFFSIZE+1]; // buffer for command name - - StyleContext sc(startPos, length, initStyle, styler); - buff[0] = '\0'; // cbuff = 0; - - if (sc.state != SCE_GC_COMMENTBLOCK) // colorize 1st word.. - colorFirstWord(keywordlists, styler, &sc, buff, BUFFSIZE, currentline); - - while (sc.More()) - { noforward = 0; - - switch (sc.ch) - { - case '/': - if (sc.state == SCE_GC_COMMENTBLOCK || sc.state == SCE_GC_STRING) - break; - if (sc.chNext == '/') // line comment - { sc.SetState (SCE_GC_COMMENTLINE); - sc.Forward(); - styler.ColourTo(sc.currentPos, sc.state); - } - else if (sc.chNext == '*') // block comment - { sc.SetState(SCE_GC_COMMENTBLOCK); - sc.Forward(); - styler.ColourTo(sc.currentPos, sc.state); - } - else - styler.ColourTo(sc.currentPos, sc.state); - break; - - case '*': // end of comment block, or operator.. - if (sc.state == SCE_GC_STRING) - break; - if (sc.state == SCE_GC_COMMENTBLOCK && sc.chNext == '/') - { sc.Forward(); - styler.ColourTo(sc.currentPos, sc.state); - sc.ChangeState (SCE_GC_DEFAULT); - } - else - styler.ColourTo(sc.currentPos, sc.state); - break; - - case '\'': case '\"': // strings.. - if (sc.state == SCE_GC_COMMENTBLOCK || sc.state == SCE_GC_COMMENTLINE) - break; - if (sc.state == SCE_GC_STRING) - { if (sc.ch == quotestart) // match same quote char.. - { styler.ColourTo(sc.currentPos, sc.state); - sc.ChangeState(SCE_GC_DEFAULT); - quotestart = 0; - } } - else - { styler.ColourTo(sc.currentPos - 1, sc.state); - sc.ChangeState(SCE_GC_STRING); - quotestart = sc.ch; - } - break; - - case ';': // end of commandline character - if (sc.state != SCE_GC_COMMENTBLOCK && sc.state != SCE_GC_COMMENTLINE && - sc.state != SCE_GC_STRING) - { - styler.ColourTo(sc.currentPos - 1, sc.state); - styler.ColourTo(sc.currentPos, SCE_GC_OPERATOR); - sc.ChangeState(SCE_GC_DEFAULT); - sc.Forward(); - colorFirstWord(keywordlists, styler, &sc, buff, BUFFSIZE, currentline); - noforward = 1; // don't move forward - already positioned at next char.. - } - break; - - case '+': case '-': case '=': case '!': // operators.. - case '<': case '>': case '&': case '|': case '$': - if (sc.state != SCE_GC_COMMENTBLOCK && sc.state != SCE_GC_COMMENTLINE && - sc.state != SCE_GC_STRING) - { - styler.ColourTo(sc.currentPos - 1, sc.state); - styler.ColourTo(sc.currentPos, SCE_GC_OPERATOR); - sc.ChangeState(SCE_GC_DEFAULT); - } - break; - - case '\\': // escape - same as operator, but also mark in strings.. - if (sc.state != SCE_GC_COMMENTBLOCK && sc.state != SCE_GC_COMMENTLINE) - { - oldstate = sc.state; - styler.ColourTo(sc.currentPos - 1, sc.state); - sc.Forward(); // mark also the next char.. - styler.ColourTo(sc.currentPos, SCE_GC_OPERATOR); - sc.ChangeState(oldstate); - } - break; - - case '\n': case '\r': - ++currentline; - if (sc.state == SCE_GC_COMMENTLINE) - { styler.ColourTo(sc.currentPos, sc.state); - sc.ChangeState (SCE_GC_DEFAULT); - } - else if (sc.state != SCE_GC_COMMENTBLOCK) - { colorFirstWord(keywordlists, styler, &sc, buff, BUFFSIZE, currentline); - noforward = 1; // don't move forward - already positioned at next char.. - } - break; - -// case ' ': case '\t': -// default : - } - - if (!noforward) sc.Forward(); - - } - sc.Complete(); -} - -// Main folding function called by Scintilla - (based on props (.ini) files function) -static void FoldGui4Cli(unsigned int startPos, int length, int, - WordList *[], Accessor &styler) -{ - bool foldCompact = styler.GetPropertyInt("fold.compact", 1) != 0; - - unsigned int endPos = startPos + length; - int visibleChars = 0; - int lineCurrent = styler.GetLine(startPos); - - char chNext = styler[startPos]; - int styleNext = styler.StyleAt(startPos); - bool headerPoint = false; - - for (unsigned int i = startPos; i < endPos; i++) - { - char ch = chNext; - chNext = styler[i+1]; - - int style = styleNext; - styleNext = styler.StyleAt(i + 1); - bool atEOL = (ch == '\r' && chNext != '\n') || (ch == '\n'); - - if (style == SCE_GC_EVENT || style == SCE_GC_GLOBAL) - { headerPoint = true; // fold at events and globals - } - - if (atEOL) - { int lev = SC_FOLDLEVELBASE+1; - - if (headerPoint) - lev = SC_FOLDLEVELBASE; - - if (visibleChars == 0 && foldCompact) - lev |= SC_FOLDLEVELWHITEFLAG; - - if (headerPoint) - lev |= SC_FOLDLEVELHEADERFLAG; - - if (lev != styler.LevelAt(lineCurrent)) // set level, if not already correct - { styler.SetLevel(lineCurrent, lev); - } - - lineCurrent++; // re-initialize our flags - visibleChars = 0; - headerPoint = false; - } - - if (!(isspacechar(ch))) // || (style == SCE_GC_COMMENTLINE) || (style != SCE_GC_COMMENTBLOCK))) - visibleChars++; - } - - int lev = headerPoint ? SC_FOLDLEVELBASE : SC_FOLDLEVELBASE+1; - int flagsNext = styler.LevelAt(lineCurrent) & ~SC_FOLDLEVELNUMBERMASK; - styler.SetLevel(lineCurrent, lev | flagsNext); -} - -// I have no idea what these are for.. probably accessible by some message. -static const char * const gui4cliWordListDesc[] = { - "Globals", "Events", "Attributes", "Control", "Commands", - 0 -}; - -// Declare language & pass our function pointers to Scintilla -LexerModule lmGui4Cli(SCLEX_GUI4CLI, ColouriseGui4CliDoc, "gui4cli", FoldGui4Cli, gui4cliWordListDesc); - -#undef debug - diff --git a/MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/src/LexHTML.cxx b/MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/src/LexHTML.cxx deleted file mode 100644 index 20a5a633..00000000 --- a/MOULOpenSourceClientPlugin/StaticSDKs/Win32/Scintilla/src/LexHTML.cxx +++ /dev/null @@ -1,2042 +0,0 @@ -// Scintilla source code edit control -/** @file LexHTML.cxx - ** Lexer for HTML. - **/ -// Copyright 1998-2005 by Neil Hodgson -// The License.txt file describes the conditions under which this software may be distributed. - -#include -#include -#include -#include -#include - -#include "Platform.h" - -#include "PropSet.h" -#include "Accessor.h" -#include "StyleContext.h" -#include "KeyWords.h" -#include "Scintilla.h" -#include "SciLexer.h" - -#define SCE_HA_JS (SCE_HJA_START - SCE_HJ_START) -#define SCE_HA_VBS (SCE_HBA_START - SCE_HB_START) -#define SCE_HA_PYTHON (SCE_HPA_START - SCE_HP_START) - -enum script_type { eScriptNone = 0, eScriptJS, eScriptVBS, eScriptPython, eScriptPHP, eScriptXML, eScriptSGML, eScriptSGMLblock }; -enum script_mode { eHtml = 0, eNonHtmlScript, eNonHtmlPreProc, eNonHtmlScriptPreProc }; - -static inline bool IsAWordChar(const int ch) { - return (ch < 0x80) && (isalnum(ch) || ch == '.' || ch == '_'); -} - -static inline bool IsAWordStart(const int ch) { - return (ch < 0x80) && (isalnum(ch) || ch == '_'); -} - -static inline int MakeLowerCase(int ch) { - if (ch < 'A' || ch > 'Z') - return ch; - else - return ch - 'A' + 'a'; -} - -static void GetTextSegment(Accessor &styler, unsigned int start, unsigned int end, char *s, size_t len) { - size_t i = 0; - for (; (i < end - start + 1) && (i < len-1); i++) { - s[i] = static_cast(MakeLowerCase(styler[start + i])); - } - s[i] = '\0'; -} - -static script_type segIsScriptingIndicator(Accessor &styler, unsigned int start, unsigned int end, script_type prevValue) { - char s[100]; - GetTextSegment(styler, start, end, s, sizeof(s)); - //Platform::DebugPrintf("Scripting indicator [%s]\n", s); - if (strstr(s, "src")) // External script - return eScriptNone; - if (strstr(s, "vbs")) - return eScriptVBS; - if (strstr(s, "pyth")) - return eScriptPython; - if (strstr(s, "javas")) - return eScriptJS; - if (strstr(s, "jscr")) - return eScriptJS; - if (strstr(s, "php")) - return eScriptPHP; - if (strstr(s, "xml")) - return eScriptXML; - - return prevValue; -} - -static int PrintScriptingIndicatorOffset(Accessor &styler, unsigned int start, unsigned int end) { - int iResult = 0; - char s[100]; - GetTextSegment(styler, start, end, s, sizeof(s)); - if (0 == strncmp(s, "php", 3)) { - iResult = 3; - } - - return iResult; -} - -static script_type ScriptOfState(int state) { - if ((state >= SCE_HP_START) && (state <= SCE_HP_IDENTIFIER)) { - return eScriptPython; - } else if ((state >= SCE_HB_START) && (state <= SCE_HB_STRINGEOL)) { - return eScriptVBS; - } else if ((state >= SCE_HJ_START) && (state <= SCE_HJ_REGEX)) { - return eScriptJS; - } else if ((state >= SCE_HPHP_DEFAULT) && (state <= SCE_HPHP_COMMENTLINE)) { - return eScriptPHP; - } else if ((state >= SCE_H_SGML_DEFAULT) && (state < SCE_H_SGML_BLOCK_DEFAULT)) { - return eScriptSGML; - } else if (state == SCE_H_SGML_BLOCK_DEFAULT) { - return eScriptSGMLblock; - } else { - return eScriptNone; - } -} - -static int statePrintForState(int state, script_mode inScriptType) { - int StateToPrint; - - if ((state >= SCE_HP_START) && (state <= SCE_HP_IDENTIFIER)) { - StateToPrint = state + ((inScriptType == eNonHtmlScript) ? 0 : SCE_HA_PYTHON); - } else if ((state >= SCE_HB_START) && (state <= SCE_HB_STRINGEOL)) { - StateToPrint = state + ((inScriptType == eNonHtmlScript) ? 0 : SCE_HA_VBS); - } else if ((state >= SCE_HJ_START) && (state <= SCE_HJ_REGEX)) { - StateToPrint = state + ((inScriptType == eNonHtmlScript) ? 0 : SCE_HA_JS); - } else { - StateToPrint = state; - } - - return StateToPrint; -} - -static int stateForPrintState(int StateToPrint) { - int state; - - if ((StateToPrint >= SCE_HPA_START) && (StateToPrint <= SCE_HPA_IDENTIFIER)) { - state = StateToPrint - SCE_HA_PYTHON; - } else if ((StateToPrint >= SCE_HBA_START) && (StateToPrint <= SCE_HBA_STRINGEOL)) { - state = StateToPrint - SCE_HA_VBS; - } else if ((StateToPrint >= SCE_HJA_START) && (StateToPrint <= SCE_HJA_REGEX)) { - state = StateToPrint - SCE_HA_JS; - } else { - state = StateToPrint; - } - - return state; -} - -static inline bool IsNumber(unsigned int start, Accessor &styler) { - return IsADigit(styler[start]) || (styler[start] == '.') || - (styler[start] == '-') || (styler[start] == '#'); -} - -static inline bool isStringState(int state) { - bool bResult; - - switch (state) { - case SCE_HJ_DOUBLESTRING: - case SCE_HJ_SINGLESTRING: - case SCE_HJA_DOUBLESTRING: - case SCE_HJA_SINGLESTRING: - case SCE_HB_STRING: - case SCE_HBA_STRING: - case SCE_HP_STRING: - case SCE_HP_CHARACTER: - case SCE_HP_TRIPLE: - case SCE_HP_TRIPLEDOUBLE: - case SCE_HPA_STRING: - case SCE_HPA_CHARACTER: - case SCE_HPA_TRIPLE: - case SCE_HPA_TRIPLEDOUBLE: - case SCE_HPHP_HSTRING: - case SCE_HPHP_SIMPLESTRING: - case SCE_HPHP_HSTRING_VARIABLE: - case SCE_HPHP_COMPLEX_VARIABLE: - bResult = true; - break; - default : - bResult = false; - break; - } - return bResult; -} - -static inline bool stateAllowsTermination(int state) { - bool allowTermination = !isStringState(state); - if (allowTermination) { - switch (state) { - case SCE_HPHP_COMMENT: - case SCE_HP_COMMENTLINE: - case SCE_HPA_COMMENTLINE: - allowTermination = false; - } - } - return allowTermination; -} - -// not really well done, since it's only comments that should lex the %> and <% -static inline bool isCommentASPState(int state) { - bool bResult; - - switch (state) { - case SCE_HJ_COMMENT: - case SCE_HJ_COMMENTLINE: - case SCE_HJ_COMMENTDOC: - case SCE_HB_COMMENTLINE: - case SCE_HP_COMMENTLINE: - case SCE_HPHP_COMMENT: - case SCE_HPHP_COMMENTLINE: - bResult = true; - break; - default : - bResult = false; - break; - } - return bResult; -} - -static void classifyAttribHTML(unsigned int start, unsigned int end, WordList &keywords, Accessor &styler) { - bool wordIsNumber = IsNumber(start, styler); - char chAttr = SCE_H_ATTRIBUTEUNKNOWN; - if (wordIsNumber) { - chAttr = SCE_H_NUMBER; - } else { - char s[100]; - GetTextSegment(styler, start, end, s, sizeof(s)); - if (keywords.InList(s)) - chAttr = SCE_H_ATTRIBUTE; - } - if ((chAttr == SCE_H_ATTRIBUTEUNKNOWN) && !keywords) - // No keywords -> all are known - chAttr = SCE_H_ATTRIBUTE; - styler.ColourTo(end, chAttr); -} - -static int classifyTagHTML(unsigned int start, unsigned int end, - WordList &keywords, Accessor &styler, bool &tagDontFold, - bool caseSensitive) { - char s[30 + 2]; - // Copy after the '<' - unsigned int i = 0; - for (unsigned int cPos = start; cPos <= end && i < 30; cPos++) { - char ch = styler[cPos]; - if ((ch != '<') && (ch != '/')) { - s[i++] = caseSensitive ? ch : static_cast(MakeLowerCase(ch)); - } - } - - //The following is only a quick hack, to see if this whole thing would work - //we first need the tagname with a trailing space... - s[i] = ' '; - s[i+1] = '\0'; - - //...to find it in the list of no-container-tags - // (There are many more. We will need a keywordlist in the property file for this) - tagDontFold = (NULL != strstr("meta link img area br hr input ",s)); - - //now we can remove the trailing space - s[i] = '\0'; - - bool isScript = false; - char chAttr = SCE_H_TAGUNKNOWN; - if (s[0] == '!') { - chAttr = SCE_H_SGML_DEFAULT; - } else if (s[0] == '/') { // Closing tag - if (keywords.InList(s + 1)) - chAttr = SCE_H_TAG; - } else { - if (keywords.InList(s)) { - chAttr = SCE_H_TAG; - isScript = 0 == strcmp(s, "script"); - } - } - if ((chAttr == SCE_H_TAGUNKNOWN) && !keywords) { - // No keywords -> all are known - chAttr = SCE_H_TAG; - isScript = 0 == strcmp(s, "script"); - } - styler.ColourTo(end, chAttr); - return isScript ? SCE_H_SCRIPT : chAttr; -} - -static void classifyWordHTJS(unsigned int start, unsigned int end, - WordList &keywords, Accessor &styler, script_mode inScriptType) { - char chAttr = SCE_HJ_WORD; - bool wordIsNumber = IsADigit(styler[start]) || (styler[start] == '.'); - if (wordIsNumber) - chAttr = SCE_HJ_NUMBER; - else { - char s[30 + 1]; - unsigned int i = 0; - for (; i < end - start + 1 && i < 30; i++) { - s[i] = styler[start + i]; - } - s[i] = '\0'; - if (keywords.InList(s)) - chAttr = SCE_HJ_KEYWORD; - } - styler.ColourTo(end, statePrintForState(chAttr, inScriptType)); -} - -static int classifyWordHTVB(unsigned int start, unsigned int end, WordList &keywords, Accessor &styler, script_mode inScriptType) { - char chAttr = SCE_HB_IDENTIFIER; - bool wordIsNumber = IsADigit(styler[start]) || (styler[start] == '.'); - if (wordIsNumber) - chAttr = SCE_HB_NUMBER; - else { - char s[100]; - GetTextSegment(styler, start, end, s, sizeof(s)); - if (keywords.InList(s)) { - chAttr = SCE_HB_WORD; - if (strcmp(s, "rem") == 0) - chAttr = SCE_HB_COMMENTLINE; - } - } - styler.ColourTo(end, statePrintForState(chAttr, inScriptType)); - if (chAttr == SCE_HB_COMMENTLINE) - return SCE_HB_COMMENTLINE; - else - return SCE_HB_DEFAULT; -} - -static void classifyWordHTPy(unsigned int start, unsigned int end, WordList &keywords, Accessor &styler, char *prevWord, script_mode inScriptType) { - bool wordIsNumber = IsADigit(styler[start]); - char s[30 + 1]; - unsigned int i = 0; - for (; i < end - start + 1 && i < 30; i++) { - s[i] = styler[start + i]; - } - s[i] = '\0'; - char chAttr = SCE_HP_IDENTIFIER; - if (0 == strcmp(prevWord, "class")) - chAttr = SCE_HP_CLASSNAME; - else if (0 == strcmp(prevWord, "def")) - chAttr = SCE_HP_DEFNAME; - else if (wordIsNumber) - chAttr = SCE_HP_NUMBER; - else if (keywords.InList(s)) - chAttr = SCE_HP_WORD; - styler.ColourTo(end, statePrintForState(chAttr, inScriptType)); - strcpy(prevWord, s); -} - -// Update the word colour to default or keyword -// Called when in a PHP word -static void classifyWordHTPHP(unsigned int start, unsigned int end, WordList &keywords, Accessor &styler) { - char chAttr = SCE_HPHP_DEFAULT; - bool wordIsNumber = IsADigit(styler[start]) || (styler[start] == '.' && start+1 <= end && IsADigit(styler[start+1])); - if (wordIsNumber) - chAttr = SCE_HPHP_NUMBER; - else { - char s[100]; - GetTextSegment(styler, start, end, s, sizeof(s)); - if (keywords.InList(s)) - chAttr = SCE_HPHP_WORD; - } - styler.ColourTo(end, chAttr); -} - -static bool isWordHSGML(unsigned int start, unsigned int end, WordList &keywords, Accessor &styler) { - char s[30 + 1]; - unsigned int i = 0; - for (; i < end - start + 1 && i < 30; i++) { - s[i] = styler[start + i]; - } - s[i] = '\0'; - return keywords.InList(s); -} - -static bool isWordCdata(unsigned int start, unsigned int end, Accessor &styler) { - char s[30 + 1]; - unsigned int i = 0; - for (; i < end - start + 1 && i < 30; i++) { - s[i] = styler[start + i]; - } - s[i] = '\0'; - return (0 == strcmp(s, "[CDATA[")); -} - -// Return the first state to reach when entering a scripting language -static int StateForScript(script_type scriptLanguage) { - int Result; - switch (scriptLanguage) { - case eScriptVBS: - Result = SCE_HB_START; - break; - case eScriptPython: - Result = SCE_HP_START; - break; - case eScriptPHP: - Result = SCE_HPHP_DEFAULT; - break; - case eScriptXML: - Result = SCE_H_TAGUNKNOWN; - break; - case eScriptSGML: - Result = SCE_H_SGML_DEFAULT; - break; - default : - Result = SCE_HJ_START; - break; - } - return Result; -} - -static inline bool ishtmlwordchar(char ch) { - return !isascii(ch) || - (isalnum(ch) || ch == '.' || ch == '-' || ch == '_' || ch == ':' || ch == '!' || ch == '#'); -} - -static inline bool issgmlwordchar(char ch) { - return !isascii(ch) || - (isalnum(ch) || ch == '.' || ch == '_' || ch == ':' || ch == '!' || ch == '#' || ch == '['); -} - -static inline bool IsPhpWordStart(const unsigned char ch) { - return (isascii(ch) && (isalpha(ch) || (ch == '_'))) || (ch >= 0x7f); -} - -static inline bool IsPhpWordChar(char ch) { - return IsADigit(ch) || IsPhpWordStart(ch); -} - -static bool InTagState(int state) { - return state == SCE_H_TAG || state == SCE_H_TAGUNKNOWN || - state == SCE_H_SCRIPT || - state == SCE_H_ATTRIBUTE || state == SCE_H_ATTRIBUTEUNKNOWN || - state == SCE_H_NUMBER || state == SCE_H_OTHER || - state == SCE_H_DOUBLESTRING || state == SCE_H_SINGLESTRING; -} - -static bool IsCommentState(const int state) { - return state == SCE_H_COMMENT || state == SCE_H_SGML_COMMENT; -} - -static bool IsScriptCommentState(const int state) { - return state == SCE_HJ_COMMENT || state == SCE_HJ_COMMENTLINE || state == SCE_HJA_COMMENT || - state == SCE_HJA_COMMENTLINE || state == SCE_HB_COMMENTLINE || state == SCE_HBA_COMMENTLINE; -} - -static bool isLineEnd(char ch) { - return ch == '\r' || ch == '\n'; -} - -static bool isOKBeforeRE(char ch) { - return (ch == '(') || (ch == '=') || (ch == ','); -} - -static bool isPHPStringState(int state) { - return - (state == SCE_HPHP_HSTRING) || - (state == SCE_HPHP_SIMPLESTRING) || - (state == SCE_HPHP_HSTRING_VARIABLE) || - (state == SCE_HPHP_COMPLEX_VARIABLE); -} - -static int FindPhpStringDelimiter(char *phpStringDelimiter, const int phpStringDelimiterSize, int i, const int lengthDoc, Accessor &styler) { - int j; - while (i < lengthDoc && (styler[i] == ' ' || styler[i] == '\t')) - i++; - phpStringDelimiter[0] = '\n'; - for (j = i; j < lengthDoc && styler[j] != '\n' && styler[j] != '\r'; j++) { - if (j - i < phpStringDelimiterSize - 2) - phpStringDelimiter[j-i+1] = styler[j]; - else - i++; - } - phpStringDelimiter[j-i+1] = '\0'; - return j; -} - -static void ColouriseHyperTextDoc(unsigned int startPos, int length, int initStyle, WordList *keywordlists[], - Accessor &styler) { - WordList &keywords = *keywordlists[0]; - WordList &keywords2 = *keywordlists[1]; - WordList &keywords3 = *keywordlists[2]; - WordList &keywords4 = *keywordlists[3]; - WordList &keywords5 = *keywordlists[4]; - WordList &keywords6 = *keywordlists[5]; // SGML (DTD) keywords - - // Lexer for HTML requires more lexical states (7 bits worth) than most lexers - styler.StartAt(startPos, STYLE_MAX); - char prevWord[200]; - prevWord[0] = '\0'; - char phpStringDelimiter[200]; // PHP is not limited in length, we are - phpStringDelimiter[0] = '\0'; - int StateToPrint = initStyle; - int state = stateForPrintState(StateToPrint); - - // If inside a tag, it may be a script tag, so reread from the start to ensure any language tags are seen - if (InTagState(state)) { - while ((startPos > 0) && (InTagState(styler.StyleAt(startPos - 1)))) { - startPos--; - length++; - } - state = SCE_H_DEFAULT; - } - // String can be heredoc, must find a delimiter first - while (startPos > 0 && isPHPStringState(state) && state != SCE_HPHP_SIMPLESTRING) { - startPos--; - length++; - state = styler.StyleAt(startPos); - } - styler.StartAt(startPos, STYLE_MAX); - - int lineCurrent = styler.GetLine(startPos); - int lineState; - if (lineCurrent > 0) { - lineState = styler.GetLineState(lineCurrent); - } else { - // Default client and ASP scripting language is JavaScript - lineState = eScriptJS << 8; - lineState |= styler.GetPropertyInt("asp.default.language", eScriptJS) << 4; - } - script_mode inScriptType = script_mode((lineState >> 0) & 0x03); // 2 bits of scripting mode - bool tagOpened = (lineState >> 2) & 0x01; // 1 bit to know if we are in an opened tag - bool tagClosing = (lineState >> 3) & 0x01; // 1 bit to know if we are in a closing tag - bool tagDontFold = false; //some HTML tags should not be folded - script_type aspScript = script_type((lineState >> 4) & 0x0F); // 4 bits of script name - script_type clientScript = script_type((lineState >> 8) & 0x0F); // 4 bits of script name - int beforePreProc = (lineState >> 12) & 0xFF; // 8 bits of state - - script_type scriptLanguage = ScriptOfState(state); - - const bool foldHTML = styler.GetPropertyInt("fold.html", 0) != 0; - const bool fold = foldHTML && styler.GetPropertyInt("fold", 0); - const bool foldHTMLPreprocessor = foldHTML && styler.GetPropertyInt("fold.html.preprocessor", 1); - const bool foldCompact = styler.GetPropertyInt("fold.compact", 1) != 0; - const bool caseSensitive = styler.GetPropertyInt("html.tags.case.sensitive", 0) != 0; - - int levelPrev = styler.LevelAt(lineCurrent) & SC_FOLDLEVELNUMBERMASK; - int levelCurrent = levelPrev; - int visibleChars = 0; - - char chPrev = ' '; - char ch = ' '; - char chPrevNonWhite = ' '; - // look back to set chPrevNonWhite properly for better regex colouring - if (scriptLanguage == eScriptJS && startPos > 0) { - int back = startPos; - int style = 0; - while (--back) { - style = styler.StyleAt(back); - if (style < SCE_HJ_DEFAULT || style > SCE_HJ_COMMENTDOC) - // includes SCE_HJ_COMMENT & SCE_HJ_COMMENTLINE - break; - } - if (style == SCE_HJ_SYMBOLS) { - chPrevNonWhite = styler.SafeGetCharAt(back); - } - } - - styler.StartSegment(startPos); - const int lengthDoc = startPos + length; - for (int i = startPos; i < lengthDoc; i++) { - const char chPrev2 = chPrev; - chPrev = ch; - if (!isspacechar(ch) && state != SCE_HJ_COMMENT && - state != SCE_HJ_COMMENTLINE && state != SCE_HJ_COMMENTDOC) - chPrevNonWhite = ch; - ch = styler[i]; - char chNext = styler.SafeGetCharAt(i + 1); - const char chNext2 = styler.SafeGetCharAt(i + 2); - - // Handle DBCS codepages - if (styler.IsLeadByte(ch)) { - chPrev = ' '; - i += 1; - continue; - } - - if ((!isspacechar(ch) || !foldCompact) && fold) - visibleChars++; - - // decide what is the current state to print (depending of the script tag) - StateToPrint = statePrintForState(state, inScriptType); - - // handle script folding - if (fold) { - switch (scriptLanguage) { - case eScriptJS: - case eScriptPHP: - //not currently supported case eScriptVBS: - - if ((state != SCE_HPHP_COMMENT) && (state != SCE_HPHP_COMMENTLINE) && (state != SCE_HJ_COMMENT) && (state != SCE_HJ_COMMENTLINE) && (state != SCE_HJ_COMMENTDOC) && (!isStringState(state))) { - //Platform::DebugPrintf("state=%d, StateToPrint=%d, initStyle=%d\n", state, StateToPrint, initStyle); - //if ((state == SCE_HPHP_OPERATOR) || (state == SCE_HPHP_DEFAULT) || (state == SCE_HJ_SYMBOLS) || (state == SCE_HJ_START) || (state == SCE_HJ_DEFAULT)) { - if ((ch == '{') || (ch == '}')) { - levelCurrent += (ch == '{') ? 1 : -1; - } - } - break; - case eScriptPython: - if (state != SCE_HP_COMMENTLINE) { - if ((ch == ':') && ((chNext == '\n') || (chNext == '\r' && chNext2 == '\n'))) { - levelCurrent++; - } else if ((ch == '\n') && !((chNext == '\r') && (chNext2 == '\n')) && (chNext != '\n')) { - // check if the number of tabs is lower than the level - int Findlevel = (levelCurrent & ~SC_FOLDLEVELBASE) * 8; - for (int j = 0; Findlevel > 0; j++) { - char chTmp = styler.SafeGetCharAt(i + j + 1); - if (chTmp == '\t') { - Findlevel -= 8; - } else if (chTmp == ' ') { - Findlevel--; - } else { - break; - } - } - - if (Findlevel > 0) { - levelCurrent -= Findlevel / 8; - if (Findlevel % 8) - levelCurrent--; - } - } - } - break; - default: - break; - } - } - - if ((ch == '\r' && chNext != '\n') || (ch == '\n')) { - // Trigger on CR only (Mac style) or either on LF from CR+LF (Dos/Win) or on LF alone (Unix) - // Avoid triggering two times on Dos/Win - // New line -> record any line state onto /next/ line - if (fold) { - int lev = levelPrev; - if (visibleChars == 0) - lev |= SC_FOLDLEVELWHITEFLAG; - if ((levelCurrent > levelPrev) && (visibleChars > 0)) - lev |= SC_FOLDLEVELHEADERFLAG; - - styler.SetLevel(lineCurrent, lev); - visibleChars = 0; - levelPrev = levelCurrent; - } - lineCurrent++; - styler.SetLineState(lineCurrent, - ((inScriptType & 0x03) << 0) | - ((tagOpened & 0x01) << 2) | - ((tagClosing & 0x01) << 3) | - ((aspScript & 0x0F) << 4) | - ((clientScript & 0x0F) << 8) | - ((beforePreProc & 0xFF) << 12)); - } - - // generic end of script processing - else if ((inScriptType == eNonHtmlScript) && (ch == '<') && (chNext == '/')) { - // Check if it's the end of the script tag (or any other HTML tag) - switch (state) { - // in these cases, you can embed HTML tags (to confirm !!!!!!!!!!!!!!!!!!!!!!) - case SCE_H_DOUBLESTRING: - case SCE_H_SINGLESTRING: - case SCE_HJ_COMMENT: - case SCE_HJ_COMMENTDOC: - //case SCE_HJ_COMMENTLINE: // removed as this is a common thing done to hide - // the end of script marker from some JS interpreters. - case SCE_HJ_DOUBLESTRING: - case SCE_HJ_SINGLESTRING: - case SCE_HJ_REGEX: - case SCE_HB_STRING: - case SCE_HP_STRING: - case SCE_HP_TRIPLE: - case SCE_HP_TRIPLEDOUBLE: - break; - default : - // check if the closing tag is a script tag - if (state == SCE_HJ_COMMENTLINE) { - char tag[7]; // room for the