I64 @shell_cmd_cat(@shell* sh, I64 argc, U8** argv) { if (argc < 2) return 0; I64 i; I64 j; I64 size = 0; U8* filename = NULL; U8* buf = NULL; for (i = 1; i < argc; i++) { filename = @shell_expand_relative_path(sh, argv[i]); buf = FileSystem.ReadFile(filename, &size); for (j = 0; j < size; j++) FifoU8Ins(sh->output, buf[j]); Free(buf); Free(filename); } return 0; }