Skip to content

Commit

Permalink
Uninstall sources v1.10.8.0
Browse files Browse the repository at this point in the history
  • Loading branch information
Maximus5 committed Dec 26, 2020
1 parent 11daf5d commit a2efcfe
Show file tree
Hide file tree
Showing 48 changed files with 11,935 additions and 0 deletions.
990 changes: 990 additions & 0 deletions Uninstall/src/DlgBuilder.hpp

Large diffs are not rendered by default.

91 changes: 91 additions & 0 deletions Uninstall/src/EPlugin.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,91 @@
static struct PluginStartupInfo Info;
static struct FarStandardFunctions FSF;

const TCHAR* GetMsg(int MsgId)
{
return(Info.GetMsg(Info.ModuleNumber,MsgId));
}

void ShowHelp(const TCHAR * HelpTopic)
{
Info.ShowHelp(Info.ModuleName,HelpTopic,0);
}

int EMessage(const TCHAR * const * s, int nType, int n)
{
return Info.Message(Info.ModuleNumber, FMSG_ALLINONE|nType, NULL, s,
0, //íâ®â ¯ à ¬¥âà ¯à¨ FMSG_ALLINONE ¨£­®à¨àã¥âáï
n); //ª®«¨ç¥á⢮ ª­®¯®ª
}

int DrawMessage(int nType, int n, char *msg, ...)
{
int total = 0;
TCHAR * string = NULL;

va_list ap;
TCHAR * arg;

va_start(ap, msg);
while ((arg = va_arg(ap,TCHAR*))!= 0)
{
total += lstrlen(arg) + 1; //¬ë ¥é¥ ¡ã¤¥¬ § ¯¨á뢠âì ᨬ¢®« ¯¥à¥¢®¤  áâப¨
}
va_end(ap);

total--; //¯®á«¥¤­¨© §­ ª ¯¥à¥¢®¤  áâப¨ ¬ë á®â६

string = (TCHAR *) realloc(string, sizeof(TCHAR)*(total + 1));

string[0]=_T('\0');

va_start(ap, msg);
while ((arg = va_arg(ap,TCHAR*))!= NULL)
{
StringCchCat(string, total+1, arg);
StringCchCat(string, total+1, _T("\n"));
}
va_end(ap);

string[total]=_T('\0');

int result = EMessage((const TCHAR * const *) string, nType, n);
realloc(string, 0);
return result;
}

const TCHAR * strstri(const TCHAR *s, const TCHAR *c)
{
if (c)
{
int l = lstrlen(c);
for (const TCHAR *p = s ; *p ; p++)
if (FSF.LStrnicmp(p, c, l) == 0)
return p;
}
return NULL;
}

TCHAR * strnstri(TCHAR *s, const TCHAR *c, int n)
{
if (c)
{
int l = min(lstrlen(c), n);
for (TCHAR *p = s ; *p ; p++)
if (FSF.LStrnicmp(p, c, l) == 0)
return p;
}
return NULL;
}

TCHAR * unQuote(TCHAR *vStr)
{
unsigned l;
l = lstrlen(vStr);
if (*vStr == _T('\"'))
memmove(vStr,vStr+1,l*sizeof(TCHAR));
l = lstrlen(vStr);
if (vStr[l-1] == _T('\"'))
vStr[l-1] = _T('\0');
return(vStr);
}
39 changes: 39 additions & 0 deletions Uninstall/src/FarLang.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
enum {
MPlugIn,
MOK,

MUninstallEntry,
MUninstallEntryMSI,

MName,
MSubKeyName,
MInstallLocation,
MModifyCommand,
MUninstallCommand,
MPublisher,
MSupportInfo,
MProductUpdates,
MComments,
MVersion,
MInstallDate,

MListHKLMx86,
MListHKLMx64,
MListHKLM,
MListHKCU,

MRunProgErr,
MCancelledByUser,
MDelRegErr,
MConfirm,
MBottomLine,
MFilter,
MWaitingCompletion,

MShowInEditor,
MShowInViewer,
MEnterWaitCompletion,
MUseElevation,
MBtnOk,
MBtnCancel,
};
16 changes: 16 additions & 0 deletions Uninstall/src/File_ID.diz
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
<(NAME)> <(VER_MAJOR)>.<(VER_MINOR)>.<(VER_PATCH)>. Плагин "Удаление программ"
Far Manager <(FAR_VER_MAJOR)>.<(FAR_VER_MINOR)>.<(FAR_VER_BUILD)>

Автор оригинальной версии:
Eugene Sementsov, 2005
E-Mail: [email protected]
HomePage: www.e-sementsov.narod.ru

Поддержка начиная с версии 1.10:
Олег Маковский
E-Mail: [email protected]
Сайт: http://farplug.googlecode.com/
Новые версии: http://forum.farmanager.com/viewtopic.php?t=3529
Обсуждение: http://forum.farmanager.com/viewtopic.php?t=3597

