int cmp3(t_linez *linez, t_sh *term) { if (!ft_strncmp("jobs", linez->ep_l, 4)) { if (linez->ep_l[4]) return (0); second_static(NULL, "print", NULL); return (1); } else if (!ft_strncmp("p-alias", linez->ep_l, 7)) return (term->status = my_alias(NULL, -1)); else if (!ft_strncmp("d-alias", linez->ep_l, 7)) return (term->status = my_alias(&(linez->ep_l), -2)); else if (!ft_strncmp("alias", linez->ep_l, 5)) { if (!my_regex(linez->ep_l, "a\\l\\i\\a\\s\\ \\#a~zA~Z0~9-_\\=\\#a~zA~Z0~9-_", 0, '\0')) { my_alias(&(linez->ep_l), 4); return (term->status = 1); } ft_putendl_fd("Alias not well formated", 2); term->status = 0; return (1); } return (0); }
int exec_cmd(t_sh *t) { int i; int j; char *str; i = -1; j = -1; str = ft_strnew(0);; t->tmp = NULL; t->fo = 0; if (!t->args[0]) return (1); while (t->args[++j]) if (!my_regex(t->args[j], "#-_A~Z0~9a~z\\=\\#-_A~Za~z./0~9*?", 0, '\0')) break ; if (t->args[j]) { j = 0; str = ft_strdup(t->args[0]); ft_strdel(&t->args[0]); while (t->args[++j]) str = ft_strjoin_free(str, ft_strjoin_free(" ", t->args[j], 2), 3); free(t->args); t->args = ft_strsplit(set_local_var(&str, 0, t), ' '); return (0); } if (ft_strchr(t->args[0], '=')) { ft_putendl_fd("Bad variable format", 2); return (-1); } exec_cmd1(t, &i); return (exec_cmd2(t, &i)); }
int fill_infos(t_gfx *s) { int i; int x; i = 0; x = 110; while (i < NB_ITEMS) { if (my_regex(itoa(s->map->blocks[s->bSelect.x][s->bSelect.y].items[i]), ".0123456789") == EXIT_FAILURE) return (EXIT_FAILURE); if (write_text(s, itoa(s->map->blocks [s->bSelect.x][s->bSelect.y].items[i++]), x, 10) == EXIT_FAILURE) return (EXIT_FAILURE); x += 75; } return (EXIT_SUCCESS); }
std::vector<SearchResult> SearchHTMLbtbook(std::string &keyword, int current_search_time) { std::string url("http://www.btbook.net/search/"); url.append(keyword).append("/").append(std::to_string(current_search_time)).append("-1.html"); std::string pattern = "<a href=\"/wiki/.+? target=\"_blank\">(.+?)</a>"\ ".+?<span class=\"cpill fileType\\d\">([^<]+)</span>"\ ".+?</b>.+?<b.*?>([^<]+)</b>"\ ".+?<a href=\"(magnet:\\?xt=urn:btih:[^\"]+)\" class=\"download\">"; std::string html; std::vector<SearchResult> result; CURLcode res = CurlRequest(url, &html); if (res == CURLE_OK){ // regex解析大数量的\r\n时会失败,所以先把它们替换掉 for (auto &s : html){ if (s == '\r' || s == '\n'){ s = 32; // space } } std::regex my_regex(pattern); auto regex_begin = std::sregex_iterator(html.begin(), html.end(), my_regex); auto regex_end = std::sregex_iterator(); for (auto i = regex_begin; i != regex_end; i++){ std::smatch match = *i; SearchResult sr = { match[1], match[2], match[3], "", match[4] }; result.push_back(sr); } } else{ //Debug(curl_easy_strerror(res)); } return result; }
std::vector<SearchResult> SearchHTMLdonkey4u(std::string &keyword, int current_search_time) { std::string url("http://donkey4u.com/search/"); url.append(keyword).append("?mode=list&page=").append(std::to_string(current_search_time)); std::string pattern = "<tr .+? hash=.+?<td>([^<]+)"\ "<.+?<td width='70' align='right'>([^<]+)"\ "<.+?<td width='100' align='right'>([^<]+)"\ "<.+?<a .*?href=\"([^\"]+)"; std::string html; std::vector<SearchResult> result; CURLcode res = CurlRequest(url, &html); if (res == CURLE_OK){ // regex解析大数量的\r\n时会失败,所以先把它们替换掉 for (auto &s : html){ if (s == '\r' || s == '\n'){ s = 32; // space } } std::regex my_regex(pattern); auto regex_begin = std::sregex_iterator(html.begin(), html.end(), my_regex); auto regex_end = std::sregex_iterator(); for (auto i = regex_begin; i != regex_end; i++){ std::smatch match = *i; SearchResult sr = { match[1], "", match[2], match[3], match[4] }; result.push_back(sr); } } else{ //Debug(curl_easy_strerror(res)); } return result; }
std::vector<SearchResult> SearchHTMLtorrentkittyco(std::string &keyword, int current_search_time) { std::string url("http://www.torrentkitty.co/search/"); url.append(keyword).append("_ctime_").append(std::to_string(current_search_time)).append(".html"); std::string pattern = "<h5 class=\"item-title\"><a href=\"http://www\\.torrentkitty\\.co/([^\\.]+)\\.html\" "\ "target=\"_blank\">(.+?)</a>"\ ".+?<td width=\"100px\"><span class=\"label label-info\"><b>([^<]+)</b>"; std::string html; std::vector<SearchResult> result; CURLcode res = CurlRequest(url, &html); if (res == CURLE_OK){ // regex解析大数量的\r\n时会失败,所以先把它们替换掉 for (auto &s : html){ if (s == '\r' || s == '\n'){ s = 32; // space } } std::regex my_regex(pattern); auto regex_begin = std::sregex_iterator(html.begin(), html.end(), my_regex); auto regex_end = std::sregex_iterator(); for (auto i = regex_begin; i != regex_end; i++){ std::smatch match = *i; SearchResult sr = { match[2], "", match[3], "", std::string("magnet:?xt=urn:btih:") + std::string(match[1]) }; result.push_back(sr); } } else{ //Debug(curl_easy_strerror(res)); } return result; }
std::vector<SearchResult> SearchHTMLtorrentkitty(std::string &keyword, int current_search_time) { std::string url("http://www.torrentkitty.net/search/"); url.append(keyword).append("/").append(std::to_string(current_search_time)); std::string pattern = "<tr><td class=\"name\">([^<]+)</td>"\ "<td class=\"size\">([^<]+)</td>"\ ".+?<a href=\"(magnet:\\?xt=urn:btih:[^&]+)&"; std::string html; std::vector<SearchResult> result; CURLcode res = CurlRequest(url, &html); if (res == CURLE_OK){ // regex解析大数量的\r\n时会失败,所以先把它们替换掉 for (auto &s : html){ if (s == '\r' || s == '\n'){ s = 32; // space } } std::regex my_regex(pattern); auto regex_begin = std::sregex_iterator(html.begin(), html.end(), my_regex); auto regex_end = std::sregex_iterator(); for (auto i = regex_begin; i != regex_end; i++){ std::smatch match = *i; SearchResult sr = { match[1], "", match[2], "", match[3] }; result.push_back(sr); } } else{ //Debug(curl_easy_strerror(res)); } return result; }
std::vector<SearchResult> SearchHTMLcilisou(std::string &keyword, int current_search_time) { std::string url("http://www.cilisou.cn/s.php?q="); url.append(keyword).append("&p=").append(std::to_string(current_search_time)); std::string pattern = "<pre class=\"snippet\">(.+?)</pre>"\ ".+?<a href=\"(magnet:\\?xt=urn:btih:[^&]+)&"\ ".+?<span class=\"attr_val\">([^<]+)</span>"; std::string html; std::vector<SearchResult> result; CURLcode res = CurlRequest(url, &html); if (res == CURLE_OK){ // regex解析大数量的\r\n时会失败,所以先把它们替换掉 for (auto &s : html){ if (s == '\r' || s == '\n'){ s = 32; // space } } std::regex my_regex(pattern); auto regex_begin = std::sregex_iterator(html.begin(), html.end(), my_regex); auto regex_end = std::sregex_iterator(); for (auto i = regex_begin; i != regex_end; i++){ std::smatch match = *i; SearchResult sr = { std::regex_replace(std::string(match[1]), std::regex("<br>"), ""), "", match[3], "", match[2] }; result.push_back(sr); } } else{ //Debug(curl_easy_strerror(res)); } return result; }
std::vector<SearchResult> SearchHTMLcililian(std::string &keyword, int current_search_time) { std::string url("http://cililian.me/list/"); url.append(keyword).append("/").append(std::to_string(current_search_time)).append(".html"); std::string pattern = "<a name='file_title' .+?>(.+?)</a>"\ ".+?<span>([^<]+)</span>"\ ".+?<a href=\"(magnet:\\?xt=urn:btih:[^\"]+)\""; std::string html; std::vector<SearchResult> result; CURLcode res = CurlRequest(url, &html); if (res == CURLE_OK){ // regex解析大数量的\r\n时会失败,所以先把它们替换掉 for (auto &s : html){ if (s == '\r' || s == '\n'){ s = 32; // space } } std::regex my_regex(pattern); auto regex_begin = std::sregex_iterator(html.begin(), html.end(), my_regex); auto regex_end = std::sregex_iterator(); for (auto i = regex_begin; i != regex_end; i++){ std::smatch match = *i; SearchResult sr = { match[1], "", match[2], "", match[3] }; result.push_back(sr); } } else{ //Debug(curl_easy_strerror(res)); } return result; }
std::vector<SearchResult> SearchHTMLdianyingll(std::string &keyword, int current_search_time) { std::string url("http://www.dianyingll.com/s?k="); url.append(keyword).append("&page=").append(std::to_string(current_search_time)); std::string pattern = "<a href=\"/info/.+? class=\"highlight-col u-name\">([^<]+)</a>"\ ".+?<span class=\"label label-underline\">([^<]+)</span>"\ ".+?<a id=\"magnet_id\" target=\"_blank\" href=\"(magnet:\\?xt=urn:btih:[^&]+)&"; std::string html; std::vector<SearchResult> result; CURLcode res = CurlRequest(url, &html); if (res == CURLE_OK){ // regex解析大数量的\r\n时会失败,所以先把它们替换掉 for (auto &s : html){ if (s == '\r' || s == '\n'){ s = 32; // space } } std::regex my_regex(pattern); auto regex_begin = std::sregex_iterator(html.begin(), html.end(), my_regex); auto regex_end = std::sregex_iterator(); for (auto i = regex_begin; i != regex_end; i++){ std::smatch match = *i; SearchResult sr = { match[1], "", match[2], "", match[3] }; result.push_back(sr); } } else{ //Debug(curl_easy_strerror(res)); } return result; }
void GameLoop::start_loop() { u32 last_frame_time = timer->getTime(); float time_scale = 1; // change for fun effects while(device -> run()) { if (device -> isWindowActive() ) { const u32 now = timer->getTime(); u32 advancement = now - last_frame_time; last_frame_time = now; // don't update more than 1 second. It would be useless at // best. This may happen in some strange situations // (Linux CTRL+Z, putting computer in standby, etc...), // and in these cases it's better to continue as if // nothing happened instead of handling HUGE numbers later // on. advancement = advancement > 1000? 1000: advancement; // Physics steps: // - 1st parameter is the advancement in time (in seconds). // - 2nd parameter is the max number of internal substeps. // - 3rt parameter is the number of physics steps to perform (in Hz). // Note that in the intermediate steps the movement is interpolated. const int steps = dynamicsWorld->stepSimulation(now/1000.f*time_scale, 25, 1/300.0); // TODO: does it really return the number of steps? #if DEBUG_PHYSOBJECTS { // FIXME: Debug print of all objects... std::basic_regex<char> my_regex(DEBUG_PHYSOBJECTS_FILTER_RE); btAlignedObjectArray<btCollisionObject*> objs = dynamicsWorld->getCollisionObjectArray(); for (int j = 0; j < dynamicsWorld->getNumCollisionObjects(); j++) { btRigidBody* body = ((btRigidBody*)objs[j]); const btVector3& position = body->getCenterOfMassPosition(); const btVector3& linearvelocity = body->getLinearVelocity(); const btVector3& angualrvelocity = body->getAngularVelocity(); btMotionState* mstate = body->getMotionState(); std::string itemname; IGameObject* myobj = dynamic_cast<IGameObject*>(body->getMotionState()); if(myobj) { itemname = myobj->name; } if (itemname == std::string()) { itemname = "[Not an IGameObject]"; } if(std::regex_match(itemname, my_regex)) { std::cout<<" - '"<<itemname<<"'"<<std::endl; std::cout<<" - pos : "<<PRINTVEC(position) << std::endl; std::cout<<" - linvel: "<<PRINTVEC(linearvelocity) << std::endl; std::cout<<" - angvel: "<<PRINTVEC(angualrvelocity) << std::endl; } } } #endif video::SColor bg_color = video::SColor(255,50,50,50); driver->beginScene(true, true, bg_color); smgr -> drawAll(); guienv -> drawAll(); driver->endScene(); } else { device -> yield(); } } }
int ega(char *arg, char *arg2) { if (!my_regex(arg, "#0~9", 1, '\0')) return (ft_atoi(arg) == ft_atoi(arg2)); return ((ft_strcmp(arg, arg2) == 0)); }
int sup(char *arg, char *arg2) { if (!my_regex(arg, "#0~9", 1, '\0')) return (ft_atoi(arg) > ft_atoi(arg2)); return ((ft_strcmp(arg, arg2) > 0)); }
int inf(char *arg, char *arg2) { if (!my_regex(arg, "#0~9", 1, '\0')) return (ft_atoi(arg) < ft_atoi(arg2)); return ((ft_strcmp(arg, arg2) < 0)); }