%% options copyright owner = Dirk Krause copyright year = 2011-2014 license = bsd %% module #include "dk3all.h" #include "dkt.h" $!trace-include /** Options used by dkt ls. */ static dk3_option_t const dkt_cwd_options[] = { { dkT('b'), dkT("beautify"), 0 }, { dkT('l'), dkT("last-part"), 0 } }; /** Number of options in the dkt_ls_options array. */ static size_t const dkt_cwd_szoptions = sizeof(dkt_cwd_options)/sizeof(dk3_option_t); int dkt_cwd( dk3_app_t *app, dkChar const *sn, dkChar const * const *msg, dkChar const * const *kwnl ) { int back = DKT_RESULT_ERR_UNSPECIFIC; int xargc = 0; /* Number of cmd line args. */ dkChar const * const *xargv = NULL; /* Cmd line args array. */ dk3_option_set_t *opt = NULL; /* Options. */ dkChar bu[DK3_MAX_PATH]; /* Directory name buffer. */ dkChar *ptr = NULL; /* Pointer to traverse dir. */ xargc = dk3app_get_argc(app); xargv = dk3app_get_argv(app); xargv++; xargv++; xargc--; xargc--; opt = dk3opt_open_app( dkt_cwd_options, dkt_cwd_szoptions, dkT('\0'), NULL, xargc, xargv, app ); if(opt) { if(0 == dk3opt_get_error_code(opt)) { if(dk3sf_getcwd_app(bu,DK3_SIZEOF(bu,dkChar),app)) { ptr = bu; if(dk3opt_is_set(opt, dkT('l'))) { ptr = dk3str_rchr(bu, DK3_CHAR_SEP); if(ptr) { ptr++; } else { ptr = bu; } } else { if(dk3opt_is_set(opt, dkT('b'))) { while(*ptr) { if(*ptr == dkT('\\')) { *ptr = dkT('/'); } ptr++; } } ptr = bu; } dk3sf_initialize_stdout(); dk3sf_fputs(ptr, stdout); dk3sf_fputc(dkT('\n'), stdout); } } dk3opt_close(opt); } return back; } /* vim: set ai sw=2 : */