Skip to content

Commit

Permalink
Uninstall sources v1.10.9.0
Browse files Browse the repository at this point in the history
  • Loading branch information
Maximus5 committed Dec 26, 2020
1 parent a2efcfe commit 57ebeee
Show file tree
Hide file tree
Showing 7 changed files with 67 additions and 23 deletions.
1 change: 0 additions & 1 deletion Uninstall/src/UnInstall.def
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
LIBRARY <(MODULE)> BASE=0x68000000
EXPORTS
GetMinFarVersion
SetStartupInfo
Expand Down
34 changes: 31 additions & 3 deletions Uninstall/src/UnInstall.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -65,6 +65,7 @@ struct KeyInfo
bool Avail[KeysCount];
RegKeyPath RegKey;
FILETIME RegTime;
TCHAR InstDate[10];
REGSAM RegView;
TCHAR SubKeyName[MAX_PATH];
bool WindowsInstaller;
Expand All @@ -73,7 +74,8 @@ struct KeyInfo
bool CanModify, CanRepair;
} *p = NULL;

bool ValidGuid(const TCHAR* guid) {
bool ValidGuid(const TCHAR* guid)
{
const unsigned c_max_guid_len = 38;
wchar_t buf[c_max_guid_len + 1];
ZeroMemory(buf, sizeof(buf));
Expand Down Expand Up @@ -133,6 +135,7 @@ bool FillReg(KeyInfo& key, TCHAR* Buf, RegKeyPath& RegKey, REGSAM RegView)
FileTimeToLocalFileTime(&key.RegTime, &ft);
FileTimeToSystemTime(&ft, &st);
wsprintf(sKeyTime, _T(" / %02u.%02u.%04u %u:%02u:%02u"), st.wDay, st.wMonth, st.wYear, st.wHour, st.wMinute, st.wSecond);
wsprintf(key.InstDate, _T("%02u.%02u.%02u"), st.wDay, st.wMonth, (st.wYear % 100));
nKeyTimeLen = lstrlen(sKeyTime) + 1;
}
for (int i=0;i<KeysCount;i++)
Expand Down Expand Up @@ -184,6 +187,24 @@ bool FillReg(KeyInfo& key, TCHAR* Buf, RegKeyPath& RegKey, REGSAM RegView)
else
{
key.Avail[i] = TRUE;
if (i == InstallDate)
{
// 20101105
if (lstrlen(key.Keys[i]) == 8)
{
TCHAR *pszEnd = 0;
DWORD ulDate = _tcstoul(key.Keys[i], &pszEnd, 10);
if (ulDate)
{
DWORD nDay = ulDate % 100; ulDate = (ulDate - nDay) / 100;
DWORD nMon = ulDate % 100; ulDate = (ulDate - nMon) / 100;
if (ulDate && nMon && nDay)
{
wsprintf(key.InstDate, _T("%02u.%02u.%02u"), nDay, nMon, (ulDate % 100));
}
}
}
}
if (i == InstallDate && nKeyTimeLen) StringCchCat(key.Keys[i], ARRAYSIZE(key.Keys[i]), sKeyTime);
}
}
Expand All @@ -192,6 +213,9 @@ bool FillReg(KeyInfo& key, TCHAR* Buf, RegKeyPath& RegKey, REGSAM RegView)
if ((key.Keys[ModifyPath][0] == 0) && (key.Keys[UninstallString][0] == 0))
key.Hidden = true;

if (key.InstDate[0] == 0)
StringCchCopy(key.InstDate, ARRAYSIZE(key.InstDate), _T(" "));

