Package: partman-base Severity: wishlist Tags: patch This patch allows partman to accept kiB / MiB / etc suffixes that represent powers of 1024.
-- System Information: Debian Release: lenny/sid APT prefers unstable APT policy: (500, 'unstable') Architecture: amd64 (x86_64) Kernel: Linux 2.6.18-6-amd64 (SMP w/2 CPU cores) Locale: LANG=ca_AD.UTF-8, LC_CTYPE=ca_AD.UTF-8 (charmap=UTF-8) Shell: /bin/sh linked to /bin/bash
Index: partman-base/lib/base.sh =================================================================== --- partman-base/lib/base.sh (revision 51657) +++ partman-base/lib/base.sh (working copy) @@ -218,10 +218,11 @@ } human2longint () { - local human suffix int frac longint + local human suffix int frac longint i_modifier set -- $*; human="$1$2$3$4$5" # without the spaces human=${human%b} #remove last b human=${human%B} #remove last B + i_modifier=${human#${human%i}} ; human=${human%i} # 'i' modifier (if present) suffix=${human#${human%?}} # the last symbol of $human case $suffix in k|K|m|M|g|G|t|T) @@ -233,6 +234,23 @@ esac int="${human%[.,]*}" [ "$int" ] || int=0 + + if [ "$i_modifier" = "i" ] ; then + local k=1024 + longint=$(expr "$int" \* $k) + case $suffix in + m|M|"") + longint=$(expr "$longint" \* $k) + ;; + g|G) + longint=$(expr "$longint" \* $k \* $k) + ;; + t|T) + longint=$(expr "$longint" \* $k \* $k \* $k) + ;; + esac + else +# FIXME!! indentation intentionally omitted to simplify the patch frac=${human#$int} frac="${frac#[.,]}0000" # to be sure there are at least 4 digits frac=${frac%${frac#????}} # only the first 4 digits of $frac @@ -258,6 +276,7 @@ longint=${longint}00 ;; esac + fi echo $longint }