View Issue Details

IDProjectCategoryView StatusLast Update
0000905Far ManagerMacropublic2009-08-20 12:14
ReporterJohnDoe Assigned Tovskirdin  
PrioritynormalSeverityminorReproducibilityalways
Status closedResolutionfixed 
Fixed in Version2.0 
Summary0000905: Изменения в eval
DescriptionN=eval(S[,T])

1) В случае ошибки перестал возвращается её код - теперь всегда N=0

2) При T=1 не надо выводить сообщение об ошибке - ведь мы используем этот параметр когда хотим сами обработать ошибку.
TagsNo tags attached.
Build1086

Activities

vskirdin

2009-06-01 09:54

administrator   bugnote:0003411

я так понимаю, что в 1.75 такого нет, так?

JohnDoe

2009-06-01 10:15

updater   bugnote:0003414

Такое появилось после
>5. При разборе макросов теперь всегда выдаётся предупреждение, если макрос
содержит ошибки.

А в 1.75 предупреждение не реализовано, поэтому всё работает по-старому, т.е. правильно

vskirdin

2009-06-01 11:41

administrator   bugnote:0003420

так, кто-то где-то что-то не договаривает.
JohnDoe, у тебя случаем для диалогов для Enter нет никаких макросов?
И вообще... (в т.ч.) покажи макрос(ы) где увидел баг.

JohnDoe

2009-06-01 12:08

updater   bugnote:0003421

msgbox(eval("!!",1))

Видим пустой msgbox
Под ним - красное окошко "Macro parsing error"

Во-первых msgbox не должен быть пустой

vskirdin

2009-06-01 12:50

administrator   bugnote:0003423

так, в общем тут 2 проблемы.
1. вывод сообщения не должен выводиться всегда... в некоторых случаях нужен режим silent
2. так вышло, что последовательность исполнения была такой:

а) eval
б) eval выводит диалог (он еще не виден)
в) как только в памяти оказался этот диалог об ошибке, макродвиг продолжил исполнение (по сути управление получи ФАР)
г) дошел до функции msgbox, НО! eval еще не положил в стек значение парсинга
д) при исполнении msgbox разлочил экран и мы увидели 2 диалога.

в общим фиксед, но фиксед только п.2.

vskirdin

2009-06-01 13:03

administrator   bugnote:0003424

2.00 = build 970

JohnDoe

2009-06-02 09:18

updater   bugnote:0003452

Первый пункт тикета теперь в порядке
А что планируется с другим пунктом?

2) При T=1 не надо выводить сообщение об ошибке - ведь мы используем этот параметр когда хотим сами обработать ошибку.

vskirdin

2009-07-17 14:49

administrator   bugnote:0003754

по второму пункту после build 1047

JohnDoe

2009-07-18 09:42

updater   bugnote:0003757

Тестируем:
eval("",1) - возвращает ноль, что означает "без ошибок"

Исполняем:
eval("",0)

╔═ Macro parsing error ═╗
║ ║
╟───────────────────────╢
║ ║
║ ║
╟───────────────────────╢
║ OK ║
╚═══════════════════════╝

1) Предлагаю при пустом макро возвращать -1
2) Сообщение должно быть более осмысленным, типа "Zero-length macro"

vskirdin

2009-08-17 08:57

administrator   bugnote:0003915

Нашел.
Теперь надо понять ;-)
Выражение eval("",?) считаем допустимым?
(я про пустую макропоследовательность)

JohnDoe

2009-08-18 10:21

updater   bugnote:0003917

До изменений в eval пустая макропоследовательность была допустима, можно вернуть как было...

А как удобно лично мне я уже описал сообщением выше (возвращать -1)

vskirdin

2009-08-19 07:49

administrator   bugnote:0003918

Ок. Считаем (пока) пустую последовательность ошибкой.
Вариант eval("",1) вернет ошибку 12 ("Zero-length macro")
2 = build 1086
1 = build 2605

JohnDoe

2009-08-20 11:35

updater   bugnote:0003919

fixed
(Сам закрыть не могу - традиционный Access Denied)

vskirdin

2009-08-20 12:14

administrator   bugnote:0003920

1.7x = build 2605

Issue History

Date Modified Username Field Change
2009-06-01 08:52 JohnDoe New Issue
2009-06-01 09:54 vskirdin Note Added: 0003411
2009-06-01 10:15 JohnDoe Note Added: 0003414
2009-06-01 11:41 vskirdin Note Added: 0003420
2009-06-01 12:08 JohnDoe Note Added: 0003421
2009-06-01 12:44 vskirdin Status new => assigned
2009-06-01 12:44 vskirdin Assigned To => vskirdin
2009-06-01 12:50 vskirdin Note Added: 0003423
2009-06-01 13:03 vskirdin Note Added: 0003424
2009-06-01 13:03 vskirdin Status assigned => feedback
2009-06-02 09:18 JohnDoe Note Added: 0003452
2009-07-15 17:33 JohnDoe Status feedback => resolved
2009-07-15 17:33 JohnDoe Status resolved => assigned
2009-07-15 17:33 JohnDoe Resolution open => reopened
2009-07-17 14:49 vskirdin Note Added: 0003754
2009-07-17 14:49 vskirdin Status assigned => feedback
2009-07-18 09:42 JohnDoe Note Added: 0003757
2009-08-17 08:57 vskirdin Note Added: 0003915
2009-08-18 10:21 JohnDoe Note Added: 0003917
2009-08-19 07:49 vskirdin Note Added: 0003918
2009-08-20 11:35 JohnDoe Note Added: 0003919
2009-08-20 12:14 vskirdin Build => 1086
2009-08-20 12:14 vskirdin Note Added: 0003920
2009-08-20 12:14 vskirdin Status feedback => closed
2009-08-20 12:14 vskirdin Resolution reopened => fixed
2009-08-20 12:14 vskirdin Fixed in Version => 2.0