commit 17388298de0507aa98bcaaf59f77b736cf89920e from: Omar Polo date: Tue Dec 28 17:09:05 2021 UTC ftp: add lcd commit - 3f03529f911621de2dedee358e728d5ac49fbb74 commit + 17388298de0507aa98bcaaf59f77b736cf89920e blob - 31864c7907dbaf020bfd191bfa18a0c983b4dd75 blob + 9f40434650acf1a315a006c174c168a56e80e5c3 --- ftp.c +++ ftp.c @@ -505,6 +505,28 @@ cmd_bye(int argc, const char **argv) } static void +cmd_lcd(int argc, const char **argv) +{ + const char *dir; + + if (argc > 1) { + printf("lcd takes only one argument\n"); + return; + } + + if (argc == 1) + dir = *argv; + + if (argc == 0 && (dir = getenv("HOME")) == NULL) { + printf("HOME is not defined\n"); + return; + } + + if (chdir(dir) == -1) + printf("cd: %s: %s\n", dir, strerror(errno)); +} + +static void cmd_ls(int argc, const char **argv) { uint64_t off = 0; @@ -610,6 +632,7 @@ excmd(int argc, const char **argv) } cmds[] = { {"bell", cmd_bell}, {"bye", cmd_bye}, + {"lcd", cmd_lcd}, {"ls", cmd_ls}, {"quit", cmd_bye}, {"verbose", cmd_verbose},