Страница 106 из 130

Добавлено: Пн дек 28, 2015 23:00
Flasher
MVV
Может, покороче название - msend, например? И что если @ для send как флаг задавать в любом месте, а не в начале? Т.е. всё, что слева, к нему не будет относиться.
С двухсимвольными вроде порядок. Спасибо.
А нет возможности в tcd игнорить обычные кавычки внутри ``? А то с %V или %T%M особо не потестируешь.
MVV писал(а):Посмотрим, сложно ли прикрутить возможность передачи строк в качестве параметров сообщений.
Посмотрел, наконец?

Добавлено: Вт дек 29, 2015 14:13
MVV
Может, покороче название - msend, например?
Не, слишком неясно получится. Да и не думаю, что 5 символов так прямо погоду делают.
И что если @ для send как флаг задавать в любом месте, а не в начале?
А если в строке захочешь собаку поставить? В имени файла, например?
А нет возможности в tcd игнорить обычные кавычки внутри ``? А то с %V или %T%M особо не потестируешь.
Вызывай через батник. Нет возможности, и не думаю, что появится (впрочем, возможно, когда будут параметры-строки, добавятся и функции для модификации строк, и можно будет через такую функцию делать).
Посмотрел, наконец?
Сильно много изменений требуется, я начинал, но не закончил.

Добавлено: Вт дек 29, 2015 15:08
Flasher
MVV писал(а):Не, слишком неясно получится.
А двухсимвольные команды управления окном, встроенные команды TK, команды перемещения окна, управления гл. меню и нек. вспомогательные команды типа fs2, cfixm0, bb_inc яснее? Ничуть.
MVV писал(а):Да и не думаю, что 5 символов так прямо погоду делают.
Немного, но сделают:
multi_send(, %{F5}, 7z:File.7z)
send(%{F5}) send(7z:File.7z)
msend(, %{F5}, 7z:File.7z)
MVV писал(а):А если в строке захочешь собаку поставить? В имени файла, например?
Так до улитки не будет строк с косыми кавычками. В этом и суть запроса.
MVV писал(а):Вызывай через батник.
Спасибо за юмор, но это не вариант.
MVV писал(а):я начинал, но не закончил
ОК. Ждёмс.

Добавлено: Вт дек 29, 2015 16:35
MVV
Немного, но сделают:
Это только в одном частном случае: когда всего 2 send и когда они без параметра с дескриптором. Однако вопрос был в другом: в каких ситуациях экономия 5 символов позволяет сделать то, что не может быть сделано без этой экономии?
Так до улитки не будет строк с косыми кавычками. В этом и суть запроса.
Всё равно не вижу особого смысла вводить спецсимвол, от которого и до конца строки (именно до конца, т.к. переключиться в обратный режим нельзя будет из-за опасности ложных срабатываний) строка будет обрабатываться иначе.

Добавлено: Вт дек 29, 2015 17:06
Flasher
MVV писал(а):в каких ситуациях экономия 5 символов позволяет сделать то, что не может быть сделано без этой экономии?
Странный вопрос, при условии, что и без multi можно делать всё это. Да и потом, чем обычный send не multi? Если уж и называть, то sendplus, например.
MVV писал(а):не вижу особого смысла вводить спецсимвол
Т.е. "вводить"? Он же и так есть.
MVV писал(а):именно до конца
Я понимаю, но это в ряде случаев будет вполне полезно, когда сперва идут только клавиши, а потом только текст.

Добавлено: Вт дек 29, 2015 17:40
MVV
Странный вопрос, при условии, что и без multi можно делать всё это. Да и потом, чем обычный send не multi? Если уж и называть, то sendplus, например.
В приведённом исключительном случае - да, можно и без multi_send. А название выбрано так, чтобы подчеркнуть, что команда просто вызывает send несколько раз.
Т.е. "вводить"? Он же и так есть.
Собака - не спецсимвол, внутри строки-параметра send это - самый обычный символ, который обрабатывается ничуть не иначе, чем остальные (в частности, тоже печатается).
Я понимаю, но это в ряде случаев будет вполне полезно, когда сперва идут только клавиши, а потом только текст.
Для исключительных случаев, когда текст всегда в конце, хватит и двух send или чего-то вроде multi_send. Не вижу смысла создавать проблему из воздуха.

Добавлено: Вт дек 29, 2015 18:45
Flasher
Ладно, ну а хотя бы отключение спецсимволов/модификаторов внутри ~(``) можно сделать?

Добавлено: Вт дек 29, 2015 21:17
MVV
Каких именно спецсимволов и модификаторов? Надеюсь, понятно, что особую обработку скобок отключить внутри ~() никак нельзя. Косую кавычку разрешить там тоже не получится, т.к. кавычки обрабатываются до входа в функцию.

Добавлено: Ср дек 30, 2015 00:09
Flasher
Спецсимволы: {}*~, %^+ (модификаторы).
Косые же и так отключаются с пом. <``>. Значит, и скобки по идее можно.

Добавлено: Ср дек 30, 2015 01:33
MVV
Опять не пойму, чего ты пытаешься добиться, когда вроде всё уже должно быть нормально. Внутри выражения с ~ скобки никак нельзя позволить прямые, т.к. тогда нельзя будет определить конец выражения. А косые кавычки вообще нет смысла примешивать сюда - с точки зрения функции send это обычный символ.

