char *ft_strtrim(char const *s) { unsigned int i; int count; char *dst; unsigned int size; if (s && *s != '\0') { count = count_blank(s); size = ft_strlen(s); if (count == (int)size) return (""); if ((dst = (char*)malloc(sizeof(char) * (size - count + 1))) == NULL) return (NULL); i = first_pos(s); size = size - count + first_pos(s); while (i < size) { dst[i - first_pos(s)] = s[i]; i++; } dst[i - first_pos(s)] = '\0'; return (dst); } return (""); }
void moveOn(void){ count_blank(); int i; int ni; int offset; if(direction==0){ for(i=0;i<r;i++){ if(ch[i][c]=='.'){ continue; } offset=step-blank[i]; if(offset<=0){ continue; } ni=i-offset; if(ni<0){ continue; } ch[ni][c]=ch[i][c]; } ni=r-step; ni=ni<0?0:ni; for(i=r;i>ni;i--){ ch[i][c]='.'; } ch[r][c]='.'; ch[ni][c]='^'; r=ni; return; } if(direction==2){ for(i=7;i>r;i--){ if(ch[i][c]=='.'){ continue; } offset=step-blank[i]; if(offset<=0){ continue; } ni=i+offset; if(ni>7){ continue; } ch[ni][c]=ch[i][c]; } ni=r+step; ni=ni>7?7:ni; for(i=r;i<ni;i++){ ch[i][c]='.'; } ch[r][c]='.'; ch[ni][c]='v'; r=ni; return; } if(direction==1){ for(i=7;i>c;i--){ if(ch[r][i]=='.'){ continue; } offset=step-blank[i]; if(offset<=0){ continue; } ni=i+offset; if(ni>7){ continue; } ch[r][ni]=ch[r][i]; } ni=c+step; ni=ni>7?7:ni; for(i=c;i<ni;i++){ ch[r][i]='.'; } ch[r][c]='.'; ch[r][ni]='>'; c=ni; return; } if(direction==3){ for(i=0;i<c;i++){ if(ch[r][i]=='.'){ continue; } offset=step-blank[i]; if(offset<=0){ continue; } ni=i-offset; if(ni<0){ continue; } ch[r][ni]=ch[r][i]; } ni=c-step; ni=ni<0?0:ni; for(i=c;i>ni;i--){ ch[r][i]='.'; } ch[r][c]='.'; ch[r][ni]='<'; c=ni; return; } }