Hi!
----
Attached is a patch
("ksh93_libcmd_rmdir_add_s_suppress_switch001.diff.txt") which adds a
"-s" switch (to "suppress" error messages when "-p" is used) for
compatibility with the native Solaris version of /usr/bin/rmdir ...
----
Bye,
Roland
--
__ . . __
(o.\ \/ /.o) roland.mainz at nrubsig.org
\__\/\/__/ MPEG specialist, C&&JAVA&&Sun&&Unix programmer
/O /==\ O\ TEL +49 641 7950090
(;O/ \/ \O;)
-------------- next part --------------
Index: src/lib/libcmd/common/rmdir.c
===================================================================
--- src/lib/libcmd/common/rmdir.c (revision 394)
+++ src/lib/libcmd/common/rmdir.c (working copy)
@@ -38,6 +38,8 @@
"to remove it.]"
"[p:parents?Remove each explicit \adirectory\a argument directory that "
"becomes empty after its child directories are removed.]"
+"[s:suppress?Suppress the message printed on the standard error when "
+ "\b-p\b is in effect. ]"
"\n"
"\ndirectory ...\n"
"\n"
@@ -45,7 +47,7 @@
"[+0?All directories deleted successfully.]"
"[+>0?One or more directories could not be deleted.]"
"}"
-"[+SEE ALSO?\bmkdir\b(1), \brm\b(1)]"
+"[+SEE ALSO?\bmkdir\b(1), \brm\b(1), \brmdir\b(2), \bunlink\b(2)]"
;
#include <cmdlib.h>
@@ -56,7 +58,8 @@
register char* dir;
register char* end;
register int n;
- int pflag = 0;
+ int pflag = 0,
+ sflag = 0;
NoP(argc);
cmdinit(argv, context, ERROR_CATALOG, 0);
@@ -65,6 +68,9 @@
case 'p':
pflag = 1;
break;
+ case 's':
+ sflag = 1;
+ break;
case ':':
error(2, "%s", opt_info.arg);
break;
@@ -84,8 +90,11 @@
{
if (rmdir(dir) < 0)
{
- error(ERROR_system(0), "%s: cannot remove",
dir);
- break;
+ if (!(sflag && pflag))
+ {
+ error(ERROR_system(0), "%s: cannot
remove", dir);
+ break;
+ }
}
if (n) *end = '/';
else n = 1;