update from MirBSD masters
authorThorsten Glaser <tg@mirbsd.org>
Sat, 3 Dec 2011 16:43:09 +0000 (16:43 +0000)
committerThorsten Glaser <tg@mirbsd.org>
Sat, 3 Dec 2011 16:43:09 +0000 (16:43 +0000)
mksh/base64
mksh/debian-dev/BuildDSC.sh
mksh/debian-dev/mkdebidx.sh
mksh/debian-dev/quinn-ls.sh
mksh/more
mksh/pushd-popd-dirs
mksh/shuffle

index 2a3f49c..16c3650 100644 (file)
@@ -1,4 +1,4 @@
-# $MirOS: src/bin/mksh/dot.mkshrc,v 1.60 2011/05/29 02:18:49 tg Exp $
+# $MirOS: src/bin/mksh/dot.mkshrc,v 1.68 2011/11/25 23:58:04 tg Exp $
 #-
 # Copyright (c) 2002, 2003, 2004, 2006, 2007, 2008, 2009, 2010, 2011
 #      Thorsten Glaser <tg@mirbsd.org>
 
 # NUL safe base64 decoder
 function Lb64decode {
-       [[ -o utf8-mode ]]; typeset u=$?
+       [[ -o utf8-mode ]]; local u=$?
        set +U
-       typeset c s="$*" t=
+       local c s="$*" t=
        [[ -n $s ]] || { s=$(cat;print x); s=${s%x}; }
-       typeset -i i=0 n=${#s} p=0 v x
-       typeset -i16 o
+       local -i i=0 j=0 n=${#s} p=0 v x
+       local -i16 o
 
        while (( i < n )); do
                c=${s:(i++):1}
@@ -50,6 +50,9 @@ function Lb64decode {
                        ;;
                }
                t=$t\\x${o#16#}
+               (( ++j & 4095 )) && continue
+               print -n $t
+               t=
        done
        print -n $t
        (( u )) || set -U
@@ -94,32 +97,31 @@ function Lb64encode {
 else
 # NUL safe base64 encoder, needs mksh R40
 function Lb64encode {
-       [[ -o utf8-mode ]]; typeset u=$?
+       [[ -o utf8-mode ]]; local u=$?
        set +U
-       typeset c s t
+       local c s t
        if (( $# )); then
                read -raN-1 s <<<"$*"
                unset s[${#s[*]}-1]
        else
                read -raN-1 s
        fi
-       typeset -i i=0 n=${#s[*]} j v
+       local -i i=0 n=${#s[*]} j v
 
        while (( i < n )); do
                (( v = s[i++] << 16 ))
                (( j = i < n ? s[i++] : 0 ))
                (( v |= j << 8 ))
-               c=${s:(i++):1}
                (( j = i < n ? s[i++] : 0 ))
                (( v |= j ))
-               t=$t${Lb64encode_code[v >> 18]}${Lb64encode_code[v >> 12 & 63]}
+               t+=${Lb64encode_code[v >> 18]}${Lb64encode_code[v >> 12 & 63]}
                c=${Lb64encode_code[v >> 6 & 63]}
                if (( i <= n )); then
-                       t=$t$c${Lb64encode_code[v & 63]}
+                       t+=$c${Lb64encode_code[v & 63]}
                elif (( i == n + 1 )); then
-                       t=$t$c=
+                       t+=$c=
                else
-                       t=$t==
+                       t+===
                fi
                if (( ${#t} == 76 || i >= n )); then
                        print $t
index d867afe..6df0fa8 100644 (file)
@@ -1,7 +1,7 @@
 #!/bin/mksh
-# $MirOS: contrib/hosted/tg/deb/BuildDSC.sh,v 1.10 2010/08/17 07:47:49 tg Exp $
+# $MirOS: contrib/hosted/tg/deb/BuildDSC.sh,v 1.14 2011/11/17 15:27:53 tg Exp $
 #-
-# Copyright (c) 2010
+# Copyright (c) 2010, 2011
 #      Thorsten Glaser <t.glaser@tarent.de>
 #
 # Provided that these terms and disclaimer and all copyright notices
 # -S: build a snapshot with snapshot.YYYYMMDD.HHMMSS (UTC) as suffix
 # Any further arguments will be passed to debian/rules via MAKEFLAGS
 
+# sanitise environment
 unset LANGUAGE
 export LC_ALL=C
+cd "$(realpath .)"
 
 # preload
 sync
@@ -98,7 +100,7 @@ if (( snap )); then
        cat debian/changelog >"$T"
        touch -r debian/changelog "$T"
        dist=$(dpkg-parsechangelog -n1 | sed -n '/^Distribution: /s///p')
-       if [[ $dist = @(xunstable|UNRELEASED) ]]; then
+       if [[ $dist = UNRELEASED || $dist = x* ]]; then
                # we’re at “current” already, reduce
                version=$version'~'$ssuf
        else
@@ -106,7 +108,7 @@ if (( snap )); then
                version=$version'+'$ssuf
        fi
        print "$pkgstem ($version) UNRELEASED; urgency=low\n\n  *" \
-           "Automatically built snapshot package.\n\n --" \
+           "Automatically built snapshot (not backport) package.\n\n --" \
            "$DEBEMAIL  $stime_rfc\n" >debian/changelog
        cat "$T" >>debian/changelog
        touch -r "$T" debian/changelog
@@ -122,7 +124,7 @@ curname=${mydir##*/}
 newname=$pkgstem-$upstreamversion
 [[ $newname = $curname ]] || mv "$curname" "$newname"
 cd "$newname"
-dpkg-buildpackage -rfakeroot -S -I
+dpkg-buildpackage -rfakeroot -S -I -i
 rv=$?
 fakeroot debian/rules clean
 cd ..
index c8436dd..a32abe5 100644 (file)
@@ -1,5 +1,5 @@
 #!/bin/mksh
-rcsid='$MirOS: contrib/hosted/tg/deb/mkdebidx.sh,v 1.51 2011/05/13 20:53:29 tg Exp $'
+rcsid='$MirOS: contrib/hosted/tg/deb/mkdebidx.sh,v 1.52 2011/11/11 17:38:33 tg Exp $'
 #-
 # Copyright (c) 2008, 2009, 2010, 2011
 #      Thorsten Glaser <tg@mirbsd.org>
@@ -33,9 +33,9 @@ function repo_description {
 }
 
 
-set -A dpkgarchs -- alpha amd64 arm armeb armel armhf avr32 hppa \
-    i386 ia64 kfreebsd-amd64 kfreebsd-i386 lpia m32r m68k mips mipsel \
-    powerpc powerpcspe ppc64 s390 s390x sh3 sh3eb sh4 sh4eb sparc
+set -A dpkgarchs -- alpha amd64 arm armel armhf avr32 hppa hurd-i386 i386 \
+    ia64 kfreebsd-amd64 kfreebsd-i386 m68k mips mipsel powerpc powerpcspe \
+    ppc64 s390 s390x sh4 sparc sparc64
 
 function remsign {
        target=$1; shift
@@ -407,7 +407,7 @@ done
 EOF
 print -r -- " <title>${repo_title} Index</title>"
 cat <<'EOF'
- <meta name="generator" content="$MirOS: contrib/hosted/tg/deb/mkdebidx.sh,v 1.51 2011/05/13 20:53:29 tg Exp $" />
+ <meta name="generator" content="$MirOS: contrib/hosted/tg/deb/mkdebidx.sh,v 1.52 2011/11/11 17:38:33 tg Exp $" />
  <style type="text/css">
   table {
    border: 1px solid black;
index 335b233..2e8d3dc 100644 (file)
@@ -1,5 +1,5 @@
 #!/bin/mksh
-rcsid='$MirOS: contrib/hosted/tg/deb/quinn-ls.sh,v 1.5 2011/06/25 14:28:31 tg Exp $'
+rcsid='$MirOS: contrib/hosted/tg/deb/quinn-ls.sh,v 1.6 2011/11/11 20:24:02 tg Exp $'
 #-
 # Copyright © 2011
 #      Thorsten Glaser <tg@debian.org>
@@ -223,6 +223,8 @@ for pkg in "${asso_y[@]}"; do
        [[ $lvs = $lv ]] && continue
        for lv in ${lvs#* }; do
                [[ $lv = "$uv"?('+b'+([0-9])) ]] && continue
-               print -r -- "$c0$pkg $c4$lv$c0 -"
+               lc=$c4
+               [[ -n $over_ign && $lv = "$over_ign" ]] && lc=$c6
+               print -r -- "$c0$pkg $lc$lv$c0 -"
        done
 done | sort | column -t
index d2c1b6b..ee9fd5a 100644 (file)
--- a/mksh/more
+++ b/mksh/more
@@ -1,4 +1,4 @@
-# $MirOS: src/bin/mksh/dot.mkshrc,v 1.59 2011/02/09 19:32:35 tg Exp $
+# $MirOS: src/bin/mksh/dot.mkshrc,v 1.68 2011/11/25 23:58:04 tg Exp $
 #-
 # Copyright (c) 2002, 2003, 2004, 2006, 2007, 2008, 2009, 2010, 2011
 #      Thorsten Glaser <tg@mirbsd.org>
@@ -20,7 +20,7 @@
 
 # pager (not control character safe)
 function more {
-       typeset dummy line llen curlin=0
+       local dummy line llen curlin=0
 
        cat "$@" | while IFS= read -r line; do
                llen=${%line}
index 1792458..062c37e 100644 (file)
@@ -1,4 +1,4 @@
-# $MirOS: src/bin/mksh/dot.mkshrc,v 1.59 2011/02/09 19:32:35 tg Exp $
+# $MirOS: src/bin/mksh/dot.mkshrc,v 1.68 2011/11/25 23:58:04 tg Exp $
 #-
 # Copyright (c) 2002, 2003, 2004, 2006, 2007, 2008, 2009, 2010, 2011
 #      Thorsten Glaser <tg@mirbsd.org>
@@ -34,7 +34,7 @@ function cd {
        chpwd "$@"
 }
 function cd_csh {
-       typeset d t=${1/#~/$DIRSTACKBASE}
+       local d t=${1/#~/$DIRSTACKBASE}
 
        if ! d=$(builtin cd "$t" 2>&1); then
                print -u2 "${1}: ${d##*$t - }."
@@ -43,11 +43,9 @@ function cd_csh {
        cd "$t"
 }
 function dirs {
-       typeset d dwidth
-       typeset -i isnoglob=0 fl=0 fv=0 fn=0 cpos=0
+       local d dwidth
+       local -i fl=0 fv=0 fn=0 cpos=0
 
-       [[ $(set +o) == *@(-o noglob)@(| *) ]] && isnoglob=1
-       set -o noglob
        while getopts ":lvn" d; do
                case $d {
                (l)     fl=1 ;;
@@ -86,15 +84,12 @@ function dirs {
                done
                print
        fi
-       (( isnoglob )) || set +o noglob
        return 0
 }
 function popd {
-       typeset d fa
-       typeset -i isnoglob=0 n=1
+       local d fa
+       local -i n=1
 
-       [[ $(set +o) == *@(-o noglob)@(| *) ]] && isnoglob=1
-       set -o noglob
        while getopts ":0123456789lvn" d; do
                case $d {
                (l|v|n) fa="$fa -$d" ;;
@@ -125,15 +120,12 @@ function popd {
        unset DIRSTACK[n]
        set -A DIRSTACK -- "${DIRSTACK[@]}"
        cd_csh "${DIRSTACK[0]}" || return 1
-       (( isnoglob )) || set +o noglob
        dirs $fa
 }
 function pushd {
-       typeset d fa
-       typeset -i isnoglob=0 n=1
+       local d fa
+       local -i n=1
 
-       [[ $(set +o) == *@(-o noglob)@(| *) ]] && isnoglob=1
-       set -o noglob
        while getopts ":0123456789lvn" d; do
                case $d {
                (l|v|n) fa="$fa -$d" ;;
@@ -170,6 +162,5 @@ function pushd {
                set -A DIRSTACK -- placeholder "${DIRSTACK[@]}"
                cd_csh "$1" || return 1
        fi
-       (( isnoglob )) || set +o noglob
        dirs $fa
 }
index 659bd21..bfd8f92 100644 (file)
@@ -1,7 +1,7 @@
 #!/usr/bin/env mksh
-# $MirOS: contrib/code/Snippets/shuffle,v 1.5 2010/11/06 14:59:20 tg Exp $
+# $MirOS: contrib/code/Snippets/shuffle,v 1.6 2011/09/07 19:54:51 tg Exp $
 #-
-# Copyright © 2006, 2010
+# Copyright © 2006, 2010, 2011
 #      Thorsten “mirabilos” Glaser <tg@mirbsd.org>
 #
 # Provided that these terms and disclaimer and all copyright notices
 # Provide shuffled input to mpg123, mplayer, mppdec, and other tools
 # that do not properly employ arc4random(3) et al.
 
-function usage {
-       print -u2 "Syntax: $0 program [args ...] -- file ... [ -- args ... ]"
-       print -u2 "To escape '--' in first args prepend another hyphen-minus"
-       exit 1
+usage() {
+       print -u2 "Syntax: $0 [-v] program [args ...] -- file ... [-- args ...]"
+       print -u2 "Prepend another hyphen-minus to escape multi-dash first-args"
+       exit ${1:-1}
 }
 
-[[ -z $1 || $1 = -@(h|H|?) ]] && usage
+[[ -z $1 || $1 = -[hH?] ]] && usage ${1:+0}
+
+if [[ $1 = -v ]]; then
+       verbose=1
+       shift
+else
+       verbose=0
+fi
 
 set -A cmdline
 set -A files
@@ -44,8 +51,8 @@ for arg in "$@"; do
        case $state {
        (0)     if [[ $arg = -- ]]; then
                        let state++
-               elif [[ $arg = --- ]]; then
-                       cmdline[ncmdline++]=--
+               elif [[ $arg = --+(-) ]]; then
+                       cmdline[ncmdline++]=${arg#-}
                else
                        cmdline[ncmdline++]=$arg
                fi
@@ -175,8 +182,19 @@ done
 
 # Append post-command arguments, if any
 for arg in "${postfix[@]}"; do
-       cmdline[${#cmdline[*]}]=$arg
+       cmdline[ncmdline++]=$arg
 done
 
 # Run the command
+if (( verbose )); then
+       C_QUOTE=$'[]\t\n "#$&'\''()*;<=>?[\\`|]'
+       for i in "${cmdline[@]}"; do
+               if [[ $i = *${C_QUOTE}* ]]; then
+                       print -nr " '${i//\'/\'\\\'\'}'"
+               else
+                       print -nr " $i"
+               fi
+       done
+       print
+fi
 exec "${cmdline[@]}"