 |
cuprohastes Wanderer
Joined: 22 Oct 2006 Posts: 92
|
Posted: Thu Jul 10, 2008 6:46 am
How do I.... specify "Do not parse" from command line in script? |
I have a script in my custom globals file like this:
Code: |
$aname=%1
$atarget=%2
#echo "Alias created"
#alias $aname "page" $atarget "~=%params" |
So if I use
it creates an alias that will use this:
to send a page to Alex -
on the command line results in
being sent to the Muck.
But then I have to go into the settings, find the new alias and un-tick the "Parse parameters" box.
How do I edit my script to set that property to off? |
|
|
 |
Caled Sorcerer
Joined: 21 Oct 2000 Posts: 821 Location: Australia
|
Posted: Thu Jul 10, 2008 7:26 am |
Give this a shot. Its a guess only, but..
#AL $aname {"page" $atarget "~=%params"} {parsearg}
Thats the format it needs to take to specify options. The guess part is 'parsearg' as the name of the option. |
|
_________________ Athlon 64 3200+
Win XP Pro x64 |
|
|
 |
cuprohastes Wanderer
Joined: 22 Oct 2006 Posts: 92
|
Posted: Thu Jul 10, 2008 7:31 am |
That actually creates a class called "parsearg" and makes an alias inside it, which has the "Parse arguments" option set to on, which is the default. The parse Arguments option needs to be set to off when the alias is created.
|
|
|
 |
Fang Xianfu GURU

Joined: 26 Jan 2004 Posts: 5155 Location: United Kingdom
|
Posted: Thu Jul 10, 2008 9:18 am |
That's just a syntax mistake:
#AL $aname {"page" $atarget "~=%params"} "" {parsearg}
I have no idea if parsearg is the right keyword for this option, though. |
|
|
 |
cuprohastes Wanderer
Joined: 22 Oct 2006 Posts: 92
|
Posted: Thu Jul 10, 2008 9:28 am |
No that is wrong. For a start, instead of
Code: |
page Alex ~=%params |
You get
Code: |
"page" Alex "~=%params" |
and since {parseargs} isn't the right argument, nothing happens.
|
|
|
 |
Caled Sorcerer
Joined: 21 Oct 2000 Posts: 821 Location: Australia
|
Posted: Thu Jul 10, 2008 11:46 am |
Problem is I can't think of a way to work out what the right argument is. The older ones we tend to just remember from zmud. 'Parsearg' I got from the xml.
|
|
_________________ Athlon 64 3200+
Win XP Pro x64 |
|
|
 |
Taz GURU
Joined: 28 Sep 2000 Posts: 1395 Location: United Kingdom
|
Posted: Thu Jul 10, 2008 4:34 pm |
As far as I'm aware after the class name is specified there are no further arguments expected for the #alias command so I guess that the parser is just discarding them.
You'll have to request that Zugg make a change to allow such a thing to be done.
At which point there is no reason the following wouldn't work as your base alias:
#ALIAS pmake($aname,$atarget) {#ALIAS $aname {page %concat($atarget,~=%params)} "someclassifyouwantit" {noparse};#ECHO "Alias created"} |
|
_________________ Taz :) |
|
|
 |
Zugg MASTER

Joined: 25 Sep 2000 Posts: 23379 Location: Colorado, USA
|
Posted: Thu Jul 10, 2008 5:05 pm |
There isn't any command line option for this argument at this time (same for the Auto Append option). The #ALIAS command doesn't have an "options" field like the #TRIGGER command does.
|
|
|
 |
Dharkael Enchanter

Joined: 05 Mar 2003 Posts: 593 Location: Canada
|
Posted: Thu Jul 10, 2008 5:16 pm |
Beyond adding options at creation time it might be nice, and useful, to be able to modify them at a later time programmatically.
...same for macros, triggers and anything else that has options. |
|
_________________ -Dharkael-
"No matter how subtle the wizard, a knife between the shoulder blades will seriously cramp his style." |
|
|
 |
