summaryrefslogtreecommitdiff
path: root/src/simulation
diff options
context:
space:
mode:
authorjacob1 <jfu614@gmail.com>2013-08-22 14:53:40 (GMT)
committer jacob1 <jfu614@gmail.com>2013-08-22 14:53:40 (GMT)
commit68984bb9be07ea4b6eccf76dddaf3f31d23f577c (patch)
treea2e4c6801c2b09e91d52bb0d1539b1b8ec80704b /src/simulation
parentb2045b0a7fadbee87ecf52fe14699819b58e7667 (diff)
parent4a308cbf661bb40efdf53c6632f875c6c393a307 (diff)
downloadpowder-68984bb9be07ea4b6eccf76dddaf3f31d23f577c.zip
powder-68984bb9be07ea4b6eccf76dddaf3f31d23f577c.tar.gz
Merge pull request #155 from mniip/regex
Remove regex dependency
Diffstat (limited to 'src/simulation')
-rw-r--r--src/simulation/Sign.cpp41
1 files changed, 27 insertions, 14 deletions
diff --git a/src/simulation/Sign.cpp b/src/simulation/Sign.cpp
index 7ba94af..f6b8420 100644
--- a/src/simulation/Sign.cpp
+++ b/src/simulation/Sign.cpp
@@ -31,25 +31,38 @@ std::string sign::getText(Simulation *sim)
else
sprintf(buff, "Temp: 0.00"); //...temperature
}
- else if (sregexp(signText, "^{[ct]:[0-9]*|.*}$")==0)
+ else
{
- int sldr, startm;
- memset(buff, 0, sizeof(buff));
- for (sldr=3; signText[sldr-1] != '|'; sldr++)
- startm = sldr + 1;
- sldr = startm;
- while (signText[sldr] != '}')
+ int match=0;
+ const char* r;
+ const char* e;
+ if (signText[0]=='{' && (signText[1]=='c' || signText[1]=='t') && signText[2]==':' && signText[3]>='0' && signText[3]<='9')
{
- buff[sldr - startm] = signText[sldr];
- sldr++;
+ const char* p=signText+4;
+ while (*p>='0' && *p<='9')
+ p++;
+ if (*p=='|')
+ {
+ r=p+1;
+ while (*p)
+ p++;
+ if (p[-1]=='}')
+ {
+ match=1;
+ e=p;
+ }
+ }
}
- }
- else
- {
- sprintf(buff, "%s", signText);
+ if (match)
+ {
+ strcpy(buff, r);
+ buff[e-r-1]=0;
+ }
+ else
+ strcpy(buff, signText);
}
- return std::string(buff,256);
+ return std::string(buff);
}
void sign::pos(std::string signText, int & x0, int & y0, int & w, int & h)