Версия 1.10.8: [email protected]
93 changes: 93 additions & 0 deletions Uninstall/src/Memory.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,93 @@
HANDLE varHeap;

bool InitHeap() // run it in begin of program
{
varHeap = GetProcessHeap();
return (varHeap != NULL);
}

void * my_realloc(void * block, size_t size)
{
if (!size) // size == 0
{
if (block) // block != NULL
HeapFree(varHeap, 0, block);
return NULL;
}
if (block) // block != NULL
return HeapReAlloc(varHeap, HEAP_ZERO_MEMORY, block, size);
else // block == NULL
return HeapAlloc(varHeap, HEAP_ZERO_MEMORY, size);
}

void * operator new(size_t size)
{
return HeapAlloc(varHeap, HEAP_ZERO_MEMORY, size);
}

void operator delete(void * block)
{
HeapFree(varHeap, 0, block);
}

void * operator new[](size_t size)
{
return HeapAlloc(varHeap, HEAP_ZERO_MEMORY, size);
}

void operator delete[](void * block)
{
HeapFree(varHeap, 0, block);
}

void * memcpy(void *dst, const void *src, size_t count)
{
void *ret = dst;

while (count--)
{
*(char *)dst = *(char *)src;
dst = (char *)dst + 1;
src = (char *)src + 1;
}
return(ret);
}

void * memmove(void *dst, const void *src, size_t count)
{
void *ret = dst;
if (dst <= src || (char *)dst >= ((char *)src + count))
{
while (count--)
{
*(char *)dst = *(char *)src;
dst = (char *)dst + 1;
src = (char *)src + 1;
}
}
else
{
dst = (char *)dst + count - 1;
src = (char *)src + count - 1;

while (count--)
{
*(char *)dst = *(char *)src;
dst = (char *)dst - 1;
src = (char *)src - 1;
}
}
return(ret);
}

void * memset(void *dst, int val, size_t count)
{
void *start = dst;

while (count--)
{
*(char *)dst = (char)val;
dst = (char *)dst + 1;
}
return(start);
}
52 changes: 52 additions & 0 deletions Uninstall/src/ReadMe.Rus.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
 Это прямой аналог UnInst Д. Жемерова.
Что побудило меня написать аналог это плагина ?
- при смене языка UnInst некорректно менял название в меню плагинов
- в нем неудобно искать нужную программу, нет фильтра, нельзя быстро перейти
к программе

Дополнительные отличия:
- в используемом фильтре есть функции вставки из буфера обмена и очистки
фильтра
- размер данного плагина в 2 раза меньше аналога
- не используется FarPlus => проще в понимании
- Shift-Enter, Enter можно менять местами
- можно выбирать, где будет действовать плагин: помимо панелей плагин может
работать/не работать в просмотре, редактировании
- при просмотре информации изменились некоторые пункты отображения
- поддержка FExcept (есть .map файл)

PS Большое спасибо Дмитрию Жемерову за его плагин и исходники к нему, без
которых этот плагин вряд ли бы появился. Отдельное спасибо Алексею Ярославскому.

Другие мои плагины:
- SelectingEx. Плагин помогает облегчить операции с пометкой файлов. Заменяет собой плагины
Select from Clipboard, SELECT (Select group), SelJmp2. Кроме того, добавлены
некоторые другие полезные возможности, в частности поддержка темповой панели,
режимы отметки и др.

- Expr. Этот плагин представляет собой калькулятор. Вы можете использовать три
переменных a, b и c, а также видеть постфиксную запись вашего выражения. С
помощью клавиш + и - на малой цифровой клавиатуре вы можете менять точность
представления результата.

- FileMove2 (Moving Files Ex). Этот плагин предназначен для
копирования/перемещения выделенных файлов, папок в папку (папки) назначения.
Т.о. это расширение плагина FileMove Алексея Фирсакова. Добавлено: мультимедиа
режим, пакетный режим, опция "копирование/перемещение".

- Calendar. Этот плагин показывает календарь на текущий/любой месяц, а также
время, зодиакальный календарь и др.

- VisualEOLN. Простой и маленький плагин для визуализации концов строк.
Включает и выключает отображение концов строк.

- Shablon. Шаблон для создания плагинов под Borland C++ v5.x, Borland C++
Builder v6 и др.

- TimeTemplate. Плагин для работы с датой/временем с использованием шаблонов.
Позволяет создавать папки, вставлять в редактор/ком. строку, копировать в буфер
обмена шаблоны времени.

Евгений Семенцов/Eugene Sementsov
www.e-sementsov.narod.ru
[email protected]
Loading

0 comments on commit a2efcfe

Please sign in to comment.