Page 1 of 24

Модифицированный Calc (original by Cail Lomecb), версия 3.22

Posted: Mon 22 Jun, 2009 15:11
by uncle-vunkis
В этой ветке ведётся обсуждение модифицированного плагина Калькулятор (первоначальный автор Игорь Русских aka Cail Lomecb).

Последняя версия - v3.22 (05.11.2012) (Анонс)

Скачать.

Просьба писать в эту ветку свои замечания и предложения.
Некоторое время я буду следить за этой веткой для обратной связи и поддержки.

Re: Модифицированный Calc (original by Cail Lomecb), версия 3.01

Posted: Mon 22 Jun, 2009 15:22
by dolzenko
Под 1.75 поедет?

Добавлено: извиняюсь, сам не знаю куда смотрю, очевидно, что нет: "Естественно, совместимость с более ранними версиями Far утрачена."

Re: Модифицированный Calc (original by Cail Lomecb), версия 3.01

Posted: Mon 22 Jun, 2009 15:47
by DrKnS
Уникодный калк - это очень хорошо, но:

1.
uncle-vunkis wrote:Плагин стал полностью юникодовым и совместимым с Far 2.0 (ну, по крайней мере, с текущим билдом 1007)
а) Я вот тут смотрю - плагин собран с plugin.hpp от 2.0.958, чего уже достаточно для падения.
б) Все места в исходниках, подобные вот этому:
FarDialogItem fdi;
Info.SendDlgMessage(hdlg, DM_GETDLGITEM, param1, (long)&fdi);
- после 992 билда фатальны.

2. Есть подозрение, многим покажется интересной и x64-версия.

3. Давайте таки блюсти порядок - анонс в соответствующий форум, аттачи туда же, здесь только обсуждение.

Re: Модифицированный Calc (original by Cail Lomecb), версия 3.01

Posted: Mon 22 Jun, 2009 16:11
by uncle-vunkis
DrKnS wrote:б) Все места в исходниках, подобные вот этому:
FarDialogItem fdi;
Info.SendDlgMessage(hdlg, DM_GETDLGITEM, param1, (long)&fdi);
Будьте добры, поясните, почему именно этот фрагмент кода приведёт к падению (у меня лично не падает на 1007)?
DrKnS wrote:3. Давайте таки блюсти порядок - анонс в соответствующий форум, аттачи туда же, здесь только обсуждение.
Пардон, безусловно, реорганизую ветки как только Вы проясните ситуацию с DM_GETDLGITEM, и я смогу пересобрать плагин.

Re: Модифицированный Calc (original by Cail Lomecb), версия 3.01

Posted: Mon 22 Jun, 2009 16:24
by Andrey Budko
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 указатель на память куда будет скопирован элемент. возвращается необходимый размер буфера.

Re: Модифицированный Calc (original by Cail Lomecb), версия 3.01

Posted: Mon 22 Jun, 2009 16:28
by DrKnS
uncle-vunkis wrote:почему именно этот фрагмент кода приведёт к падению
Потому что содержимое FarDialogItem.Param.PtrData записывается в конец структуры FarDialogItem, и, соответственно, память нужно выделять с запасом. Пример правильного использования есть во wrap.cpp.
у меня лично не падает на 1007
Затолкайте в диалог строку подлиннее - упадёт :)

Re: Модифицированный Calc (original by Cail Lomecb), версия 3.01

Posted: Mon 22 Jun, 2009 18:17
by uncle-vunkis
Спасибо DrKnS и Andrey Budko за помощь. Не успел выложить версию от 13-го числа, как API уже поменялся - просто не уследишь!.. :? Теперь, надеюсь, сделал всё правильно. А 64-битную версию собрать пока не могу (если кто скомпилирует по-быстрому - добавлю в дистрибутив).

Всем, скачавшим версию 3.01 от 13.06.2009, просьба скачать версию 3.01b с исправлениями для последних билдов Far Manager.

Re: Модифицированный Calc (original by Cail Lomecb), версия 3.01

