Merge branch 'master' of git.dolda2000.com:/srv/git/r/utils
authorFredrik Tolf <fredrik@dolda2000.com>
Thu, 10 Mar 2011 18:12:23 +0000 (19:12 +0100)
committerFredrik Tolf <fredrik@dolda2000.com>
Thu, 10 Mar 2011 18:12:23 +0000 (19:12 +0100)
1  2 
sztest

diff --combined sztest
--- 1/sztest
--- 2/sztest
+++ b/sztest
@@@ -1,26 -1,16 +1,26 @@@
- #!/bin/sh
+ #!/bin/bash
  
 -if [ $# -lt 1 ]; then
 -    echo "usage: sztest [-H SYS-HEADER] [-L LOCAL-HEADER] TYPE [CCFLAGS...]" >&2
 -    exit 1
 -fi
 +usage() {
 +    echo "usage: sztest [-hab] [-H SYS-HEADER] [-L LOCAL-HEADER] TYPE [CCFLAGS...]"
 +}
  
 +mode=size
  sheaders=
  lheaders=
  while [ "${1:0:1}" = "-" ]; do
      opt="$1"
      shift
      case "$opt" in
 +      "-h")
 +          usage
 +          exit 0
 +          ;;
 +      "-a")
 +          mode=align
 +          ;;
 +      "-b")
 +          mode=both
 +          ;;
        "-H")
            sheaders="$sheaders $1"
            shift
            ;;
      esac
  done
 +if [ $# -lt 1 ]; then
 +    usage >&2
 +    exit 1
 +fi
  type="$1"
  shift
  file="$(mktemp /tmp/sztestXXXXXX)"
@@@ -54,19 -40,7 +54,19 @@@ don
  cat >>"$file.c" <<EOF
  int main(int argc, char **argv)
  {
 -    printf("%zi\n", sizeof($type));
 +EOF
 +case "$mode" in
 +    size)
 +      echo "    printf(\"%zi\\n\", sizeof($type));" >>"$file.c"
 +      ;;
 +    align)
 +      echo "    printf(\"%zi\\n\", __alignof__($type));" >>"$file.c"
 +      ;;
 +    both)
 +      echo "    printf(\"%zi %zi\\n\", sizeof($type), __alignof__($type));" >>"$file.c"
 +      ;;
 +esac
 +cat >>"$file.c" <<EOF
      return(0);
  }
  EOF