Zugg MASTER

Joined: 25 Sep 2000 Posts: 23379 Location: Colorado, USA
|
Posted: Thu Jul 10, 2008 7:15 pm |
You can already do much of that via the CMUD API and Lua. For example:
Code: |
LUA Code:
zs.makealias{"myalias", "#SHOW %params", parsearg="false"} |
would create an alias called "myalias" with the ParseArg option turned off. Or, to modify an existing alias:
Code: |
LUA Code:
a = zs.getalias("myalias")
a.parsearg = "false" |
would change an existing alias. Lots of power in the LUA API. This API will eventually be exposed as a new COM API, but that's lower on the priority list right now. |
|
|
 |
Fang Xianfu GURU

Joined: 26 Jan 2004 Posts: 5155 Location: United Kingdom
|
Posted: Thu Jul 10, 2008 7:53 pm |
Is it actually "false", the string false, you need to set the option to, or is the boolean false without the quotes? It's an important distinction.
|
|
|
 |
Taz GURU
Joined: 28 Sep 2000 Posts: 1395 Location: United Kingdom
|
Posted: Thu Jul 10, 2008 11:31 pm |
What is the key name for language?
Code: |
LUA Code:
a = zs.getalias("myalias")
a.language = "Lua" |
doesn't seem to work. |
|
_________________ Taz :) |
|
|
 |
Fang Xianfu GURU

Joined: 26 Jan 2004 Posts: 5155 Location: United Kingdom
|
Posted: Thu Jul 10, 2008 11:44 pm |
You have a good point, actually - the documentation doesn't mention an option like this. I'm just about to add parsearg here, btw.
|
|
|
 |
Zugg MASTER

Joined: 25 Sep 2000 Posts: 23379 Location: Colorado, USA
|
Posted: Fri Jul 11, 2008 12:48 am |
Actually, either the string value or a boolean value will both work. When CMUD tries to convert the value into a boolean, if it sees a string, it checks for true/false string values.
The key name for the language is whatever you see in the pull-down Language box in the settings editor. CMUD takes this from the list of supportable scripting languages that it finds installed on your system. |
|
|
 |
Fang Xianfu GURU

Joined: 26 Jan 2004 Posts: 5155 Location: United Kingdom
|
Posted: Fri Jul 11, 2008 1:09 am |
I'd imagine that that'd be the string value you need to select a particular language... but Taz is after the key in the alias zs object that you use to set the script language. It's not language, so what is it?
|
|
|
 |
Zugg MASTER

Joined: 25 Sep 2000 Posts: 23379 Location: Colorado, USA
|
Posted: Fri Jul 11, 2008 2:43 am |
Hmm, I just looked at this and unfortunately I don't have a property for that! There is an internal property for the language "id" value, which is a numeric value. But I'll add this to the list for the next version and see what I can do.
|
|
|
 |
Taz GURU
Joined: 28 Sep 2000 Posts: 1395 Location: United Kingdom
|
Posted: Fri Jul 11, 2008 1:39 pm |
This doesn't work on the command line it throws a parsing error but works fine from within an alias. Am I being thick or something?
#lua {a = zs.getalias("myalias");a.parsearg = false}
 |
|
_________________ Taz :) |
|
|
 |
Zugg MASTER

Joined: 25 Sep 2000 Posts: 23379 Location: Colorado, USA
|
Posted: Fri Jul 11, 2008 5:19 pm |
I'll add this to the bug list. The parser is kludged to handle the #LUA command (since the stuff in {} is not a normal zScript syntax) and it looks like the = in it is messing up the parser. I'll see what I can do.
|
|
|
 |
