void cmdlinesprit(LPSTR CmdLin){
  int i=0, p=0, inflag=0;
#ifdef WIN32
  argc=0;
#else
  argc=1;
#endif
  for(;;){
    if (CmdLin[i]=='\0'){
      argv[argc]=(char*)malloc(i-p+1);
      if (argv[argc]==NULL) break;
      qu_strncpy(argv[argc],&CmdLin[p],i-p);
      break;
    }
    if (CmdLin[i]=='"' && (i==0 ||
      (CmdLin[i-1]!='\\' || _fnthctype(CmdLin, i-1)==CT_KJ2))) inflag=!inflag;
    if (inflag==0 && (CmdLin[i]=='/' || (CmdLin[i]==' ' && (argc==0 || CmdLin[p]=='/')))){
      argv[argc]=(char*)malloc(i-p+1);
      if (argv[argc]==NULL) break;
      qu_strncpy(argv[argc],&CmdLin[p],i-p);
      argc++;if (argc>=ARGCMAX-1) break;
      do{
        p=i;i++;
      }while (CmdLin[p]==' ');
    }else i++;
  }
  argc++;
}