|
mose Novice
Joined: 02 Dec 2010 Posts: 30
|
Posted: Thu Dec 23, 2010 11:22 pm
Need assistance with ANSI trigger |
I've read through past posts for examples. I think I'm doing the right thing, but the pattern is not triggering. I have every option turned on in the debugger. The exact output, including spacing, from the debugger window is
Code: |
<ESC>[2m<ESC>[4m<ESC>[2m<ESC>[37m<ESC>[0m<ESC>[0m<LF><CR>
<ESC>[0m<LF><CR>
more stuff...
<ESC>[0m<LF><CR>
<ESC>[0m<ESC>[4m<ESC>[2m<ESC>[4m<ESC>[37m<ESC>[0m<LF><CR><LF><CR> |
I am trying to match the line that begins with spaces and ends with <ESC>[0m. This is the trigger I currently have.
Code: |
<trigger name="PatStart" priority="2610" ansi="true" enabled="true" id="261">
<pattern>^%s%e[0m$</pattern>
<value>
Do stuff...
</value>
</trigger> |
This trigger never fires. If I match on just %e[0m, then every line matches. So, it can match the ANSI code. I'm probably not saying it right in the pattern. Suggestions welcome. Thanks. |
|
|
|
MattLofton GURU
Joined: 23 Dec 2000 Posts: 4834 Location: USA
|
Posted: Fri Dec 24, 2010 1:05 am |
Stupid question, but if the line only contains whitespace and is terminated by the reset ansi color code...why bother matching the ansi code?
#trigger {^%s$} ... |
|
_________________ EDIT: I didn't like my old signature |
|
|
|
mose Novice
Joined: 02 Dec 2010 Posts: 30
|
Posted: Fri Dec 24, 2010 1:20 am |
That won't quite do it. I don't want to match all lines that begin with spaces. The reset is a nice marker between sections.
|
|
|
|
Rahab Wizard
Joined: 22 Mar 2007 Posts: 2320
|
Posted: Fri Dec 24, 2010 2:08 am |
The problem might be that your mud is sending LFCR instead of the standard CRLF.
|
|
|
|
mose Novice
Joined: 02 Dec 2010 Posts: 30
|
Posted: Fri Dec 24, 2010 1:26 pm |
Hmm, interesting observation. Is there a way to tell CMUD what the line terminator is, or can CMUD figure this out by itself?
|
|
|
|
mose Novice
Joined: 02 Dec 2010 Posts: 30
|
Posted: Fri Dec 24, 2010 1:36 pm |
I looked through past posts, and a few other muds (incorrectly) send LFCR. Zugg said that CMUD will still work with that in most cases. Someone familiar with the code will need to see if that affects a pattern match that uses begin/end line matches.
|
|
|
|
mose Novice
Joined: 02 Dec 2010 Posts: 30
|
Posted: Sun Jan 02, 2011 3:44 pm |
Anyone have a chance to look through the CMUD code to see if LFCR is affecting the pattern match?
|
|
|
|
MattLofton GURU
Joined: 23 Dec 2000 Posts: 4834 Location: USA
|
Posted: Sun Jan 02, 2011 3:54 pm |
Only Zugg can do that, and he's still on holiday.
|
|
_________________ EDIT: I didn't like my old signature |
|
|
|
mose Novice
Joined: 02 Dec 2010 Posts: 30
|
Posted: Sun Jan 02, 2011 8:44 pm |
I have a few more details. It appears that CMUD will sometimes match %e[0m at the end of the line but not at the beginning of the line. It will also match %s%e[0m at the end of the line, but it will not match %e[37m%[0m at the end of the line.
|
|
|
|
mose Novice
Joined: 02 Dec 2010 Posts: 30
|
Posted: Sun Jan 02, 2011 8:46 pm |
In case anyone is wondering, this is with CMUDPro 3.33a on Windows XP.
|
|
|
|
mose Novice
Joined: 02 Dec 2010 Posts: 30
|
Posted: Wed Jan 05, 2011 8:21 pm |
Any word on matching ANSI codes?
|
|
|
|
mose Novice
Joined: 02 Dec 2010 Posts: 30
|
Posted: Fri Feb 04, 2011 12:57 am |
Now that everyone is back from Christmas vacation, is there a solution to this problem?
|
|
|
|
Zugg MASTER
Joined: 25 Sep 2000 Posts: 23379 Location: Colorado, USA
|
Posted: Fri Feb 04, 2011 5:57 pm |
To determine what ANSI codes to match, make sure the ANSI Color Trigger option is enabled for your trigger. Then go to the main MUD window and select the colored line you want to trigger on. Then go back to the Trigger window and paste into the Pattern field. CMUD will expand any ANSI codes into the proper characters in the trigger pattern.
What you are triggering on here isn't the raw codes that the MUD is actually sending...you are triggering on the ANSI codes that CMUD uses to display the text on the screen.
The LF/CR vs CR/LF issue shouldn't matter since the trigger is firing on the text as it appears on the screen and not what the MUD sends. |
|
|
|
|
|