コード例 #1
0
void prependEnvPath(string const & name, string const & prefix)
{
	vector<string> env_var = getEnvPath(name);

	typedef boost::char_separator<char> Separator;
	typedef boost::tokenizer<Separator> Tokenizer;

	Separator const separator(string(1, os::path_separator()).c_str());

	// Prepend each new element to the list, removing identical elements
	// that occur later in the list.
	Tokenizer const tokens(prefix, separator);
	vector<string> reversed_tokens(tokens.begin(), tokens.end());

	typedef vector<string>::const_reverse_iterator token_iterator;
	token_iterator it = reversed_tokens.rbegin();
	token_iterator const end = reversed_tokens.rend();
	for (; it != end; ++it) {
		vector<string>::iterator remove_it =
			remove(env_var.begin(), env_var.end(), *it);
		env_var.erase(remove_it, env_var.end());
		env_var.insert(env_var.begin(), *it);
	}

	setEnvPath(name, env_var);
}
コード例 #2
0
ファイル: handlers.c プロジェクト: utpalsolanki/shell
/* --------------------------------------------------------------------- 
 * funct : Set Command handler
 * args  : Scratchpad memory
 * ret   : None
 * 
 * Detail: 'set' type command handler
 * 
 * --------------------------------------------------------------------*/
void setHandler(char *cmdOrig, char *readString, char *cmd[])
{
	//set command must have at least one argument
	if(cmd[1] == NULL || strlen(cmd[1])<1)
	{
		printf("Invalid usage of set command\n");
		return;
	}
	else if(strstr(cmd[1],"path") != NULL && (strlen(cmd[1]) == strlen("path")))
	{
		setEnvPath(cmdOrig, readString, cmd);
	}
	else if(strstr(cmd[1],"verbose") != NULL && (strlen(cmd[1]) == strlen("verbose")))
	{
		setVerboseEnv(cmdOrig, readString, cmd);
	}
	else
	{
		printf("Invalid usage of set command\n");
	}
}