coreutils
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: modechange.c (Feature added) - Binary mode support.


From: Eric Blake
Subject: Re: modechange.c (Feature added) - Binary mode support.
Date: Tue, 04 Dec 2012 14:12:38 -0700
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:17.0) Gecko/17.0 Thunderbird/17.0

On 11/23/2012 07:30 PM, Raphael S Carvalho wrote:
> Hi,
> I found some questions on the internet wondering whether chmod tool does
> support binary numbers as input.
> Even though it doesn't support I downloaded core-utils source and got
> started reading chmode code.
> 
> Let's to the point: I added binary input support by making changes
> into the*/lib/modechanges.c
> * file.
> PS: (b) prefix is not case sensitive.
> 
> *Tests:*
> ./chmod* b10111* t*    *

Thanks for the suggestion.  However, I don't think it adds any value, as
bash can already generically process binary numbers at the command line
for ANY application, not just chmod, with just a bit more syntax:

chmod $(printf %o $((2#10111))) t

You can further wrap things in a shell function to reduce your
day-to-day typing:

b2d() {
  case $1 in
    *[!01]*) echo 'invalid input' 2>&1 ;;
    *) eval "printf %d \$((2#$1))" ;;
  esac
}
b2o() {
  case $1 in
    *[!01]*) echo 'invalid input' 2>&1 ;;
    *) eval "printf %o \$((2#$1))" ;;
  esac
}

chmod $(b2o 10111) t

That is, teaching chmod how to parse binary is just code bloat, when you
already have a generic binary parser in your shell.

-- 
Eric Blake   eblake redhat com    +1-919-301-3266
Libvirt virtualization library http://libvirt.org

Attachment: signature.asc
Description: OpenPGP digital signature


reply via email to

[Prev in Thread] Current Thread [Next in Thread]