use Anime::ANN;
binmode STDOUT, ":utf8";
-GetOptions(\%options, "l=s", "b=s") || exit 1;
+GetOptions(\%options, "l=s", "b=s", "d") || exit 1;
if($options{"l"}) {
@list = Anime::ANN::getlist($options{"l"});
exit 0;
}
+$browse = "";
if($options{"b"}) {
- $id = Anime::ANN::getid $options{"b"};
+ $browse = $options{"b"};
+} elsif($options{"d"}) {
+ $browse = `basename "\$(pwd)"`;
+}
+if($browse) {
+ $id = Anime::ANN::getid $browse;
if(defined($id)) {
exec "htmlview", Anime::ANN::geturl($id);
} else {
- printf STDERR "could not find " . $options{"b"} . "\n";
+ printf STDERR "could not find " . $browse . "\n";
exit 1;
}
}
#!/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)"
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