Posted: Mon 22 Jun, 2009 18:40
by Andrey Budko
Так что, оно теперь не падает? Оригинальный калькулятор падал на каждый второй чих.

Re: Модифицированный Calc (original by Cail Lomecb), версия 3.01

Posted: Mon 22 Jun, 2009 18:42
by John Doe
calcset.csr wrote:

Code: Select all

<?xml version="1.0" encoding="Windows-1251"?>
Эта строчка во-первых не соответствует действительности, а во-вторых может ввести в заблуждение - будто поддерживаются кодировки отличные от 1200│ UTF-16

Re: Модифицированный Calc (original by Cail Lomecb), версия 3.01

Posted: Mon 22 Jun, 2009 18:44
by Andrey Budko
Andrey Budko wrote:Так что, оно теперь не падает?
2 в степени 64 во всяком случае считает правильно - в точности как виндовый калькулятор :)

Старый калькулятор в первой из двух попыток вычислить 2 pow 64 - упал, а во второй - посчитал неправильно.

Re: Модифицированный Calc (original by Cail Lomecb), версия 3.01

Posted: Mon 22 Jun, 2009 18:51
by uncle-vunkis
Andrey Budko wrote:Так что, оно теперь не падает? Оригинальный калькулятор падал на каждый второй чих.
Как говорится, практика - критерий истины! :wink:
По крайней мере, я взялся за это дело в том числе и потому, что "старый" калькулятор любил падать при некоторых "неудобных" вычислениях, особенно со стапенями и экспонентами. Новый, естественно, от этого всего совершенно не падает и спокойно выдерживает, скажем, факториалы до 1000... :oops: Но гарантировать ничего не могу, и сам пока "гоняю" его, тестирую.
Приоритетная цель этой версии плагина - стабильность работы. Надеюсь, уважаемые форумчане присоединятся к тестированию и помогут этого добиться.
Эта строчка во-первых не соответствует действительности...
Вы правы, спасибо, исправлю в будущей версии...

Re: Модифицированный Calc (original by Cail Lomecb), версия 3.01

Posted: Mon 22 Jun, 2009 19:58
by Maximus5
А вот эти дополнения можно в вашу сборку включить?

Re: Модифицированный Calc (original by Cail Lomecb), версия 3.01

Posted: Mon 22 Jun, 2009 20:35
by uncle-vunkis
Maximus5 wrote:А вот эти дополнения можно в вашу сборку включить?
Конечно. "Серый Enter" добавлю. Насчёт "времени" - хочу сделать универсально, как "аддон", описываемый в calcset.csr. Т.е. хочу добавить поддержку задания "формата" вывода, только пока не решил как лучше. А вот мусор что-то не замечал - проверьте, пожалуйста, актуально ли это на этой версии?

Re: Модифицированный Calc (original by Cail Lomecb), версия 3.01

Posted: Mon 22 Jun, 2009 20:35
by Andrey Budko
1. Добавляю в секцию Addons преобразования в градусы и радианы:

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>
Вызываю калькулятор, ввожу "а" без кавычек - метки "rad", "deg" исчезают

Code: Select all

expr:a
expression error
 (•) dec:
 ( ) hex:
 ( ) oct:
 ( ) bin:
 ( ) exp: 0
 ( ) dBV: 0
 ( )      0
 ( )      0
2. Возможно будет удобней, если поле ввода в случае ошибки в выражении после нажатия на <Enter> будет очищаться (до состояния только что вызванного плагина) вместо появляющегося нуля и курсора после него. Ну или хотя бы выделять его, чтобы последующий любой инпут его заменил. Это поможет избавиться от лишних телодвижений по "отключению" восьмиричной ситемы.

Другими словами. Вызываем калькулятор, вводим asd, жмем <Enter>, получаем "0_" с пост эффектом восьмиричного ввода. Предлагаю либо очищать, либо выделять.

Re: Модифицированный Calc (original by Cail Lomecb), версия 3.01

Posted: Mon 22 Jun, 2009 20:43
by uncle-vunkis
Andrey Budko wrote:1...2....
Принято! Будет в след.версии!