Добавлено: Ср дек 30, 2015 07:14
Flasher
Если бы было нормально, стал бы я писать? Вызови /ef send(+{LEFT}~({бла}`~%^+`бла)) и увидишь чего нет, включая косые кавычки. Невозвращение обычных символов - это как?
А конец выражение можно определить с помощью '>, как и для "обычных" косых. Добавляешь <` и `> по краям выражения с тильдой, и косые кавычки появляются.

Добавлено: Ср дек 30, 2015 16:26
MVV
Я (человек) с трудом могу распарсить то, что ты написал, и понять, что при этом должно произойти. Когда ты нарушаешь столько правил, вообще непонятно, чего можно пытаться ожидать.

Во-первых, вокруг параметра должны быть косые кавычки, а у тебя их нет, естественно, косые кавычки в середине строки парсятся как внешние.
Во-вторых, в фигурных скобках нельзя указывать более 1 символа, который нужно повторить, а у тебя {бла} - три (печатается лишь первый).
В-третьих, модификаторы (~, %, ^, +) являются служебными символами, их необходимо оборачивать в {} даже внутри ~(). И режим с собакой как раз для того и сделан, чтобы не надо было их оборачивать.

Единственное, что я могу тут пересмотреть - это отключение обработки модификаторов внутри ~(), т.к. они в символьной строке в принципе не особо и нужны (с другой стороны, они и там могут быть полезны - например, чтобы с помощью `~(%v)` послать Alt+V независимо от раскладки клавиатуры). Обработка скобок в любом случае останется как есть.

Добавлено: Ср дек 30, 2015 16:48
Flasher
Во-первых, не понимаю, зачем ты мне пишешь про какие-то нарушения, если я пишу про изменения, чтобы это нарушениями не считалось?
Во-вторых, косые кавычки в середине не парсятся как внешние. Если не добавлять угловые скобки, они всё равно не появятся.
В-третьих, неважно, что и в каком количестве должно быть в фигурных скобках. Нужно чтобы всё, что указано внутри ~(``), считалось строкой.
Режим с собакой - это как раз камень преткновения. Раз с ним всё плохо, остаётся альтернативный вариант.
Не понимаю, зачем внутри выражения с тильдой нужны клавиши, если их и так можно снаружи прописать?

Добавлено: Ср дек 30, 2015 17:01
MVV
Во-первых, не понимаю, зачем ты мне пишешь про какие-то нарушения, если я пишу про изменения, чтобы это нарушениями не считалось?
Объясняй подробнее, я мысли читать не могу. В любом случае, твой пример ни в какие ворота не годится. Правила нужны для того, чтобы выражение трактовалось однозначно.
Во-вторых, косые кавычки в середине не парсятся как внешние. Если не добавлять угловые скобки, они всё равно не появятся.
Косые кавычки в середине параметра вне строки <``> - это нарушение синтаксиса. Вообще, твоя строка хоть что-то выдаёт лишь потому, что send не проверяет, что ты передаёшь ей именно строку (обрамлённую по правилам синтаксиса), а не белиберду (как в твоем примере).
В-третьих, неважно, что и в каком количестве должно быть в фигурных скобках. Нужно чтобы всё, что указано внутри ~(``), считалось строкой.
Вообще-то, у символа ~ другое назначение (посылать символы в неизменном виде независимо от раскладки и регистра), и менять его я по понятным причинам не буду. И вообще, запись ~(``) не имеет понятия внутри, т.к. с точки зрения send это просто отправка двух косых кавычек (естественно, при условии, что это всё внутри строки <``>, иначе косые кавычки уберёт парсер строки и в send придёт лишь ~()). А то, о чём ты пишешь (нужно, чтобы всё внутри чего-то считалось строкой) - это один в один собакорежим.
Режим с собакой - это как раз камень преткновения. Раз с ним всё плохо, остаётся альтернативный вариант.
Интересно, с каких пор с собакорежимом всё плохо стало?
Не понимаю, зачем внутри выражения с тильдой нужны клавиши, если их и так можно снаружи прописать?
Чтобы, например, послать Alt+V, Alt+X, Alt+C подряд в любой раскладке 1 тильдой, а не тремя: `~(%v%x%c)`.

Добавлено: Ср дек 30, 2015 17:11
Flasher
MVV писал(а):Объясняй подробнее, я мысли читать не могу.
Я же выше написал про отключение. Разве этого недостаточно?
MVV писал(а):В любом случае, твой пример ни в какие ворота не годится.
Почему? Убери все спецсимволы, и всё будет работать правильно.
MVV писал(а):Вообще-то, у символа ~ другое назначение (посылать символы в неизменном виде независимо от раскладки и регистра)
Не вижу разницы с тем смыслом, которого пытаюсь добиться я. Что есть "посылание символов"? Передача с точным возвратом или какой иной неведомый без телепатии смысл? Почему спецсимволы должны быть исключением? Непорядок.
MVV писал(а):Интересно, с каких пор с собакорежимом всё плохо стало?
Не стало, а было. Выше всё обсуждено.
MVV писал(а):Чтобы, например, послать Alt+V, Alt+X, Alt+C подряд в любой раскладке 1 тильдой, а не тремя: `~(%v%x%c)`.
Имелись в виду клавиши в фигурных скобках типа {TAB} и, соответсвенно, необходимость использования этих скобок внутри выражения в качестве спецсимволов.