View Issue Details

IDProjectCategoryView StatusLast Update
0002390WishesMacropublic2013-09-26 13:26
ReporterJohnDoe Assigned Toshmuel  
PrioritynormalSeverityminorReproducibilityN/A
Status closedResolutionfixed 
Product Version3.0 
Fixed in Version3.0 
Summary0002390: Передавать параметры скрипту, запущенному через lm:post @
DescriptionЖелательно включая arg[0]
TagsNo tags attached.
Build3680

Activities

shmuel

2013-06-28 09:56

developer   bugnote:0011210

Last edited: 2013-06-28 12:00

View 3 revisions

> Желательно включая arg[0]

Вот это портит картину. Мне видится передача параметров не через таблицу arg, а через ... - это более элегантное и более общее решение. Принудительно впихивать имя файла первым параметром - тоже не элегантно (как и в случае с arg, это - конвенция, чего хотелось бы избежать).

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

Дело в том, что передача скрипту имени его файла, как мне кажется, нужна редко, поэтому не хотелось бы ради этого изобретать специальные механизмы и документировать их.

Smitis

2013-06-28 11:40

reporter   bugnote:0011214

Когда это обсуждали, JohnDoe хотел (если память не изменяет) одинакового механизма как для автоматически загружаемых скриптов из scripts, так и для вызываемых через lm:post чтобы один и тот же скрипт можно было вызывать и так и так. Но для макросов уже сделали в ... передачу имени файла файла первым параметром...

shmuel

2013-06-28 12:06

developer   bugnote:0011215

При автоматической загрузке скриптов нет произвольно добавляемых аргументов, и это - большая разница. А если скрипт предполагает получение произвольных аргументов, то я предпочитаю, чтобы именно они поступали через ... , причём в естественном порядке. Как уже было сказано, имя файла можно передать в любом аргументе, если нужно.

shmuel

2013-06-30 10:23

developer   bugnote:0011221

Changelog (plugin LuaMacro):

> shmuel 30.06.2013 13:12:37 +0200 - build 196

> 1. Добавлена возможность вызывать скрипт-файлы с аргументами.
> Это касается: MCTL_SENDSTRING, MCTL_ADDMACRO, eval, lm:post, lm:check.

JohnDoe

2013-07-01 07:01

updater   bugnote:0011227

>просто передавать аргументы в ... , а если надо передать имя файла, это можно сделать с вызывающей стороны

Передавать имя аргументом означает что делать это придётся вручную, что в ряде случаев неудобно.
 
Распространённая задача: обработать файл лежащий рядом со скриптом.
Например lua.exe позволяет получить имя скрипта (arg[0]), и таким образом можно вычислить путь.

shmuel

2013-07-01 08:13

developer   bugnote:0011228

arg и arg[0] не будет. Может быть, будет переменная _ScriptName, глобальная в пределах script environment. Пока не уверен.

shmuel

2013-09-24 11:24

developer   bugnote:0011448

Скрипту сделана доступной переменная _filename.
Подробнее - см. в чейнжлоге плагина LuaMacro и в macroapi_manual.chm.

Issue History

Date Modified Username Field Change
2013-04-20 10:20 JohnDoe New Issue
2013-06-28 09:56 shmuel Note Added: 0011210
2013-06-28 09:59 shmuel Note Edited: 0011210 View Revisions
2013-06-28 11:40 Smitis Note Added: 0011214
2013-06-28 12:00 shmuel Note Edited: 0011210 View Revisions
2013-06-28 12:06 shmuel Note Added: 0011215
2013-06-30 10:23 shmuel Note Added: 0011221
2013-06-30 10:23 shmuel Assigned To => shmuel
2013-06-30 10:23 shmuel Status new => feedback
2013-07-01 07:01 JohnDoe Note Added: 0011227
2013-07-01 07:01 JohnDoe Status feedback => assigned
2013-07-01 08:13 shmuel Note Added: 0011228
2013-09-24 11:24 shmuel Note Added: 0011448
2013-09-24 11:24 shmuel Status assigned => feedback
2013-09-26 13:26 shmuel Build => 3680
2013-09-26 13:26 shmuel Status feedback => closed
2013-09-26 13:26 shmuel Resolution open => fixed
2013-09-26 13:26 shmuel Fixed in Version => 3.0