Mercurial > hg > toybox
view toys/rmdir.c @ 551:2548e6e590b2
Add string to mode_t parser
added new function string_to_mode(char *m_string, mode_t base) which
parses a given string and converts it to a mode_t.
If either + or - are part of m_string the permissions are either
added or removed from base.
Currently support for permision copy is missing (e.g. g=u),
but all other flags should work.
Format for m_string: either symbolic modes or octal representation.
symbolic modes:
[auog][[+-=][rwxst]*]
examples:
string_to_mode("u=rwx,g=rw,o=r", 0);
string_to_mode("a-x", 0777);
string_to_mode("0744", 0);
author | Daniel Walter <d.walter@0x90.at> |
---|---|
date | Mon, 19 Mar 2012 19:57:56 -0500 |
parents | d37e2de3a9f3 |
children | 75a69d5550a0 |
line wrap: on
line source
/* vi: set sw=4 ts=4: * * hello.c - A hello world program. * * Copyright 2006 Rob Landley <rob@landley.net> * * See http://www.opengroup.org/onlinepubs/009695399/utilities/cat.html USE_RMDIR(NEWTOY(rmdir, "<1p", TOYFLAG_BIN)) config RMDIR bool "rmdir" default y help usage: rmdir [-p] [dirname...] Remove one or more directories. -p Remove path. */ #include "toys.h" static void do_rmdir(char *name) { for (;;) { char *temp; if (rmdir(name)) { perror_msg("%s",name); return; } if (!toys.optflags) return; if (!(temp=strrchr(name,'/'))) return; *temp=0; } } void rmdir_main(void) { char **s; for (s=toys.optargs; *s; s++) do_rmdir(*s); }