|
charneus Wizard
Joined: 19 Jun 2005 Posts: 1876 Location: California
|
Posted: Mon May 24, 2010 9:50 pm
[3.17-previous versions?]Bug: 'Smart command line' isn't being so 'smart.' |
In Aardwolf, @ is the symbol for color codes. For instance, doing:
@RColors @Gare @Bfun!
would result in:
Colors are fun!
Properly set, they have one space between each word. I have the color syntax correctly marked under Color syntax, however, what winds up happening is this:
Colors..are..fun! (the . represents a space since colors don't show up in code and quote doesn't retain spacing).
The problem is resolved if you do it in this manner, albeit an awkward one:
@RColors@G are@B fun!
My suspicion is that CMUD sees @ on the command line and attempts to evaluate a variable, THEN checks to see the color syntax. Since the variable returns null, it adds a space. This was tested by opening up an untitled session, changing color syntax foreground syntax to @F, then typing on the command line:
#SAY {@RColors @Gare @Bfun!}
which resulted in three spaces (one for each non-existent variable) and then the !.
Maybe this can be resolved by having CMUD check variables last in order of operations?
Charneus |
|
|
|
shalimar GURU
Joined: 04 Aug 2002 Posts: 4690 Location: Pensacola, FL, USA
|
Posted: Mon May 24, 2010 10:00 pm |
finding a %null variable should not be inserting spaces... you could always use #SENDRAW to force it to the game unmolested
|
|
_________________ Discord: Shalimarwildcat |
|
|
|
charneus Wizard
Joined: 19 Jun 2005 Posts: 1876 Location: California
|
Posted: Mon May 24, 2010 10:36 pm |
That's a big inconvenience, having to do #SENDRAW each time I want to send colors.
And it's not a %null variable, it's rather that the variable doesn't exist, so it adds the space. Upon further testing, this happens whether color syntax is enabled or not, so apparently the code in CMUD is saying 'Oh, this variable doesn't exist, so we'll replace it with a space instead.'
Now, granted, I could also escape the entire line with `, but that's also an inconvenience to remember to start each line with a ` to do color codes.
Not complaining, but I just don't think that variables should be checked first just because it has @ in front of it. Not sure there's a workaround except to not have non-existent variables return spaces.
Charneus |
|
|
|
shalimar GURU
Joined: 04 Aug 2002 Posts: 4690 Location: Pensacola, FL, USA
|
Posted: Tue May 25, 2010 3:42 am |
Non existant is functionally the same as a %null variable... just semantics there.
(unless the space is not put there when there is a variable of that name that has no value, I didn't check)
You could also toggle off the command line parsing.
Not to mention you could always change the default char for variables to something other than @.
Yes.. none of these solutions is convieniant. That can't always be helped. |
|
_________________ Discord: Shalimarwildcat |
|
|
|
charneus Wizard
Joined: 19 Jun 2005 Posts: 1876 Location: California
|
Posted: Tue May 25, 2010 4:43 am |
Workarounds or not, this is, in my eyes, still a bug. I wasn't quite looking for solutions because I'm well aware of the things I could to to make it work properly. I'm looking to get a bug fixed because I'm not the only CMUD user this affects, and it's not feasible to tell people 'Oh, you must do it this way even though it's less convenient!'
*shrug*
By the way, currently on Aardwolf, there are 35 CMUD users. :P
Charneus |
|
|
|
Rahab Wizard
Joined: 22 Mar 2007 Posts: 2320
|
Posted: Tue May 25, 2010 2:52 pm |
If it were trying to treat that syntax as null variables or nonexistent, it would be inserting a null, which is nothing. Not a space. Test it by putting some other non-existent variable in your script. So the problem is _not_ what you hypothesize. It is not related to variable syntax.
I haven't figured out how to properly set the color syntax, so I haven't been able to reproduce the problem. But if the problem is as you describe, it is most likely in the color syntax code, not in the variable syntax code. |
|
|
|
MattLofton GURU
Joined: 23 Dec 2000 Posts: 4834 Location: USA
|
Posted: Tue May 25, 2010 6:47 pm |
test command:
Code: |
tell tutal @mtest @rof @gcolor |
result from debugger message a:
Code: |
tell tutal @mtest @rof @gcolor |
can't get any closer than that since the debugger doesn't get more detailed. I noticed that this problem doesn't affect the first use of the @letter syntax, however, and doesn't trigger the problem if you end the line with one. |
|
_________________ EDIT: I didn't like my old signature |
|
|
|
charneus Wizard
Joined: 19 Jun 2005 Posts: 1876 Location: California
|
Posted: Wed May 26, 2010 8:33 pm |
Rahab wrote: |
If it were trying to treat that syntax as null variables or nonexistent, it would be inserting a null, which is nothing. Not a space. Test it by putting some other non-existent variable in your script. So the problem is _not_ what you hypothesize. It is not related to variable syntax.
I haven't figured out how to properly set the color syntax, so I haven't been able to reproduce the problem. But if the problem is as you describe, it is most likely in the color syntax code, not in the variable syntax code. |
I'm going to stick with my original hypothesis, with no disrespect to you. Why am I so certain it's not color syntax?
Notice the difference? Notice the command lines? It is indeed inputting a space when a non-existent variable is used, even without color syntax enabled.
As MattLofton pointed out, the Script Debugger doesn't even help out in this case...
Charneus
Edit: Of course, as soon as I say that, I decide to try another test that invalidates my theory to some degree:
#SAY {This|@is|a|@test|to|@show|that|@variables|that|@don't|exist|@are|replaced|@with|spaces}
returns:
Code: |
This||a||to||that||that|'t|exist||replaced||spaces |
No spaces where the non-existent variables are to be... so not sure what it could be anymore... Still is quite odd. |
|
|
|
Rahab Wizard
Joined: 22 Mar 2007 Posts: 2320
|
Posted: Wed May 26, 2010 8:41 pm |
Um, Charneus, take another look at the difference between those two #SAY lines:
Quote: |
#SAY {This @is a ...}
#SAY {This a ...}
|
Notice that the "@is" has a space before it _and_ a space after it. So, "@is" is being replaced by nothing at all, and the spaces before and after it are being printed, just as you told it to do. |
|
|
|
charneus Wizard
Joined: 19 Jun 2005 Posts: 1876 Location: California
|
Posted: Wed May 26, 2010 8:43 pm |
Haha... dang it... sleep deprivation for the win! Now I do feel silly. :P
So maybe it /is/ related to color syntax... hmmm. Gonna test that out even more.
Charneus
Edit: Disabled color syntax, problem still exists. It sends two spaces instead of one... *sigh* |
|
|
|
Zugg MASTER
Joined: 25 Sep 2000 Posts: 23379 Location: Colorado, USA
|
Posted: Wed May 26, 2010 10:17 pm |
MattLofton had the ultimate test line posted above that verifies the bug and confirms it doesn't have anything to do with the color syntax. I've added it to the bug list. I'm as perplexed by it as anyone.
|
|
|
|
|
|