Esempio n. 1
0
File: sh_cmp.c Progetto: jalcim/42sh
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);
}
Esempio n. 2
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));
}
Esempio n. 3
0
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);
}
Esempio n. 4
0
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;
}
Esempio n. 5
0
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;
}
Esempio n. 6
0
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;
}
Esempio n. 7
0
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;
}
Esempio n. 8
0
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;
}
Esempio n. 9
0
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;
}
Esempio n. 10
0
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;
}
Esempio n. 11
0
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();
        }
    }
}
Esempio n. 12
0
File: script.c Progetto: jalcim/42sh
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));
}
Esempio n. 13
0
File: script.c Progetto: jalcim/42sh
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));
}
Esempio n. 14
0
File: script.c Progetto: jalcim/42sh
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));
}