Taz GURU
Joined: 28 Sep 2000 Posts: 1395 Location: United Kingdom
|
Posted: Wed Jul 16, 2008 10:57 pm |
cuprohastes:
Now that v2.32 is out find below the answer to your problem.
Code: |
#ALIAS pmake($aname,$atarget) {#ALIAS $aname {page %concat($atarget,~=%params)} "pages";noparse $aname;#ECHO "Alias created"}
#ALIAS noparse($aname) {a = zs.getalias(zs.param(aname));a.parsearg = "false"}
#LUA {a = zs.getalias("noparse");a.language = "Lua"} |
Then test with
pmake al Alex <- return
al this is a nice command; testing all sorts of cr@p <- return |
|
_________________ Taz :) |
|
|
 |
cuprohastes Wanderer
Joined: 22 Oct 2006 Posts: 92
|
Posted: Thu Jul 17, 2008 4:57 pm |
Thanks for the scrip!
Unfortunately this is the result:
Code: |
<alias name="al" id="491">
<value>page %concat(alex,~=%params)</value>
</alias>
|
Code: |
page %concat(alex,~=%params) |
Which works fine. The problem is it's in a class folder called "pages;noparse" and "Parse arguments" is set to On., same as with a regular alias. |
|
|
 |
Taz GURU
Joined: 28 Sep 2000 Posts: 1395 Location: United Kingdom
|
Posted: Thu Jul 17, 2008 5:08 pm |
What version are you using?
If you are using v2.32 then copy just the part in the code section into an untitled session and see if it works since it does for me.
If you have a pmake and noparse already then delete them from your session before copying the code and executing it on the command line. |
|
_________________ Taz :) |
|
|
 |
Taz GURU
Joined: 28 Sep 2000 Posts: 1395 Location: United Kingdom
|
Posted: Thu Jul 17, 2008 5:14 pm |
Try copy and pasting the following on the command line instead
Code: |
#ALIAS pmake($aname,$atarget) {
#ALIAS $aname {page %concat($atarget,~=%params)} "pages"
noparse $aname
#ECHO "Alias created"
}
#ALIAS noparse($aname) {
a = zs.getalias(zs.param(aname))
a.parsearg = "false"
}
#LUA {
a = zs.getalias("noparse")
a.language = "Lua"
} |
|
|
_________________ Taz :) |
|
|
 |
cuprohastes Wanderer
Joined: 22 Oct 2006 Posts: 92
|
Posted: Fri Jul 18, 2008 5:43 pm |
[edit] Actually it looks like I just flubbed on an edit. [edit]
Quote: |
OK, that worked - except when I moved it to the "MyGlobals" global package I use, it stopped running Noparse |
|
|
|
 |
Taz GURU
Joined: 28 Sep 2000 Posts: 1395 Location: United Kingdom
|
Posted: Fri Jul 18, 2008 7:58 pm |
I just tested that here and it worked fine. The only thing that I did do was to remove the extra spaces that the layout above causes inside the scripts, so check for them and get back to me.
|
|
_________________ Taz :) |
|
|
 |
cuprohastes Wanderer
Joined: 22 Oct 2006 Posts: 92
|
Posted: Fri Jul 18, 2008 9:39 pm |
OK. So I have
Code: |
<alias name="pmake" id="31">
<value>#ALIAS $aname {page %concat($atarget,~=%params)} "MyPages" noparse $aname
#ECHO "Alias created"</value>
<arglist>$aname,$atarget</arglist>
</alias>
|
and
Code: |
<alias name="noparse" language="Lua" id="30">
<value>a = zs.getalias(zs.param(aname))
a.parsearg = "false"</value>
<arglist>$aname</arglist>
</alias>
|
in my "My Globals" global. When I open a session and type "pmake al alex" I get
Code: |
<alias name="al" id="495">
<value>page %concat(alex,~=%params)</value>
</alias>
|
In a class called "MyPages", which is fine. But "Parse arguments" is still set to on.
Now when I ran this originally it actually did turn the parsing off. Now... it doth not. |
|
|
 |
|
|