if (key.WindowsInstaller)
{
key.CanModify = !key.NoModify;
Expand Down Expand Up @@ -306,8 +330,10 @@ void DisplayEntry(int Sel)
FarDialogItem* DialogItems = new FarDialogItem[di_cnt];
unsigned y = 2;
unsigned idx = 1;
for (int i=0;i<KeysCount;i++) {
if (p[Sel].Avail[i]) {
for (int i=0;i<KeysCount;i++)
{
if (p[Sel].Avail[i])
{
FillDialog(DialogItems[idx], DI_TEXT, 5, y, 0, y, 0, MName + i);
idx++;
y++;
Expand Down Expand Up @@ -673,6 +699,8 @@ void UpDateInfo(void)
else
StringCchCat(text, MaxSize, sHKCU);

StringCchCat(text, MaxSize, _T(" "));
StringCchCat(text, MaxSize, p[i].InstDate);
StringCchCat(text, MaxSize, _T(" "));
StringCchCat(text, MaxSize, (p[i].WindowsInstaller) ? _T("W") : _T(" "));
StringCchCat(text, MaxSize, (p[i].CanModify) ? _T("M") : _T(" "));
Expand Down
1 change: 0 additions & 1 deletion Uninstall/src/UnInstallW.def
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
LIBRARY <(MODULE)> BASE=0x68000000
EXPORTS
GetMinFarVersion
GetMinFarVersionW
Expand Down
5 changes: 4 additions & 1 deletion Uninstall/src/WhatsNew.Rus.txt
Original file line number Diff line number Diff line change
@@ -1,4 +1,7 @@
v1.10.8 // Maximus5
v1.10.9
- в списке 'Entries' добавлена "колонка" с датой установки.

v1.10.8 // Maximus5
- в списке 'Entries' добавлена "колонка" с информацией о том, где нашли элемент: HKLM/HKCU/Mx86/Mx64
- там же, в x64 OS задваивались элементы из HKCU (как я понимаю, в HKCU не работают KEY_WOW64_64KEY/KEY_WOW64_32KEY)
- там же, добавлена "колонка" в которой отображаются некоторые 'флаги'
Expand Down
26 changes: 19 additions & 7 deletions Uninstall/src/makefile
Original file line number Diff line number Diff line change
Expand Up @@ -4,29 +4,41 @@ TOOLSDIR = .\tools

CPPFLAGS = -nologo -Zi -W3 -Gy -GS -GR -EHsc -MP -c
DEFINES = -DWIN32_LEAN_AND_MEAN -D_CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES=1 -D_WIN32_WINNT=0x0500 -D_FAR_USE_FARFINDDATA -DSTRSAFE_NO_DEPRECATE
LINKFLAGS = -nologo -debug -incremental:no -map -manifest:no -dynamicbase -nxcompat -largeaddressaware -dll
LINKFLAGS = -nologo -debug -incremental:no -map -manifest:no -dynamicbase -nxcompat -largeaddressaware -dll -base:0x68000000
RCFLAGS = -nologo

!if "$(CPU)" == "AMD64" || "$(PLATFORM)" == "x64"
PLATFORM = x64
LIBSUFFIX = 64
!ifdef WIDE
DLLSUFFIX = W64
!else
DLLSUFFIX = A64
!endif
RCFLAGS = $(RCFLAGS) -Dx64
!else
PLATFORM = x86
!ifdef WIDE
DLLSUFFIX = W
!else
DLLSUFFIX = A
!endif
LINKFLAGS = $(LINKFLAGS) -safeseh
LIBSUFFIX = 32
!endif

MODULEFULL=$(MODULE)$(DLLSUFFIX)

!ifdef RELEASE
OUTDIR = ..\Release
DEFINES = $(DEFINES) -DNDEBUG
CPPFLAGS = $(CPPFLAGS) -O1 -GL -MT
LINKFLAGS = $(LINKFLAGS) -opt:ref -opt:icf -LTCG
LINKFLAGS = $(LINKFLAGS) -opt:ref -opt:icf -LTCG /pdb:".\$(OUTDIR)\$(MODULE)$(DLLSUFFIX).pdb"
!else
OUTDIR = ..\Debug
DEFINES = $(DEFINES) -DDEBUG
CPPFLAGS = $(CPPFLAGS) -Od -RTC1 -MTd
LINKFLAGS = $(LINKFLAGS) -fixed:no
LINKFLAGS = $(LINKFLAGS) -fixed:no /pdb:".\$(OUTDIR)\$(MODULE)$(DLLSUFFIX).pdb"
LIBSUFFIX=$(LIBSUFFIX)d
!endif

Expand Down Expand Up @@ -61,11 +73,11 @@ project: depfile $(OUTDIR)\far.ini
distrib: depfile $(OUTDIR)\far.ini
$(MAKE) -nologo -$(MAKEFLAGS) build_distrib BUILD=1

build_project: $(OUTDIR)\$(MODULE).dll $(OUTDIR)\UnInstall_Eng.lng $(OUTDIR)\UnInstall_Rus.lng \
build_project: $(OUTDIR)\$(MODULE)$(DLLSUFFIX).dll $(OUTDIR)\UnInstall_Eng.lng $(OUTDIR)\UnInstall_Rus.lng \
$(OUTDIR)\UnInstall_Eng.hlf $(OUTDIR)\UnInstall_Rus.hlf $(OUTDIR)\File_ID.diz \
$(OUTDIR)\ReadMe.Rus.txt $(OUTDIR)\WhatsNew.Rus.txt

$(OUTDIR)\$(MODULE).dll: $(OUTDIR)\plugin.def $(OBJS) $(OUTDIR)\UnInstall.res project.ini
$(OUTDIR)\$(MODULE)$(DLLSUFFIX).dll: $(OUTDIR)\plugin.def $(OBJS) $(OUTDIR)\UnInstall.res project.ini
link $(LINKFLAGS) -def:$(OUTDIR)\plugin.def -out:$@ $(OBJS) $(OUTDIR)\UnInstall.res $(LIBS)

.cpp{$(OUTDIR)}.obj::
Expand Down Expand Up @@ -139,13 +151,13 @@ DISTRIB = $(OUTDIR)\$(MODULE)_$(VER_MAJOR).$(VER_MINOR).$(VER_PATCH)
!ifndef OLDFAR
DISTRIB = $(DISTRIB)_uni
!endif
DISTRIB_FILES = .\$(OUTDIR)\$(MODULE).dll .\$(OUTDIR)\$(MODULE).map .\$(OUTDIR)\UnInstall_Eng.lng .\$(OUTDIR)\UnInstall_Rus.lng .\$(OUTDIR)\UnInstall_Eng.hlf .\$(OUTDIR)\UnInstall_Rus.hlf .\$(OUTDIR)\File_ID.diz .\$(OUTDIR)\ReadMe.Rus.txt .\$(OUTDIR)\WhatsNew.Rus.txt .\TechInfo.Rus.reg
DISTRIB_FILES = .\$(OUTDIR)\$(MODULE)$(DLLSUFFIX).dll .\$(OUTDIR)\$(MODULE)$(DLLSUFFIX).map .\$(OUTDIR)\UnInstall_Eng.lng .\$(OUTDIR)\UnInstall_Rus.lng .\$(OUTDIR)\UnInstall_Eng.hlf .\$(OUTDIR)\UnInstall_Rus.hlf .\$(OUTDIR)\File_ID.diz .\$(OUTDIR)\ReadMe.Rus.txt .\$(OUTDIR)\WhatsNew.Rus.txt .\TechInfo.Rus.reg
!if "$(PLATFORM)" != "x86"
DISTRIB = $(DISTRIB)_$(PLATFORM)
!endif
!ifndef RELEASE
DISTRIB = $(DISTRIB)_dbg
DISTRIB_FILES = $(DISTRIB_FILES) .\$(OUTDIR)\$(MODULE).pdb
DISTRIB_FILES = $(DISTRIB_FILES) .\$(OUTDIR)\$(MODULE)$(DLLSUFFIX).pdb
!endif

build_distrib: $(DISTRIB).7z
Expand Down
2 changes: 1 addition & 1 deletion Uninstall/src/project.ini
Original file line number Diff line number Diff line change
Expand Up @@ -2,4 +2,4 @@
MODULE = UnInstall
VER_MAJOR = 1
VER_MINOR = 10
VER_PATCH = 8
VER_PATCH = 9
21 changes: 12 additions & 9 deletions Uninstall/src/vc.build.release.bat
Original file line number Diff line number Diff line change
Expand Up @@ -11,21 +11,24 @@ if exist "%VS90COMNTOOLS%..\..\VC\BIN\vcvars32.bat" (
set WIDE=1
set IA64=
set AMD64=
set CPU=
set PLATFORM=
set DEBUG=
set RELEASE=1

nmake /A /B /F %MAKEFILE%
rem nmake /F %MAKEFILE%
if errorlevel 1 goto end

rem rem call "%VS90COMNTOOLS%..\..\VC\BIN\vcvarsx86_amd64.bat"
rem if exist "%VS90COMNTOOLS%..\..\VC\BIN\vcvarsx86_amd64.bat" (
rem call "%VS90COMNTOOLS%..\..\VC\BIN\vcvarsx86_amd64.bat"
rem ) else (
rem call "C:\Program Files\Microsoft Visual Studio 9.0\VC\bin\vcvarsx86_amd64.bat"
rem )
rem set AMD64=1
rem nmake /A /B /F %MAKEFILE%
rem rem nmake /F %MAKEFILE%
if exist "%VS90COMNTOOLS%..\..\VC\BIN\vcvarsx86_amd64.bat" (
call "%VS90COMNTOOLS%..\..\VC\BIN\vcvarsx86_amd64.bat"
) else (
call "C:\Program Files\Microsoft Visual Studio 9.0\VC\bin\vcvarsx86_amd64.bat"
)
set AMD64=1
set CPU=AMD64
set PLATFORM=x64
nmake /A /B /F %MAKEFILE%
rem nmake /F %MAKEFILE%

:end

0 comments on commit 57ebeee

Please sign in to comment.