From e9654e598bab36d0c5218163263baf4105db5ae0 Mon Sep 17 00:00:00 2001 From: Gene Cumm Date: Sat, 26 Jun 2010 10:59:46 -0400 Subject: [PATCH] com32 pwd module [MODULE] pwd to list present (current) working directory. If the returned string is empty, display ".". If the return value is NULL, display an error message. Unfortunately, it appears that COM32 getcwd is not working properly at this moment, it calling the COMBOOT call and getting an empty string. Signed-off-by: Gene Cumm Signed-off-by: H. Peter Anvin --- com32/modules/pwd.c | 51 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 com32/modules/pwd.c diff --git a/com32/modules/pwd.c b/com32/modules/pwd.c new file mode 100644 index 0000000..880327d --- /dev/null +++ b/com32/modules/pwd.c @@ -0,0 +1,51 @@ +/* ----------------------------------------------------------------------- * + * + * Copyright 2010 Gene Cumm - All Rights Reserved + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, Inc., 53 Temple Place Ste 330, + * Boston MA 02111-1307, USA; either version 2 of the License, or + * (at your option) any later version; incorporated herein by reference. + * + * ----------------------------------------------------------------------- */ + +/* + * Display present (current) working directory + */ + +#include +#include +#include +#include +#include + +/* Size of path buffer string */ +#ifndef PATH_MAX +# ifdef NAME_MAX +# define PATH_MAX NAME_MAX +# elif FILENAME_MAX +# define PATH_MAX FILENAME_MAX +# else +# define PATH_MAX 256 +# endif /* NAME_MAX */ +#endif /* PATH_MAX */ + +int main(void) +{ + int rv = 0; + char pwd[PATH_MAX], *pwdptr; + + openconsole(&dev_rawcon_r, &dev_stdcon_w); + pwdptr = getcwd(pwd, PATH_MAX); + if (pwdptr) { + if (pwd[0] != 0) + puts(pwd); + else + puts("."); + } else { + rv = errno; + puts("ERROR: getcwd() returned NULL"); + } + return rv; +} -- 2.7.4