1 #include <unistd.h> 2 #include <strings.h> 3 #include <string.h> 4 #include <stdlib.h> 5 #include "commands.h" 6 7 int matchexec(char *path, char *cmp) { 8 int i,x,y,z; 9 x=strlen(path); 10 y=strlen(cmp); 11 if (x<y) z=x; else z=y; 12 for (i=0;i<(z+2);i++) { 13 if (path[x-i]=='/' || path[x-i]=='\\') { return(1); } 14 if (path[x-i]!=cmp[y-i]) { return(0); } 15 } 16 return(x==y); 17 } 18 19 20 int main(int argc, char **argv) { 21 int i; 22 23 for (i=0;i<256;i++) { 24 if (commands_name[i]==NULL) break; 25 if (matchexec(argv[0],commands_name[i])) { 26 return(commands_exec[i](argc,argv)); 27 } 28 } 29 return(-1); 30 } |