From 9fd12f144849eaa5826651ebff51ce75cf243594 Mon Sep 17 00:00:00 2001 From: Birunthan Mohanathas Date: Fri, 25 Dec 2015 23:22:27 +0200 Subject: [PATCH] Merge SkinInstaller.dll into Rainmeter.dll --- Build/Installer/Installer.nsi | 2 +- Library/Dialog.cpp | 24 +- Library/Dialog.h | 6 +- {SkinInstaller => Library}/DialogInstall.cpp | 6 +- {SkinInstaller => Library}/DialogInstall.h | 4 +- {SkinInstaller => Library}/DialogPackage.cpp | 4 +- {SkinInstaller => Library}/DialogPackage.h | 4 +- Library/Exports.def | 3 + Library/Library.rc | 155 ++- Library/Library.vcxproj | 17 +- Library/Library.vcxproj.filters | 24 + Library/Library_Zlib.vcxproj | 32 +- {SkinInstaller => Library}/SkinInstaller.cpp | 2 +- {SkinInstaller => Library}/SkinInstaller.h | 0 Library/StdAfx.h | 3 + Library/resource.h | 74 ++ Library/zlib/gvmat64.asm | 553 --------- Library/zlib/inffas32.asm | 1080 ------------------ Library/zlib/inffas8664.c | 186 --- Library/zlib/match686.asm | 479 -------- Library/zlib/zlibvc.def | 91 -- Rainmeter.sln | 13 - SkinInstaller/SkinInstaller.def | 4 - SkinInstaller/SkinInstaller.rc | 199 ---- SkinInstaller/SkinInstaller.vcxproj | 8 +- SkinInstaller/SkinInstallerLauncher.cpp | 55 +- SkinInstaller/SkinInstallerLauncher.rc | 5 +- SkinInstaller/SkinInstallerLauncher.vcxproj | 5 + SkinInstaller/StdAfx.cpp | 8 - SkinInstaller/StdAfx.h | 38 - SkinInstaller/res/Rainstaller.bmp | Bin 25078 -> 0 bytes SkinInstaller/resource.h | 73 -- 32 files changed, 311 insertions(+), 2846 deletions(-) rename {SkinInstaller => Library}/DialogInstall.cpp (95%) rename {SkinInstaller => Library}/DialogInstall.h (94%) rename {SkinInstaller => Library}/DialogPackage.cpp (96%) rename {SkinInstaller => Library}/DialogPackage.h (94%) rename {SkinInstaller => Library}/SkinInstaller.cpp (95%) rename {SkinInstaller => Library}/SkinInstaller.h (100%) delete mode 100644 Library/zlib/gvmat64.asm delete mode 100644 Library/zlib/inffas32.asm delete mode 100644 Library/zlib/inffas8664.c delete mode 100644 Library/zlib/match686.asm delete mode 100644 Library/zlib/zlibvc.def delete mode 100644 SkinInstaller/SkinInstaller.def delete mode 100644 SkinInstaller/SkinInstaller.rc delete mode 100644 SkinInstaller/StdAfx.cpp delete mode 100644 SkinInstaller/StdAfx.h delete mode 100644 SkinInstaller/res/Rainstaller.bmp delete mode 100644 SkinInstaller/resource.h diff --git a/Build/Installer/Installer.nsi b/Build/Installer/Installer.nsi index a4b856450..b5fb44705 100644 --- a/Build/Installer/Installer.nsi +++ b/Build/Installer/Installer.nsi @@ -505,7 +505,6 @@ FunctionEnd File "..\..\${DIR}-Release\Rainmeter.exe" File "..\..\${DIR}-Release\Rainmeter.dll" File "..\..\${DIR}-Release\SkinInstaller.exe" - File "..\..\${DIR}-Release\SkinInstaller.dll" SetOutPath "$INSTDIR\Plugins" File /x *Example*.dll "..\..\${DIR}-Release\Plugins\*.dll" @@ -627,6 +626,7 @@ SkipIniMove: Delete "$INSTDIR\Rainmeter.chm" Delete "$INSTDIR\Default.ini" Delete "$INSTDIR\Launcher.exe" + Delete "$INSTDIR\SkinInstaller.dll" Delete "$INSTDIR\Defaults\Plugins\FileView.dll" RMDir /r "$INSTDIR\Addons\Rainstaller" RMDir /r "$INSTDIR\Addons\RainBackup" diff --git a/Library/Dialog.cpp b/Library/Dialog.cpp index 9fa175f07..65f2a0c6e 100644 --- a/Library/Dialog.cpp +++ b/Library/Dialog.cpp @@ -8,10 +8,10 @@ #include "StdAfx.h" #include "Dialog.h" -HWND Dialog::c_ActiveDialogWindow = nullptr; -HWND Dialog::c_ActiveTabWindow = nullptr; +HWND OldDialog::c_ActiveDialogWindow = nullptr; +HWND OldDialog::c_ActiveTabWindow = nullptr; -Dialog::Dialog(HWND wnd) : +OldDialog::OldDialog(HWND wnd) : m_Window(wnd), m_Font(), m_FontBold() @@ -29,13 +29,13 @@ Dialog::Dialog(HWND wnd) : ** Destructor. ** */ -Dialog::~Dialog() +OldDialog::~OldDialog() { DeleteObject(m_Font); DeleteObject(m_FontBold); } -INT_PTR Dialog::OnActivate(WPARAM wParam, LPARAM lParam) +INT_PTR OldDialog::OnActivate(WPARAM wParam, LPARAM lParam) { if (wParam) { @@ -54,12 +54,12 @@ INT_PTR Dialog::OnActivate(WPARAM wParam, LPARAM lParam) ** Sets dialog font to UI font. ** */ -void Dialog::SetDialogFont(HWND window) +void OldDialog::SetDialogFont(HWND window) { EnumChildWindows(window, SetFontProc, (WPARAM)m_Font); } -BOOL CALLBACK Dialog::SetFontProc(HWND hWnd, LPARAM lParam) +BOOL CALLBACK OldDialog::SetFontProc(HWND hWnd, LPARAM lParam) { SendMessage(hWnd, WM_SETFONT, (WPARAM)lParam, 0); return TRUE; @@ -69,12 +69,12 @@ BOOL CALLBACK Dialog::SetFontProc(HWND hWnd, LPARAM lParam) ** Subclass button control to draw arrow on the right. ** */ -void Dialog::SetMenuButton(HWND button) +void OldDialog::SetMenuButton(HWND button) { SetWindowSubclass(button, MenuButtonProc, 0, 0); } -LRESULT CALLBACK Dialog::MenuButtonProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam, UINT_PTR uIdSubclass, DWORD_PTR dwRefData) +LRESULT CALLBACK OldDialog::MenuButtonProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam, UINT_PTR uIdSubclass, DWORD_PTR dwRefData) { LRESULT result = DefSubclassProc(hWnd, uMsg, wParam, lParam); @@ -120,7 +120,7 @@ LRESULT CALLBACK Dialog::MenuButtonProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPA return result; } -Dialog::Tab::Tab(HINSTANCE instance, HWND owner, WORD tabId, DLGPROC tabProc) : +OldDialog::Tab::Tab(HINSTANCE instance, HWND owner, WORD tabId, DLGPROC tabProc) : m_Window(CreateDialog(instance, MAKEINTRESOURCE(tabId), owner, tabProc)), m_Initialized(false) { @@ -131,7 +131,7 @@ Dialog::Tab::Tab(HINSTANCE instance, HWND owner, WORD tabId, DLGPROC tabProc) : ** Destructor. ** */ -Dialog::Tab::~Tab() +OldDialog::Tab::~Tab() { DestroyWindow(m_Window); } @@ -140,7 +140,7 @@ Dialog::Tab::~Tab() ** Activates the tab. ** */ -void Dialog::Tab::Activate() +void OldDialog::Tab::Activate() { c_ActiveTabWindow = m_Window; diff --git a/Library/Dialog.h b/Library/Dialog.h index 9ad2489fd..5cf0c908e 100644 --- a/Library/Dialog.h +++ b/Library/Dialog.h @@ -8,7 +8,7 @@ #ifndef __DIALOG_H__ #define __DIALOG_H__ -class Dialog +class OldDialog { public: HWND GetWindow() { return m_Window; } @@ -35,8 +35,8 @@ class Dialog bool m_Initialized; }; - Dialog(HWND wnd); - virtual ~Dialog(); + OldDialog(HWND wnd); + virtual ~OldDialog(); virtual HWND GetActiveWindow() { return m_Window; } diff --git a/SkinInstaller/DialogInstall.cpp b/Library/DialogInstall.cpp similarity index 95% rename from SkinInstaller/DialogInstall.cpp rename to Library/DialogInstall.cpp index 217d93c17..34387a300 100644 --- a/SkinInstaller/DialogInstall.cpp +++ b/Library/DialogInstall.cpp @@ -30,7 +30,7 @@ inline bool IsWin32Build() ** Constructor. ** */ -DialogInstall::DialogInstall(HWND wnd, const WCHAR* file) : Dialog(wnd), +DialogInstall::DialogInstall(HWND wnd, const WCHAR* file) : OldDialog(wnd), m_TabInstall(wnd), m_HeaderBitmap(), m_InstallThread(), @@ -99,7 +99,7 @@ void DialogInstall::Create(HINSTANCE hInstance, LPWSTR lpCmdLine) } } -Dialog::Tab& DialogInstall::GetActiveTab() +OldDialog::Tab& DialogInstall::GetActiveTab() { return m_TabInstall; } @@ -149,7 +149,7 @@ INT_PTR DialogInstall::OnInitDialog(WPARAM wParam, LPARAM lParam) } HWND item = GetDlgItem(m_Window, IDC_INSTALL_ADVANCED_BUTTON); - Dialog::SetMenuButton(item); + OldDialog::SetMenuButton(item); if (ReadPackage()) { diff --git a/SkinInstaller/DialogInstall.h b/Library/DialogInstall.h similarity index 94% rename from SkinInstaller/DialogInstall.h rename to Library/DialogInstall.h index 668b65538..496cfdcb5 100644 --- a/SkinInstaller/DialogInstall.h +++ b/Library/DialogInstall.h @@ -10,9 +10,9 @@ #include #include "unzip.h" -#include "../Library/Dialog.h" +#include "Dialog.h" -class DialogInstall : public Dialog +class DialogInstall : public OldDialog { public: static void Create(HINSTANCE hInstance, LPWSTR lpCmdLine); diff --git a/SkinInstaller/DialogPackage.cpp b/Library/DialogPackage.cpp similarity index 96% rename from SkinInstaller/DialogPackage.cpp rename to Library/DialogPackage.cpp index e40671efb..5608ac6fc 100644 --- a/SkinInstaller/DialogPackage.cpp +++ b/Library/DialogPackage.cpp @@ -20,7 +20,7 @@ extern OsNameVersion g_OsNameVersions[]; DialogPackage* DialogPackage::c_Dialog = nullptr; -DialogPackage::DialogPackage(HWND wnd) : Dialog(wnd), +DialogPackage::DialogPackage(HWND wnd) : OldDialog(wnd), m_TabInfo(wnd), m_TabOptions(wnd), m_TabAdvanced(wnd), @@ -51,7 +51,7 @@ void DialogPackage::Create(HINSTANCE hInstance, LPWSTR lpCmdLine) } } -Dialog::Tab& DialogPackage::GetActiveTab() +OldDialog::Tab& DialogPackage::GetActiveTab() { int sel = TabCtrl_GetCurSel(GetDlgItem(m_Window, IDC_PACKAGE_TAB)); if (sel == -1) diff --git a/SkinInstaller/DialogPackage.h b/Library/DialogPackage.h similarity index 94% rename from SkinInstaller/DialogPackage.h rename to Library/DialogPackage.h index e2095260b..1a676bb67 100644 --- a/SkinInstaller/DialogPackage.h +++ b/Library/DialogPackage.h @@ -10,9 +10,9 @@ #include #include "zip.h" -#include "../Library/Dialog.h" +#include "Dialog.h" -class DialogPackage : public Dialog +class DialogPackage : public OldDialog { public: static void Create(HINSTANCE hInstance, LPWSTR lpCmdLine); diff --git a/Library/Exports.def b/Library/Exports.def index 5c50fefbc..a519c11c1 100644 --- a/Library/Exports.def +++ b/Library/Exports.def @@ -17,7 +17,10 @@ EXPORTS ; Private RainmeterMain @1 NONAME + ; 2-4 were for the non-UTF-16 pcre_ functions. pcre16_compile @5 NONAME pcre16_exec @6 NONAME pcre16_study @7 NONAME + + SkinInstallerMain @8 NONAME \ No newline at end of file diff --git a/Library/Library.rc b/Library/Library.rc index 42bef88a0..593476ec6 100644 --- a/Library/Library.rc +++ b/Library/Library.rc @@ -52,4 +52,157 @@ VS_VERSION_INFO VERSIONINFO IDR_DIALOG_ACCELERATORS ACCELERATORS { "^C", IDM_COPY -} \ No newline at end of file +} + +///////////////////////////////////////////////////////////////////////////// +// +// Menu +// + +IDR_INSTALL_MENU MENU +{ + POPUP " " + { + MENUITEM "Backup skins", IDM_INSTALL_BACKUPSKINS + MENUITEM "Install fonts to system", IDM_INSTALL_SYSTEMFONTS, GRAYED + MENUITEM SEPARATOR + MENUITEM " ", IDM_INSTALL_FORMAT, GRAYED + } +} + +///////////////////////////////////////////////////////////////////////////// +// +// Dialog +// + +IDD_PACKAGE_DIALOG DIALOGEX 0, 0, 300, 280 +STYLE DS_CENTER | WS_MINIMIZEBOX | WS_POPUP | WS_CAPTION | WS_SYSMENU +CAPTION "Rainmeter Skin Packager" +FONT 8, "MS Shell Dlg 2" +{ + CONTROL "", IDC_PACKAGE_TAB, "SysTabControl32", TCS_TABS | TCS_FIXEDWIDTH, 6, 6, 288, 251 + DEFPUSHBUTTON "Next", IDC_PACKAGE_NEXT_BUTTON, 188, 261, 50, 14, WS_DISABLED + PUSHBUTTON "Create package", IDC_PACKAGE_CREATEPACKAGE_BUTTON, 158, 261, 80, 14, NOT WS_VISIBLE + PUSHBUTTON "Cancel", IDCANCEL, 243, 261, 50, 14 +} + +IDD_PACKAGEINFO_TAB DIALOGEX 15, 15, 270, 235 +STYLE DS_CONTROL | WS_CHILD | WS_VISIBLE | WS_CLIPSIBLINGS +FONT 8, "MS Shell Dlg 2" +{ + LTEXT "Enter the information and select the components to use for the .rmskin package.", IDC_STATIC, 0, 0, 264, 19 + + GROUPBOX "Information", IDC_STATIC, 0, 35, 270, 70 + LTEXT "Name:", IDC_STATIC, 6, 51, 35, 9 + EDITTEXT IDC_PACKAGEINFO_NAME_EDIT, 56, 48, 208, 14 + LTEXT "Author:", IDC_STATIC, 6, 69, 35, 9 + EDITTEXT IDC_PACKAGEINFO_AUTHOR_EDIT, 56, 66, 208, 14 + LTEXT "Version:", IDC_STATIC, 6, 87, 35, 9 + EDITTEXT IDC_PACKAGEINFO_VERSION_EDIT, 56, 83, 140, 14 + + GROUPBOX "Components", IDC_STATIC, 0, 110, 270, 108 + CONTROL "", IDC_PACKAGEINFO_COMPONENTS_LIST, "SysListView32", LVS_REPORT | LVS_SINGLESEL | LVS_NOSORTHEADER | WS_BORDER | WS_TABSTOP, 6, 125, 182, 86 + PUSHBUTTON "Add skin...", IDC_PACKAGEINFO_ADDSKIN_BUTTON, 194, 125, 70, 14 + PUSHBUTTON "Add layout...", IDC_PACKAGEINFO_ADDTHEME_BUTTON, 194, 144, 70, 14 + PUSHBUTTON "Add plugin...", IDC_PACKAGEINFO_ADDPLUGIN_BUTTON, 194, 162, 70, 14 + PUSHBUTTON "Remove", IDC_PACKAGEINFO_REMOVE_BUTTON, 194, 197, 70, 14, WS_DISABLED + CONTROL "What is a .rmskin package?", IDC_PACKAGEINFO_WHATIS_LINK, "SysLink", 0x0, 0, 225, 264, 9 +} + +IDD_PACKAGEOPTIONS_TAB DIALOGEX 15, 30, 270, 220 +STYLE DS_CONTROL | WS_CHILD | WS_VISIBLE | WS_CLIPSIBLINGS +FONT 8, "MS Shell Dlg 2" +{ + LTEXT "Save package to:", IDC_STATIC, 0, 0, 264, 9 + EDITTEXT IDC_PACKAGEOPTIONS_FILE_EDIT, 0, 17, 240, 14, ES_READONLY | ES_AUTOHSCROLL | WS_BORDER | WS_TABSTOP + PUSHBUTTON "...", IDC_PACKAGEOPTIONS_FILEBROWSE_BUTTON, 245, 17, 25, 14, WS_TABSTOP + + + GROUPBOX "After installation", IDC_STATIC, 0, 101, 270, 58 + AUTORADIOBUTTON "Do nothing", IDC_PACKAGEOPTIONS_DONOTHING_RADIO, 6, 116, 85, 9, WS_TABSTOP + AUTORADIOBUTTON "Load skin", IDC_PACKAGEOPTIONS_LOADSKIN_RADIO, 6, 129, 85, 9, WS_TABSTOP + EDITTEXT IDC_PACKAGEOPTIONS_LOADSKIN_EDIT, 96, 126, 138, 14, ES_READONLY | ES_AUTOHSCROLL | WS_BORDER | WS_TABSTOP | NOT WS_VISIBLE + PUSHBUTTON "...", IDC_PACKAGEOPTIONS_LOADSKINBROWSE_BUTTON, 239, 126, 25, 14, WS_TABSTOP | NOT WS_VISIBLE + AUTORADIOBUTTON "Load layout", IDC_PACKAGEOPTIONS_LOADTHEME_RADIO, 6, 142, 85, 9, WS_TABSTOP + COMBOBOX IDC_PACKAGEOPTIONS_LOADTHEME_COMBO, 96, 139, 168, 14, CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP | NOT WS_VISIBLE + + GROUPBOX "Minimum requirements", IDC_STATIC, 0, 164, 270, 53 + LTEXT "Rainmeter version:", IDC_STATIC, 6, 180, 85, 9 + EDITTEXT IDC_PACKAGEOPTIONS_RAINMETERVERSION_EDIT, 96, 177, 80, 14 + LTEXT "Windows version:", IDC_STATIC, 6, 198, 85, 9 + COMBOBOX IDC_PACKAGEOPTIONS_WINDOWSVERSION_COMBO, 96, 195, 80, 14, CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP + + LTEXT "Creating...", IDC_INSTALLTAB_CREATING_TEXT, 0, 0, 270, 100, NOT WS_VISIBLE + CONTROL "", IDC_INSTALLTAB_CREATING_BAR, "msctls_progress32", PBS_MARQUEE | NOT WS_VISIBLE | WS_BORDER, 0, 15, 270, 11 +} + +IDD_PACKAGEADVANCED_TAB DIALOGEX 15, 30, 270, 220 +STYLE DS_CONTROL | WS_CHILD | WS_VISIBLE | WS_CLIPSIBLINGS +FONT 8, "MS Shell Dlg 2" +{ + LTEXT "Header image:", IDC_STATIC, 0, 3, 85, 9 + EDITTEXT IDC_PACKAGEADVANCED_HEADER_EDIT, 90, 0, 150, 14, ES_READONLY | ES_AUTOHSCROLL | WS_TABSTOP + PUSHBUTTON "...", IDC_PACKAGEADVANCED_HEADERROWSE_BUTTON, 245, 0, 25, 14, WS_TABSTOP + LTEXT "Variables files:", IDC_STATIC, 0, 24, 85, 9 + EDITTEXT IDC_PACKAGEADVANCED_VARIABLEFILES_EDIT, 90, 21, 180, 14, ES_AUTOHSCROLL | WS_TABSTOP + AUTOCHECKBOX "Merge skins", IDC_PACKAGEADVANCED_MERGESKINS_CHECK, 0, 42, 85, 9, WS_TABSTOP + CONTROL "Help", IDC_PACKAGEADVANCED_HELP_LINK, "SysLink", 0x0, 0, 210, 264, 9 +} + +IDD_PACKAGESELECTFOLDER_DIALOG DIALOGEX 0, 0, 200, 100 +STYLE DS_CENTER | WS_POPUP | WS_TILEDWINDOW +EXSTYLE WS_EX_TOOLWINDOW +CAPTION "Add" +FONT 8, "MS Shell Dlg 2" +{ + AUTORADIOBUTTON "", IDC_PACKAGESELECTFOLDER_EXISTING_RADIO, 6, 6, 220, 9, WS_TABSTOP | BST_CHECKED + COMBOBOX IDC_PACKAGESELECTFOLDER_EXISTING_COMBO, 16, 19, 177, 14, CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP + AUTORADIOBUTTON "Add custom folder:", IDC_PACKAGESELECTFOLDER_CUSTOM_RADIO, 6, 40, 220, 9, WS_TABSTOP + EDITTEXT IDC_PACKAGESELECTFOLDER_CUSTOM_EDIT, 16, 53, 149, 14, WS_BORDER | WS_TABSTOP | ES_AUTOHSCROLL | WS_DISABLED + PUSHBUTTON "...", IDC_PACKAGESELECTFOLDER_CUSTOMBROWSE_BUTTON, 170, 53, 25, 14, WS_TABSTOP | WS_DISABLED + DEFPUSHBUTTON "Add", IDOK, 146, 82, 50, 14 +} + +IDD_PACKAGESELECTPLUGIN_DIALOG DIALOGEX 0, 0, 200, 100 +STYLE DS_CENTER | WS_POPUP | WS_TILEDWINDOW +EXSTYLE WS_EX_TOOLWINDOW +CAPTION "Add" +FONT 8, "MS Shell Dlg 2" +{ + LTEXT "32-bit DLL:", IDC_STATIC, 6, 6, 220, 9 + EDITTEXT IDC_PACKAGESELECTPLUGIN_32BIT_EDIT, 16, 19, 149, 14, ES_READONLY | WS_BORDER + PUSHBUTTON "...", IDC_PACKAGESELECTPLUGIN_32BITBROWSE_BUTTON, 170, 19, 25, 14, WS_TABSTOP + LTEXT "64-bit DLL:", IDC_STATIC, 6, 40, 220, 9 + EDITTEXT IDC_PACKAGESELECTPLUGIN_64BIT_EDIT, 16, 53, 149, 14, ES_READONLY | WS_BORDER + PUSHBUTTON "...", IDC_PACKAGESELECTPLUGIN_64BITBROWSE_BUTTON, 170, 53, 25, 14, WS_TABSTOP + DEFPUSHBUTTON "Add", IDOK, 146, 82, 50, 14, WS_DISABLED +} + +IDD_INSTALL_DIALOG DIALOGEX 0, 0, 266, 250 +STYLE DS_CENTER | WS_MINIMIZEBOX | WS_POPUP | WS_CAPTION | WS_SYSMENU +CAPTION "Rainmeter Skin Installer" +FONT 8, "MS Shell Dlg 2" +{ + CONTROL 0, IDC_INSTALL_HEADER_BITMAP, STATIC, SS_BITMAP | WS_CHILD | WS_VISIBLE, 0, 0, 266, 37 + CONTROL "", IDC_INSTALL_TAB, "SysTabControl32", TCS_TABS | TCS_FIXEDWIDTH, 6, 42, 254, 185 + PUSHBUTTON "Advanced", IDC_INSTALL_ADVANCED_BUTTON, 6, 231, 70, 14 + DEFPUSHBUTTON "Install", IDC_INSTALL_INSTALL_BUTTON, 155, 231, 50, 14 + PUSHBUTTON "Cancel", IDCANCEL, 210, 231, 50, 14 +} + +IDD_INSTALL_TAB DIALOGEX 15, 51, 236, 168 +STYLE DS_CONTROL | WS_CHILD | WS_VISIBLE | WS_CLIPSIBLINGS +FONT 8, "MS Shell Dlg 2" +{ + LTEXT "Name:", IDC_STATIC, 0, 0, 35, 9 + LTEXT "", IDC_INSTALLTAB_NAME_TEXT, 50, 0, 200, 9, SS_NOPREFIX + LTEXT "Author:", IDC_STATIC, 0, 13, 35, 9 + LTEXT "", IDC_INSTALLTAB_AUTHOR_TEXT, 50, 13, 200, 9, SS_NOPREFIX + LTEXT "Version:", IDC_STATIC, 0, 26, 35, 9 + LTEXT "", IDC_INSTALLTAB_VERSION_TEXT, 50, 26, 200, 9, SS_NOPREFIX + LTEXT "Included components:", IDC_STATIC, 0, 45, 80, 9 + CONTROL "", IDC_INSTALLTAB_COMPONENTS_LIST, "SysListView32", LVS_REPORT | LVS_NOSORTHEADER | WS_BORDER | WS_TABSTOP, 0, 60, 234, 86 + AUTOCHECKBOX "Apply included layout", IDC_INSTALLTAB_THEME_CHECKBOX, 4, 155, 220, 9 + LTEXT "Installing...", IDC_INSTALLTAB_INPROGRESS_TEXT, 0, 0, 236, 60, NOT WS_VISIBLE + CONTROL "", IDC_INSTALLTAB_PROGRESS, "msctls_progress32", PBS_MARQUEE | NOT WS_VISIBLE | WS_BORDER, 0, 15, 236, 11 +} diff --git a/Library/Library.vcxproj b/Library/Library.vcxproj index 996bc95cd..bdfa4fbd8 100644 --- a/Library/Library.vcxproj +++ b/Library/Library.vcxproj @@ -17,8 +17,8 @@ - .\;lua/include;lua/lua;.\NowPlaying\SDKs;./taglib;./taglib/toolkit;./taglib/asf;./taglib/mpeg;./taglib/ogg;./taglib/ogg/flac;./taglib/flac;./taglib/mpc;./taglib/ogg/vorbis;./taglib/mpeg/id3v2;./taglib/mpeg/id3v2/frames;./taglib/mpeg/id3v1;./taglib/ape;./taglib/wavpack;./taglib/mp4;%(AdditionalIncludeDirectories) - TAGLIB_STATIC;_USRDLL;LIBRARY_EXPORTS;%(PreprocessorDefinitions) + .\;lua/include;lua/lua;.\NowPlaying\SDKs;./taglib;./taglib/toolkit;./taglib/asf;./taglib/mpeg;./taglib/ogg;./taglib/ogg/flac;./taglib/flac;./taglib/mpc;./taglib/ogg/vorbis;./taglib/mpeg/id3v2;./taglib/mpeg/id3v2/frames;./taglib/mpeg/id3v1;./taglib/ape;./taglib/wavpack;./taglib/mp4;zlib;zlib\minizip;%(AdditionalIncludeDirectories) + TAGLIB_STATIC;ZLIB_WINAPI;NOCRYPT;NOUNCRYPT;NO_GZIP;_USRDLL;LIBRARY_EXPORTS;%(PreprocessorDefinitions) Use @@ -34,8 +34,11 @@ $(ExcludeTests) + + + @@ -89,6 +92,7 @@ + $(ExcludeTests) @@ -115,7 +119,10 @@ + + + @@ -170,6 +177,7 @@ + @@ -190,6 +198,9 @@ {0f414430-65c7-4a35-b878-7e6350d6d976} + + {5d164f45-ceed-47a3-8a5d-b752d09b09db} + @@ -204,4 +215,4 @@ - \ No newline at end of file + diff --git a/Library/Library.vcxproj.filters b/Library/Library.vcxproj.filters index 3418a3c64..39dda7300 100644 --- a/Library/Library.vcxproj.filters +++ b/Library/Library.vcxproj.filters @@ -240,6 +240,18 @@ NowPlaying + + Source Files + + + Source Files + + + Source Files + + + Source Files + @@ -443,6 +455,18 @@ Header Files + + Header Files + + + Header Files + + + Header Files + + + Header Files + diff --git a/Library/Library_Zlib.vcxproj b/Library/Library_Zlib.vcxproj index b5a66c9c5..285be9716 100644 --- a/Library/Library_Zlib.vcxproj +++ b/Library/Library_Zlib.vcxproj @@ -9,7 +9,6 @@ - @@ -18,30 +17,19 @@ zlib;%(AdditionalIncludeDirectories) - _LIB;ZLIB_WINAPI;NOCRYPT;NOUNCRYPT;NO_GZIP;ASMV;ASMINF;NOOLDPENTIUMCODE;HAVE_CONFIG_H;SUPPORT_UTF8;%(PreprocessorDefinitions) + _LIB;ZLIB_WINAPI;NOCRYPT;NOUNCRYPT;NO_GZIP;%(PreprocessorDefinitions) 4244;4334;%(DisableSpecificWarnings) true - zlib\zlibvc.def - - NOOLDPENTIUMCODE - - - true - true - - - true - true - + @@ -65,21 +53,7 @@ - - - true - - - true - - - true - - - true - - - \ No newline at end of file + diff --git a/SkinInstaller/SkinInstaller.cpp b/Library/SkinInstaller.cpp similarity index 95% rename from SkinInstaller/SkinInstaller.cpp rename to Library/SkinInstaller.cpp index 4e1775ee7..80b089fb8 100644 --- a/SkinInstaller/SkinInstaller.cpp +++ b/Library/SkinInstaller.cpp @@ -27,7 +27,7 @@ OsNameVersion g_OsNameVersions[] = ** Entry point ** */ -int SkinInstallerMain(LPWSTR lpCmdLine) +EXTERN_C int SkinInstallerMain(LPWSTR lpCmdLine) { // Avoid loading a dll from current directory SetDllDirectory(L""); diff --git a/SkinInstaller/SkinInstaller.h b/Library/SkinInstaller.h similarity index 100% rename from SkinInstaller/SkinInstaller.h rename to Library/SkinInstaller.h diff --git a/Library/StdAfx.h b/Library/StdAfx.h index 5153006da..4632d1c68 100644 --- a/Library/StdAfx.h +++ b/Library/StdAfx.h @@ -15,11 +15,13 @@ #include #include #include +#include #include // For Gdiplus.h. #include #include #include #include +#include #include #include #include @@ -29,6 +31,7 @@ // STL #include +#include #include #include #include diff --git a/Library/resource.h b/Library/resource.h index b55d2a675..97fe21e41 100644 --- a/Library/resource.h +++ b/Library/resource.h @@ -6,6 +6,80 @@ #define IDI_RAINMETER 100 #define IDI_TRAY 101 +#define IDI_SKININSTALLER 200 +#define IDB_INSTALLHEADER 201 +#define IDD_INSTALL_DIALOG 202 +#define IDD_INSTALL_TAB 203 +#define IDR_INSTALL_MENU 204 +#define IDD_PACKAGE_DIALOG 205 +#define IDD_PACKAGEINFO_TAB 206 +#define IDD_PACKAGEOPTIONS_TAB 207 +#define IDD_PACKAGEADVANCED_TAB 208 +#define IDD_PACKAGESELECTFOLDER_DIALOG 209 +#define IDD_PACKAGESELECTPLUGIN_DIALOG 210 + +#define IDC_INSTALL_TAB 1000 +#define IDC_INSTALL_HEADER_BITMAP 1001 +#define IDC_INSTALL_ADVANCED_BUTTON 1002 +#define IDC_INSTALL_INSTALL_BUTTON 1003 + +#define IDC_INSTALLTAB_NAME_TEXT 1000 +#define IDC_INSTALLTAB_AUTHOR_TEXT 1001 +#define IDC_INSTALLTAB_VERSION_TEXT 1002 +#define IDC_INSTALLTAB_COMPONENTS_LIST 1003 +#define IDC_INSTALLTAB_THEME_CHECKBOX 1004 +#define IDC_INSTALLTAB_INPROGRESS_TEXT 1005 +#define IDC_INSTALLTAB_PROGRESS 1006 + +#define IDC_PACKAGE_TAB 1000 +#define IDC_PACKAGE_NEXT_BUTTON 1001 +#define IDC_PACKAGE_CREATEPACKAGE_BUTTON 1002 + +#define IDC_PACKAGEINFO_NAME_EDIT 1000 +#define IDC_PACKAGEINFO_AUTHOR_EDIT 1001 +#define IDC_PACKAGEINFO_VERSION_EDIT 1002 +#define IDC_PACKAGEINFO_COMPONENTS_LIST 1003 +#define IDC_PACKAGEINFO_ADDSKIN_BUTTON 1004 +#define IDC_PACKAGEINFO_ADDTHEME_BUTTON 1005 +#define IDC_PACKAGEINFO_ADDPLUGIN_BUTTON 1006 +#define IDC_PACKAGEINFO_REMOVE_BUTTON 1007 +#define IDC_PACKAGEINFO_WHATIS_LINK 1008 + +#define IDC_PACKAGEOPTIONS_FILE_EDIT 1000 +#define IDC_PACKAGEOPTIONS_FILEBROWSE_BUTTON 1001 +#define IDC_PACKAGEOPTIONS_DONOTHING_RADIO 1002 +#define IDC_PACKAGEOPTIONS_LOADSKIN_RADIO 1003 +#define IDC_PACKAGEOPTIONS_LOADSKIN_EDIT 1004 +#define IDC_PACKAGEOPTIONS_LOADSKINBROWSE_BUTTON 1005 +#define IDC_PACKAGEOPTIONS_LOADTHEME_RADIO 1006 +#define IDC_PACKAGEOPTIONS_LOADTHEME_COMBO 1007 +#define IDC_PACKAGEOPTIONS_RAINMETERVERSION_EDIT 1008 +#define IDC_PACKAGEOPTIONS_WINDOWSVERSION_COMBO 1009 +#define IDC_INSTALLTAB_CREATING_TEXT 1010 +#define IDC_INSTALLTAB_CREATING_BAR 1011 + +#define IDC_PACKAGEADVANCED_HEADER_EDIT 1000 +#define IDC_PACKAGEADVANCED_HEADERROWSE_BUTTON 1001 +#define IDC_PACKAGEADVANCED_VARIABLEFILES_EDIT 1002 +#define IDC_PACKAGEADVANCED_MERGESKINS_CHECK 1003 +#define IDC_PACKAGEADVANCED_HELP_LINK 1004 + +#define IDC_PACKAGESELECTFOLDER_EXISTING_RADIO 1000 +#define IDC_PACKAGESELECTFOLDER_EXISTING_COMBO 1001 +#define IDC_PACKAGESELECTFOLDER_CUSTOM_RADIO 1002 +#define IDC_PACKAGESELECTFOLDER_CUSTOM_EDIT 1003 +#define IDC_PACKAGESELECTFOLDER_CUSTOMBROWSE_BUTTON 1004 + +#define IDC_PACKAGESELECTPLUGIN_32BIT_EDIT 1000 +#define IDC_PACKAGESELECTPLUGIN_32BITBROWSE_BUTTON 1001 +#define IDC_PACKAGESELECTPLUGIN_64BIT_EDIT 1002 +#define IDC_PACKAGESELECTPLUGIN_64BITBROWSE_BUTTON 1003 + +#define IDM_INSTALL_BACKUPSKINS 4200 +#define IDM_INSTALL_SYSTEMFONTS 4201 +#define IDM_INSTALL_FORMAT 4202 + + #define ID_STR_NUM_BUTTONWIDTH 1998 #define ID_STR_NUM_LABELWIDTH 1999 #define ID_STR_ISRTL 2000 diff --git a/Library/zlib/gvmat64.asm b/Library/zlib/gvmat64.asm deleted file mode 100644 index 9879c28b9..000000000 --- a/Library/zlib/gvmat64.asm +++ /dev/null @@ -1,553 +0,0 @@ -;uInt longest_match_x64( -; deflate_state *s, -; IPos cur_match); /* current match */ - -; gvmat64.asm -- Asm portion of the optimized longest_match for 32 bits x86_64 -; (AMD64 on Athlon 64, Opteron, Phenom -; and Intel EM64T on Pentium 4 with EM64T, Pentium D, Core 2 Duo, Core I5/I7) -; Copyright (C) 1995-2010 Jean-loup Gailly, Brian Raiter and Gilles Vollant. -; -; File written by Gilles Vollant, by converting to assembly the longest_match -; from Jean-loup Gailly in deflate.c of zLib and infoZip zip. -; -; and by taking inspiration on asm686 with masm, optimised assembly code -; from Brian Raiter, written 1998 -; -; This software is provided 'as-is', without any express or implied -; warranty. In no event will the authors be held liable for any damages -; arising from the use of this software. -; -; Permission is granted to anyone to use this software for any purpose, -; including commercial applications, and to alter it and redistribute it -; freely, subject to the following restrictions: -; -; 1. The origin of this software must not be misrepresented; you must not -; claim that you wrote the original software. If you use this software -; in a product, an acknowledgment in the product documentation would be -; appreciated but is not required. -; 2. Altered source versions must be plainly marked as such, and must not be -; misrepresented as being the original software -; 3. This notice may not be removed or altered from any source distribution. -; -; -; -; http://www.zlib.net -; http://www.winimage.com/zLibDll -; http://www.muppetlabs.com/~breadbox/software/assembly.html -; -; to compile this file for infozip Zip, I use option: -; ml64.exe /Flgvmat64 /c /Zi /DINFOZIP gvmat64.asm -; -; to compile this file for zLib, I use option: -; ml64.exe /Flgvmat64 /c /Zi gvmat64.asm -; Be carrefull to adapt zlib1222add below to your version of zLib -; (if you use a version of zLib before 1.0.4 or after 1.2.2.2, change -; value of zlib1222add later) -; -; This file compile with Microsoft Macro Assembler (x64) for AMD64 -; -; ml64.exe is given with Visual Studio 2005/2008/2010 and Windows WDK -; -; (you can get Windows WDK with ml64 for AMD64 from -; http://www.microsoft.com/whdc/Devtools/wdk/default.mspx for low price) -; - - -;uInt longest_match(s, cur_match) -; deflate_state *s; -; IPos cur_match; /* current match */ -.code -longest_match PROC - - -;LocalVarsSize equ 88 - LocalVarsSize equ 72 - -; register used : rax,rbx,rcx,rdx,rsi,rdi,r8,r9,r10,r11,r12 -; free register : r14,r15 -; register can be saved : rsp - - chainlenwmask equ rsp + 8 - LocalVarsSize ; high word: current chain len - ; low word: s->wmask -;window equ rsp + xx - LocalVarsSize ; local copy of s->window ; stored in r10 -;windowbestlen equ rsp + xx - LocalVarsSize ; s->window + bestlen , use r10+r11 -;scanstart equ rsp + xx - LocalVarsSize ; first two bytes of string ; stored in r12w -;scanend equ rsp + xx - LocalVarsSize ; last two bytes of string use ebx -;scanalign equ rsp + xx - LocalVarsSize ; dword-misalignment of string r13 -;bestlen equ rsp + xx - LocalVarsSize ; size of best match so far -> r11d -;scan equ rsp + xx - LocalVarsSize ; ptr to string wanting match -> r9 -IFDEF INFOZIP -ELSE - nicematch equ (rsp + 16 - LocalVarsSize) ; a good enough match size -ENDIF - -save_rdi equ rsp + 24 - LocalVarsSize -save_rsi equ rsp + 32 - LocalVarsSize -save_rbx equ rsp + 40 - LocalVarsSize -save_rbp equ rsp + 48 - LocalVarsSize -save_r12 equ rsp + 56 - LocalVarsSize -save_r13 equ rsp + 64 - LocalVarsSize -;save_r14 equ rsp + 72 - LocalVarsSize -;save_r15 equ rsp + 80 - LocalVarsSize - - -; summary of register usage -; scanend ebx -; scanendw bx -; chainlenwmask edx -; curmatch rsi -; curmatchd esi -; windowbestlen r8 -; scanalign r9 -; scanalignd r9d -; window r10 -; bestlen r11 -; bestlend r11d -; scanstart r12d -; scanstartw r12w -; scan r13 -; nicematch r14d -; limit r15 -; limitd r15d -; prev rcx - -; all the +4 offsets are due to the addition of pending_buf_size (in zlib -; in the deflate_state structure since the asm code was first written -; (if you compile with zlib 1.0.4 or older, remove the +4). -; Note : these value are good with a 8 bytes boundary pack structure - - - MAX_MATCH equ 258 - MIN_MATCH equ 3 - MIN_LOOKAHEAD equ (MAX_MATCH+MIN_MATCH+1) - - -;;; Offsets for fields in the deflate_state structure. These numbers -;;; are calculated from the definition of deflate_state, with the -;;; assumption that the compiler will dword-align the fields. (Thus, -;;; changing the definition of deflate_state could easily cause this -;;; program to crash horribly, without so much as a warning at -;;; compile time. Sigh.) - -; all the +zlib1222add offsets are due to the addition of fields -; in zlib in the deflate_state structure since the asm code was first written -; (if you compile with zlib 1.0.4 or older, use "zlib1222add equ (-4)"). -; (if you compile with zlib between 1.0.5 and 1.2.2.1, use "zlib1222add equ 0"). -; if you compile with zlib 1.2.2.2 or later , use "zlib1222add equ 8"). - - -IFDEF INFOZIP - -_DATA SEGMENT -COMM window_size:DWORD -; WMask ; 7fff -COMM window:BYTE:010040H -COMM prev:WORD:08000H -; MatchLen : unused -; PrevMatch : unused -COMM strstart:DWORD -COMM match_start:DWORD -; Lookahead : ignore -COMM prev_length:DWORD ; PrevLen -COMM max_chain_length:DWORD -COMM good_match:DWORD -COMM nice_match:DWORD -prev_ad equ OFFSET prev -window_ad equ OFFSET window -nicematch equ nice_match -_DATA ENDS -WMask equ 07fffh - -ELSE - - IFNDEF zlib1222add - zlib1222add equ 8 - ENDIF -dsWSize equ 56+zlib1222add+(zlib1222add/2) -dsWMask equ 64+zlib1222add+(zlib1222add/2) -dsWindow equ 72+zlib1222add -dsPrev equ 88+zlib1222add -dsMatchLen equ 128+zlib1222add -dsPrevMatch equ 132+zlib1222add -dsStrStart equ 140+zlib1222add -dsMatchStart equ 144+zlib1222add -dsLookahead equ 148+zlib1222add -dsPrevLen equ 152+zlib1222add -dsMaxChainLen equ 156+zlib1222add -dsGoodMatch equ 172+zlib1222add -dsNiceMatch equ 176+zlib1222add - -window_size equ [ rcx + dsWSize] -WMask equ [ rcx + dsWMask] -window_ad equ [ rcx + dsWindow] -prev_ad equ [ rcx + dsPrev] -strstart equ [ rcx + dsStrStart] -match_start equ [ rcx + dsMatchStart] -Lookahead equ [ rcx + dsLookahead] ; 0ffffffffh on infozip -prev_length equ [ rcx + dsPrevLen] -max_chain_length equ [ rcx + dsMaxChainLen] -good_match equ [ rcx + dsGoodMatch] -nice_match equ [ rcx + dsNiceMatch] -ENDIF - -; parameter 1 in r8(deflate state s), param 2 in rdx (cur match) - -; see http://weblogs.asp.net/oldnewthing/archive/2004/01/14/58579.aspx and -; http://msdn.microsoft.com/library/en-us/kmarch/hh/kmarch/64bitAMD_8e951dd2-ee77-4728-8702-55ce4b5dd24a.xml.asp -; -; All registers must be preserved across the call, except for -; rax, rcx, rdx, r8, r9, r10, and r11, which are scratch. - - - -;;; Save registers that the compiler may be using, and adjust esp to -;;; make room for our stack frame. - - -;;; Retrieve the function arguments. r8d will hold cur_match -;;; throughout the entire function. edx will hold the pointer to the -;;; deflate_state structure during the function's setup (before -;;; entering the main loop. - -; parameter 1 in rcx (deflate_state* s), param 2 in edx -> r8 (cur match) - -; this clear high 32 bits of r8, which can be garbage in both r8 and rdx - - mov [save_rdi],rdi - mov [save_rsi],rsi - mov [save_rbx],rbx - mov [save_rbp],rbp -IFDEF INFOZIP - mov r8d,ecx -ELSE - mov r8d,edx -ENDIF - mov [save_r12],r12 - mov [save_r13],r13 -; mov [save_r14],r14 -; mov [save_r15],r15 - - -;;; uInt wmask = s->w_mask; -;;; unsigned chain_length = s->max_chain_length; -;;; if (s->prev_length >= s->good_match) { -;;; chain_length >>= 2; -;;; } - - mov edi, prev_length - mov esi, good_match - mov eax, WMask - mov ebx, max_chain_length - cmp edi, esi - jl LastMatchGood - shr ebx, 2 -LastMatchGood: - -;;; chainlen is decremented once beforehand so that the function can -;;; use the sign flag instead of the zero flag for the exit test. -;;; It is then shifted into the high word, to make room for the wmask -;;; value, which it will always accompany. - - dec ebx - shl ebx, 16 - or ebx, eax - -;;; on zlib only -;;; if ((uInt)nice_match > s->lookahead) nice_match = s->lookahead; - -IFDEF INFOZIP - mov [chainlenwmask], ebx -; on infozip nice_match = [nice_match] -ELSE - mov eax, nice_match - mov [chainlenwmask], ebx - mov r10d, Lookahead - cmp r10d, eax - cmovnl r10d, eax - mov [nicematch],r10d -ENDIF - -;;; register Bytef *scan = s->window + s->strstart; - mov r10, window_ad - mov ebp, strstart - lea r13, [r10 + rbp] - -;;; Determine how many bytes the scan ptr is off from being -;;; dword-aligned. - - mov r9,r13 - neg r13 - and r13,3 - -;;; IPos limit = s->strstart > (IPos)MAX_DIST(s) ? -;;; s->strstart - (IPos)MAX_DIST(s) : NIL; -IFDEF INFOZIP - mov eax,07efah ; MAX_DIST = (WSIZE-MIN_LOOKAHEAD) (0x8000-(3+8+1)) -ELSE - mov eax, window_size - sub eax, MIN_LOOKAHEAD -ENDIF - xor edi,edi - sub ebp, eax - - mov r11d, prev_length - - cmovng ebp,edi - -;;; int best_len = s->prev_length; - - -;;; Store the sum of s->window + best_len in esi locally, and in esi. - - lea rsi,[r10+r11] - -;;; register ush scan_start = *(ushf*)scan; -;;; register ush scan_end = *(ushf*)(scan+best_len-1); -;;; Posf *prev = s->prev; - - movzx r12d,word ptr [r9] - movzx ebx, word ptr [r9 + r11 - 1] - - mov rdi, prev_ad - -;;; Jump into the main loop. - - mov edx, [chainlenwmask] - - cmp bx,word ptr [rsi + r8 - 1] - jz LookupLoopIsZero - -LookupLoop1: - and r8d, edx - - movzx r8d, word ptr [rdi + r8*2] - cmp r8d, ebp - jbe LeaveNow - sub edx, 00010000h - js LeaveNow - -LoopEntry1: - cmp bx,word ptr [rsi + r8 - 1] - jz LookupLoopIsZero - -LookupLoop2: - and r8d, edx - - movzx r8d, word ptr [rdi + r8*2] - cmp r8d, ebp - jbe LeaveNow - sub edx, 00010000h - js LeaveNow - -LoopEntry2: - cmp bx,word ptr [rsi + r8 - 1] - jz LookupLoopIsZero - -LookupLoop4: - and r8d, edx - - movzx r8d, word ptr [rdi + r8*2] - cmp r8d, ebp - jbe LeaveNow - sub edx, 00010000h - js LeaveNow - -LoopEntry4: - - cmp bx,word ptr [rsi + r8 - 1] - jnz LookupLoop1 - jmp LookupLoopIsZero - - -;;; do { -;;; match = s->window + cur_match; -;;; if (*(ushf*)(match+best_len-1) != scan_end || -;;; *(ushf*)match != scan_start) continue; -;;; [...] -;;; } while ((cur_match = prev[cur_match & wmask]) > limit -;;; && --chain_length != 0); -;;; -;;; Here is the inner loop of the function. The function will spend the -;;; majority of its time in this loop, and majority of that time will -;;; be spent in the first ten instructions. -;;; -;;; Within this loop: -;;; ebx = scanend -;;; r8d = curmatch -;;; edx = chainlenwmask - i.e., ((chainlen << 16) | wmask) -;;; esi = windowbestlen - i.e., (window + bestlen) -;;; edi = prev -;;; ebp = limit - -LookupLoop: - and r8d, edx - - movzx r8d, word ptr [rdi + r8*2] - cmp r8d, ebp - jbe LeaveNow - sub edx, 00010000h - js LeaveNow - -LoopEntry: - - cmp bx,word ptr [rsi + r8 - 1] - jnz LookupLoop1 -LookupLoopIsZero: - cmp r12w, word ptr [r10 + r8] - jnz LookupLoop1 - - -;;; Store the current value of chainlen. - mov [chainlenwmask], edx - -;;; Point edi to the string under scrutiny, and esi to the string we -;;; are hoping to match it up with. In actuality, esi and edi are -;;; both pointed (MAX_MATCH_8 - scanalign) bytes ahead, and edx is -;;; initialized to -(MAX_MATCH_8 - scanalign). - - lea rsi,[r8+r10] - mov rdx, 0fffffffffffffef8h; -(MAX_MATCH_8) - lea rsi, [rsi + r13 + 0108h] ;MAX_MATCH_8] - lea rdi, [r9 + r13 + 0108h] ;MAX_MATCH_8] - - prefetcht1 [rsi+rdx] - prefetcht1 [rdi+rdx] - - -;;; Test the strings for equality, 8 bytes at a time. At the end, -;;; adjust rdx so that it is offset to the exact byte that mismatched. -;;; -;;; We already know at this point that the first three bytes of the -;;; strings match each other, and they can be safely passed over before -;;; starting the compare loop. So what this code does is skip over 0-3 -;;; bytes, as much as necessary in order to dword-align the edi -;;; pointer. (rsi will still be misaligned three times out of four.) -;;; -;;; It should be confessed that this loop usually does not represent -;;; much of the total running time. Replacing it with a more -;;; straightforward "rep cmpsb" would not drastically degrade -;;; performance. - - -LoopCmps: - mov rax, [rsi + rdx] - xor rax, [rdi + rdx] - jnz LeaveLoopCmps - - mov rax, [rsi + rdx + 8] - xor rax, [rdi + rdx + 8] - jnz LeaveLoopCmps8 - - - mov rax, [rsi + rdx + 8+8] - xor rax, [rdi + rdx + 8+8] - jnz LeaveLoopCmps16 - - add rdx,8+8+8 - - jnz short LoopCmps - jmp short LenMaximum -LeaveLoopCmps16: add rdx,8 -LeaveLoopCmps8: add rdx,8 -LeaveLoopCmps: - - test eax, 0000FFFFh - jnz LenLower - - test eax,0ffffffffh - - jnz LenLower32 - - add rdx,4 - shr rax,32 - or ax,ax - jnz LenLower - -LenLower32: - shr eax,16 - add rdx,2 -LenLower: sub al, 1 - adc rdx, 0 -;;; Calculate the length of the match. If it is longer than MAX_MATCH, -;;; then automatically accept it as the best possible match and leave. - - lea rax, [rdi + rdx] - sub rax, r9 - cmp eax, MAX_MATCH - jge LenMaximum - -;;; If the length of the match is not longer than the best match we -;;; have so far, then forget it and return to the lookup loop. -;/////////////////////////////////// - - cmp eax, r11d - jg LongerMatch - - lea rsi,[r10+r11] - - mov rdi, prev_ad - mov edx, [chainlenwmask] - jmp LookupLoop - -;;; s->match_start = cur_match; -;;; best_len = len; -;;; if (len >= nice_match) break; -;;; scan_end = *(ushf*)(scan+best_len-1); - -LongerMatch: - mov r11d, eax - mov match_start, r8d - cmp eax, [nicematch] - jge LeaveNow - - lea rsi,[r10+rax] - - movzx ebx, word ptr [r9 + rax - 1] - mov rdi, prev_ad - mov edx, [chainlenwmask] - jmp LookupLoop - -;;; Accept the current string, with the maximum possible length. - -LenMaximum: - mov r11d,MAX_MATCH - mov match_start, r8d - -;;; if ((uInt)best_len <= s->lookahead) return (uInt)best_len; -;;; return s->lookahead; - -LeaveNow: -IFDEF INFOZIP - mov eax,r11d -ELSE - mov eax, Lookahead - cmp r11d, eax - cmovng eax, r11d -ENDIF - -;;; Restore the stack and return from whence we came. - - - mov rsi,[save_rsi] - mov rdi,[save_rdi] - mov rbx,[save_rbx] - mov rbp,[save_rbp] - mov r12,[save_r12] - mov r13,[save_r13] -; mov r14,[save_r14] -; mov r15,[save_r15] - - - ret 0 -; please don't remove this string ! -; Your can freely use gvmat64 in any free or commercial app -; but it is far better don't remove the string in the binary! - db 0dh,0ah,"asm686 with masm, optimised assembly code from Brian Raiter, written 1998, converted to amd 64 by Gilles Vollant 2005",0dh,0ah,0 -longest_match ENDP - -match_init PROC - ret 0 -match_init ENDP - - -END diff --git a/Library/zlib/inffas32.asm b/Library/zlib/inffas32.asm deleted file mode 100644 index 03d20f838..000000000 --- a/Library/zlib/inffas32.asm +++ /dev/null @@ -1,1080 +0,0 @@ -;/* inffas32.asm is a hand tuned assembler version of inffast.c -- fast decoding -; * -; * inffas32.asm is derivated from inffas86.c, with translation of assembly code -; * -; * Copyright (C) 1995-2003 Mark Adler -; * For conditions of distribution and use, see copyright notice in zlib.h -; * -; * Copyright (C) 2003 Chris Anderson -; * Please use the copyright conditions above. -; * -; * Mar-13-2003 -- Most of this is derived from inffast.S which is derived from -; * the gcc -S output of zlib-1.2.0/inffast.c. Zlib-1.2.0 is in beta release at -; * the moment. I have successfully compiled and tested this code with gcc2.96, -; * gcc3.2, icc5.0, msvc6.0. It is very close to the speed of inffast.S -; * compiled with gcc -DNO_MMX, but inffast.S is still faster on the P3 with MMX -; * enabled. I will attempt to merge the MMX code into this version. Newer -; * versions of this and inffast.S can be found at -; * http://www.eetbeetee.com/zlib/ and http://www.charm.net/~christop/zlib/ -; * -; * 2005 : modification by Gilles Vollant -; */ -; For Visual C++ 4.x and higher and ML 6.x and higher -; ml.exe is in directory \MASM611C of Win95 DDK -; ml.exe is also distributed in http://www.masm32.com/masmdl.htm -; and in VC++2003 toolkit at http://msdn.microsoft.com/visualc/vctoolkit2003/ -; -; -; compile with command line option -; ml /coff /Zi /c /Flinffas32.lst inffas32.asm - -; if you define NO_GZIP (see inflate.h), compile with -; ml /coff /Zi /c /Flinffas32.lst /DNO_GUNZIP inffas32.asm - - -; zlib122sup is 0 fort zlib 1.2.2.1 and lower -; zlib122sup is 8 fort zlib 1.2.2.2 and more (with addition of dmax and head -; in inflate_state in inflate.h) -zlib1222sup equ 8 - - -IFDEF GUNZIP - INFLATE_MODE_TYPE equ 11 - INFLATE_MODE_BAD equ 26 -ELSE - IFNDEF NO_GUNZIP - INFLATE_MODE_TYPE equ 11 - INFLATE_MODE_BAD equ 26 - ELSE - INFLATE_MODE_TYPE equ 3 - INFLATE_MODE_BAD equ 17 - ENDIF -ENDIF - - -; 75 "inffast.S" -;FILE "inffast.S" - -;;;GLOBAL _inflate_fast - -;;;SECTION .text - - - - .586p - .mmx - - name inflate_fast_x86 - .MODEL FLAT - -_DATA segment -inflate_fast_use_mmx: - dd 1 - - -_TEXT segment - - - -ALIGN 4 - db 'Fast decoding Code from Chris Anderson' - db 0 - -ALIGN 4 -invalid_literal_length_code_msg: - db 'invalid literal/length code' - db 0 - -ALIGN 4 -invalid_distance_code_msg: - db 'invalid distance code' - db 0 - -ALIGN 4 -invalid_distance_too_far_msg: - db 'invalid distance too far back' - db 0 - - -ALIGN 4 -inflate_fast_mask: -dd 0 -dd 1 -dd 3 -dd 7 -dd 15 -dd 31 -dd 63 -dd 127 -dd 255 -dd 511 -dd 1023 -dd 2047 -dd 4095 -dd 8191 -dd 16383 -dd 32767 -dd 65535 -dd 131071 -dd 262143 -dd 524287 -dd 1048575 -dd 2097151 -dd 4194303 -dd 8388607 -dd 16777215 -dd 33554431 -dd 67108863 -dd 134217727 -dd 268435455 -dd 536870911 -dd 1073741823 -dd 2147483647 -dd 4294967295 - - -mode_state equ 0 ;/* state->mode */ -wsize_state equ (32+zlib1222sup) ;/* state->wsize */ -write_state equ (36+4+zlib1222sup) ;/* state->write */ -window_state equ (40+4+zlib1222sup) ;/* state->window */ -hold_state equ (44+4+zlib1222sup) ;/* state->hold */ -bits_state equ (48+4+zlib1222sup) ;/* state->bits */ -lencode_state equ (64+4+zlib1222sup) ;/* state->lencode */ -distcode_state equ (68+4+zlib1222sup) ;/* state->distcode */ -lenbits_state equ (72+4+zlib1222sup) ;/* state->lenbits */ -distbits_state equ (76+4+zlib1222sup) ;/* state->distbits */ - - -;;SECTION .text -; 205 "inffast.S" -;GLOBAL inflate_fast_use_mmx - -;SECTION .data - - -; GLOBAL inflate_fast_use_mmx:object -;.size inflate_fast_use_mmx, 4 -; 226 "inffast.S" -;SECTION .text - -ALIGN 4 -_inflate_fast proc near -.FPO (16, 4, 0, 0, 1, 0) - push edi - push esi - push ebp - push ebx - pushfd - sub esp,64 - cld - - - - - mov esi, [esp+88] - mov edi, [esi+28] - - - - - - - - mov edx, [esi+4] - mov eax, [esi+0] - - add edx,eax - sub edx,11 - - mov [esp+44],eax - mov [esp+20],edx - - mov ebp, [esp+92] - mov ecx, [esi+16] - mov ebx, [esi+12] - - sub ebp,ecx - neg ebp - add ebp,ebx - - sub ecx,257 - add ecx,ebx - - mov [esp+60],ebx - mov [esp+40],ebp - mov [esp+16],ecx -; 285 "inffast.S" - mov eax, [edi+lencode_state] - mov ecx, [edi+distcode_state] - - mov [esp+8],eax - mov [esp+12],ecx - - mov eax,1 - mov ecx, [edi+lenbits_state] - shl eax,cl - dec eax - mov [esp+0],eax - - mov eax,1 - mov ecx, [edi+distbits_state] - shl eax,cl - dec eax - mov [esp+4],eax - - mov eax, [edi+wsize_state] - mov ecx, [edi+write_state] - mov edx, [edi+window_state] - - mov [esp+52],eax - mov [esp+48],ecx - mov [esp+56],edx - - mov ebp, [edi+hold_state] - mov ebx, [edi+bits_state] -; 321 "inffast.S" - mov esi, [esp+44] - mov ecx, [esp+20] - cmp ecx,esi - ja L_align_long - - add ecx,11 - sub ecx,esi - mov eax,12 - sub eax,ecx - lea edi, [esp+28] - rep movsb - mov ecx,eax - xor eax,eax - rep stosb - lea esi, [esp+28] - mov [esp+20],esi - jmp L_is_aligned - - -L_align_long: - test esi,3 - jz L_is_aligned - xor eax,eax - mov al, [esi] - inc esi - mov ecx,ebx - add ebx,8 - shl eax,cl - or ebp,eax - jmp L_align_long - -L_is_aligned: - mov edi, [esp+60] -; 366 "inffast.S" -L_check_mmx: - cmp dword ptr [inflate_fast_use_mmx],2 - je L_init_mmx - ja L_do_loop - - push eax - push ebx - push ecx - push edx - pushfd - mov eax, [esp] - xor dword ptr [esp],0200000h - - - - - popfd - pushfd - pop edx - xor edx,eax - jz L_dont_use_mmx - xor eax,eax - cpuid - cmp ebx,0756e6547h - jne L_dont_use_mmx - cmp ecx,06c65746eh - jne L_dont_use_mmx - cmp edx,049656e69h - jne L_dont_use_mmx - mov eax,1 - cpuid - shr eax,8 - and eax,15 - cmp eax,6 - jne L_dont_use_mmx - test edx,0800000h - jnz L_use_mmx - jmp L_dont_use_mmx -L_use_mmx: - mov dword ptr [inflate_fast_use_mmx],2 - jmp L_check_mmx_pop -L_dont_use_mmx: - mov dword ptr [inflate_fast_use_mmx],3 -L_check_mmx_pop: - pop edx - pop ecx - pop ebx - pop eax - jmp L_check_mmx -; 426 "inffast.S" -ALIGN 4 -L_do_loop: -; 437 "inffast.S" - cmp bl,15 - ja L_get_length_code - - xor eax,eax - lodsw - mov cl,bl - add bl,16 - shl eax,cl - or ebp,eax - -L_get_length_code: - mov edx, [esp+0] - mov ecx, [esp+8] - and edx,ebp - mov eax, [ecx+edx*4] - -L_dolen: - - - - - - - mov cl,ah - sub bl,ah - shr ebp,cl - - - - - - - test al,al - jnz L_test_for_length_base - - shr eax,16 - stosb - -L_while_test: - - - cmp [esp+16],edi - jbe L_break_loop - - cmp [esp+20],esi - ja L_do_loop - jmp L_break_loop - -L_test_for_length_base: -; 502 "inffast.S" - mov edx,eax - shr edx,16 - mov cl,al - - test al,16 - jz L_test_for_second_level_length - and cl,15 - jz L_save_len - cmp bl,cl - jae L_add_bits_to_len - - mov ch,cl - xor eax,eax - lodsw - mov cl,bl - add bl,16 - shl eax,cl - or ebp,eax - mov cl,ch - -L_add_bits_to_len: - mov eax,1 - shl eax,cl - dec eax - sub bl,cl - and eax,ebp - shr ebp,cl - add edx,eax - -L_save_len: - mov [esp+24],edx - - -L_decode_distance: -; 549 "inffast.S" - cmp bl,15 - ja L_get_distance_code - - xor eax,eax - lodsw - mov cl,bl - add bl,16 - shl eax,cl - or ebp,eax - -L_get_distance_code: - mov edx, [esp+4] - mov ecx, [esp+12] - and edx,ebp - mov eax, [ecx+edx*4] - - -L_dodist: - mov edx,eax - shr edx,16 - mov cl,ah - sub bl,ah - shr ebp,cl -; 584 "inffast.S" - mov cl,al - - test al,16 - jz L_test_for_second_level_dist - and cl,15 - jz L_check_dist_one - cmp bl,cl - jae L_add_bits_to_dist - - mov ch,cl - xor eax,eax - lodsw - mov cl,bl - add bl,16 - shl eax,cl - or ebp,eax - mov cl,ch - -L_add_bits_to_dist: - mov eax,1 - shl eax,cl - dec eax - sub bl,cl - and eax,ebp - shr ebp,cl - add edx,eax - jmp L_check_window - -L_check_window: -; 625 "inffast.S" - mov [esp+44],esi - mov eax,edi - sub eax, [esp+40] - - cmp eax,edx - jb L_clip_window - - mov ecx, [esp+24] - mov esi,edi - sub esi,edx - - sub ecx,3 - mov al, [esi] - mov [edi],al - mov al, [esi+1] - mov dl, [esi+2] - add esi,3 - mov [edi+1],al - mov [edi+2],dl - add edi,3 - rep movsb - - mov esi, [esp+44] - jmp L_while_test - -ALIGN 4 -L_check_dist_one: - cmp edx,1 - jne L_check_window - cmp [esp+40],edi - je L_check_window - - dec edi - mov ecx, [esp+24] - mov al, [edi] - sub ecx,3 - - mov [edi+1],al - mov [edi+2],al - mov [edi+3],al - add edi,4 - rep stosb - - jmp L_while_test - -ALIGN 4 -L_test_for_second_level_length: - - - - - test al,64 - jnz L_test_for_end_of_block - - mov eax,1 - shl eax,cl - dec eax - and eax,ebp - add eax,edx - mov edx, [esp+8] - mov eax, [edx+eax*4] - jmp L_dolen - -ALIGN 4 -L_test_for_second_level_dist: - - - - - test al,64 - jnz L_invalid_distance_code - - mov eax,1 - shl eax,cl - dec eax - and eax,ebp - add eax,edx - mov edx, [esp+12] - mov eax, [edx+eax*4] - jmp L_dodist - -ALIGN 4 -L_clip_window: -; 721 "inffast.S" - mov ecx,eax - mov eax, [esp+52] - neg ecx - mov esi, [esp+56] - - cmp eax,edx - jb L_invalid_distance_too_far - - add ecx,edx - cmp dword ptr [esp+48],0 - jne L_wrap_around_window - - sub eax,ecx - add esi,eax -; 749 "inffast.S" - mov eax, [esp+24] - cmp eax,ecx - jbe L_do_copy1 - - sub eax,ecx - rep movsb - mov esi,edi - sub esi,edx - jmp L_do_copy1 - - cmp eax,ecx - jbe L_do_copy1 - - sub eax,ecx - rep movsb - mov esi,edi - sub esi,edx - jmp L_do_copy1 - -L_wrap_around_window: -; 793 "inffast.S" - mov eax, [esp+48] - cmp ecx,eax - jbe L_contiguous_in_window - - add esi, [esp+52] - add esi,eax - sub esi,ecx - sub ecx,eax - - - mov eax, [esp+24] - cmp eax,ecx - jbe L_do_copy1 - - sub eax,ecx - rep movsb - mov esi, [esp+56] - mov ecx, [esp+48] - cmp eax,ecx - jbe L_do_copy1 - - sub eax,ecx - rep movsb - mov esi,edi - sub esi,edx - jmp L_do_copy1 - -L_contiguous_in_window: -; 836 "inffast.S" - add esi,eax - sub esi,ecx - - - mov eax, [esp+24] - cmp eax,ecx - jbe L_do_copy1 - - sub eax,ecx - rep movsb - mov esi,edi - sub esi,edx - -L_do_copy1: -; 862 "inffast.S" - mov ecx,eax - rep movsb - - mov esi, [esp+44] - jmp L_while_test -; 878 "inffast.S" -ALIGN 4 -L_init_mmx: - emms - - - - - - movd mm0,ebp - mov ebp,ebx -; 896 "inffast.S" - movd mm4,dword ptr [esp+0] - movq mm3,mm4 - movd mm5,dword ptr [esp+4] - movq mm2,mm5 - pxor mm1,mm1 - mov ebx, [esp+8] - jmp L_do_loop_mmx - -ALIGN 4 -L_do_loop_mmx: - psrlq mm0,mm1 - - cmp ebp,32 - ja L_get_length_code_mmx - - movd mm6,ebp - movd mm7,dword ptr [esi] - add esi,4 - psllq mm7,mm6 - add ebp,32 - por mm0,mm7 - -L_get_length_code_mmx: - pand mm4,mm0 - movd eax,mm4 - movq mm4,mm3 - mov eax, [ebx+eax*4] - -L_dolen_mmx: - movzx ecx,ah - movd mm1,ecx - sub ebp,ecx - - test al,al - jnz L_test_for_length_base_mmx - - shr eax,16 - stosb - -L_while_test_mmx: - - - cmp [esp+16],edi - jbe L_break_loop - - cmp [esp+20],esi - ja L_do_loop_mmx - jmp L_break_loop - -L_test_for_length_base_mmx: - - mov edx,eax - shr edx,16 - - test al,16 - jz L_test_for_second_level_length_mmx - and eax,15 - jz L_decode_distance_mmx - - psrlq mm0,mm1 - movd mm1,eax - movd ecx,mm0 - sub ebp,eax - and ecx, [inflate_fast_mask+eax*4] - add edx,ecx - -L_decode_distance_mmx: - psrlq mm0,mm1 - - cmp ebp,32 - ja L_get_dist_code_mmx - - movd mm6,ebp - movd mm7,dword ptr [esi] - add esi,4 - psllq mm7,mm6 - add ebp,32 - por mm0,mm7 - -L_get_dist_code_mmx: - mov ebx, [esp+12] - pand mm5,mm0 - movd eax,mm5 - movq mm5,mm2 - mov eax, [ebx+eax*4] - -L_dodist_mmx: - - movzx ecx,ah - mov ebx,eax - shr ebx,16 - sub ebp,ecx - movd mm1,ecx - - test al,16 - jz L_test_for_second_level_dist_mmx - and eax,15 - jz L_check_dist_one_mmx - -L_add_bits_to_dist_mmx: - psrlq mm0,mm1 - movd mm1,eax - movd ecx,mm0 - sub ebp,eax - and ecx, [inflate_fast_mask+eax*4] - add ebx,ecx - -L_check_window_mmx: - mov [esp+44],esi - mov eax,edi - sub eax, [esp+40] - - cmp eax,ebx - jb L_clip_window_mmx - - mov ecx,edx - mov esi,edi - sub esi,ebx - - sub ecx,3 - mov al, [esi] - mov [edi],al - mov al, [esi+1] - mov dl, [esi+2] - add esi,3 - mov [edi+1],al - mov [edi+2],dl - add edi,3 - rep movsb - - mov esi, [esp+44] - mov ebx, [esp+8] - jmp L_while_test_mmx - -ALIGN 4 -L_check_dist_one_mmx: - cmp ebx,1 - jne L_check_window_mmx - cmp [esp+40],edi - je L_check_window_mmx - - dec edi - mov ecx,edx - mov al, [edi] - sub ecx,3 - - mov [edi+1],al - mov [edi+2],al - mov [edi+3],al - add edi,4 - rep stosb - - mov ebx, [esp+8] - jmp L_while_test_mmx - -ALIGN 4 -L_test_for_second_level_length_mmx: - test al,64 - jnz L_test_for_end_of_block - - and eax,15 - psrlq mm0,mm1 - movd ecx,mm0 - and ecx, [inflate_fast_mask+eax*4] - add ecx,edx - mov eax, [ebx+ecx*4] - jmp L_dolen_mmx - -ALIGN 4 -L_test_for_second_level_dist_mmx: - test al,64 - jnz L_invalid_distance_code - - and eax,15 - psrlq mm0,mm1 - movd ecx,mm0 - and ecx, [inflate_fast_mask+eax*4] - mov eax, [esp+12] - add ecx,ebx - mov eax, [eax+ecx*4] - jmp L_dodist_mmx - -ALIGN 4 -L_clip_window_mmx: - - mov ecx,eax - mov eax, [esp+52] - neg ecx - mov esi, [esp+56] - - cmp eax,ebx - jb L_invalid_distance_too_far - - add ecx,ebx - cmp dword ptr [esp+48],0 - jne L_wrap_around_window_mmx - - sub eax,ecx - add esi,eax - - cmp edx,ecx - jbe L_do_copy1_mmx - - sub edx,ecx - rep movsb - mov esi,edi - sub esi,ebx - jmp L_do_copy1_mmx - - cmp edx,ecx - jbe L_do_copy1_mmx - - sub edx,ecx - rep movsb - mov esi,edi - sub esi,ebx - jmp L_do_copy1_mmx - -L_wrap_around_window_mmx: - - mov eax, [esp+48] - cmp ecx,eax - jbe L_contiguous_in_window_mmx - - add esi, [esp+52] - add esi,eax - sub esi,ecx - sub ecx,eax - - - cmp edx,ecx - jbe L_do_copy1_mmx - - sub edx,ecx - rep movsb - mov esi, [esp+56] - mov ecx, [esp+48] - cmp edx,ecx - jbe L_do_copy1_mmx - - sub edx,ecx - rep movsb - mov esi,edi - sub esi,ebx - jmp L_do_copy1_mmx - -L_contiguous_in_window_mmx: - - add esi,eax - sub esi,ecx - - - cmp edx,ecx - jbe L_do_copy1_mmx - - sub edx,ecx - rep movsb - mov esi,edi - sub esi,ebx - -L_do_copy1_mmx: - - - mov ecx,edx - rep movsb - - mov esi, [esp+44] - mov ebx, [esp+8] - jmp L_while_test_mmx -; 1174 "inffast.S" -L_invalid_distance_code: - - - - - - mov ecx, invalid_distance_code_msg - mov edx,INFLATE_MODE_BAD - jmp L_update_stream_state - -L_test_for_end_of_block: - - - - - - test al,32 - jz L_invalid_literal_length_code - - mov ecx,0 - mov edx,INFLATE_MODE_TYPE - jmp L_update_stream_state - -L_invalid_literal_length_code: - - - - - - mov ecx, invalid_literal_length_code_msg - mov edx,INFLATE_MODE_BAD - jmp L_update_stream_state - -L_invalid_distance_too_far: - - - - mov esi, [esp+44] - mov ecx, invalid_distance_too_far_msg - mov edx,INFLATE_MODE_BAD - jmp L_update_stream_state - -L_update_stream_state: - - mov eax, [esp+88] - test ecx,ecx - jz L_skip_msg - mov [eax+24],ecx -L_skip_msg: - mov eax, [eax+28] - mov [eax+mode_state],edx - jmp L_break_loop - -ALIGN 4 -L_break_loop: -; 1243 "inffast.S" - cmp dword ptr [inflate_fast_use_mmx],2 - jne L_update_next_in - - - - mov ebx,ebp - -L_update_next_in: -; 1266 "inffast.S" - mov eax, [esp+88] - mov ecx,ebx - mov edx, [eax+28] - shr ecx,3 - sub esi,ecx - shl ecx,3 - sub ebx,ecx - mov [eax+12],edi - mov [edx+bits_state],ebx - mov ecx,ebx - - lea ebx, [esp+28] - cmp [esp+20],ebx - jne L_buf_not_used - - sub esi,ebx - mov ebx, [eax+0] - mov [esp+20],ebx - add esi,ebx - mov ebx, [eax+4] - sub ebx,11 - add [esp+20],ebx - -L_buf_not_used: - mov [eax+0],esi - - mov ebx,1 - shl ebx,cl - dec ebx - - - - - - cmp dword ptr [inflate_fast_use_mmx],2 - jne L_update_hold - - - - psrlq mm0,mm1 - movd ebp,mm0 - - emms - -L_update_hold: - - - - and ebp,ebx - mov [edx+hold_state],ebp - - - - - mov ebx, [esp+20] - cmp ebx,esi - jbe L_last_is_smaller - - sub ebx,esi - add ebx,11 - mov [eax+4],ebx - jmp L_fixup_out -L_last_is_smaller: - sub esi,ebx - neg esi - add esi,11 - mov [eax+4],esi - - - - -L_fixup_out: - - mov ebx, [esp+16] - cmp ebx,edi - jbe L_end_is_smaller - - sub ebx,edi - add ebx,257 - mov [eax+16],ebx - jmp L_done -L_end_is_smaller: - sub edi,ebx - neg edi - add edi,257 - mov [eax+16],edi - - - - - -L_done: - add esp,64 - popfd - pop ebx - pop ebp - pop esi - pop edi - ret -_inflate_fast endp - -_TEXT ends -end diff --git a/Library/zlib/inffas8664.c b/Library/zlib/inffas8664.c deleted file mode 100644 index e8af06fa0..000000000 --- a/Library/zlib/inffas8664.c +++ /dev/null @@ -1,186 +0,0 @@ -/* inffas8664.c is a hand tuned assembler version of inffast.c - fast decoding - * version for AMD64 on Windows using Microsoft C compiler - * - * Copyright (C) 1995-2003 Mark Adler - * For conditions of distribution and use, see copyright notice in zlib.h - * - * Copyright (C) 2003 Chris Anderson - * Please use the copyright conditions above. - * - * 2005 - Adaptation to Microsoft C Compiler for AMD64 by Gilles Vollant - * - * inffas8664.c call function inffas8664fnc in inffasx64.asm - * inffasx64.asm is automatically convert from AMD64 portion of inffas86.c - * - * Dec-29-2003 -- I added AMD64 inflate asm support. This version is also - * slightly quicker on x86 systems because, instead of using rep movsb to copy - * data, it uses rep movsw, which moves data in 2-byte chunks instead of single - * bytes. I've tested the AMD64 code on a Fedora Core 1 + the x86_64 updates - * from http://fedora.linux.duke.edu/fc1_x86_64 - * which is running on an Athlon 64 3000+ / Gigabyte GA-K8VT800M system with - * 1GB ram. The 64-bit version is about 4% faster than the 32-bit version, - * when decompressing mozilla-source-1.3.tar.gz. - * - * Mar-13-2003 -- Most of this is derived from inffast.S which is derived from - * the gcc -S output of zlib-1.2.0/inffast.c. Zlib-1.2.0 is in beta release at - * the moment. I have successfully compiled and tested this code with gcc2.96, - * gcc3.2, icc5.0, msvc6.0. It is very close to the speed of inffast.S - * compiled with gcc -DNO_MMX, but inffast.S is still faster on the P3 with MMX - * enabled. I will attempt to merge the MMX code into this version. Newer - * versions of this and inffast.S can be found at - * http://www.eetbeetee.com/zlib/ and http://www.charm.net/~christop/zlib/ - * - */ - -#include -#include "zutil.h" -#include "inftrees.h" -#include "inflate.h" -#include "inffast.h" - -/* Mark Adler's comments from inffast.c: */ - -/* - Decode literal, length, and distance codes and write out the resulting - literal and match bytes until either not enough input or output is - available, an end-of-block is encountered, or a data error is encountered. - When large enough input and output buffers are supplied to inflate(), for - example, a 16K input buffer and a 64K output buffer, more than 95% of the - inflate execution time is spent in this routine. - - Entry assumptions: - - state->mode == LEN - strm->avail_in >= 6 - strm->avail_out >= 258 - start >= strm->avail_out - state->bits < 8 - - On return, state->mode is one of: - - LEN -- ran out of enough output space or enough available input - TYPE -- reached end of block code, inflate() to interpret next block - BAD -- error in block data - - Notes: - - - The maximum input bits used by a length/distance pair is 15 bits for the - length code, 5 bits for the length extra, 15 bits for the distance code, - and 13 bits for the distance extra. This totals 48 bits, or six bytes. - Therefore if strm->avail_in >= 6, then there is enough input to avoid - checking for available input while decoding. - - - The maximum bytes that a single length/distance pair can output is 258 - bytes, which is the maximum length that can be coded. inflate_fast() - requires strm->avail_out >= 258 for each loop to avoid checking for - output space. - */ - - - - typedef struct inffast_ar { -/* 64 32 x86 x86_64 */ -/* ar offset register */ -/* 0 0 */ void *esp; /* esp save */ -/* 8 4 */ void *ebp; /* ebp save */ -/* 16 8 */ unsigned char FAR *in; /* esi rsi local strm->next_in */ -/* 24 12 */ unsigned char FAR *last; /* r9 while in < last */ -/* 32 16 */ unsigned char FAR *out; /* edi rdi local strm->next_out */ -/* 40 20 */ unsigned char FAR *beg; /* inflate()'s init next_out */ -/* 48 24 */ unsigned char FAR *end; /* r10 while out < end */ -/* 56 28 */ unsigned char FAR *window;/* size of window, wsize!=0 */ -/* 64 32 */ code const FAR *lcode; /* ebp rbp local strm->lencode */ -/* 72 36 */ code const FAR *dcode; /* r11 local strm->distcode */ -/* 80 40 */ size_t /*unsigned long */hold; /* edx rdx local strm->hold */ -/* 88 44 */ unsigned bits; /* ebx rbx local strm->bits */ -/* 92 48 */ unsigned wsize; /* window size */ -/* 96 52 */ unsigned write; /* window write index */ -/*100 56 */ unsigned lmask; /* r12 mask for lcode */ -/*104 60 */ unsigned dmask; /* r13 mask for dcode */ -/*108 64 */ unsigned len; /* r14 match length */ -/*112 68 */ unsigned dist; /* r15 match distance */ -/*116 72 */ unsigned status; /* set when state chng*/ - } type_ar; -#ifdef ASMINF - -void inflate_fast(strm, start) -z_streamp strm; -unsigned start; /* inflate()'s starting value for strm->avail_out */ -{ - struct inflate_state FAR *state; - type_ar ar; - void inffas8664fnc(struct inffast_ar * par); - - - -#if (defined( __GNUC__ ) && defined( __amd64__ ) && ! defined( __i386 )) || (defined(_MSC_VER) && defined(_M_AMD64)) -#define PAD_AVAIL_IN 6 -#define PAD_AVAIL_OUT 258 -#else -#define PAD_AVAIL_IN 5 -#define PAD_AVAIL_OUT 257 -#endif - - /* copy state to local variables */ - state = (struct inflate_state FAR *)strm->state; - - ar.in = strm->next_in; - ar.last = ar.in + (strm->avail_in - PAD_AVAIL_IN); - ar.out = strm->next_out; - ar.beg = ar.out - (start - strm->avail_out); - ar.end = ar.out + (strm->avail_out - PAD_AVAIL_OUT); - ar.wsize = state->wsize; - ar.write = state->wnext; - ar.window = state->window; - ar.hold = state->hold; - ar.bits = state->bits; - ar.lcode = state->lencode; - ar.dcode = state->distcode; - ar.lmask = (1U << state->lenbits) - 1; - ar.dmask = (1U << state->distbits) - 1; - - /* decode literals and length/distances until end-of-block or not enough - input data or output space */ - - /* align in on 1/2 hold size boundary */ - while (((size_t)(void *)ar.in & (sizeof(ar.hold) / 2 - 1)) != 0) { - ar.hold += (unsigned long)*ar.in++ << ar.bits; - ar.bits += 8; - } - - inffas8664fnc(&ar); - - if (ar.status > 1) { - if (ar.status == 2) - strm->msg = "invalid literal/length code"; - else if (ar.status == 3) - strm->msg = "invalid distance code"; - else - strm->msg = "invalid distance too far back"; - state->mode = BAD; - } - else if ( ar.status == 1 ) { - state->mode = TYPE; - } - - /* return unused bytes (on entry, bits < 8, so in won't go too far back) */ - ar.len = ar.bits >> 3; - ar.in -= ar.len; - ar.bits -= ar.len << 3; - ar.hold &= (1U << ar.bits) - 1; - - /* update state and return */ - strm->next_in = ar.in; - strm->next_out = ar.out; - strm->avail_in = (unsigned)(ar.in < ar.last ? - PAD_AVAIL_IN + (ar.last - ar.in) : - PAD_AVAIL_IN - (ar.in - ar.last)); - strm->avail_out = (unsigned)(ar.out < ar.end ? - PAD_AVAIL_OUT + (ar.end - ar.out) : - PAD_AVAIL_OUT - (ar.out - ar.end)); - state->hold = (unsigned long)ar.hold; - state->bits = ar.bits; - return; -} - -#endif diff --git a/Library/zlib/match686.asm b/Library/zlib/match686.asm deleted file mode 100644 index 3b09212f8..000000000 --- a/Library/zlib/match686.asm +++ /dev/null @@ -1,479 +0,0 @@ -; match686.asm -- Asm portion of the optimized longest_match for 32 bits x86 -; Copyright (C) 1995-1996 Jean-loup Gailly, Brian Raiter and Gilles Vollant. -; File written by Gilles Vollant, by converting match686.S from Brian Raiter -; for MASM. This is as assembly version of longest_match -; from Jean-loup Gailly in deflate.c -; -; http://www.zlib.net -; http://www.winimage.com/zLibDll -; http://www.muppetlabs.com/~breadbox/software/assembly.html -; -; For Visual C++ 4.x and higher and ML 6.x and higher -; ml.exe is distributed in -; http://www.microsoft.com/downloads/details.aspx?FamilyID=7a1c9da0-0510-44a2-b042-7ef370530c64 -; -; this file contain two implementation of longest_match -; -; this longest_match was written by Brian raiter (1998), optimized for Pentium Pro -; (and the faster known version of match_init on modern Core 2 Duo and AMD Phenom) -; -; for using an assembly version of longest_match, you need define ASMV in project -; -; compile the asm file running -; ml /coff /Zi /c /Flmatch686.lst match686.asm -; and do not include match686.obj in your project -; -; note: contrib of zLib 1.2.3 and earlier contained both a deprecated version for -; Pentium (prior Pentium Pro) and this version for Pentium Pro and modern processor -; with autoselect (with cpu detection code) -; if you want support the old pentium optimization, you can still use these version -; -; this file is not optimized for old pentium, but it compatible with all x86 32 bits -; processor (starting 80386) -; -; -; see below : zlib1222add must be adjuster if you use a zlib version < 1.2.2.2 - -;uInt longest_match(s, cur_match) -; deflate_state *s; -; IPos cur_match; /* current match */ - - NbStack equ 76 - cur_match equ dword ptr[esp+NbStack-0] - str_s equ dword ptr[esp+NbStack-4] -; 5 dword on top (ret,ebp,esi,edi,ebx) - adrret equ dword ptr[esp+NbStack-8] - pushebp equ dword ptr[esp+NbStack-12] - pushedi equ dword ptr[esp+NbStack-16] - pushesi equ dword ptr[esp+NbStack-20] - pushebx equ dword ptr[esp+NbStack-24] - - chain_length equ dword ptr [esp+NbStack-28] - limit equ dword ptr [esp+NbStack-32] - best_len equ dword ptr [esp+NbStack-36] - window equ dword ptr [esp+NbStack-40] - prev equ dword ptr [esp+NbStack-44] - scan_start equ word ptr [esp+NbStack-48] - wmask equ dword ptr [esp+NbStack-52] - match_start_ptr equ dword ptr [esp+NbStack-56] - nice_match equ dword ptr [esp+NbStack-60] - scan equ dword ptr [esp+NbStack-64] - - windowlen equ dword ptr [esp+NbStack-68] - match_start equ dword ptr [esp+NbStack-72] - strend equ dword ptr [esp+NbStack-76] - NbStackAdd equ (NbStack-24) - - .386p - - name gvmatch - .MODEL FLAT - - - -; all the +zlib1222add offsets are due to the addition of fields -; in zlib in the deflate_state structure since the asm code was first written -; (if you compile with zlib 1.0.4 or older, use "zlib1222add equ (-4)"). -; (if you compile with zlib between 1.0.5 and 1.2.2.1, use "zlib1222add equ 0"). -; if you compile with zlib 1.2.2.2 or later , use "zlib1222add equ 8"). - - zlib1222add equ 8 - -; Note : these value are good with a 8 bytes boundary pack structure - dep_chain_length equ 74h+zlib1222add - dep_window equ 30h+zlib1222add - dep_strstart equ 64h+zlib1222add - dep_prev_length equ 70h+zlib1222add - dep_nice_match equ 88h+zlib1222add - dep_w_size equ 24h+zlib1222add - dep_prev equ 38h+zlib1222add - dep_w_mask equ 2ch+zlib1222add - dep_good_match equ 84h+zlib1222add - dep_match_start equ 68h+zlib1222add - dep_lookahead equ 6ch+zlib1222add - - -_TEXT segment - -IFDEF NOUNDERLINE - public longest_match - public match_init -ELSE - public _longest_match - public _match_init -ENDIF - - MAX_MATCH equ 258 - MIN_MATCH equ 3 - MIN_LOOKAHEAD equ (MAX_MATCH+MIN_MATCH+1) - - - -MAX_MATCH equ 258 -MIN_MATCH equ 3 -MIN_LOOKAHEAD equ (MAX_MATCH + MIN_MATCH + 1) -MAX_MATCH_8_ equ ((MAX_MATCH + 7) AND 0FFF0h) - - -;;; stack frame offsets - -chainlenwmask equ esp + 0 ; high word: current chain len - ; low word: s->wmask -window equ esp + 4 ; local copy of s->window -windowbestlen equ esp + 8 ; s->window + bestlen -scanstart equ esp + 16 ; first two bytes of string -scanend equ esp + 12 ; last two bytes of string -scanalign equ esp + 20 ; dword-misalignment of string -nicematch equ esp + 24 ; a good enough match size -bestlen equ esp + 28 ; size of best match so far -scan equ esp + 32 ; ptr to string wanting match - -LocalVarsSize equ 36 -; saved ebx byte esp + 36 -; saved edi byte esp + 40 -; saved esi byte esp + 44 -; saved ebp byte esp + 48 -; return address byte esp + 52 -deflatestate equ esp + 56 ; the function arguments -curmatch equ esp + 60 - -;;; Offsets for fields in the deflate_state structure. These numbers -;;; are calculated from the definition of deflate_state, with the -;;; assumption that the compiler will dword-align the fields. (Thus, -;;; changing the definition of deflate_state could easily cause this -;;; program to crash horribly, without so much as a warning at -;;; compile time. Sigh.) - -dsWSize equ 36+zlib1222add -dsWMask equ 44+zlib1222add -dsWindow equ 48+zlib1222add -dsPrev equ 56+zlib1222add -dsMatchLen equ 88+zlib1222add -dsPrevMatch equ 92+zlib1222add -dsStrStart equ 100+zlib1222add -dsMatchStart equ 104+zlib1222add -dsLookahead equ 108+zlib1222add -dsPrevLen equ 112+zlib1222add -dsMaxChainLen equ 116+zlib1222add -dsGoodMatch equ 132+zlib1222add -dsNiceMatch equ 136+zlib1222add - - -;;; match686.asm -- Pentium-Pro-optimized version of longest_match() -;;; Written for zlib 1.1.2 -;;; Copyright (C) 1998 Brian Raiter -;;; You can look at http://www.muppetlabs.com/~breadbox/software/assembly.html -;;; -;; -;; This software is provided 'as-is', without any express or implied -;; warranty. In no event will the authors be held liable for any damages -;; arising from the use of this software. -;; -;; Permission is granted to anyone to use this software for any purpose, -;; including commercial applications, and to alter it and redistribute it -;; freely, subject to the following restrictions: -;; -;; 1. The origin of this software must not be misrepresented; you must not -;; claim that you wrote the original software. If you use this software -;; in a product, an acknowledgment in the product documentation would be -;; appreciated but is not required. -;; 2. Altered source versions must be plainly marked as such, and must not be -;; misrepresented as being the original software -;; 3. This notice may not be removed or altered from any source distribution. -;; - -;GLOBAL _longest_match, _match_init - - -;SECTION .text - -;;; uInt longest_match(deflate_state *deflatestate, IPos curmatch) - -;_longest_match: - IFDEF NOUNDERLINE - longest_match proc near - ELSE - _longest_match proc near - ENDIF -.FPO (9, 4, 0, 0, 1, 0) - -;;; Save registers that the compiler may be using, and adjust esp to -;;; make room for our stack frame. - - push ebp - push edi - push esi - push ebx - sub esp, LocalVarsSize - -;;; Retrieve the function arguments. ecx will hold cur_match -;;; throughout the entire function. edx will hold the pointer to the -;;; deflate_state structure during the function's setup (before -;;; entering the main loop. - - mov edx, [deflatestate] - mov ecx, [curmatch] - -;;; uInt wmask = s->w_mask; -;;; unsigned chain_length = s->max_chain_length; -;;; if (s->prev_length >= s->good_match) { -;;; chain_length >>= 2; -;;; } - - mov eax, [edx + dsPrevLen] - mov ebx, [edx + dsGoodMatch] - cmp eax, ebx - mov eax, [edx + dsWMask] - mov ebx, [edx + dsMaxChainLen] - jl LastMatchGood - shr ebx, 2 -LastMatchGood: - -;;; chainlen is decremented once beforehand so that the function can -;;; use the sign flag instead of the zero flag for the exit test. -;;; It is then shifted into the high word, to make room for the wmask -;;; value, which it will always accompany. - - dec ebx - shl ebx, 16 - or ebx, eax - mov [chainlenwmask], ebx - -;;; if ((uInt)nice_match > s->lookahead) nice_match = s->lookahead; - - mov eax, [edx + dsNiceMatch] - mov ebx, [edx + dsLookahead] - cmp ebx, eax - jl LookaheadLess - mov ebx, eax -LookaheadLess: mov [nicematch], ebx - -;;; register Bytef *scan = s->window + s->strstart; - - mov esi, [edx + dsWindow] - mov [window], esi - mov ebp, [edx + dsStrStart] - lea edi, [esi + ebp] - mov [scan], edi - -;;; Determine how many bytes the scan ptr is off from being -;;; dword-aligned. - - mov eax, edi - neg eax - and eax, 3 - mov [scanalign], eax - -;;; IPos limit = s->strstart > (IPos)MAX_DIST(s) ? -;;; s->strstart - (IPos)MAX_DIST(s) : NIL; - - mov eax, [edx + dsWSize] - sub eax, MIN_LOOKAHEAD - sub ebp, eax - jg LimitPositive - xor ebp, ebp -LimitPositive: - -;;; int best_len = s->prev_length; - - mov eax, [edx + dsPrevLen] - mov [bestlen], eax - -;;; Store the sum of s->window + best_len in esi locally, and in esi. - - add esi, eax - mov [windowbestlen], esi - -;;; register ush scan_start = *(ushf*)scan; -;;; register ush scan_end = *(ushf*)(scan+best_len-1); -;;; Posf *prev = s->prev; - - movzx ebx, word ptr [edi] - mov [scanstart], ebx - movzx ebx, word ptr [edi + eax - 1] - mov [scanend], ebx - mov edi, [edx + dsPrev] - -;;; Jump into the main loop. - - mov edx, [chainlenwmask] - jmp short LoopEntry - -align 4 - -;;; do { -;;; match = s->window + cur_match; -;;; if (*(ushf*)(match+best_len-1) != scan_end || -;;; *(ushf*)match != scan_start) continue; -;;; [...] -;;; } while ((cur_match = prev[cur_match & wmask]) > limit -;;; && --chain_length != 0); -;;; -;;; Here is the inner loop of the function. The function will spend the -;;; majority of its time in this loop, and majority of that time will -;;; be spent in the first ten instructions. -;;; -;;; Within this loop: -;;; ebx = scanend -;;; ecx = curmatch -;;; edx = chainlenwmask - i.e., ((chainlen << 16) | wmask) -;;; esi = windowbestlen - i.e., (window + bestlen) -;;; edi = prev -;;; ebp = limit - -LookupLoop: - and ecx, edx - movzx ecx, word ptr [edi + ecx*2] - cmp ecx, ebp - jbe LeaveNow - sub edx, 00010000h - js LeaveNow -LoopEntry: movzx eax, word ptr [esi + ecx - 1] - cmp eax, ebx - jnz LookupLoop - mov eax, [window] - movzx eax, word ptr [eax + ecx] - cmp eax, [scanstart] - jnz LookupLoop - -;;; Store the current value of chainlen. - - mov [chainlenwmask], edx - -;;; Point edi to the string under scrutiny, and esi to the string we -;;; are hoping to match it up with. In actuality, esi and edi are -;;; both pointed (MAX_MATCH_8 - scanalign) bytes ahead, and edx is -;;; initialized to -(MAX_MATCH_8 - scanalign). - - mov esi, [window] - mov edi, [scan] - add esi, ecx - mov eax, [scanalign] - mov edx, 0fffffef8h; -(MAX_MATCH_8) - lea edi, [edi + eax + 0108h] ;MAX_MATCH_8] - lea esi, [esi + eax + 0108h] ;MAX_MATCH_8] - -;;; Test the strings for equality, 8 bytes at a time. At the end, -;;; adjust edx so that it is offset to the exact byte that mismatched. -;;; -;;; We already know at this point that the first three bytes of the -;;; strings match each other, and they can be safely passed over before -;;; starting the compare loop. So what this code does is skip over 0-3 -;;; bytes, as much as necessary in order to dword-align the edi -;;; pointer. (esi will still be misaligned three times out of four.) -;;; -;;; It should be confessed that this loop usually does not represent -;;; much of the total running time. Replacing it with a more -;;; straightforward "rep cmpsb" would not drastically degrade -;;; performance. - -LoopCmps: - mov eax, [esi + edx] - xor eax, [edi + edx] - jnz LeaveLoopCmps - mov eax, [esi + edx + 4] - xor eax, [edi + edx + 4] - jnz LeaveLoopCmps4 - add edx, 8 - jnz LoopCmps - jmp short LenMaximum -LeaveLoopCmps4: add edx, 4 -LeaveLoopCmps: test eax, 0000FFFFh - jnz LenLower - add edx, 2 - shr eax, 16 -LenLower: sub al, 1 - adc edx, 0 - -;;; Calculate the length of the match. If it is longer than MAX_MATCH, -;;; then automatically accept it as the best possible match and leave. - - lea eax, [edi + edx] - mov edi, [scan] - sub eax, edi - cmp eax, MAX_MATCH - jge LenMaximum - -;;; If the length of the match is not longer than the best match we -;;; have so far, then forget it and return to the lookup loop. - - mov edx, [deflatestate] - mov ebx, [bestlen] - cmp eax, ebx - jg LongerMatch - mov esi, [windowbestlen] - mov edi, [edx + dsPrev] - mov ebx, [scanend] - mov edx, [chainlenwmask] - jmp LookupLoop - -;;; s->match_start = cur_match; -;;; best_len = len; -;;; if (len >= nice_match) break; -;;; scan_end = *(ushf*)(scan+best_len-1); - -LongerMatch: mov ebx, [nicematch] - mov [bestlen], eax - mov [edx + dsMatchStart], ecx - cmp eax, ebx - jge LeaveNow - mov esi, [window] - add esi, eax - mov [windowbestlen], esi - movzx ebx, word ptr [edi + eax - 1] - mov edi, [edx + dsPrev] - mov [scanend], ebx - mov edx, [chainlenwmask] - jmp LookupLoop - -;;; Accept the current string, with the maximum possible length. - -LenMaximum: mov edx, [deflatestate] - mov dword ptr [bestlen], MAX_MATCH - mov [edx + dsMatchStart], ecx - -;;; if ((uInt)best_len <= s->lookahead) return (uInt)best_len; -;;; return s->lookahead; - -LeaveNow: - mov edx, [deflatestate] - mov ebx, [bestlen] - mov eax, [edx + dsLookahead] - cmp ebx, eax - jg LookaheadRet - mov eax, ebx -LookaheadRet: - -;;; Restore the stack and return from whence we came. - - add esp, LocalVarsSize - pop ebx - pop esi - pop edi - pop ebp - - ret -; please don't remove this string ! -; Your can freely use match686 in any free or commercial app if you don't remove the string in the binary! - db 0dh,0ah,"asm686 with masm, optimised assembly code from Brian Raiter, written 1998",0dh,0ah - - - IFDEF NOUNDERLINE - longest_match endp - ELSE - _longest_match endp - ENDIF - - IFDEF NOUNDERLINE - match_init proc near - ret - match_init endp - ELSE - _match_init proc near - ret - _match_init endp - ENDIF - - -_TEXT ends -end diff --git a/Library/zlib/zlibvc.def b/Library/zlib/zlibvc.def deleted file mode 100644 index 38fe084dc..000000000 --- a/Library/zlib/zlibvc.def +++ /dev/null @@ -1,91 +0,0 @@ -LIBRARY -; zlib data compression and ZIP file I/O library - -EXPORTS - adler32 @1 - crc32 @3 - deflate @4 - deflateCopy @5 - deflateEnd @6 - deflateInit2_ @7 - deflateInit_ @8 - deflateParams @9 - deflateReset @10 - deflateSetDictionary @11 - inflate @19 - inflateEnd @20 - inflateInit2_ @21 - inflateInit_ @22 - inflateReset @23 - inflateSetDictionary @24 - inflateSync @25 - zlibVersion @27 - zError @36 - inflateSyncPoint @37 - get_crc_table @38 - inflateCopy @42 - inflateBackInit_ @43 - inflateBack @44 - inflateBackEnd @45 - deflateBound @47 - zlibCompileFlags @50 - deflatePrime @51 - deflatePending @52 - - unzOpen @61 - unzClose @62 - unzGetGlobalInfo @63 - unzGetCurrentFileInfo @64 - unzGoToFirstFile @65 - unzGoToNextFile @66 - unzOpenCurrentFile @67 - unzReadCurrentFile @68 - unzOpenCurrentFile3 @69 - unztell @70 - unzeof @71 - unzCloseCurrentFile @72 - unzGetGlobalComment @73 - unzStringFileNameCompare @74 - unzLocateFile @75 - unzGetLocalExtrafield @76 - unzOpen2 @77 - unzOpenCurrentFile2 @78 - unzOpenCurrentFilePassword @79 - - zipOpen @80 - zipOpenNewFileInZip @81 - zipWriteInFileInZip @82 - zipCloseFileInZip @83 - zipClose @84 - zipOpenNewFileInZip2 @86 - zipCloseFileInZipRaw @87 - zipOpen2 @88 - zipOpenNewFileInZip3 @89 - zipOpenNewFileInZip4 @90 - - unzGetFilePos @100 - unzGoToFilePos @101 - - fill_win32_filefunc @110 - -; zlibwapi v1.2.4 added: - fill_win32_filefunc64 @111 - fill_win32_filefunc64A @112 - fill_win32_filefunc64W @113 - - unzOpen64 @120 - unzOpen2_64 @121 - unzGetGlobalInfo64 @122 - unzGetCurrentFileInfo64 @124 - unzGetCurrentFileZStreamPos64 @125 - unztell64 @126 - unzGetFilePos64 @127 - unzGoToFilePos64 @128 - - zipOpen64 @130 - zipOpen2_64 @131 - zipOpenNewFileInZip64 @132 - zipOpenNewFileInZip2_64 @133 - zipOpenNewFileInZip3_64 @134 - zipOpenNewFileInZip4_64 @135 - zipCloseFileInZipRaw64 @136 diff --git a/Rainmeter.sln b/Rainmeter.sln index 9d167e7f2..abbbdd917 100644 --- a/Rainmeter.sln +++ b/Rainmeter.sln @@ -30,12 +30,7 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Library_Taglib", "Library\L EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Library_Zlib", "Library\Library_Zlib.vcxproj", "{5D164F45-CEED-47A3-8A5D-B752D09B09DB}" EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "SkinInstaller", "SkinInstaller\SkinInstaller.vcxproj", "{6F5D4C4A-C8C3-41DA-BF44-6D42B76464DA}" -EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "SkinInstallerLauncher", "SkinInstaller\SkinInstallerLauncher.vcxproj", "{2D8F1DDB-6470-45A1-B95A-3E2960641314}" - ProjectSection(ProjectDependencies) = postProject - {6F5D4C4A-C8C3-41DA-BF44-6D42B76464DA} = {6F5D4C4A-C8C3-41DA-BF44-6D42B76464DA} - EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "PluginAdvancedCPU", "Plugins\PluginAdvancedCPU\PluginAdvancedCPU.vcxproj", "{EE8EC522-8430-4B46-86A3-D943D77F9E4B}" EndProject @@ -168,14 +163,6 @@ Global {5D164F45-CEED-47A3-8A5D-B752D09B09DB}.Release|Win32.Build.0 = Release|Win32 {5D164F45-CEED-47A3-8A5D-B752D09B09DB}.Release|x64.ActiveCfg = Release|x64 {5D164F45-CEED-47A3-8A5D-B752D09B09DB}.Release|x64.Build.0 = Release|x64 - {6F5D4C4A-C8C3-41DA-BF44-6D42B76464DA}.Debug|Win32.ActiveCfg = Debug|Win32 - {6F5D4C4A-C8C3-41DA-BF44-6D42B76464DA}.Debug|Win32.Build.0 = Debug|Win32 - {6F5D4C4A-C8C3-41DA-BF44-6D42B76464DA}.Debug|x64.ActiveCfg = Debug|x64 - {6F5D4C4A-C8C3-41DA-BF44-6D42B76464DA}.Debug|x64.Build.0 = Debug|x64 - {6F5D4C4A-C8C3-41DA-BF44-6D42B76464DA}.Release|Win32.ActiveCfg = Release|Win32 - {6F5D4C4A-C8C3-41DA-BF44-6D42B76464DA}.Release|Win32.Build.0 = Release|Win32 - {6F5D4C4A-C8C3-41DA-BF44-6D42B76464DA}.Release|x64.ActiveCfg = Release|x64 - {6F5D4C4A-C8C3-41DA-BF44-6D42B76464DA}.Release|x64.Build.0 = Release|x64 {2D8F1DDB-6470-45A1-B95A-3E2960641314}.Debug|Win32.ActiveCfg = Debug|Win32 {2D8F1DDB-6470-45A1-B95A-3E2960641314}.Debug|Win32.Build.0 = Debug|Win32 {2D8F1DDB-6470-45A1-B95A-3E2960641314}.Debug|x64.ActiveCfg = Debug|x64 diff --git a/SkinInstaller/SkinInstaller.def b/SkinInstaller/SkinInstaller.def deleted file mode 100644 index 1bbfc2fc4..000000000 --- a/SkinInstaller/SkinInstaller.def +++ /dev/null @@ -1,4 +0,0 @@ -LIBRARY -EXPORTS - ; Private - SkinInstallerMain @1 NONAME diff --git a/SkinInstaller/SkinInstaller.rc b/SkinInstaller/SkinInstaller.rc deleted file mode 100644 index a1b6494d7..000000000 --- a/SkinInstaller/SkinInstaller.rc +++ /dev/null @@ -1,199 +0,0 @@ -#include -#include "resource.h" -#include "../Version.h" - -LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US -#pragma code_page(1252) - -///////////////////////////////////////////////////////////////////////////// -// -// Version -// - -VS_VERSION_INFO VERSIONINFO - FILEVERSION FILEVER - PRODUCTVERSION PRODUCTVER - FILEFLAGSMASK 0x17L -#ifdef _DEBUG - FILEFLAGS 0x1L -#else - FILEFLAGS 0x0L -#endif - FILEOS 0x4L - FILETYPE 0x1L - FILESUBTYPE 0x0L -{ - BLOCK "StringFileInfo" - { - BLOCK "040904E4" - { - VALUE "FileDescription", "Rainmeter Skin Installer" - VALUE "FileVersion", STRFILEVER - VALUE "LegalCopyright", "© 2013 - All authors" - VALUE "OriginalFilename", "SkinInstaller.dll" - VALUE "ProductName", "Rainmeter" -#ifdef _WIN64 - VALUE "ProductVersion", STRPRODUCTVER " (64-bit)" -#else - VALUE "ProductVersion", STRPRODUCTVER " (32-bit)" -#endif //_WIN64 - } - } - BLOCK "VarFileInfo" - { - VALUE "Translation", 0x409, 1252 - } -} - -///////////////////////////////////////////////////////////////////////////// -// -// Menu -// - -IDR_INSTALL_MENU MENU -{ - POPUP " " - { - MENUITEM "Backup skins", IDM_INSTALL_BACKUPSKINS - MENUITEM "Install fonts to system", IDM_INSTALL_SYSTEMFONTS, GRAYED - MENUITEM SEPARATOR - MENUITEM " ", IDM_INSTALL_FORMAT, GRAYED - } -} - -///////////////////////////////////////////////////////////////////////////// -// -// Dialog -// - -IDD_PACKAGE_DIALOG DIALOGEX 0, 0, 300, 280 -STYLE DS_CENTER | WS_MINIMIZEBOX | WS_POPUP | WS_CAPTION | WS_SYSMENU -CAPTION "Rainmeter Skin Packager" -FONT 8, "MS Shell Dlg 2" -{ - CONTROL "", IDC_PACKAGE_TAB, "SysTabControl32", TCS_TABS | TCS_FIXEDWIDTH, 6, 6, 288, 251 - DEFPUSHBUTTON "Next", IDC_PACKAGE_NEXT_BUTTON, 188, 261, 50, 14, WS_DISABLED - PUSHBUTTON "Create package", IDC_PACKAGE_CREATEPACKAGE_BUTTON, 158, 261, 80, 14, NOT WS_VISIBLE - PUSHBUTTON "Cancel", IDCANCEL, 243, 261, 50, 14 -} - -IDD_PACKAGEINFO_TAB DIALOGEX 15, 15, 270, 235 -STYLE DS_CONTROL | WS_CHILD | WS_VISIBLE | WS_CLIPSIBLINGS -FONT 8, "MS Shell Dlg 2" -{ - LTEXT "Enter the information and select the components to use for the .rmskin package.", IDC_STATIC, 0, 0, 264, 19 - - GROUPBOX "Information", IDC_STATIC, 0, 35, 270, 70 - LTEXT "Name:", IDC_STATIC, 6, 51, 35, 9 - EDITTEXT IDC_PACKAGEINFO_NAME_EDIT, 56, 48, 208, 14 - LTEXT "Author:", IDC_STATIC, 6, 69, 35, 9 - EDITTEXT IDC_PACKAGEINFO_AUTHOR_EDIT, 56, 66, 208, 14 - LTEXT "Version:", IDC_STATIC, 6, 87, 35, 9 - EDITTEXT IDC_PACKAGEINFO_VERSION_EDIT, 56, 83, 140, 14 - - GROUPBOX "Components", IDC_STATIC, 0, 110, 270, 108 - CONTROL "", IDC_PACKAGEINFO_COMPONENTS_LIST, "SysListView32", LVS_REPORT | LVS_SINGLESEL | LVS_NOSORTHEADER | WS_BORDER | WS_TABSTOP, 6, 125, 182, 86 - PUSHBUTTON "Add skin...", IDC_PACKAGEINFO_ADDSKIN_BUTTON, 194, 125, 70, 14 - PUSHBUTTON "Add layout...", IDC_PACKAGEINFO_ADDTHEME_BUTTON, 194, 144, 70, 14 - PUSHBUTTON "Add plugin...", IDC_PACKAGEINFO_ADDPLUGIN_BUTTON, 194, 162, 70, 14 - PUSHBUTTON "Remove", IDC_PACKAGEINFO_REMOVE_BUTTON, 194, 197, 70, 14, WS_DISABLED - CONTROL "What is a .rmskin package?", IDC_PACKAGEINFO_WHATIS_LINK, "SysLink", 0x0, 0, 225, 264, 9 -} - -IDD_PACKAGEOPTIONS_TAB DIALOGEX 15, 30, 270, 220 -STYLE DS_CONTROL | WS_CHILD | WS_VISIBLE | WS_CLIPSIBLINGS -FONT 8, "MS Shell Dlg 2" -{ - LTEXT "Save package to:", IDC_STATIC, 0, 0, 264, 9 - EDITTEXT IDC_PACKAGEOPTIONS_FILE_EDIT, 0, 17, 240, 14, ES_READONLY | ES_AUTOHSCROLL | WS_BORDER | WS_TABSTOP - PUSHBUTTON "...", IDC_PACKAGEOPTIONS_FILEBROWSE_BUTTON, 245, 17, 25, 14, WS_TABSTOP - - - GROUPBOX "After installation", IDC_STATIC, 0, 101, 270, 58 - AUTORADIOBUTTON "Do nothing", IDC_PACKAGEOPTIONS_DONOTHING_RADIO, 6, 116, 85, 9, WS_TABSTOP - AUTORADIOBUTTON "Load skin", IDC_PACKAGEOPTIONS_LOADSKIN_RADIO, 6, 129, 85, 9, WS_TABSTOP - EDITTEXT IDC_PACKAGEOPTIONS_LOADSKIN_EDIT, 96, 126, 138, 14, ES_READONLY | ES_AUTOHSCROLL | WS_BORDER | WS_TABSTOP | NOT WS_VISIBLE - PUSHBUTTON "...", IDC_PACKAGEOPTIONS_LOADSKINBROWSE_BUTTON, 239, 126, 25, 14, WS_TABSTOP | NOT WS_VISIBLE - AUTORADIOBUTTON "Load layout", IDC_PACKAGEOPTIONS_LOADTHEME_RADIO, 6, 142, 85, 9, WS_TABSTOP - COMBOBOX IDC_PACKAGEOPTIONS_LOADTHEME_COMBO, 96, 139, 168, 14, CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP | NOT WS_VISIBLE - - GROUPBOX "Minimum requirements", IDC_STATIC, 0, 164, 270, 53 - LTEXT "Rainmeter version:", IDC_STATIC, 6, 180, 85, 9 - EDITTEXT IDC_PACKAGEOPTIONS_RAINMETERVERSION_EDIT, 96, 177, 80, 14 - LTEXT "Windows version:", IDC_STATIC, 6, 198, 85, 9 - COMBOBOX IDC_PACKAGEOPTIONS_WINDOWSVERSION_COMBO, 96, 195, 80, 14, CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP - - LTEXT "Creating...", IDC_INSTALLTAB_CREATING_TEXT, 0, 0, 270, 100, NOT WS_VISIBLE - CONTROL "", IDC_INSTALLTAB_CREATING_BAR, "msctls_progress32", PBS_MARQUEE | NOT WS_VISIBLE | WS_BORDER, 0, 15, 270, 11 -} - -IDD_PACKAGEADVANCED_TAB DIALOGEX 15, 30, 270, 220 -STYLE DS_CONTROL | WS_CHILD | WS_VISIBLE | WS_CLIPSIBLINGS -FONT 8, "MS Shell Dlg 2" -{ - LTEXT "Header image:", IDC_STATIC, 0, 3, 85, 9 - EDITTEXT IDC_PACKAGEADVANCED_HEADER_EDIT, 90, 0, 150, 14, ES_READONLY | ES_AUTOHSCROLL | WS_TABSTOP - PUSHBUTTON "...", IDC_PACKAGEADVANCED_HEADERROWSE_BUTTON, 245, 0, 25, 14, WS_TABSTOP - LTEXT "Variables files:", IDC_STATIC, 0, 24, 85, 9 - EDITTEXT IDC_PACKAGEADVANCED_VARIABLEFILES_EDIT, 90, 21, 180, 14, ES_AUTOHSCROLL | WS_TABSTOP - AUTOCHECKBOX "Merge skins", IDC_PACKAGEADVANCED_MERGESKINS_CHECK, 0, 42, 85, 9, WS_TABSTOP - CONTROL "Help", IDC_PACKAGEADVANCED_HELP_LINK, "SysLink", 0x0, 0, 210, 264, 9 -} - -IDD_PACKAGESELECTFOLDER_DIALOG DIALOGEX 0, 0, 200, 100 -STYLE DS_CENTER | WS_POPUP | WS_TILEDWINDOW -EXSTYLE WS_EX_TOOLWINDOW -CAPTION "Add" -FONT 8, "MS Shell Dlg 2" -{ - AUTORADIOBUTTON "", IDC_PACKAGESELECTFOLDER_EXISTING_RADIO, 6, 6, 220, 9, WS_TABSTOP | BST_CHECKED - COMBOBOX IDC_PACKAGESELECTFOLDER_EXISTING_COMBO, 16, 19, 177, 14, CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP - AUTORADIOBUTTON "Add custom folder:", IDC_PACKAGESELECTFOLDER_CUSTOM_RADIO, 6, 40, 220, 9, WS_TABSTOP - EDITTEXT IDC_PACKAGESELECTFOLDER_CUSTOM_EDIT, 16, 53, 149, 14, WS_BORDER | WS_TABSTOP | ES_AUTOHSCROLL | WS_DISABLED - PUSHBUTTON "...", IDC_PACKAGESELECTFOLDER_CUSTOMBROWSE_BUTTON, 170, 53, 25, 14, WS_TABSTOP | WS_DISABLED - DEFPUSHBUTTON "Add", IDOK, 146, 82, 50, 14 -} - -IDD_PACKAGESELECTPLUGIN_DIALOG DIALOGEX 0, 0, 200, 100 -STYLE DS_CENTER | WS_POPUP | WS_TILEDWINDOW -EXSTYLE WS_EX_TOOLWINDOW -CAPTION "Add" -FONT 8, "MS Shell Dlg 2" -{ - LTEXT "32-bit DLL:", IDC_STATIC, 6, 6, 220, 9 - EDITTEXT IDC_PACKAGESELECTPLUGIN_32BIT_EDIT, 16, 19, 149, 14, ES_READONLY | WS_BORDER - PUSHBUTTON "...", IDC_PACKAGESELECTPLUGIN_32BITBROWSE_BUTTON, 170, 19, 25, 14, WS_TABSTOP - LTEXT "64-bit DLL:", IDC_STATIC, 6, 40, 220, 9 - EDITTEXT IDC_PACKAGESELECTPLUGIN_64BIT_EDIT, 16, 53, 149, 14, ES_READONLY | WS_BORDER - PUSHBUTTON "...", IDC_PACKAGESELECTPLUGIN_64BITBROWSE_BUTTON, 170, 53, 25, 14, WS_TABSTOP - DEFPUSHBUTTON "Add", IDOK, 146, 82, 50, 14, WS_DISABLED -} - -IDD_INSTALL_DIALOG DIALOGEX 0, 0, 266, 250 -STYLE DS_CENTER | WS_MINIMIZEBOX | WS_POPUP | WS_CAPTION | WS_SYSMENU -CAPTION "Rainmeter Skin Installer" -FONT 8, "MS Shell Dlg 2" -{ - CONTROL 0, IDC_INSTALL_HEADER_BITMAP, STATIC, SS_BITMAP | WS_CHILD | WS_VISIBLE, 0, 0, 266, 37 - CONTROL "", IDC_INSTALL_TAB, "SysTabControl32", TCS_TABS | TCS_FIXEDWIDTH, 6, 42, 254, 185 - PUSHBUTTON "Advanced", IDC_INSTALL_ADVANCED_BUTTON, 6, 231, 70, 14 - DEFPUSHBUTTON "Install", IDC_INSTALL_INSTALL_BUTTON, 155, 231, 50, 14 - PUSHBUTTON "Cancel", IDCANCEL, 210, 231, 50, 14 -} - -IDD_INSTALL_TAB DIALOGEX 15, 51, 236, 168 -STYLE DS_CONTROL | WS_CHILD | WS_VISIBLE | WS_CLIPSIBLINGS -FONT 8, "MS Shell Dlg 2" -{ - LTEXT "Name:", IDC_STATIC, 0, 0, 35, 9 - LTEXT "", IDC_INSTALLTAB_NAME_TEXT, 50, 0, 200, 9, SS_NOPREFIX - LTEXT "Author:", IDC_STATIC, 0, 13, 35, 9 - LTEXT "", IDC_INSTALLTAB_AUTHOR_TEXT, 50, 13, 200, 9, SS_NOPREFIX - LTEXT "Version:", IDC_STATIC, 0, 26, 35, 9 - LTEXT "", IDC_INSTALLTAB_VERSION_TEXT, 50, 26, 200, 9, SS_NOPREFIX - LTEXT "Included components:", IDC_STATIC, 0, 45, 80, 9 - CONTROL "", IDC_INSTALLTAB_COMPONENTS_LIST, "SysListView32", LVS_REPORT | LVS_NOSORTHEADER | WS_BORDER | WS_TABSTOP, 0, 60, 234, 86 - AUTOCHECKBOX "Apply included layout", IDC_INSTALLTAB_THEME_CHECKBOX, 4, 155, 220, 9 - LTEXT "Installing...", IDC_INSTALLTAB_INPROGRESS_TEXT, 0, 0, 236, 60, NOT WS_VISIBLE - CONTROL "", IDC_INSTALLTAB_PROGRESS, "msctls_progress32", PBS_MARQUEE | NOT WS_VISIBLE | WS_BORDER, 0, 15, 236, 11 -} diff --git a/SkinInstaller/SkinInstaller.vcxproj b/SkinInstaller/SkinInstaller.vcxproj index 8a5561c36..4ca6ef712 100644 --- a/SkinInstaller/SkinInstaller.vcxproj +++ b/SkinInstaller/SkinInstaller.vcxproj @@ -18,11 +18,8 @@ - - NOOLDPENTIUMCODE - - ZLIB_WINAPI;NOCRYPT;NOUNCRYPT;NO_GZIP;ASMV;ASMINF;NOOLDPENTIUMCODE;HAVE_CONFIG_H;SUPPORT_UTF8;%(PreprocessorDefinitions) + ZLIB_WINAPI;NOCRYPT;NOUNCRYPT;NO_GZIP;ASMV;ASMINF;HAVE_CONFIG_H;SUPPORT_UTF8;%(PreprocessorDefinitions) 4244;4267;4482;4530;4996 ..\Library\zlib;..\Library\zlib\minizip;%(AdditionalIncludeDirectories) false @@ -39,7 +36,6 @@ - @@ -66,4 +62,4 @@ - \ No newline at end of file + diff --git a/SkinInstaller/SkinInstallerLauncher.cpp b/SkinInstaller/SkinInstallerLauncher.cpp index 1daa4b793..42eaa52c5 100644 --- a/SkinInstaller/SkinInstallerLauncher.cpp +++ b/SkinInstaller/SkinInstallerLauncher.cpp @@ -10,7 +10,7 @@ EXTERN_C IMAGE_DOS_HEADER __ImageBase; -typedef int (*SkinInstallerMainFunc)(LPWSTR cmdLine); +EXTERN_C int SkinInstallerMain(LPWSTR lpCmdLine); WCHAR* GetCommandLineArguments() { @@ -43,38 +43,6 @@ WCHAR* GetCommandLineArguments() return args; } -/* -** Attempts to load SkinInstaller.dll. If it fails, retries after loading our own copies of the -** CRT DLLs in the Runtime directory. -*/ -HINSTANCE LoadSkinInstallerLibrary() -{ - HINSTANCE rmDll = LoadLibrary(L"SkinInstaller.dll"); - if (!rmDll) - { - WCHAR path[MAX_PATH]; - if (GetModuleFileName(nullptr, path, MAX_PATH) > 0) - { - PathRemoveFileSpec(path); - PathAppend(path, L"Runtime"); - SetDllDirectory(path); - PathAppend(path, L"msvcp120.dll"); - - // Loading msvcpNNN.dll will load msvcrNNN.dll as well. - HINSTANCE msvcrDll = LoadLibrary(path); - SetDllDirectory(L""); - - if (msvcrDll) - { - rmDll = LoadLibrary(L"SkinInstaller.dll"); - FreeLibrary(msvcrDll); - } - } - } - - return rmDll; -} - /* ** Entry point. In Release builds, the entry point is Main() since the CRT is not used. ** @@ -86,26 +54,7 @@ int APIENTRY wWinMain(HINSTANCE, HINSTANCE, LPWSTR, int) SetErrorMode(oldMode | SEM_FAILCRITICALERRORS); WCHAR* args = GetCommandLineArguments(); - - HINSTANCE skinInstallerDll = LoadSkinInstallerLibrary(); - if (skinInstallerDll) - { - auto skinInstallerMain = - (SkinInstallerMainFunc)GetProcAddress(skinInstallerDll, MAKEINTRESOURCEA(1)); - if (skinInstallerMain) - { - return skinInstallerMain(args); - } - } - - WCHAR message[128]; - wsprintf( - message, - L"SkinInstaller.dll load error %ld.", - GetLastError()); - MessageBox(nullptr, message, L"Skin Installer", MB_OK | MB_ICONERROR); - - return 1; + return SkinInstallerMain(args); } #ifndef _DEBUG diff --git a/SkinInstaller/SkinInstallerLauncher.rc b/SkinInstaller/SkinInstallerLauncher.rc index efcdbb2e9..a7268dac9 100644 --- a/SkinInstaller/SkinInstallerLauncher.rc +++ b/SkinInstaller/SkinInstallerLauncher.rc @@ -1,5 +1,4 @@ #include -#include "resource.h" #include "../Version.h" LANGUAGE LANG_ENGLISH, SUBLANG_DEFAULT @@ -50,6 +49,4 @@ VS_VERSION_INFO VERSIONINFO // Icon // -// Icon with lowest ID value placed first to ensure application icon -// remains consistent on all systems. -IDI_SKININSTALLER ICON DISCARDABLE "res/Rainstaller.ico" +100 ICON DISCARDABLE "res/Rainstaller.ico" diff --git a/SkinInstaller/SkinInstallerLauncher.vcxproj b/SkinInstaller/SkinInstallerLauncher.vcxproj index 781ff47dc..6a8fad8bb 100644 --- a/SkinInstaller/SkinInstallerLauncher.vcxproj +++ b/SkinInstaller/SkinInstallerLauncher.vcxproj @@ -44,6 +44,11 @@ + + + {be9d2400-7f1c-49d6-8498-5ce495491ad6} + + diff --git a/SkinInstaller/StdAfx.cpp b/SkinInstaller/StdAfx.cpp deleted file mode 100644 index 18acd8aa3..000000000 --- a/SkinInstaller/StdAfx.cpp +++ /dev/null @@ -1,8 +0,0 @@ -/* Copyright (C) 2011 Rainmeter Project Developers - * - * This Source Code Form is subject to the terms of the GNU General Public - * License; either version 2 of the License, or (at your option) any later - * version. If a copy of the GPL was not distributed with this file, You can - * obtain one at . */ - -#include "StdAfx.h" diff --git a/SkinInstaller/StdAfx.h b/SkinInstaller/StdAfx.h deleted file mode 100644 index e7b7fb668..000000000 --- a/SkinInstaller/StdAfx.h +++ /dev/null @@ -1,38 +0,0 @@ -/* Copyright (C) 2011 Rainmeter Project Developers - * - * This Source Code Form is subject to the terms of the GNU General Public - * License; either version 2 of the License, or (at your option) any later - * version. If a copy of the GPL was not distributed with this file, You can - * obtain one at . */ - -#ifndef __STDAFX_H__ -#define __STDAFX_H__ - -// WINAPI -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -// STL -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -// RUNTIME -#include - -#endif diff --git a/SkinInstaller/res/Rainstaller.bmp b/SkinInstaller/res/Rainstaller.bmp deleted file mode 100644 index 2430ed5d9e61e3014cf763849803de57721bc3b0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 25078 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]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 C&v0e{ diff --git a/SkinInstaller/resource.h b/SkinInstaller/resource.h deleted file mode 100644 index 0db54782a..000000000 --- a/SkinInstaller/resource.h +++ /dev/null @@ -1,73 +0,0 @@ -#define IDC_STATIC -1 -#define IDI_SKININSTALLER 100 -#define IDB_INSTALLHEADER 101 -#define IDD_INSTALL_DIALOG 102 -#define IDD_INSTALL_TAB 103 -#define IDR_INSTALL_MENU 104 -#define IDD_PACKAGE_DIALOG 105 -#define IDD_PACKAGEINFO_TAB 106 -#define IDD_PACKAGEOPTIONS_TAB 107 -#define IDD_PACKAGEADVANCED_TAB 108 -#define IDD_PACKAGESELECTFOLDER_DIALOG 109 -#define IDD_PACKAGESELECTPLUGIN_DIALOG 110 - -#define IDC_INSTALL_TAB 1000 -#define IDC_INSTALL_HEADER_BITMAP 1001 -#define IDC_INSTALL_ADVANCED_BUTTON 1002 -#define IDC_INSTALL_INSTALL_BUTTON 1003 - -#define IDC_INSTALLTAB_NAME_TEXT 1000 -#define IDC_INSTALLTAB_AUTHOR_TEXT 1001 -#define IDC_INSTALLTAB_VERSION_TEXT 1002 -#define IDC_INSTALLTAB_COMPONENTS_LIST 1003 -#define IDC_INSTALLTAB_THEME_CHECKBOX 1004 -#define IDC_INSTALLTAB_INPROGRESS_TEXT 1005 -#define IDC_INSTALLTAB_PROGRESS 1006 - -#define IDC_PACKAGE_TAB 1000 -#define IDC_PACKAGE_NEXT_BUTTON 1001 -#define IDC_PACKAGE_CREATEPACKAGE_BUTTON 1002 - -#define IDC_PACKAGEINFO_NAME_EDIT 1000 -#define IDC_PACKAGEINFO_AUTHOR_EDIT 1001 -#define IDC_PACKAGEINFO_VERSION_EDIT 1002 -#define IDC_PACKAGEINFO_COMPONENTS_LIST 1003 -#define IDC_PACKAGEINFO_ADDSKIN_BUTTON 1004 -#define IDC_PACKAGEINFO_ADDTHEME_BUTTON 1005 -#define IDC_PACKAGEINFO_ADDPLUGIN_BUTTON 1006 -#define IDC_PACKAGEINFO_REMOVE_BUTTON 1007 -#define IDC_PACKAGEINFO_WHATIS_LINK 1008 - -#define IDC_PACKAGEOPTIONS_FILE_EDIT 1000 -#define IDC_PACKAGEOPTIONS_FILEBROWSE_BUTTON 1001 -#define IDC_PACKAGEOPTIONS_DONOTHING_RADIO 1002 -#define IDC_PACKAGEOPTIONS_LOADSKIN_RADIO 1003 -#define IDC_PACKAGEOPTIONS_LOADSKIN_EDIT 1004 -#define IDC_PACKAGEOPTIONS_LOADSKINBROWSE_BUTTON 1005 -#define IDC_PACKAGEOPTIONS_LOADTHEME_RADIO 1006 -#define IDC_PACKAGEOPTIONS_LOADTHEME_COMBO 1007 -#define IDC_PACKAGEOPTIONS_RAINMETERVERSION_EDIT 1008 -#define IDC_PACKAGEOPTIONS_WINDOWSVERSION_COMBO 1009 -#define IDC_INSTALLTAB_CREATING_TEXT 1010 -#define IDC_INSTALLTAB_CREATING_BAR 1011 - -#define IDC_PACKAGEADVANCED_HEADER_EDIT 1000 -#define IDC_PACKAGEADVANCED_HEADERROWSE_BUTTON 1001 -#define IDC_PACKAGEADVANCED_VARIABLEFILES_EDIT 1002 -#define IDC_PACKAGEADVANCED_MERGESKINS_CHECK 1003 -#define IDC_PACKAGEADVANCED_HELP_LINK 1004 - -#define IDC_PACKAGESELECTFOLDER_EXISTING_RADIO 1000 -#define IDC_PACKAGESELECTFOLDER_EXISTING_COMBO 1001 -#define IDC_PACKAGESELECTFOLDER_CUSTOM_RADIO 1002 -#define IDC_PACKAGESELECTFOLDER_CUSTOM_EDIT 1003 -#define IDC_PACKAGESELECTFOLDER_CUSTOMBROWSE_BUTTON 1004 - -#define IDC_PACKAGESELECTPLUGIN_32BIT_EDIT 1000 -#define IDC_PACKAGESELECTPLUGIN_32BITBROWSE_BUTTON 1001 -#define IDC_PACKAGESELECTPLUGIN_64BIT_EDIT 1002 -#define IDC_PACKAGESELECTPLUGIN_64BITBROWSE_BUTTON 1003 - -#define IDM_INSTALL_BACKUPSKINS 4200 -#define IDM_INSTALL_SYSTEMFONTS 4201 -#define IDM_INSTALL_FORMAT 4202