Node *docmd (Node *pos, const char *commandline) { int ret; char *cmdline = strdup (commandline); ret = cli_docmd (cmdline, pos); free (cmdline); return (Node *) ret; }
Node *cli (Node *pos) { char commandline[4096]; fprintf (stderr, "Welcome to %s %s\ntype ? or help for more information\n", PACKAGE, VERSION); do { fflush (stdout); fprintf (stdout, "%s>", path_strip (node2path (pos))); fflush (stdout); fgets (commandline, 4096, stdin); commandline[strlen (commandline) - 1] = 0; pos = (Node *) cli_docmd (commandline, pos); } while (!quit_hnb); return pos; }
int cli_load_file(char *filename){ char buf[255]; FILE *file; file=fopen(filename,"r"); if(!file){ return -1; } while(fgets(buf,255,file)){ char *c=strchr(buf,'\n'); char *t; t=buf; if(c)*c='\0'; if(*buf){ while(*t==' ' || *t=='\t')t++; cli_docmd(buf,NULL); } } fclose(file); return 0; }