Модифицированный Calc (original by Cail Lomecb), версия 3.22
- uncle-vunkis
- Posts: 72
- Joined: Thu 11 Jun, 2009 15:16
- Been thanked: 1 time
Модифицированный Calc (original by Cail Lomecb), версия 3.22
В этой ветке ведётся обсуждение модифицированного плагина Калькулятор (первоначальный автор Игорь Русских aka Cail Lomecb).
Последняя версия - v3.22 (05.11.2012) (Анонс)
Скачать.
Просьба писать в эту ветку свои замечания и предложения.
Некоторое время я буду следить за этой веткой для обратной связи и поддержки.
Последняя версия - v3.22 (05.11.2012) (Анонс)
Скачать.
Просьба писать в эту ветку свои замечания и предложения.
Некоторое время я буду следить за этой веткой для обратной связи и поддержки.
Last edited by uncle-vunkis on Tue 06 Nov, 2012 22:12, edited 6 times in total.
Re: Модифицированный Calc (original by Cail Lomecb), версия 3.01
Под 1.75 поедет?
Добавлено: извиняюсь, сам не знаю куда смотрю, очевидно, что нет: "Естественно, совместимость с более ранними версиями Far утрачена."
Добавлено: извиняюсь, сам не знаю куда смотрю, очевидно, что нет: "Естественно, совместимость с более ранними версиями Far утрачена."
- DrKnS
- Posts: 6114
- Joined: Thu 04 Aug, 2005 06:44
- Location: Kyiv
- Has thanked: 12 times
- Been thanked: 426 times
Re: Модифицированный Calc (original by Cail Lomecb), версия 3.01
Уникодный калк - это очень хорошо, но:
1.
б) Все места в исходниках, подобные вот этому:
2. Есть подозрение, многим покажется интересной и x64-версия.
3. Давайте таки блюсти порядок - анонс в соответствующий форум, аттачи туда же, здесь только обсуждение.
1.
а) Я вот тут смотрю - плагин собран с plugin.hpp от 2.0.958, чего уже достаточно для падения.uncle-vunkis wrote:Плагин стал полностью юникодовым и совместимым с Far 2.0 (ну, по крайней мере, с текущим билдом 1007)
б) Все места в исходниках, подобные вот этому:
- после 992 билда фатальны.FarDialogItem fdi;
Info.SendDlgMessage(hdlg, DM_GETDLGITEM, param1, (long)&fdi);
2. Есть подозрение, многим покажется интересной и x64-версия.
3. Давайте таки блюсти порядок - анонс в соответствующий форум, аттачи туда же, здесь только обсуждение.
- uncle-vunkis
- Posts: 72
- Joined: Thu 11 Jun, 2009 15:16
- Been thanked: 1 time
Re: Модифицированный Calc (original by Cail Lomecb), версия 3.01
Будьте добры, поясните, почему именно этот фрагмент кода приведёт к падению (у меня лично не падает на 1007)?DrKnS wrote:б) Все места в исходниках, подобные вот этому:FarDialogItem fdi;
Info.SendDlgMessage(hdlg, DM_GETDLGITEM, param1, (long)&fdi);
Пардон, безусловно, реорганизую ветки как только Вы проясните ситуацию с DM_GETDLGITEM, и я смогу пересобрать плагин.DrKnS wrote:3. Давайте таки блюсти порядок - анонс в соответствующий форум, аттачи туда же, здесь только обсуждение.
- Andrey Budko
- Posts: 1203
- Joined: Fri 01 Apr, 2005 14:03
- Contact:
Re: Модифицированный Calc (original by Cail Lomecb), версия 3.01
uncle-vunkis wrote:Пардон, безусловно, реорганизую ветки как только Вы проясните ситуацию с DM_GETDLGITEM, и я смогу пересобрать плагин.
zg 14.06.2009 23:03:14 +0200 - build 992
1. DM_FREEDLGITEM больше нет.
все плагины, использовавшие DM_GETDLGITEM/DM_FREEDLGITEM/DM_GETCONSTTEXTPTR/DM_GETDLGITEMSHORT/DM_SETDLGITEMSHORT - сломались.
DM_GETDLGITEM - изменён, Param2 указатель на память куда будет скопирован элемент. возвращается необходимый размер буфера.
- DrKnS
- Posts: 6114
- Joined: Thu 04 Aug, 2005 06:44
- Location: Kyiv
- Has thanked: 12 times
- Been thanked: 426 times
Re: Модифицированный Calc (original by Cail Lomecb), версия 3.01
Потому что содержимое FarDialogItem.Param.PtrData записывается в конец структуры FarDialogItem, и, соответственно, память нужно выделять с запасом. Пример правильного использования есть во wrap.cpp.uncle-vunkis wrote:почему именно этот фрагмент кода приведёт к падению
Затолкайте в диалог строку подлиннее - упадёт :)у меня лично не падает на 1007
- uncle-vunkis
- Posts: 72
- Joined: Thu 11 Jun, 2009 15:16
- Been thanked: 1 time
Re: Модифицированный Calc (original by Cail Lomecb), версия 3.01
Спасибо DrKnS и Andrey Budko за помощь. Не успел выложить версию от 13-го числа, как API уже поменялся - просто не уследишь!.. Теперь, надеюсь, сделал всё правильно. А 64-битную версию собрать пока не могу (если кто скомпилирует по-быстрому - добавлю в дистрибутив).
Всем, скачавшим версию 3.01 от 13.06.2009, просьба скачать версию 3.01b с исправлениями для последних билдов Far Manager.
Всем, скачавшим версию 3.01 от 13.06.2009, просьба скачать версию 3.01b с исправлениями для последних билдов Far Manager.
- Andrey Budko
- Posts: 1203
- Joined: Fri 01 Apr, 2005 14:03
- Contact:
Re: Модифицированный Calc (original by Cail Lomecb), версия 3.01
Так что, оно теперь не падает? Оригинальный калькулятор падал на каждый второй чих.
- John Doe
- Бюрократ
- Posts: 13807
- Joined: Wed 27 Apr, 2005 20:42
- Has thanked: 73 times
- Been thanked: 426 times
- Contact:
Re: Модифицированный Calc (original by Cail Lomecb), версия 3.01
Эта строчка во-первых не соответствует действительности, а во-вторых может ввести в заблуждение - будто поддерживаются кодировки отличные от 1200│ UTF-16calcset.csr wrote:Code: Select all
<?xml version="1.0" encoding="Windows-1251"?>
https://t.me/FarManager — Telegram чат
- Andrey Budko
- Posts: 1203
- Joined: Fri 01 Apr, 2005 14:03
- Contact:
Re: Модифицированный Calc (original by Cail Lomecb), версия 3.01
2 в степени 64 во всяком случае считает правильно - в точности как виндовый калькуляторAndrey Budko wrote:Так что, оно теперь не падает?
Старый калькулятор в первой из двух попыток вычислить 2 pow 64 - упал, а во второй - посчитал неправильно.
- uncle-vunkis
- Posts: 72
- Joined: Thu 11 Jun, 2009 15:16
- Been thanked: 1 time
Re: Модифицированный Calc (original by Cail Lomecb), версия 3.01
Как говорится, практика - критерий истины!Andrey Budko wrote:Так что, оно теперь не падает? Оригинальный калькулятор падал на каждый второй чих.
По крайней мере, я взялся за это дело в том числе и потому, что "старый" калькулятор любил падать при некоторых "неудобных" вычислениях, особенно со стапенями и экспонентами. Новый, естественно, от этого всего совершенно не падает и спокойно выдерживает, скажем, факториалы до 1000... Но гарантировать ничего не могу, и сам пока "гоняю" его, тестирую.
Приоритетная цель этой версии плагина - стабильность работы. Надеюсь, уважаемые форумчане присоединятся к тестированию и помогут этого добиться.
Вы правы, спасибо, исправлю в будущей версии...Эта строчка во-первых не соответствует действительности...
Re: Модифицированный Calc (original by Cail Lomecb), версия 3.01
А вот эти дополнения можно в вашу сборку включить?
- uncle-vunkis
- Posts: 72
- Joined: Thu 11 Jun, 2009 15:16
- Been thanked: 1 time
Re: Модифицированный Calc (original by Cail Lomecb), версия 3.01
Конечно. "Серый Enter" добавлю. Насчёт "времени" - хочу сделать универсально, как "аддон", описываемый в calcset.csr. Т.е. хочу добавить поддержку задания "формата" вывода, только пока не решил как лучше. А вот мусор что-то не замечал - проверьте, пожалуйста, актуально ли это на этой версии?Maximus5 wrote:А вот эти дополнения можно в вашу сборку включить?
- Andrey Budko
- Posts: 1203
- Joined: Fri 01 Apr, 2005 14:03
- Contact:
Re: Модифицированный Calc (original by Cail Lomecb), версия 3.01
1. Добавляю в секцию Addons преобразования в градусы и радианы:
Вызываю калькулятор, ввожу "а" без кавычек - метки "rad", "deg" исчезают
2. Возможно будет удобней, если поле ввода в случае ошибки в выражении после нажатия на <Enter> будет очищаться (до состояния только что вызванного плагина) вместо появляющегося нуля и курсора после него. Ну или хотя бы выделять его, чтобы последующий любой инпут его заменил. Это поможет избавиться от лишних телодвижений по "отключению" восьмиричной ситемы.
Другими словами. Вызываем калькулятор, вводим asd, жмем <Enter>, получаем "0_" с пост эффектом восьмиричного ввода. Предлагаю либо очищать, либо выделять.
Code: Select all
<!-- XXX: These are added to the calc outputs after 'bin', 'hex', 'oct'... -->
<set name="Addons">
<!-- Decibel of amplitude, referenced to 1(V) -->
<func syntax="dBV" mean="20*(lg(op0))"/>
<op syntax="dB" mean="10 _pow ((op0)/20)"/>
<func syntax="rad" mean="(op0 * pi) / 180"/>
<func syntax="deg" mean="(op0 * 180) / pi"/>
</set>
Code: Select all
expr:a
expression error
(•) dec:
( ) hex:
( ) oct:
( ) bin:
( ) exp: 0
( ) dBV: 0
( ) 0
( ) 0
Другими словами. Вызываем калькулятор, вводим asd, жмем <Enter>, получаем "0_" с пост эффектом восьмиричного ввода. Предлагаю либо очищать, либо выделять.
- uncle-vunkis
- Posts: 72
- Joined: Thu 11 Jun, 2009 15:16
- Been thanked: 1 time
Re: Модифицированный Calc (original by Cail Lomecb), версия 3.01
Принято! Будет в след.версии!Andrey Budko wrote:1...2....