示例#1
0
文件: alias.c 项目: Fusiow/msh
void	ft_alias(char **tab)
{
	if (tab[1] && tab[2])
	{
		g_alias = del_alias(g_alias, tab[1]);
		g_alias = add_alias(g_alias, tab[1], tab[2]);
	}
	else
		show_alias(g_alias);
}
示例#2
0
int	builtin_alias(t_global *global, char **cmd)
{
  int	len;
  char	*alias;

  alias = NULL;
  len = my_tablen(cmd);
  if (len == 1 && global->config != NULL)
    show_alias(global->config->alias, NULL);
  else if (len >= 3 && global->config != NULL)
    {
      alias = alias_concat(&cmd[2]);
      my_putalias(&global->config->alias, cmd[1], alias);
      (alias) ? free(alias) : (alias = NULL);
    }
  else if (len == 2 && global->config != NULL)
    show_alias(global->config->alias, cmd[1]);
  else
    return (EXIT_FAILURE);
  return (EXIT_SUCCESS);
}
示例#3
0
void		create_my_alias(int argc, char **argv)
{
	char	*cmd;
	char	*alias;

	if (argc == 2)
	{
		if (!(verify_alias(argv[1], &alias, &cmd)))
			putalias(alias, cmd);
		else
			return ;
	}
	else if (argc == 1)
		show_alias();
	else
		ft_error_alias(0, NULL);
}
示例#4
0
文件: alias.c 项目: lljllj122/MyShell
void exe_alias(char **args, int argc, struct alias_List * list)
{	
	char buf[256+1];
	

	if(argc==1){
		//show the alias list.
		// printf("%s\n", "show alias");
		show_alias(list);
		return;
	}

	else if(argc==2){
		if(strcmp(args[1],"-a")==0){
			// add here if have time!
			// remove all the node in alias list
			alias_List_remove_all(list);
			return;
		

		}else{
			// printf("%s\n", "add or check alias");
			if(strlen(args[1])>256){
				fprintf(stderr, "%s\n", "alias: too long");
				return;
			}
			strncpy(buf,args[1],strlen(args[1])+1);
			buf[strlen(args[1])]='\0';

			char *left;
			char *right;
			parseAlias(buf,&left,&right);


			if(!right){
				//add new
				show_alias_one(list,left);


			}else{
				// printf("%s\n", "add");
				//add the alias to the list
				if(check_alias(list,left)){
					update_alias(list,left,right);
				}else{
					char *left_value = calloc(strlen(left)+1,sizeof(char));
					strncpy(left_value,left,strlen(left)+1);
					char *right_value = calloc(strlen(right)+1,sizeof(char));
					strncpy(right_value,right,strlen(right)+1);
					alias_List_push(list,left_value,right_value);

				}
				
			}

		}
		
	}
	

	else {
		fprintf(stderr, "%s\n", "format error");
	}

}