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

Здесь можно обсудить ваш любимый плагин.
User avatar
uncle-vunkis
Posts: 72
Joined: Thu 11 Jun, 2009 15:16
Been thanked: 1 time

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

Postby uncle-vunkis » Mon 22 Jun, 2009 15:11

В этой ветке ведётся обсуждение модифицированного плагина Калькулятор (первоначальный автор Игорь Русских aka Cail Lomecb).

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

Скачать.

Просьба писать в эту ветку свои замечания и предложения.
Некоторое время я буду следить за этой веткой для обратной связи и поддержки.
Last edited by uncle-vunkis on Tue 06 Nov, 2012 22:12, edited 6 times in total.

dolzenko
Posts: 452
Joined: Wed 19 Apr, 2006 14:42
Location: Ростов-на-Дону

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

Postby dolzenko » Mon 22 Jun, 2009 15:22

Под 1.75 поедет?

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

User avatar
DrKnS
Posts: 4458
Joined: Thu 04 Aug, 2005 06:44
Location: Kyiv
Has thanked: 2 times
Been thanked: 105 times
Contact:

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

Postby DrKnS » Mon 22 Jun, 2009 15:47

Уникодный калк - это очень хорошо, но:

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. Давайте таки блюсти порядок - анонс в соответствующий форум, аттачи туда же, здесь только обсуждение.

User avatar
uncle-vunkis
Posts: 72
Joined: Thu 11 Jun, 2009 15:16
Been thanked: 1 time

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

Postby uncle-vunkis » Mon 22 Jun, 2009 16:11

DrKnS wrote:б) Все места в исходниках, подобные вот этому:
FarDialogItem fdi;
Info.SendDlgMessage(hdlg, DM_GETDLGITEM, param1, (long)&fdi);

Будьте добры, поясните, почему именно этот фрагмент кода приведёт к падению (у меня лично не падает на 1007)?

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

Пардон, безусловно, реорганизую ветки как только Вы проясните ситуацию с DM_GETDLGITEM, и я смогу пересобрать плагин.

User avatar
Andrey Budko
Posts: 1204
Joined: Fri 01 Apr, 2005 14:03
Contact:

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

Postby Andrey Budko » Mon 22 Jun, 2009 16:24

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 указатель на память куда будет скопирован элемент. возвращается необходимый размер буфера.

User avatar
DrKnS
Posts: 4458
Joined: Thu 04 Aug, 2005 06:44
Location: Kyiv
Has thanked: 2 times
Been thanked: 105 times
Contact:

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

Postby DrKnS » Mon 22 Jun, 2009 16:28

uncle-vunkis wrote:почему именно этот фрагмент кода приведёт к падению

Потому что содержимое FarDialogItem.Param.PtrData записывается в конец структуры FarDialogItem, и, соответственно, память нужно выделять с запасом. Пример правильного использования есть во wrap.cpp.

у меня лично не падает на 1007

Затолкайте в диалог строку подлиннее - упадёт :)

User avatar
uncle-vunkis
Posts: 72
Joined: Thu 11 Jun, 2009 15:16
Been thanked: 1 time

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

Postby uncle-vunkis » Mon 22 Jun, 2009 18:17

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

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

User avatar
Andrey Budko
Posts: 1204
Joined: Fri 01 Apr, 2005 14:03
Contact:

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

Postby Andrey Budko » Mon 22 Jun, 2009 18:40

Так что, оно теперь не падает? Оригинальный калькулятор падал на каждый второй чих.

User avatar
John Doe
Бюрократ
Posts: 11040
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 9 times
Been thanked: 62 times

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

Postby John Doe » Mon 22 Jun, 2009 18:42

calcset.csr wrote:

Code: Select all

<?xml version="1.0" encoding="Windows-1251"?>



Эта строчка во-первых не соответствует действительности, а во-вторых может ввести в заблуждение - будто поддерживаются кодировки отличные от 1200│ UTF-16

User avatar
Andrey Budko
Posts: 1204
Joined: Fri 01 Apr, 2005 14:03
Contact:

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

Postby Andrey Budko » Mon 22 Jun, 2009 18:44

Andrey Budko wrote:Так что, оно теперь не падает?

2 в степени 64 во всяком случае считает правильно - в точности как виндовый калькулятор :)

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

User avatar
uncle-vunkis
Posts: 72
Joined: Thu 11 Jun, 2009 15:16
Been thanked: 1 time

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

Postby uncle-vunkis » Mon 22 Jun, 2009 18:51

Andrey Budko wrote:Так что, оно теперь не падает? Оригинальный калькулятор падал на каждый второй чих.

Как говорится, практика - критерий истины! :wink:
По крайней мере, я взялся за это дело в том числе и потому, что "старый" калькулятор любил падать при некоторых "неудобных" вычислениях, особенно со стапенями и экспонентами. Новый, естественно, от этого всего совершенно не падает и спокойно выдерживает, скажем, факториалы до 1000... :oops: Но гарантировать ничего не могу, и сам пока "гоняю" его, тестирую.
Приоритетная цель этой версии плагина - стабильность работы. Надеюсь, уважаемые форумчане присоединятся к тестированию и помогут этого добиться.

Эта строчка во-первых не соответствует действительности...

Вы правы, спасибо, исправлю в будущей версии...

Maximus5
Posts: 3291
Joined: Sun 11 Nov, 2007 02:03
Been thanked: 4 times
Contact:

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

Postby Maximus5 » Mon 22 Jun, 2009 19:58

А вот эти дополнения можно в вашу сборку включить?

User avatar
uncle-vunkis
Posts: 72
Joined: Thu 11 Jun, 2009 15:16
Been thanked: 1 time

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

Postby uncle-vunkis » Mon 22 Jun, 2009 20:35

Maximus5 wrote:А вот эти дополнения можно в вашу сборку включить?

Конечно. "Серый Enter" добавлю. Насчёт "времени" - хочу сделать универсально, как "аддон", описываемый в calcset.csr. Т.е. хочу добавить поддержку задания "формата" вывода, только пока не решил как лучше. А вот мусор что-то не замечал - проверьте, пожалуйста, актуально ли это на этой версии?

User avatar
Andrey Budko
Posts: 1204
Joined: Fri 01 Apr, 2005 14:03
Contact:

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

Postby Andrey Budko » Mon 22 Jun, 2009 20:35

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_" с пост эффектом восьмиричного ввода. Предлагаю либо очищать, либо выделять.

User avatar
uncle-vunkis
Posts: 72
Joined: Thu 11 Jun, 2009 15:16
Been thanked: 1 time

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

Postby uncle-vunkis » Mon 22 Jun, 2009 20:43

Andrey Budko wrote:1...2....

Принято! Будет в след.версии!

User avatar
Andrey Budko
Posts: 1204
Joined: Fri 01 Apr, 2005 14:03
Contact:

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

Postby Andrey Budko » Mon 22 Jun, 2009 20:45

3. Вызываю калькулятор, ввожу "число" из 800 единичек (1111111.....), нажимаю <Enter> - падает. Если быть точнее: 763 единички - не падает, 764 - падает.

4. Вводим выражение из бОльшего количесва символов чем влазит в видимую область поля ввода. В моем случае это было (хотел уронить стек):

Code: Select all

((((((((((((((((((1+1)+1)+1)+1)+1)+1)+1)+1)+1)+1)+1)+1)+1)+1)+1)+1)+1)+1)

Нажимаем <Enter> - чтобы увидеть ответ в строке ввода, придется нажать пару раз стрелку влево.


Return to “Обсуждение плагинов”

Who is online

Users browsing this forum: No registered users and 12 guests