yozhic
Silver Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору «Создание» – это, наверное, слишком громко сказано. Переделка. Цель нижеописанных манипуляций: чтобы версии обеих битностей использовали общие файлы настроек. 1) В исходниках меняем: Файл | Строка № | Что менять | Чем менять | AkelPad.c | 1116 | "%s\\AkelFiles\\Langs\\%s" | "%s\\AkelFiles\\Langs64\\%s" | Edit.c | 12361 | "%s\\AkelFiles\\Langs\\*.dll" | "%s\\AkelFiles\\Langs64\\*.dll" | Edit.c | 13821 | "%s\\AkelFiles\\Plugs\\%s.dll" | "%s\\AkelFiles\\Plugs64\\%s.dll" | Edit.c | 13969 | "%s\\AkelFiles\\Plugs\\%s.dll" | "%s\\AkelFiles\\Plugs64\\%s.dll" | Edit.c | 14741 | "%s\\AkelFiles\\Plugs\\*.%s" | "%s\\AkelFiles\\Plugs64\\*.%s" | Edit.c | 14751 | "%s\\AkelFiles\\Plugs\\%s" | "%s\\AkelFiles\\Plugs64\\%s" | Edit.c | 19145 | "%s\\AkelFiles\\AkelAdmin.exe" | "%s\\AkelFiles\\AkelAdmin64.exe" | 2) Компилируем x64 версию, переименовываем её (например, в AkelPad64.exe) и помещаем в папку AkelPad (рядом с файлом AkelPad.ini). 64-битные плагины помещаем в папку AkelFiles\Plugs64. 64-битные файлы переводов в папку AkelFiles\Langs64. 64-битный AkelAdmin.exe переименовываем в AkelAdmin64.exe и помещаем в папку AkelFiles. 3) У плагина SpellCheck.dll только 32-битная версия. Поэтому, если он используется и мы хотим загружать его при старте, нужно вначале отключить его автозагрузку в диалоге Plugins (Плагины), в AkelPad.ini удалить строку "SpellCheck::Background=65536" (если таковая имеется), во всех вызовах плагина в меню "+Call" исправить на "Call", а затем в AkelPad.ini в параметре CmdLineEnd= добавить: Код: /If(`AkelPad.Constants._X64 == 0`, `/Call("SpellCheck::Background")`, ``) | чтобы он загружался только при запуске 32-битной версии. Неудобство: от пользования автозагрузкой этого плагина в диалоге Plugins придётся полностью отказаться, иначе при старте 64-битной версии AkelPad будет жаловаться на отсутствующий файл. Зато при настройке контекстных меню неудобств нет. Например: Код: SET(64, If(`AkelPad.Constants._X64 == 0`)) "Spell check" Call("SpellCheck::Background") Menu("SPELLCHECK") Icon("%a\AkelFiles\icons\ToolbarEx.dll", 35) UNSET(64) | – так пункты меню со SpellCheck будут отображаться только при запуске 32-битной версии. 4) Если нужно перезагружаться из битности в битность (x86 <> x64), можно воспользоваться модифицированным AkelPadRestart.js (автор оригинала: KDJ). Пункт меню для его запуска: Код: -"Restart x86 <> x64" Call("Scripts::Main", 1, "AkelPadRestart.js", `-bitRestart -AkelPad.exe -AkelPad64.exe`) | 2й параметр – имя 32-битного exe, 3й – имя 64-битного exe. 5) Если нужно, чтобы битность отображалась в заголовке окна AkelPad, можно воспользоваться AkelPadTitle.js от KDJ, предварительно слегка его модифицировав. Цель модификации: удалить суффикс из имени 64-битного exe-файла, т.к. скрипт берет заголовок из имени exe. Суффикс указывается в аргументе запуска скрипта. В начало скрипта, после комментариев добавить: Код: var pExeSuffix = AkelPad.GetArgValue("delExeSuffix", ""); | В функцию GetExeName() (строка 281 оригинального скрипта) вместо: Код: return sName.replace(/.+\\(.+)\..*$/, "$1"); | вставить: Код: if (pExeSuffix == '') return sName.replace(/.+\\(.+)\..*$/, "$1"); else { var pat = new RegExp('.+\\\\(.+?)(' + pExeSuffix + ')?\\..*$','i') return sName.replace(pat, "$1"); } | Можно добавить в комментарии: Код: // Дополнительный аргумент: // -delExeSuffix - удаляет указанное окончание из имени exe-файла, например: -delExeSuffix="64" // (для использования в совмещённой сборке x86-x64) // Дополнительный пример запуска: // /Call("Scripts::Main", 1, "AkelPadTitle.js", `-t="%%m %%e (%%b) - [%%F]" -t0="%%m %%e (%%b)" -t1="%%m %%e (%%b) - [%%F]" -delExeSuffix="64"`) | И в AkelPad.ini в параметре CmdLineEnd= добавить, например: Код: /Call("Scripts::Main", 1, "AkelPadTitle.js", `-t="%%m %%e (%%b) - [%%F]" -t0="%%m %%e (%%b)" -t1="%%m %%e (%%b) - [%%F]" -delExeSuffix="64"`) | | Всего записей: 2773 | Зарегистр. 20-03-2008 | Отправлено: 01:50 11-11-2017 | Исправлено: yozhic, 15:10 10-07-2018 |
|