diff options
| author | jacob1 <jfu614@gmail.com> | 2013-08-22 14:53:40 (GMT) |
|---|---|---|
| committer | jacob1 <jfu614@gmail.com> | 2013-08-22 14:53:40 (GMT) |
| commit | 68984bb9be07ea4b6eccf76dddaf3f31d23f577c (patch) | |
| tree | a2e4c6801c2b09e91d52bb0d1539b1b8ec80704b /src/gui/game/GameController.cpp | |
| parent | b2045b0a7fadbee87ecf52fe14699819b58e7667 (diff) | |
| parent | 4a308cbf661bb40efdf53c6632f875c6c393a307 (diff) | |
| download | powder-68984bb9be07ea4b6eccf76dddaf3f31d23f577c.zip powder-68984bb9be07ea4b6eccf76dddaf3f31d23f577c.tar.gz | |
Merge pull request #155 from mniip/regex
Remove regex dependency
Diffstat (limited to 'src/gui/game/GameController.cpp')
| -rw-r--r-- | src/gui/game/GameController.cpp | 33 |
1 files changed, 22 insertions, 11 deletions
diff --git a/src/gui/game/GameController.cpp b/src/gui/game/GameController.cpp index 8b58b48..c514d3e 100644 --- a/src/gui/game/GameController.cpp +++ b/src/gui/game/GameController.cpp @@ -571,19 +571,30 @@ bool GameController::MouseUp(int x, int y, unsigned button) (*iter).pos((*iter).getText(sim), signx, signy, signw, signh); if (x>=signx && x<=signx+signw && y>=signy && y<=signy+signh) { - if (sregexp((*iter).text.c_str(), "^{[ct]:[0-9]*|.*}$")==0) + int match=0; + const char* str=(*iter).text.c_str(); + const char* e; + if (str[0]=='{' && (str[1]=='c' || str[1]=='t') && str[2]==':' && str[3]>='0' && str[3]<='9') + { + const char* p=str+4; + while (*p>='0' && *p<='9') + p++; + e=p; + if (*p=='|') + { + while (*p) + p++; + if (p[-1]=='}') + { + match=1; + } + } + } + if (match) { - const char * signText = (*iter).text.c_str(); char buff[256]; - int sldr; - - memset(buff, 0, sizeof(buff)); - - for (sldr=3; signText[sldr] != '|'; sldr++) - buff[sldr-3] = signText[sldr]; - - buff[sldr-3] = '\0'; - + strcpy(buff, str+3); + buff[e-str-3]=0; int tempSaveID = format::StringToNumber<int>(std::string(buff)); if (tempSaveID) { |
