]> Cypherpunks repositories - gostls13.git/commitdiff
remove semis after statements in one-statement statement lists
authorRobert Griesemer <gri@golang.org>
Mon, 9 Nov 2009 20:07:39 +0000 (12:07 -0800)
committerRobert Griesemer <gri@golang.org>
Mon, 9 Nov 2009 20:07:39 +0000 (12:07 -0800)
R=rsc, r
http://go/go-review/1025029

408 files changed:
misc/cgo/gmp/fib.go
misc/cgo/gmp/gmp.go
misc/cgo/gmp/pi.go
misc/cgo/stdio/fib.go
misc/cgo/stdio/hello.go
src/cmd/cgo/ast.go
src/cmd/cgo/gcc.go
src/cmd/cgo/main.go
src/cmd/cgo/out.go
src/cmd/cgo/util.go
src/cmd/ebnflint/ebnflint.go
src/cmd/godoc/godoc.go
src/cmd/godoc/index.go
src/cmd/godoc/main.go
src/cmd/godoc/snippet.go
src/cmd/godoc/spec.go
src/cmd/gofmt/gofmt.go
src/cmd/goyacc/goyacc.go
src/cmd/hgpatch/main.go
src/pkg/archive/tar/reader.go
src/pkg/archive/tar/reader_test.go
src/pkg/archive/tar/writer.go
src/pkg/archive/tar/writer_test.go
src/pkg/asn1/asn1.go
src/pkg/asn1/asn1_test.go
src/pkg/big/arith.go
src/pkg/big/arith_test.go
src/pkg/big/int.go
src/pkg/big/int_test.go
src/pkg/big/nat.go
src/pkg/big/nat_test.go
src/pkg/bignum/arith.go
src/pkg/bignum/bignum.go
src/pkg/bignum/bignum_test.go
src/pkg/bignum/integer.go
src/pkg/bignum/nrdiv_test.go
src/pkg/bignum/rational.go
src/pkg/bufio/bufio.go
src/pkg/bufio/bufio_test.go
src/pkg/bytes/buffer.go
src/pkg/bytes/buffer_test.go
src/pkg/bytes/bytes.go
src/pkg/bytes/bytes_test.go
src/pkg/compress/flate/deflate.go
src/pkg/compress/flate/deflate_test.go
src/pkg/compress/flate/flate_test.go
src/pkg/compress/flate/huffman_bit_writer.go
src/pkg/compress/flate/huffman_code.go
src/pkg/compress/flate/inflate.go
src/pkg/compress/flate/reverse_bits.go
src/pkg/compress/flate/token.go
src/pkg/compress/flate/util.go
src/pkg/compress/gzip/gunzip.go
src/pkg/compress/gzip/gunzip_test.go
src/pkg/compress/zlib/reader.go
src/pkg/compress/zlib/reader_test.go
src/pkg/compress/zlib/writer.go
src/pkg/compress/zlib/writer_test.go
src/pkg/container/heap/heap.go
src/pkg/container/heap/heap_test.go
src/pkg/container/list/list.go
src/pkg/container/list/list_test.go
src/pkg/container/ring/ring.go
src/pkg/container/ring/ring_test.go
src/pkg/container/vector/intvector.go
src/pkg/container/vector/stringvector.go
src/pkg/container/vector/vector.go
src/pkg/container/vector/vector_test.go
src/pkg/crypto/aes/aes_test.go
src/pkg/crypto/aes/block.go
src/pkg/crypto/aes/cipher.go
src/pkg/crypto/block/cbc.go
src/pkg/crypto/block/cbc_aes_test.go
src/pkg/crypto/block/cfb.go
src/pkg/crypto/block/cfb_aes_test.go
src/pkg/crypto/block/cipher.go
src/pkg/crypto/block/cmac.go
src/pkg/crypto/block/ctr.go
src/pkg/crypto/block/ctr_aes_test.go
src/pkg/crypto/block/eax.go
src/pkg/crypto/block/eax_aes_test.go
src/pkg/crypto/block/ecb.go
src/pkg/crypto/block/ecb_aes_test.go
src/pkg/crypto/block/ecb_test.go
src/pkg/crypto/block/ofb.go
src/pkg/crypto/block/ofb_aes_test.go
src/pkg/crypto/block/xor.go
src/pkg/crypto/block/xor_test.go
src/pkg/crypto/hmac/hmac.go
src/pkg/crypto/hmac/hmac_test.go
src/pkg/crypto/md5/md5.go
src/pkg/crypto/rc4/rc4.go
src/pkg/crypto/rsa/pkcs1v15.go
src/pkg/crypto/rsa/pkcs1v15_test.go
src/pkg/crypto/rsa/rsa.go
src/pkg/crypto/rsa/rsa_test.go
src/pkg/crypto/sha1/sha1.go
src/pkg/crypto/subtle/constant_time.go
src/pkg/crypto/subtle/constant_time_test.go
src/pkg/crypto/tls/common.go
src/pkg/crypto/tls/handshake_messages.go
src/pkg/crypto/tls/handshake_messages_test.go
src/pkg/crypto/tls/handshake_server_test.go
src/pkg/crypto/tls/prf.go
src/pkg/crypto/tls/prf_test.go
src/pkg/crypto/tls/record_process.go
src/pkg/crypto/tls/record_process_test.go
src/pkg/crypto/tls/record_read.go
src/pkg/crypto/tls/record_read_test.go
src/pkg/crypto/tls/record_write.go
src/pkg/crypto/tls/tls.go
src/pkg/crypto/x509/x509.go
src/pkg/crypto/x509/x509_test.go
src/pkg/debug/dwarf/buf.go
src/pkg/debug/dwarf/const.go
src/pkg/debug/dwarf/entry.go
src/pkg/debug/dwarf/open.go
src/pkg/debug/dwarf/type.go
src/pkg/debug/dwarf/type_test.go
src/pkg/debug/dwarf/unit.go
src/pkg/debug/elf/elf.go
src/pkg/debug/elf/elf_test.go
src/pkg/debug/elf/file.go
src/pkg/debug/elf/file_test.go
src/pkg/debug/gosym/pclntab.go
src/pkg/debug/gosym/pclntab_test.go
src/pkg/debug/gosym/symtab.go
src/pkg/debug/macho/file.go
src/pkg/debug/macho/file_test.go
src/pkg/debug/macho/macho.go
src/pkg/debug/proc/proc.go
src/pkg/debug/proc/proc_darwin.go
src/pkg/debug/proc/proc_linux.go
src/pkg/debug/proc/proc_nacl.go
src/pkg/debug/proc/regs_linux_386.go
src/pkg/debug/proc/regs_linux_amd64.go
src/pkg/debug/proc/regs_linux_arm.go
src/pkg/ebnf/ebnf.go
src/pkg/ebnf/ebnf_test.go
src/pkg/ebnf/parser.go
src/pkg/encoding/ascii85/ascii85.go
src/pkg/encoding/ascii85/ascii85_test.go
src/pkg/encoding/base64/base64.go
src/pkg/encoding/base64/base64_test.go
src/pkg/encoding/binary/binary.go
src/pkg/encoding/binary/binary_test.go
src/pkg/encoding/git85/git.go
src/pkg/encoding/git85/git_test.go
src/pkg/encoding/hex/hex.go
src/pkg/encoding/hex/hex_test.go
src/pkg/encoding/pem/pem.go
src/pkg/encoding/pem/pem_test.go
src/pkg/exec/exec.go
src/pkg/exec/exec_test.go
src/pkg/exp/4s/4s.go
src/pkg/exp/4s/xs.go
src/pkg/exp/datafmt/datafmt.go
src/pkg/exp/datafmt/datafmt_test.go
src/pkg/exp/datafmt/parser.go
src/pkg/exp/draw/arith.go
src/pkg/exp/draw/color.go
src/pkg/exp/draw/draw.go
src/pkg/exp/eval/abort.go
src/pkg/exp/eval/bridge.go
src/pkg/exp/eval/eval_test.go
src/pkg/exp/eval/expr.go
src/pkg/exp/eval/expr1.go
src/pkg/exp/eval/func.go
src/pkg/exp/eval/gen.go
src/pkg/exp/eval/main.go
src/pkg/exp/eval/scope.go
src/pkg/exp/eval/stmt.go
src/pkg/exp/eval/type.go
src/pkg/exp/eval/typec.go
src/pkg/exp/eval/util.go
src/pkg/exp/eval/value.go
src/pkg/exp/eval/world.go
src/pkg/exp/iterable/iterable.go
src/pkg/exp/iterable/iterable_test.go
src/pkg/exp/nacl/av/av.go
src/pkg/exp/nacl/av/event.go
src/pkg/exp/nacl/av/image.go
src/pkg/exp/nacl/srpc/client.go
src/pkg/exp/nacl/srpc/msg.go
src/pkg/exp/nacl/srpc/server.go
src/pkg/exp/ogle/arch.go
src/pkg/exp/ogle/cmd.go
src/pkg/exp/ogle/event.go
src/pkg/exp/ogle/frame.go
src/pkg/exp/ogle/goroutine.go
src/pkg/exp/ogle/process.go
src/pkg/exp/ogle/rruntime.go
src/pkg/exp/ogle/rtype.go
src/pkg/exp/ogle/rvalue.go
src/pkg/exp/ogle/vars.go
src/pkg/exp/spacewar/pdp1.go
src/pkg/exp/spacewar/spacewar.go
src/pkg/expvar/expvar.go
src/pkg/expvar/expvar_test.go
src/pkg/flag/flag.go
src/pkg/flag/flag_test.go
src/pkg/fmt/fmt_test.go
src/pkg/fmt/format.go
src/pkg/fmt/print.go
src/pkg/go/ast/ast.go
src/pkg/go/ast/filter.go
src/pkg/go/ast/scope.go
src/pkg/go/ast/walk.go
src/pkg/go/doc/comment.go
src/pkg/go/doc/doc.go
src/pkg/go/parser/interface.go
src/pkg/go/parser/parser.go
src/pkg/go/parser/parser_test.go
src/pkg/go/printer/nodes.go
src/pkg/go/printer/printer.go
src/pkg/go/printer/printer_test.go
src/pkg/go/printer/testdata/comments.golden
src/pkg/go/printer/testdata/expressions.golden
src/pkg/go/printer/testdata/expressions.raw
src/pkg/go/printer/testdata/linebreaks.golden
src/pkg/go/printer/testdata/statements.golden
src/pkg/go/scanner/errors.go
src/pkg/go/scanner/scanner.go
src/pkg/go/scanner/scanner_test.go
src/pkg/go/token/token.go
src/pkg/gob/codec_test.go
src/pkg/gob/decode.go
src/pkg/gob/decoder.go
src/pkg/gob/encode.go
src/pkg/gob/encoder.go
src/pkg/gob/encoder_test.go
src/pkg/gob/type.go
src/pkg/gob/type_test.go
src/pkg/hash/crc32/crc32.go
src/pkg/http/client.go
src/pkg/http/client_test.go
src/pkg/http/fs.go
src/pkg/http/request.go
src/pkg/http/request_test.go
src/pkg/http/server.go
src/pkg/http/triv.go
src/pkg/http/url.go
src/pkg/http/url_test.go
src/pkg/image/color.go
src/pkg/image/image.go
src/pkg/image/png/reader.go
src/pkg/image/png/reader_test.go
src/pkg/image/png/writer.go
src/pkg/image/png/writer_test.go
src/pkg/io/io.go
src/pkg/io/pipe.go
src/pkg/io/pipe_test.go
src/pkg/io/utils.go
src/pkg/io/utils_test.go
src/pkg/json/generic.go
src/pkg/json/generic_test.go
src/pkg/json/parse.go
src/pkg/json/struct.go
src/pkg/json/struct_test.go
src/pkg/log/log.go
src/pkg/log/log_test.go
src/pkg/math/all_test.go
src/pkg/math/asin.go
src/pkg/math/atan.go
src/pkg/math/atan2.go
src/pkg/math/bits.go
src/pkg/math/exp.go
src/pkg/math/fabs.go
src/pkg/math/floor.go
src/pkg/math/fmod.go
src/pkg/math/hypot.go
src/pkg/math/log.go
src/pkg/math/pow.go
src/pkg/math/pow10.go
src/pkg/math/sin.go
src/pkg/math/sinh.go
src/pkg/math/sqrt.go
src/pkg/math/tan.go
src/pkg/math/tanh.go
src/pkg/net/dialgoogle_test.go
src/pkg/net/dnsclient.go
src/pkg/net/dnsconfig.go
src/pkg/net/dnsmsg.go
src/pkg/net/fd.go
src/pkg/net/fd_darwin.go
src/pkg/net/fd_linux.go
src/pkg/net/fd_nacl.go
src/pkg/net/ip.go
src/pkg/net/ip_test.go
src/pkg/net/ipsock.go
src/pkg/net/net.go
src/pkg/net/net_test.go
src/pkg/net/parse.go
src/pkg/net/parse_test.go
src/pkg/net/port.go
src/pkg/net/port_test.go
src/pkg/net/server_test.go
src/pkg/net/sock.go
src/pkg/net/tcpsock.go
src/pkg/net/timeout_test.go
src/pkg/net/udpsock.go
src/pkg/net/unixsock.go
src/pkg/once/once_test.go
src/pkg/os/dir_darwin.go
src/pkg/os/dir_linux.go
src/pkg/os/dir_nacl.go
src/pkg/os/env.go
src/pkg/os/error.go
src/pkg/os/exec.go
src/pkg/os/file.go
src/pkg/os/getwd.go
src/pkg/os/os_test.go
src/pkg/os/path.go
src/pkg/os/path_test.go
src/pkg/os/stat_darwin.go
src/pkg/os/stat_linux.go
src/pkg/os/stat_nacl.go
src/pkg/os/sys_darwin.go
src/pkg/os/sys_linux.go
src/pkg/os/time.go
src/pkg/patch/apply.go
src/pkg/patch/git.go
src/pkg/patch/patch.go
src/pkg/patch/patch_test.go
src/pkg/patch/textdiff.go
src/pkg/path/path.go
src/pkg/path/path_test.go
src/pkg/rand/exp.go
src/pkg/rand/normal.go
src/pkg/rand/rand.go
src/pkg/rand/rand_test.go
src/pkg/rand/rng.go
src/pkg/reflect/all_test.go
src/pkg/reflect/deepequal.go
src/pkg/reflect/tostring_test.go
src/pkg/reflect/type.go
src/pkg/reflect/value.go
src/pkg/regexp/all_test.go
src/pkg/regexp/regexp.go
src/pkg/rpc/client.go
src/pkg/rpc/debug.go
src/pkg/rpc/server.go
src/pkg/rpc/server_test.go
src/pkg/sort/sort.go
src/pkg/sort/sort_test.go
src/pkg/strconv/atof.go
src/pkg/strconv/atof_test.go
src/pkg/strconv/atoi.go
src/pkg/strconv/atoi_test.go
src/pkg/strconv/decimal.go
src/pkg/strconv/decimal_test.go
src/pkg/strconv/fp_test.go
src/pkg/strconv/ftoa.go
src/pkg/strconv/ftoa_test.go
src/pkg/strconv/itoa.go
src/pkg/strconv/itoa_test.go
src/pkg/strconv/quote.go
src/pkg/strconv/quote_test.go
src/pkg/strings/reader.go
src/pkg/strings/strings.go
src/pkg/strings/strings_test.go
src/pkg/sync/mutex.go
src/pkg/sync/mutex_test.go
src/pkg/syscall/errstr.go
src/pkg/syscall/exec.go
src/pkg/syscall/syscall.go
src/pkg/syscall/syscall_darwin.go
src/pkg/syscall/syscall_linux.go
src/pkg/syscall/syscall_linux_386.go
src/pkg/syscall/syscall_nacl.go
src/pkg/syscall/zsyscall_darwin_386.go
src/pkg/syscall/zsyscall_darwin_amd64.go
src/pkg/syscall/zsyscall_linux_386.go
src/pkg/syscall/zsyscall_linux_amd64.go
src/pkg/syscall/zsyscall_linux_arm.go
src/pkg/syscall/zsyscall_nacl_386.go
src/pkg/tabwriter/tabwriter.go
src/pkg/tabwriter/tabwriter_test.go
src/pkg/template/format.go
src/pkg/template/template.go
src/pkg/template/template_test.go
src/pkg/testing/iotest/logger.go
src/pkg/testing/iotest/reader.go
src/pkg/testing/iotest/writer.go
src/pkg/testing/quick/quick.go
src/pkg/testing/quick/quick_test.go
src/pkg/testing/regexp.go
src/pkg/testing/regexp_test.go
src/pkg/testing/script/script.go
src/pkg/testing/script/script_test.go
src/pkg/testing/testing.go
src/pkg/time/tick.go
src/pkg/time/tick_test.go
src/pkg/time/time.go
src/pkg/time/time_test.go
src/pkg/time/zoneinfo.go
src/pkg/unicode/digit.go
src/pkg/unicode/digit_test.go
src/pkg/unicode/letter.go
src/pkg/unicode/letter_test.go
src/pkg/unicode/maketables.go
src/pkg/unicode/script_test.go
src/pkg/utf8/utf8.go
src/pkg/utf8/utf8_test.go
src/pkg/xml/read.go
src/pkg/xml/read_test.go
src/pkg/xml/xml.go
src/pkg/xml/xml_test.go

index 02b98b108c7d1abf3a7aca132485f467a9907177..1ff156ef22e66433a3a24bba011db0f260ef527c 100644 (file)
@@ -22,7 +22,7 @@ func fibber(c chan *big.Int, out chan string, n int64) {
 
        i := big.NewInt(n);
        if n == 0 {
-               c <- i;
+               c <- i
        }
        for {
                j := <-c;
@@ -38,6 +38,6 @@ func main() {
        go fibber(c, out, 0);
        go fibber(c, out, 1);
        for i := 0; i < 200; i++ {
-               println(<-out);
+               println(<-out)
        }
 }
index a876f9cbc8d5beed3c99a231566d7ffd10a33b02..5a21c5384136e29d21ff288d00f26abf5f682de9 100644 (file)
@@ -130,7 +130,7 @@ func NewInt(x int64) *Int   { return new(Int).SetInt64(x) }
 // making zero values useful and gmp's decision not to.
 func (z *Int) doinit() {
        if z.init {
-               return;
+               return
        }
        z.init = true;
        C.mpz_init(&z.i[0]);
@@ -162,9 +162,9 @@ func (z *Int) Set(x *Int) *Int {
 func (z *Int) SetBytes(b []byte) *Int {
        z.doinit();
        if len(b) == 0 {
-               z.SetInt64(0);
+               z.SetInt64(0)
        } else {
-               C.mpz_import(&z.i[0], C.size_t(len(b)), 1, 1, 1, 0, unsafe.Pointer(&b[0]));
+               C.mpz_import(&z.i[0], C.size_t(len(b)), 1, 1, 1, 0, unsafe.Pointer(&b[0]))
        }
        return z;
 }
@@ -183,12 +183,12 @@ func (z *Int) SetInt64(x int64) *Int {
 func (z *Int) SetString(s string, base int) os.Error {
        z.doinit();
        if base < 2 || base > 36 {
-               return os.EINVAL;
+               return os.EINVAL
        }
        p := C.CString(s);
        defer C.free(unsafe.Pointer(p));
        if C.mpz_set_str(&z.i[0], p, C.int(base)) < 0 {
-               return os.EINVAL;
+               return os.EINVAL
        }
        return z;
 }
@@ -196,7 +196,7 @@ func (z *Int) SetString(s string, base int) os.Error {
 // String returns the decimal representation of z.
 func (z *Int) String() string {
        if z == nil {
-               return "nil";
+               return "nil"
        }
        z.doinit();
        p := C.mpz_get_str(nil, 10, &z.i[0]);
@@ -207,7 +207,7 @@ func (z *Int) String() string {
 
 func (z *Int) destroy() {
        if z.init {
-               C.mpz_clear(&z.i[0]);
+               C.mpz_clear(&z.i[0])
        }
        z.init = false;
 }
@@ -287,16 +287,16 @@ func (z *Int) Exp(x, y, m *Int) *Int {
        y.doinit();
        z.doinit();
        if m == nil {
-               C.mpz_pow_ui(&z.i[0], &x.i[0], C.mpz_get_ui(&y.i[0]));
+               C.mpz_pow_ui(&z.i[0], &x.i[0], C.mpz_get_ui(&y.i[0]))
        } else {
-               C.mpz_powm(&z.i[0], &x.i[0], &y.i[0], &m.i[0]);
+               C.mpz_powm(&z.i[0], &x.i[0], &y.i[0], &m.i[0])
        }
        return z;
 }
 
 func (z *Int) Int64() int64 {
        if !z.init {
-               return 0;
+               return 0
        }
        return int64(C.mpz_get_si(&z.i[0]));
 }
@@ -334,9 +334,9 @@ func CmpInt(x, y *Int) int {
        y.doinit();
        switch cmp := C.mpz_cmp(&x.i[0], &y.i[0]); {
        case cmp < 0:
-               return -1;
+               return -1
        case cmp == 0:
-               return 0;
+               return 0
        }
        return +1;
 }
index b03fa2c1121996ec2fe4c874fe1620bd0a428a54..61b88a417d684c5d96fed11606b72165d31f7629 100644 (file)
@@ -54,13 +54,13 @@ var (
 
 func extractDigit() int64 {
        if big.CmpInt(numer, accum) > 0 {
-               return -1;
+               return -1
        }
        tmp1.Lsh(numer, 1).Add(tmp1, numer).Add(tmp1, accum);
        big.DivModInt(tmp1, tmp2, tmp1, denom);
        tmp2.Add(tmp2, numer);
        if big.CmpInt(tmp2, denom) >= 0 {
-               return -1;
+               return -1
        }
        return tmp1.Int64();
 }
@@ -95,7 +95,7 @@ func main() {
                if i++; i%50 == 0 {
                        fmt.Printf("\n");
                        if i >= 1000 {
-                               break;
+                               break
                        }
                }
        }
index 972057e11fd6309cefed76a65265f0ddec3a669f..1e2336d5b28ec9628c88f494083b2983deb8f513 100644 (file)
@@ -22,7 +22,7 @@ func fibber(c, out chan int64, i int64) {
        runtime.LockOSThread();
 
        if i == 0 {
-               c <- i;
+               c <- i
        }
        for {
                j := <-c;
index c2555d008614d8a8743c5d3f6b93752354c2e7f0..47f9de02f10e044358b6883904323edb56da15d1 100644 (file)
@@ -8,5 +8,5 @@ import "stdio"
 
 func main() {
        //      stdio.Stdout.WriteString("hello, world\n");
-       stdio.Puts("hello, world");
+       stdio.Puts("hello, world")
 }
index e5956375ca9f823e4b5468144bfc57d55cd4edea..f739c355aa1bf8e1b3fe4d43f709abd7ecbfa059 100644 (file)
@@ -65,7 +65,7 @@ func openProg(name string) *Prog {
                        // Instead, turn it into a new Error that will return
                        // details for all the errors.
                        for _, e := range list {
-                               fmt.Fprintln(os.Stderr, e);
+                               fmt.Fprintln(os.Stderr, e)
                        }
                        os.Exit(2);
                }
@@ -94,16 +94,16 @@ func openProg(name string) *Prog {
                        }
                        sawC = true;
                        if s.Name != nil {
-                               error(s.Path[0].Pos(), `cannot rename import "C"`);
+                               error(s.Path[0].Pos(), `cannot rename import "C"`)
                        }
                        if s.Doc != nil {
-                               p.Preamble += doc.CommentText(s.Doc) + "\n";
+                               p.Preamble += doc.CommentText(s.Doc) + "\n"
                        } else if len(d.Specs) == 1 && d.Doc != nil {
-                               p.Preamble += doc.CommentText(d.Doc) + "\n";
+                               p.Preamble += doc.CommentText(d.Doc) + "\n"
                        }
                }
                if ws == 0 {
-                       continue;
+                       continue
                }
                d.Specs = d.Specs[0:ws];
                p.AST.Decls[w] = d;
@@ -112,7 +112,7 @@ func openProg(name string) *Prog {
        p.AST.Decls = p.AST.Decls[0:w];
 
        if !sawC {
-               error(noPos, `cannot find import "C"`);
+               error(noPos, `cannot find import "C"`)
        }
 
        // Accumulate pointers to uses of C.x.
@@ -135,7 +135,7 @@ func walk(x interface{}, p *Prog, context string) {
                                if i >= cap(p.Crefs) {
                                        new := make([]*Cref, 2*i);
                                        for j, v := range p.Crefs {
-                                               new[j] = v;
+                                               new[j] = v
                                        }
                                        p.Crefs = new;
                                }
@@ -159,7 +159,7 @@ func walk(x interface{}, p *Prog, context string) {
 
        // These are ordered and grouped to match ../../pkg/go/ast/ast.go
        case *ast.Field:
-               walk(&n.Type, p, "type");
+               walk(&n.Type, p, "type")
        case *ast.BadExpr:
        case *ast.Ident:
        case *ast.Ellipsis:
@@ -172,14 +172,14 @@ func walk(x interface{}, p *Prog, context string) {
                walk(&n.Type, p, "type");
                walk(n.Elts, p, "expr");
        case *ast.ParenExpr:
-               walk(&n.X, p, context);
+               walk(&n.X, p, context)
        case *ast.SelectorExpr:
-               walk(&n.X, p, "selector");
+               walk(&n.X, p, "selector")
        case *ast.IndexExpr:
                walk(&n.X, p, "expr");
                walk(&n.Index, p, "expr");
                if n.End != nil {
-                       walk(&n.End, p, "expr");
+                       walk(&n.End, p, "expr")
                }
        case *ast.TypeAssertExpr:
                walk(&n.X, p, "expr");
@@ -188,9 +188,9 @@ func walk(x interface{}, p *Prog, context string) {
                walk(&n.Fun, p, "call");
                walk(n.Args, p, "expr");
        case *ast.StarExpr:
-               walk(&n.X, p, context);
+               walk(&n.X, p, context)
        case *ast.UnaryExpr:
-               walk(&n.X, p, "expr");
+               walk(&n.X, p, "expr")
        case *ast.BinaryExpr:
                walk(&n.X, p, "expr");
                walk(&n.Y, p, "expr");
@@ -202,40 +202,40 @@ func walk(x interface{}, p *Prog, context string) {
                walk(&n.Len, p, "expr");
                walk(&n.Elt, p, "type");
        case *ast.StructType:
-               walk(n.Fields, p, "field");
+               walk(n.Fields, p, "field")
        case *ast.FuncType:
                walk(n.Params, p, "field");
                walk(n.Results, p, "field");
        case *ast.InterfaceType:
-               walk(n.Methods, p, "field");
+               walk(n.Methods, p, "field")
        case *ast.MapType:
                walk(&n.Key, p, "type");
                walk(&n.Value, p, "type");
        case *ast.ChanType:
-               walk(&n.Value, p, "type");
+               walk(&n.Value, p, "type")
 
        case *ast.BadStmt:
        case *ast.DeclStmt:
-               walk(n.Decl, p, "decl");
+               walk(n.Decl, p, "decl")
        case *ast.EmptyStmt:
        case *ast.LabeledStmt:
-               walk(n.Stmt, p, "stmt");
+               walk(n.Stmt, p, "stmt")
        case *ast.ExprStmt:
-               walk(&n.X, p, "expr");
+               walk(&n.X, p, "expr")
        case *ast.IncDecStmt:
-               walk(&n.X, p, "expr");
+               walk(&n.X, p, "expr")
        case *ast.AssignStmt:
                walk(n.Lhs, p, "expr");
                walk(n.Rhs, p, "expr");
        case *ast.GoStmt:
-               walk(n.Call, p, "expr");
+               walk(n.Call, p, "expr")
        case *ast.DeferStmt:
-               walk(n.Call, p, "expr");
+               walk(n.Call, p, "expr")
        case *ast.ReturnStmt:
-               walk(n.Results, p, "expr");
+               walk(n.Results, p, "expr")
        case *ast.BranchStmt:
        case *ast.BlockStmt:
-               walk(n.List, p, "stmt");
+               walk(n.List, p, "stmt")
        case *ast.IfStmt:
                walk(n.Init, p, "stmt");
                walk(&n.Cond, p, "expr");
@@ -260,7 +260,7 @@ func walk(x interface{}, p *Prog, context string) {
                walk(n.Rhs, p, "expr");
                walk(n.Body, p, "stmt");
        case *ast.SelectStmt:
-               walk(n.Body, p, "stmt");
+               walk(n.Body, p, "stmt")
        case *ast.ForStmt:
                walk(n.Init, p, "stmt");
                walk(&n.Cond, p, "expr");
@@ -277,47 +277,47 @@ func walk(x interface{}, p *Prog, context string) {
                walk(&n.Type, p, "type");
                walk(n.Values, p, "expr");
        case *ast.TypeSpec:
-               walk(&n.Type, p, "type");
+               walk(&n.Type, p, "type")
 
        case *ast.BadDecl:
        case *ast.GenDecl:
-               walk(n.Specs, p, "spec");
+               walk(n.Specs, p, "spec")
        case *ast.FuncDecl:
                if n.Recv != nil {
-                       walk(n.Recv, p, "field");
+                       walk(n.Recv, p, "field")
                }
                walk(n.Type, p, "type");
                if n.Body != nil {
-                       walk(n.Body, p, "stmt");
+                       walk(n.Body, p, "stmt")
                }
 
        case *ast.File:
-               walk(n.Decls, p, "decl");
+               walk(n.Decls, p, "decl")
 
        case *ast.Package:
                for _, f := range n.Files {
-                       walk(f, p, "file");
+                       walk(f, p, "file")
                }
 
        case []ast.Decl:
                for _, d := range n {
-                       walk(d, p, context);
+                       walk(d, p, context)
                }
        case []ast.Expr:
                for i := range n {
-                       walk(&n[i], p, context);
+                       walk(&n[i], p, context)
                }
        case []*ast.Field:
                for _, f := range n {
-                       walk(f, p, context);
+                       walk(f, p, context)
                }
        case []ast.Stmt:
                for _, s := range n {
-                       walk(s, p, context);
+                       walk(s, p, context)
                }
        case []ast.Spec:
                for _, s := range n {
-                       walk(s, p, context);
+                       walk(s, p, context)
                }
        }
 }
index 9087c9197c517bf65736ba5189fabceec9757dc8..f5c33e82c5fde74add75d026ecb08e3b0f857209 100644 (file)
@@ -24,7 +24,7 @@ func (p *Prog) loadDebugInfo() {
        // Construct a slice of unique names from p.Crefs.
        m := make(map[string]int);
        for _, c := range p.Crefs {
-               m[c.Name] = -1;
+               m[c.Name] = -1
        }
        names := make([]string, 0, len(m));
        for name, _ := range m {
@@ -59,40 +59,40 @@ func (p *Prog) loadDebugInfo() {
        kind := make(map[string]string);
        _, stderr := p.gccDebug(b.Bytes());
        if stderr == "" {
-               fatal("gcc produced no output");
+               fatal("gcc produced no output")
        }
        for _, line := range strings.Split(stderr, "\n", 0) {
                if len(line) < 9 || line[0:9] != "cgo-test:" {
-                       continue;
+                       continue
                }
                line = line[9:len(line)];
                colon := strings.Index(line, ":");
                if colon < 0 {
-                       continue;
+                       continue
                }
                i, err := strconv.Atoi(line[0:colon]);
                if err != nil {
-                       continue;
+                       continue
                }
                what := "";
                switch {
                default:
-                       continue;
+                       continue
                case strings.Index(line, ": useless type name in empty declaration") >= 0:
-                       what = "type";
+                       what = "type"
                case strings.Index(line, ": statement with no effect") >= 0:
-                       what = "value";
+                       what = "value"
                case strings.Index(line, "undeclared") >= 0:
-                       what = "error";
+                       what = "error"
                }
                if old, ok := kind[names[i]]; ok && old != what {
-                       error(noPos, "inconsistent gcc output about C.%s", names[i]);
+                       error(noPos, "inconsistent gcc output about C.%s", names[i])
                }
                kind[names[i]] = what;
        }
        for _, n := range names {
                if _, ok := kind[n]; !ok {
-                       error(noPos, "could not determine kind of name for C.%s", n);
+                       error(noPos, "could not determine kind of name for C.%s", n)
                }
        }
 
@@ -107,11 +107,11 @@ func (p *Prog) loadDebugInfo() {
        b.Reset();
        b.WriteString(p.Preamble);
        for i, n := range names {
-               fmt.Fprintf(&b, "typeof(%s) *__cgo__%d;\n", n, i);
+               fmt.Fprintf(&b, "typeof(%s) *__cgo__%d;\n", n, i)
        }
        d, stderr := p.gccDebug(b.Bytes());
        if d == nil {
-               fatal("gcc failed:\n%s\non input:\n%s", stderr, b.Bytes());
+               fatal("gcc failed:\n%s\non input:\n%s", stderr, b.Bytes())
        }
 
        // Scan DWARF info for top-level TagVariable entries with AttrName __cgo__i.
@@ -120,39 +120,39 @@ func (p *Prog) loadDebugInfo() {
        for {
                e, err := r.Next();
                if err != nil {
-                       fatal("reading DWARF entry: %s", err);
+                       fatal("reading DWARF entry: %s", err)
                }
                if e == nil {
-                       break;
+                       break
                }
                if e.Tag != dwarf.TagVariable {
-                       goto Continue;
+                       goto Continue
                }
                name, _ := e.Val(dwarf.AttrName).(string);
                typOff, _ := e.Val(dwarf.AttrType).(dwarf.Offset);
                if name == "" || typOff == 0 {
-                       fatal("malformed DWARF TagVariable entry");
+                       fatal("malformed DWARF TagVariable entry")
                }
                if !strings.HasPrefix(name, "__cgo__") {
-                       goto Continue;
+                       goto Continue
                }
                typ, err := d.Type(typOff);
                if err != nil {
-                       fatal("loading DWARF type: %s", err);
+                       fatal("loading DWARF type: %s", err)
                }
                t, ok := typ.(*dwarf.PtrType);
                if !ok || t == nil {
-                       fatal("internal error: %s has non-pointer type", name);
+                       fatal("internal error: %s has non-pointer type", name)
                }
                i, err := strconv.Atoi(name[7:len(name)]);
                if err != nil {
-                       fatal("malformed __cgo__ name: %s", name);
+                       fatal("malformed __cgo__ name: %s", name)
                }
                types[i] = t.Type;
 
        Continue:
                if e.Tag != dwarf.TagCompileUnit {
-                       r.SkipChildren();
+                       r.SkipChildren()
                }
        }
 
@@ -164,9 +164,9 @@ func (p *Prog) loadDebugInfo() {
                c.TypeName = kind[c.Name] == "type";
                f, fok := types[i].(*dwarf.FuncType);
                if c.Context == "call" && !c.TypeName && fok {
-                       c.FuncType = conv.FuncType(f);
+                       c.FuncType = conv.FuncType(f)
                } else {
-                       c.Type = conv.Type(types[i]);
+                       c.Type = conv.Type(types[i])
                }
        }
        p.Typedef = conv.typedef;
@@ -175,10 +175,10 @@ func (p *Prog) loadDebugInfo() {
 func concat(a, b []string) []string {
        c := make([]string, len(a)+len(b));
        for i, s := range a {
-               c[i] = s;
+               c[i] = s
        }
        for i, s := range b {
-               c[i+len(a)] = s;
+               c[i+len(a)] = s
        }
        return c;
 }
@@ -189,7 +189,7 @@ func concat(a, b []string) []string {
 func (p *Prog) gccDebug(stdin []byte) (*dwarf.Data, string) {
        machine := "-m32";
        if p.PtrSize == 8 {
-               machine = "-m64";
+               machine = "-m64"
        }
 
        tmp := "_cgo_.o";
@@ -206,7 +206,7 @@ func (p *Prog) gccDebug(stdin []byte) (*dwarf.Data, string) {
        };
        _, stderr, ok := run(stdin, concat(base, p.GccOptions));
        if !ok {
-               return nil, string(stderr);
+               return nil, string(stderr)
        }
 
        // Try to parse f as ELF and Mach-O and hope one works.
@@ -216,13 +216,13 @@ func (p *Prog) gccDebug(stdin []byte) (*dwarf.Data, string) {
        var err os.Error;
        if f, err = elf.Open(tmp); err != nil {
                if f, err = macho.Open(tmp); err != nil {
-                       fatal("cannot parse gcc output %s as ELF or Mach-O object", tmp);
+                       fatal("cannot parse gcc output %s as ELF or Mach-O object", tmp)
                }
        }
 
        d, err := f.DWARF();
        if err != nil {
-               fatal("cannot load DWARF debug information from %s: %s", tmp, err);
+               fatal("cannot load DWARF debug information from %s: %s", tmp, err)
        }
        return d, "";
 }
@@ -302,7 +302,7 @@ var cnameMap = map[string]string{
 func (c *typeConv) Type(dtype dwarf.Type) *Type {
        if t, ok := c.m[dtype]; ok {
                if t.Go == nil {
-                       fatal("type conversion loop at %s", dtype);
+                       fatal("type conversion loop at %s", dtype)
                }
                return t;
        }
@@ -312,17 +312,17 @@ func (c *typeConv) Type(dtype dwarf.Type) *Type {
        t.Align = -1;
        t.C = dtype.Common().Name;
        if t.Size < 0 {
-               fatal("dwarf.Type %s reports unknown size", dtype);
+               fatal("dwarf.Type %s reports unknown size", dtype)
        }
 
        c.m[dtype] = t;
        switch dt := dtype.(type) {
        default:
-               fatal("unexpected type: %s", dtype);
+               fatal("unexpected type: %s", dtype)
 
        case *dwarf.AddrType:
                if t.Size != c.ptrSize {
-                       fatal("unexpected: %d-byte address type - %s", t.Size, dtype);
+                       fatal("unexpected: %d-byte address type - %s", t.Size, dtype)
                }
                t.Go = c.uintptr;
                t.Align = t.Size;
@@ -344,7 +344,7 @@ func (c *typeConv) Type(dtype dwarf.Type) *Type {
 
        case *dwarf.CharType:
                if t.Size != 1 {
-                       fatal("unexpected: %d-byte char type - %s", t.Size, dtype);
+                       fatal("unexpected: %d-byte char type - %s", t.Size, dtype)
                }
                t.Go = c.int8;
                t.Align = 1;
@@ -352,32 +352,32 @@ func (c *typeConv) Type(dtype dwarf.Type) *Type {
        case *dwarf.EnumType:
                switch t.Size {
                default:
-                       fatal("unexpected: %d-byte enum type - %s", t.Size, dtype);
+                       fatal("unexpected: %d-byte enum type - %s", t.Size, dtype)
                case 1:
-                       t.Go = c.uint8;
+                       t.Go = c.uint8
                case 2:
-                       t.Go = c.uint16;
+                       t.Go = c.uint16
                case 4:
-                       t.Go = c.uint32;
+                       t.Go = c.uint32
                case 8:
-                       t.Go = c.uint64;
+                       t.Go = c.uint64
                }
                if t.Align = t.Size; t.Align >= c.ptrSize {
-                       t.Align = c.ptrSize;
+                       t.Align = c.ptrSize
                }
                t.C = "enum " + dt.EnumName;
 
        case *dwarf.FloatType:
                switch t.Size {
                default:
-                       fatal("unexpected: %d-byte float type - %s", t.Size, dtype);
+                       fatal("unexpected: %d-byte float type - %s", t.Size, dtype)
                case 4:
-                       t.Go = c.float32;
+                       t.Go = c.float32
                case 8:
-                       t.Go = c.float64;
+                       t.Go = c.float64
                }
                if t.Align = t.Size; t.Align >= c.ptrSize {
-                       t.Align = c.ptrSize;
+                       t.Align = c.ptrSize
                }
 
        case *dwarf.FuncType:
@@ -388,22 +388,22 @@ func (c *typeConv) Type(dtype dwarf.Type) *Type {
 
        case *dwarf.IntType:
                if dt.BitSize > 0 {
-                       fatal("unexpected: %d-bit int type - %s", dt.BitSize, dtype);
+                       fatal("unexpected: %d-bit int type - %s", dt.BitSize, dtype)
                }
                switch t.Size {
                default:
-                       fatal("unexpected: %d-byte int type - %s", t.Size, dtype);
+                       fatal("unexpected: %d-byte int type - %s", t.Size, dtype)
                case 1:
-                       t.Go = c.int8;
+                       t.Go = c.int8
                case 2:
-                       t.Go = c.int16;
+                       t.Go = c.int16
                case 4:
-                       t.Go = c.int32;
+                       t.Go = c.int32
                case 8:
-                       t.Go = c.int64;
+                       t.Go = c.int64
                }
                if t.Align = t.Size; t.Align >= c.ptrSize {
-                       t.Align = c.ptrSize;
+                       t.Align = c.ptrSize
                }
 
        case *dwarf.PtrType:
@@ -436,7 +436,7 @@ func (c *typeConv) Type(dtype dwarf.Type) *Type {
                        tag = "__" + strconv.Itoa(c.tagGen);
                        c.tagGen++;
                } else if t.C == "" {
-                       t.C = dt.Kind + " " + tag;
+                       t.C = dt.Kind + " " + tag
                }
                name := c.Ident("_C" + dt.Kind + "_" + tag);
                t.Go = name;    // publish before recursive calls
@@ -444,12 +444,12 @@ func (c *typeConv) Type(dtype dwarf.Type) *Type {
                case "union", "class":
                        c.typedef[name.Value] = c.Opaque(t.Size);
                        if t.C == "" {
-                               t.C = fmt.Sprintf("typeof(unsigned char[%d])", t.Size);
+                               t.C = fmt.Sprintf("typeof(unsigned char[%d])", t.Size)
                        }
                case "struct":
                        g, csyntax, align := c.Struct(dt);
                        if t.C == "" {
-                               t.C = csyntax;
+                               t.C = csyntax
                        }
                        t.Align = align;
                        c.typedef[name.Value] = g;
@@ -472,34 +472,34 @@ func (c *typeConv) Type(dtype dwarf.Type) *Type {
                t.Size = sub.Size;
                t.Align = sub.Align;
                if _, ok := c.typedef[name.Value]; !ok {
-                       c.typedef[name.Value] = sub.Go;
+                       c.typedef[name.Value] = sub.Go
                }
 
        case *dwarf.UcharType:
                if t.Size != 1 {
-                       fatal("unexpected: %d-byte uchar type - %s", t.Size, dtype);
+                       fatal("unexpected: %d-byte uchar type - %s", t.Size, dtype)
                }
                t.Go = c.uint8;
                t.Align = 1;
 
        case *dwarf.UintType:
                if dt.BitSize > 0 {
-                       fatal("unexpected: %d-bit uint type - %s", dt.BitSize, dtype);
+                       fatal("unexpected: %d-bit uint type - %s", dt.BitSize, dtype)
                }
                switch t.Size {
                default:
-                       fatal("unexpected: %d-byte uint type - %s", t.Size, dtype);
+                       fatal("unexpected: %d-byte uint type - %s", t.Size, dtype)
                case 1:
-                       t.Go = c.uint8;
+                       t.Go = c.uint8
                case 2:
-                       t.Go = c.uint16;
+                       t.Go = c.uint16
                case 4:
-                       t.Go = c.uint32;
+                       t.Go = c.uint32
                case 8:
-                       t.Go = c.uint64;
+                       t.Go = c.uint64
                }
                if t.Align = t.Size; t.Align >= c.ptrSize {
-                       t.Align = c.ptrSize;
+                       t.Align = c.ptrSize
                }
 
        case *dwarf.VoidType:
@@ -512,7 +512,7 @@ func (c *typeConv) Type(dtype dwarf.Type) *Type {
                s := dtype.Common().Name;
                if s != "" {
                        if ss, ok := cnameMap[s]; ok {
-                               s = ss;
+                               s = ss
                        }
                        s = strings.Join(strings.Split(s, " ", 0), ""); // strip spaces
                        name := c.Ident("_C_"+s);
@@ -522,7 +522,7 @@ func (c *typeConv) Type(dtype dwarf.Type) *Type {
        }
 
        if t.C == "" {
-               fatal("internal error: did not create C name for %s", dtype);
+               fatal("internal error: did not create C name for %s", dtype)
        }
 
        return t;
@@ -541,14 +541,14 @@ func (c *typeConv) FuncArg(dtype dwarf.Type) *Type {
                        Align: c.ptrSize,
                        Go: &ast.StarExpr{X: t.Go},
                        C: t.C + "*",
-               };
+               }
        case *dwarf.TypedefType:
                // C has much more relaxed rules than Go for
                // implicit type conversions.  When the parameter
                // is type T defined as *X, simulate a little of the
                // laxness of C by making the argument *X instead of T.
                if ptr, ok := base(dt.Type).(*dwarf.PtrType); ok {
-                       return c.Type(ptr);
+                       return c.Type(ptr)
                }
        }
        return t;
@@ -587,7 +587,7 @@ func (c *typeConv) Opaque(n int64) ast.Expr {
        return &ast.ArrayType{
                Len: c.intExpr(n),
                Elt: c.byte,
-       };
+       }
 }
 
 // Expr for integer n.
@@ -595,7 +595,7 @@ func (c *typeConv) intExpr(n int64) ast.Expr {
        return &ast.BasicLit{
                Kind: token.INT,
                Value: strings.Bytes(strconv.Itoa64(n)),
-       };
+       }
 }
 
 // Add padding of given size to fld.
@@ -623,7 +623,7 @@ func (c *typeConv) Struct(dt *dwarf.StructType) (expr *ast.StructType, csyntax s
                off += t.Size;
                csyntax += t.C + " " + f.Name + "; ";
                if t.Align > align {
-                       align = t.Align;
+                       align = t.Align
                }
        }
        if off < dt.ByteSize {
@@ -631,7 +631,7 @@ func (c *typeConv) Struct(dt *dwarf.StructType) (expr *ast.StructType, csyntax s
                off = dt.ByteSize;
        }
        if off != dt.ByteSize {
-               fatal("struct size calculation error");
+               fatal("struct size calculation error")
        }
        csyntax += "}";
        expr = &ast.StructType{Fields: fld};
index c80170478050015fa5fdb49bbfc66f53ea71fa73..1eadfba9b14f35810a2ebcf6807138171809346d 100644 (file)
@@ -45,18 +45,18 @@ func main() {
 
        arch := os.Getenv("GOARCH");
        if arch == "" {
-               fatal("$GOARCH is not set");
+               fatal("$GOARCH is not set")
        }
        ptrSize, ok := ptrSizeMap[arch];
        if !ok {
-               fatal("unknown architecture %s", arch);
+               fatal("unknown architecture %s", arch)
        }
 
        p := openProg(input);
        for _, cref := range p.Crefs {
                // Convert C.ulong to C.unsigned long, etc.
                if expand, ok := expandName[cref.Name]; ok {
-                       cref.Name = expand;
+                       cref.Name = expand
                }
        }
 
@@ -79,7 +79,7 @@ func main() {
                        *cref.Expr = cref.Type.Go;
                case "expr":
                        if cref.TypeName {
-                               error((*cref.Expr).Pos(), "type C.%s used as expression", cref.Name);
+                               error((*cref.Expr).Pos(), "type C.%s used as expression", cref.Name)
                        }
                        // Reference to C variable.
                        // We declare a pointer and arrange to have it filled in.
@@ -87,13 +87,13 @@ func main() {
                        p.Vardef[cref.Name] = cref.Type;
                case "type":
                        if !cref.TypeName {
-                               error((*cref.Expr).Pos(), "expression C.%s used as type", cref.Name);
+                               error((*cref.Expr).Pos(), "expression C.%s used as type", cref.Name)
                        }
                        *cref.Expr = cref.Type.Go;
                }
        }
        if nerrors > 0 {
-               os.Exit(2);
+               os.Exit(2)
        }
 
        p.PackagePath = p.Package;
index 2ae56fc2898cdcf69300b9e0418aa73b4a54b073..2a62233b7a06e20ee9de42edf1b20b3aeced9483 100644 (file)
@@ -15,7 +15,7 @@ import (
 func creat(name string) *os.File {
        f, err := os.Open(name, os.O_WRONLY | os.O_CREAT | os.O_TRUNC, 0666);
        if err != nil {
-               fatal("%s", err);
+               fatal("%s", err)
        }
        return f;
 }
@@ -27,7 +27,7 @@ func (p *Prog) writeOutput(srcfile string) {
 
        base := srcfile;
        if strings.HasSuffix(base, ".go") {
-               base = base[0 : len(base)-3];
+               base = base[0 : len(base)-3]
        }
        fgo1 := creat(base + ".cgo1.go");
        fgo2 := creat(base + ".cgo2.go");
@@ -80,7 +80,7 @@ func (p *Prog) writeOutput(srcfile string) {
 
                if name == "CString" || name == "GoString" {
                        // The builtins are already defined in the C prolog.
-                       continue;
+                       continue
                }
 
                // Construct a gcc struct matching the 6c argument frame.
@@ -150,12 +150,12 @@ func (p *Prog) writeOutput(srcfile string) {
                fmt.Fprintf(fgcc, "\t%s *a = v;\n", structType);
                fmt.Fprintf(fgcc, "\t");
                if def.Result != nil {
-                       fmt.Fprintf(fgcc, "a->r = ");
+                       fmt.Fprintf(fgcc, "a->r = ")
                }
                fmt.Fprintf(fgcc, "%s(", name);
                for i := range def.Params {
                        if i > 0 {
-                               fmt.Fprintf(fgcc, ", ");
+                               fmt.Fprintf(fgcc, ", ")
                        }
                        fmt.Fprintf(fgcc, "a->p%d", i);
                }
index a2a013180b5d0b62c191f45a0f6670087a983af0..d91516eb9d51d24156e24f3e7a8f4cc3e8c5e62f 100644 (file)
@@ -18,7 +18,7 @@ type ByteReaderAt []byte
 
 func (r ByteReaderAt) ReadAt(p []byte, off int64) (n int, err os.Error) {
        if off >= int64(len(r)) || off < 0 {
-               return 0, os.EOF;
+               return 0, os.EOF
        }
        return bytes.Copy(p, r[off:len(r)]), nil;
 }
@@ -29,23 +29,23 @@ func (r ByteReaderAt) ReadAt(p []byte, off int64) (n int, err os.Error) {
 func run(stdin []byte, argv []string) (stdout, stderr []byte, ok bool) {
        cmd, err := exec.LookPath(argv[0]);
        if err != nil {
-               fatal("exec %s: %s", argv[0], err);
+               fatal("exec %s: %s", argv[0], err)
        }
        r0, w0, err := os.Pipe();
        if err != nil {
-               fatal("%s", err);
+               fatal("%s", err)
        }
        r1, w1, err := os.Pipe();
        if err != nil {
-               fatal("%s", err);
+               fatal("%s", err)
        }
        r2, w2, err := os.Pipe();
        if err != nil {
-               fatal("%s", err);
+               fatal("%s", err)
        }
        pid, err := os.ForkExec(cmd, argv, os.Environ(), "", []*os.File{r0, w1, w2});
        if err != nil {
-               fatal("%s", err);
+               fatal("%s", err)
        }
        r0.Close();
        w1.Close();
@@ -70,7 +70,7 @@ func run(stdin []byte, argv []string) (stdout, stderr []byte, ok bool) {
 
        w, err := os.Wait(pid, 0);
        if err != nil {
-               fatal("%s", err);
+               fatal("%s", err)
        }
        ok = w.Exited() && w.ExitStatus() == 0;
        return;
@@ -88,7 +88,7 @@ var noPos token.Position
 func error(pos token.Position, msg string, args ...) {
        nerrors++;
        if pos.IsValid() {
-               fmt.Fprintf(os.Stderr, "%s: ", pos);
+               fmt.Fprintf(os.Stderr, "%s: ", pos)
        }
        fmt.Fprintf(os.Stderr, msg, args);
        fmt.Fprintf(os.Stderr, "\n");
index 57fb87ea93f87f0d7078ffe04d1f06678631257c..e013dd03000eb7444e8303de14a794395793d12b 100644 (file)
@@ -41,7 +41,7 @@ func extractEBNF(src []byte) []byte {
                // i = beginning of EBNF text
                i := bytes.Index(src, open);
                if i < 0 {
-                       break;  // no EBNF found - we are done
+                       break   // no EBNF found - we are done
                }
                i += len(open);
 
@@ -49,14 +49,14 @@ func extractEBNF(src []byte) []byte {
                // to maintain correct line numbers in error messages
                for _, ch := range src[0:i] {
                        if ch == '\n' {
-                               buf.WriteByte('\n');
+                               buf.WriteByte('\n')
                        }
                }
 
                // j = end of EBNF text (or end of source)
                j := bytes.Index(src[i:len(src)], close);       // close marker
                if j < 0 {
-                       j = len(src)-i;
+                       j = len(src)-i
                }
                j += i;
 
@@ -77,28 +77,28 @@ func main() {
        var filename string;
        switch flag.NArg() {
        case 0:
-               filename = "/dev/stdin";
+               filename = "/dev/stdin"
        case 1:
-               filename = flag.Arg(0);
+               filename = flag.Arg(0)
        default:
-               usage();
+               usage()
        }
 
        src, err := io.ReadFile(filename);
        if err != nil {
-               scanner.PrintError(os.Stderr, err);
+               scanner.PrintError(os.Stderr, err)
        }
 
        if path.Ext(filename) == ".html" {
-               src = extractEBNF(src);
+               src = extractEBNF(src)
        }
 
        grammar, err := ebnf.Parse(filename, src);
        if err != nil {
-               scanner.PrintError(os.Stderr, err);
+               scanner.PrintError(os.Stderr, err)
        }
 
        if err = ebnf.Verify(grammar, *start); err != nil {
-               scanner.PrintError(os.Stderr, err);
+               scanner.PrintError(os.Stderr, err)
        }
 }
index 91e21ea463e6bfff36cb1a5a58f12ea6df602861..10c280e29649c3aa625939d91176ea5da4bbc2c0 100644 (file)
@@ -67,7 +67,7 @@ func (dt *delayTime) backoff(max int) {
        dt.mutex.Lock();
        v := dt.value.(int) * 2;
        if v > max {
-               v = max;
+               v = max
        }
        dt.value = v;
        dt.mutex.Unlock();
@@ -94,7 +94,7 @@ var fsTree RWValue    // *Directory tree of packages, updated with each sync
 func init() {
        goroot = os.Getenv("GOROOT");
        if goroot == "" {
-               goroot = pathutil.Join(os.Getenv("HOME"), "go");
+               goroot = pathutil.Join(os.Getenv("HOME"), "go")
        }
        flag.StringVar(&goroot, "goroot", goroot, "Go root directory");
 }
@@ -106,25 +106,25 @@ func init() {
 func isGoFile(dir *os.Dir) bool {
        return dir.IsRegular() &&
                !strings.HasPrefix(dir.Name, ".") &&    // ignore .files
-               pathutil.Ext(dir.Name) == ".go";
+               pathutil.Ext(dir.Name) == ".go"
 }
 
 
 func isPkgFile(dir *os.Dir) bool {
        return isGoFile(dir) &&
-               !strings.HasSuffix(dir.Name, "_test.go");       // ignore test files
+               !strings.HasSuffix(dir.Name, "_test.go")        // ignore test files
 }
 
 
 func isPkgDir(dir *os.Dir) bool {
-       return dir.IsDirectory() && len(dir.Name) > 0 && dir.Name[0] != '_';
+       return dir.IsDirectory() && len(dir.Name) > 0 && dir.Name[0] != '_'
 }
 
 
 func pkgName(filename string) string {
        file, err := parse(filename, parser.PackageClauseOnly);
        if err != nil || file == nil {
-               return "";
+               return ""
        }
        return file.Name.Value;
 }
@@ -145,11 +145,11 @@ func firstSentence(s string) string {
                k1 := k+1;
                if ch == '.' {
                        if i < 0 {
-                               i = k1; // first period
+                               i = k1  // first period
                        }
                        if k1 < len(s) && s[k1] <= ' ' {
                                if j < 0 {
-                                       j = k1; // first period followed by white space
+                                       j = k1  // first period followed by white space
                                }
                                if !unicode.IsUpper(prev) {
                                        j = k1;
@@ -165,7 +165,7 @@ func firstSentence(s string) string {
                j = i;
                if j < 0 {
                        // no period at all, use the entire string
-                       j = len(s);
+                       j = len(s)
                }
        }
 
@@ -190,7 +190,7 @@ func newDirTree(path, name string, depth, maxDepth int) *Directory {
                // return a dummy directory so that the parent directory
                // doesn't get discarded just because we reached the max
                // directory depth
-               return &Directory{depth, path, name, "", nil};
+               return &Directory{depth, path, name, "", nil}
        }
 
        list, _ := io.ReadDir(path);    // ignore errors
@@ -202,7 +202,7 @@ func newDirTree(path, name string, depth, maxDepth int) *Directory {
        for _, d := range list {
                switch {
                case isPkgDir(d):
-                       ndirs++;
+                       ndirs++
                case isPkgFile(d):
                        nfiles++;
                        if text == "" {
@@ -218,7 +218,7 @@ func newDirTree(path, name string, depth, maxDepth int) *Directory {
                                        (file.Name.Value == name || file.Name.Value == fakePkgName) &&
                                        file.Doc != nil {
                                        // found documentation; extract a synopsys
-                                       text = firstSentence(doc.CommentText(file.Doc));
+                                       text = firstSentence(doc.CommentText(file.Doc))
                                }
                        }
                }
@@ -244,7 +244,7 @@ func newDirTree(path, name string, depth, maxDepth int) *Directory {
        // if there are no package files and no subdirectories
        // (with package files), ignore the directory
        if nfiles == 0 && len(dirs) == 0 {
-               return nil;
+               return nil
        }
 
        return &Directory{depth, path, name, text, dirs};
@@ -259,7 +259,7 @@ func newDirTree(path, name string, depth, maxDepth int) *Directory {
 func newDirectory(root string, maxDepth int) *Directory {
        d, err := os.Lstat(root);
        if err != nil || !isPkgDir(d) {
-               return nil;
+               return nil
        }
        return newDirTree(root, d.Name, 0, maxDepth);
 }
@@ -268,10 +268,10 @@ func newDirectory(root string, maxDepth int) *Directory {
 func (dir *Directory) walk(c chan<- *Directory, skipRoot bool) {
        if dir != nil {
                if !skipRoot {
-                       c <- dir;
+                       c <- dir
                }
                for _, d := range dir.Dirs {
-                       d.walk(c, false);
+                       d.walk(c, false)
                }
        }
 }
@@ -292,7 +292,7 @@ func (dir *Directory) lookup(path string) *Directory {
        path = pathutil.Clean(path);    // no trailing '/'
 
        if dir == nil || path == "" || path == "." {
-               return dir;
+               return dir
        }
 
        dpath, dname := pathutil.Split(path);
@@ -300,7 +300,7 @@ func (dir *Directory) lookup(path string) *Directory {
                // directory-local name
                for _, d := range dir.Dirs {
                        if dname == d.Name {
-                               return d;
+                               return d
                        }
                }
                return nil;
@@ -333,7 +333,7 @@ type DirList struct {
 //
 func (root *Directory) listing(skipRoot bool) *DirList {
        if root == nil {
-               return nil;
+               return nil
        }
 
        // determine number of entries n and maximum height
@@ -343,16 +343,16 @@ func (root *Directory) listing(skipRoot bool) *DirList {
        for d := range root.iter(skipRoot) {
                n++;
                if minDepth > d.Depth {
-                       minDepth = d.Depth;
+                       minDepth = d.Depth
                }
                if maxDepth < d.Depth {
-                       maxDepth = d.Depth;
+                       maxDepth = d.Depth
                }
        }
        maxHeight := maxDepth-minDepth+1;
 
        if n == 0 {
-               return nil;
+               return nil
        }
 
        // create list
@@ -367,11 +367,11 @@ func (root *Directory) listing(skipRoot bool) *DirList {
                // crashes and check)
                path := d.Path;
                if strings.HasPrefix(d.Path, root.Path) {
-                       path = d.Path[len(root.Path):len(d.Path)];
+                       path = d.Path[len(root.Path):len(d.Path)]
                }
                // remove trailing '/' if any - path must be relative
                if len(path) > 0 && path[0] == '/' {
-                       path = path[1:len(path)];
+                       path = path[1:len(path)]
                }
                p.Path = path;
                p.Name = d.Name;
@@ -502,7 +502,7 @@ func (s *Styler) BasicLit(x *ast.BasicLit) (text []byte, tag printer.HTMLTag) {
 func (s *Styler) Ident(id *ast.Ident) (text []byte, tag printer.HTMLTag) {
        text = strings.Bytes(id.Value);
        if s.highlight == id.Value {
-               tag = printer.HTMLTag{"<span class=highlight>", "</span>"};
+               tag = printer.HTMLTag{"<span class=highlight>", "</span>"}
        }
        return;
 }
@@ -521,7 +521,7 @@ func (s *Styler) Token(tok token.Token) (text []byte, tag printer.HTMLTag) {
 func writeNode(w io.Writer, node interface{}, html bool, styler printer.Styler) {
        mode := printer.UseSpaces;
        if html {
-               mode |= printer.GenHTML;
+               mode |= printer.GenHTML
        }
        (&printer.Config{mode, *tabwidth, styler}).Fprint(w, node);
 }
@@ -541,20 +541,20 @@ func writeText(w io.Writer, text []byte, html bool) {
 func writeAny(w io.Writer, x interface{}, html bool) {
        switch v := x.(type) {
        case []byte:
-               writeText(w, v, html);
+               writeText(w, v, html)
        case string:
-               writeText(w, strings.Bytes(v), html);
+               writeText(w, strings.Bytes(v), html)
        case ast.Decl:
-               writeNode(w, v, html, &defaultStyler);
+               writeNode(w, v, html, &defaultStyler)
        case ast.Expr:
-               writeNode(w, v, html, &defaultStyler);
+               writeNode(w, v, html, &defaultStyler)
        default:
                if html {
                        var buf bytes.Buffer;
                        fmt.Fprint(&buf, x);
                        writeText(w, buf.Bytes(), true);
                } else {
-                       fmt.Fprint(w, x);
+                       fmt.Fprint(w, x)
                }
        }
 }
@@ -562,7 +562,7 @@ func writeAny(w io.Writer, x interface{}, html bool) {
 
 // Template formatter for "html" format.
 func htmlFmt(w io.Writer, x interface{}, format string) {
-       writeAny(w, x, true);
+       writeAny(w, x, true)
 }
 
 
@@ -576,13 +576,13 @@ func htmlCommentFmt(w io.Writer, x interface{}, format string) {
 
 // Template formatter for "" (default) format.
 func textFmt(w io.Writer, x interface{}, format string) {
-       writeAny(w, x, false);
+       writeAny(w, x, false)
 }
 
 
 func removePrefix(s, prefix string) string {
        if strings.HasPrefix(s, prefix) {
-               return s[len(prefix):len(s)];
+               return s[len(prefix):len(s)]
        }
        return s;
 }
@@ -593,7 +593,7 @@ func pathFmt(w io.Writer, x interface{}, format string) {
        // TODO(gri): Need to find a better solution for this.
        //            This will not work correctly if *cmdroot
        //            or *pkgroot change.
-       writeAny(w, removePrefix(x.(string), "src"), true);
+       writeAny(w, removePrefix(x.(string), "src"), true)
 }
 
 
@@ -607,7 +607,7 @@ func linkFmt(w io.Writer, x interface{}, format string) {
                if pos.IsValid() {
                        // line id's in html-printed source are of the
                        // form "L%d" where %d stands for the line number
-                       fmt.Fprintf(w, "/%s#L%d", htmlEscape(pos.Filename), pos.Line);
+                       fmt.Fprintf(w, "/%s#L%d", htmlEscape(pos.Filename), pos.Line)
                }
        }
 }
@@ -628,7 +628,7 @@ var infoKinds = [nKinds]string{
 
 // Template formatter for "infoKind" format.
 func infoKindFmt(w io.Writer, x interface{}, format string) {
-       fmt.Fprintf(w, infoKinds[x.(SpotKind)]);        // infoKind entries are html-escaped
+       fmt.Fprintf(w, infoKinds[x.(SpotKind)]) // infoKind entries are html-escaped
 }
 
 
@@ -661,7 +661,7 @@ func infoSnippetFmt(w io.Writer, x interface{}, format string) {
 // Template formatter for "padding" format.
 func paddingFmt(w io.Writer, x interface{}, format string) {
        for i := x.(int); i > 0; i-- {
-               fmt.Fprint(w, `<td width="25"></td>`);
+               fmt.Fprint(w, `<td width="25"></td>`)
        }
 }
 
@@ -669,7 +669,7 @@ func paddingFmt(w io.Writer, x interface{}, format string) {
 // Template formatter for "time" format.
 func timeFmt(w io.Writer, x interface{}, format string) {
        // note: os.Dir.Mtime_ns is in uint64 in ns!
-       template.HTMLEscape(w, strings.Bytes(time.SecondsToLocalTime(int64(x.(uint64) / 1e9)).String()));
+       template.HTMLEscape(w, strings.Bytes(time.SecondsToLocalTime(int64(x.(uint64) / 1e9)).String()))
 }
 
 
@@ -691,11 +691,11 @@ func readTemplate(name string) *template.Template {
        path := pathutil.Join(*tmplroot, name);
        data, err := io.ReadFile(path);
        if err != nil {
-               log.Exitf("ReadFile %s: %v", path, err);
+               log.Exitf("ReadFile %s: %v", path, err)
        }
        t, err := template.Parse(string(data), fmap);
        if err != nil {
-               log.Exitf("%s: %v", name, err);
+               log.Exitf("%s: %v", name, err)
        }
        return t;
 }
@@ -744,7 +744,7 @@ func servePage(c *http.Conn, title, query string, content []byte) {
        };
 
        if err := godocHTML.Execute(&d, c); err != nil {
-               log.Stderrf("godocHTML.Execute: %s", err);
+               log.Stderrf("godocHTML.Execute: %s", err)
        }
 }
 
@@ -768,7 +768,7 @@ func commentText(src []byte) (text string) {
        i := bytes.Index(src, tagBegin);
        j := bytes.Index(src, tagEnd);
        if i >= 0 && j >= i+len(tagBegin) {
-               text = string(bytes.TrimSpace(src[i+len(tagBegin) : j]));
+               text = string(bytes.TrimSpace(src[i+len(tagBegin) : j]))
        }
        return;
 }
@@ -799,7 +799,7 @@ func serveParseErrors(c *http.Conn, errors *parseErrors) {
        // format errors
        var buf bytes.Buffer;
        if err := parseerrorHTML.Execute(errors, &buf); err != nil {
-               log.Stderrf("parseerrorHTML.Execute: %s", err);
+               log.Stderrf("parseerrorHTML.Execute: %s", err)
        }
        servePage(c, "Parse errors in source file " + errors.filename, "", buf.Bytes());
 }
@@ -842,7 +842,7 @@ var textExt = map[string]bool{
 func isTextFile(path string) bool {
        // if the extension is known, use it for decision making
        if isText, found := textExt[pathutil.Ext(path)]; found {
-               return isText;
+               return isText
        }
 
        // the extension is not known; read an initial chunk of
@@ -850,24 +850,24 @@ func isTextFile(path string) bool {
        // does, it's probably a text file
        f, err := os.Open(path, os.O_RDONLY, 0);
        if err != nil {
-               return false;
+               return false
        }
 
        var buf [1024]byte;
        n, err := f.Read(&buf);
        if err != nil {
-               return false;
+               return false
        }
 
        s := string(buf[0:n]);
        n -= utf8.UTFMax;       // make sure there's enough bytes for a complete unicode char
        for i, c := range s {
                if i > n {
-                       break;
+                       break
                }
                if c == 0xFFFD || c < ' ' && c != '\n' && c != '\t' {
                        // decoding error or control character - not a text file
-                       return false;
+                       return false
                }
        }
 
@@ -879,7 +879,7 @@ func isTextFile(path string) bool {
 func serveTextFile(c *http.Conn, r *http.Request, path string) {
        src, err := io.ReadFile(path);
        if err != nil {
-               log.Stderrf("serveTextFile: %s", err);
+               log.Stderrf("serveTextFile: %s", err)
        }
 
        var buf bytes.Buffer;
@@ -893,7 +893,7 @@ func serveTextFile(c *http.Conn, r *http.Request, path string) {
 
 func serveDirectory(c *http.Conn, r *http.Request, path string) {
        if redirect(c, r) {
-               return;
+               return
        }
 
        list, err := io.ReadDir(path);
@@ -904,7 +904,7 @@ func serveDirectory(c *http.Conn, r *http.Request, path string) {
 
        var buf bytes.Buffer;
        if err := dirlistHTML.Execute(list, &buf); err != nil {
-               log.Stderrf("dirlistHTML.Execute: %s", err);
+               log.Stderrf("dirlistHTML.Execute: %s", err)
        }
 
        servePage(c, "Directory " + path, "", buf.Bytes());
@@ -1009,7 +1009,7 @@ func (h *httpHandler) getPageInfo(path string) PageInfo {
        pkg, err := parser.ParsePackage(dirname, filter, parser.ParseComments);
        if err != nil {
                // TODO: parse errors should be shown instead of an empty directory
-               log.Stderrf("parser.parsePackage: %s", err);
+               log.Stderrf("parser.parsePackage: %s", err)
        }
 
        // compute package documentation
@@ -1025,11 +1025,11 @@ func (h *httpHandler) getPageInfo(path string) PageInfo {
                // directory tree is present; lookup respective directory
                // (may still fail if the file system was updated and the
                // new directory tree has not yet beet computed)
-               dir = tree.(*Directory).lookup(dirname);
+               dir = tree.(*Directory).lookup(dirname)
        } else {
                // no directory tree present (either early after startup
                // or command-line mode); compute one level for this page
-               dir = newDirectory(dirname, 1);
+               dir = newDirectory(dirname, 1)
        }
 
        return PageInfo{pdoc, dir.listing(true), h.isPkg};
@@ -1038,7 +1038,7 @@ func (h *httpHandler) getPageInfo(path string) PageInfo {
 
 func (h *httpHandler) ServeHTTP(c *http.Conn, r *http.Request) {
        if redirect(c, r) {
-               return;
+               return
        }
 
        path := r.URL.Path;
@@ -1048,30 +1048,30 @@ func (h *httpHandler) ServeHTTP(c *http.Conn, r *http.Request) {
        var buf bytes.Buffer;
        if r.FormValue("f") == "text" {
                if err := packageText.Execute(info, &buf); err != nil {
-                       log.Stderrf("packageText.Execute: %s", err);
+                       log.Stderrf("packageText.Execute: %s", err)
                }
                serveText(c, buf.Bytes());
                return;
        }
 
        if err := packageHTML.Execute(info, &buf); err != nil {
-               log.Stderrf("packageHTML.Execute: %s", err);
+               log.Stderrf("packageHTML.Execute: %s", err)
        }
 
        if path == "" {
-               path = ".";     // don't display an empty path
+               path = "."      // don't display an empty path
        }
        title := "Directory " + path;
        if info.PDoc != nil {
                switch {
                case h.isPkg:
-                       title = "Package " + info.PDoc.PackageName;
+                       title = "Package " + info.PDoc.PackageName
                case info.PDoc.PackageName == fakePkgName:
                        // assume that the directory name is the command name
                        _, pkgname := pathutil.Split(pathutil.Clean(path));
                        title = "Command " + pkgname;
                default:
-                       title = "Command " + info.PDoc.PackageName;
+                       title = "Command " + info.PDoc.PackageName
                }
        }
 
@@ -1105,14 +1105,14 @@ func search(c *http.Conn, r *http.Request) {
 
        var buf bytes.Buffer;
        if err := searchHTML.Execute(result, &buf); err != nil {
-               log.Stderrf("searchHTML.Execute: %s", err);
+               log.Stderrf("searchHTML.Execute: %s", err)
        }
 
        var title string;
        if result.Hit != nil {
-               title = fmt.Sprintf(`Results for query %q`, query);
+               title = fmt.Sprintf(`Results for query %q`, query)
        } else {
-               title = fmt.Sprintf(`No results found for query %q`, query);
+               title = fmt.Sprintf(`No results found for query %q`, query)
        }
 
        servePage(c, title, query, buf.Bytes());
index 223019cf87fa76d2d23821ccae0622753f619793..cd246bd2fc169915d07f2c7877d0779d609a6675 100644 (file)
@@ -77,7 +77,7 @@ func (h *RunList) reduce(less func(x, y interface{}) bool, newRun func(h *RunLis
        }
        // add final run, if any
        if i < h.Len() {
-               hh.Push(newRun(h, i, h.Len()));
+               hh.Push(newRun(h, i, h.Len()))
        }
 
        return &hh;
@@ -119,7 +119,7 @@ func init() {
        // sanity check: if nKinds is too large, the SpotInfo
        // accessor functions may need to be updated
        if nKinds > 8 {
-               panic();
+               panic()
        }
 }
 
@@ -132,13 +132,13 @@ func makeSpotInfo(kind SpotKind, lori int, isIndex bool) SpotInfo {
                // lori value doesn't fit - since snippet indices are
                // most certainly always smaller then 1<<28, this can
                // only happen for line numbers; give it no line number (= 0)
-               x = 0;
+               x = 0
        }
        // encode kind: bits [1..4)
        x |= SpotInfo(kind)<<1;
        // encode isIndex: bit 0
        if isIndex {
-               x |= 1;
+               x |= 1
        }
        return x;
 }
@@ -220,7 +220,7 @@ type Pak struct {
 
 // Paks are sorted by name (primary key) and by import path (secondary key).
 func (p *Pak) less(q *Pak) bool {
-       return p.Name < q.Name || p.Name == q.Name && p.Path < q.Path;
+       return p.Name < q.Name || p.Name == q.Name && p.Path < q.Path
 }
 
 
@@ -266,7 +266,7 @@ func newFileRun(h0 *RunList, i, j int) interface{} {
        // create the FileRun
        groups := make([]*KindRun, h2.Len());
        for i := 0; i < h2.Len(); i++ {
-               groups[i] = h2.At(i).(*KindRun);
+               groups[i] = h2.At(i).(*KindRun)
        }
        return &FileRun{file, groups};
 }
@@ -289,7 +289,7 @@ func (p *PakRun) Swap(i, j int)             { p.Files[i], p.Files[j] = p.Files[j], p.Files[
 
 // FileRuns are sorted by package for the reduction into PakRuns.
 func lessFileRun(x, y interface{}) bool {
-       return x.(*FileRun).File.Pak.less(&y.(*FileRun).File.Pak);
+       return x.(*FileRun).File.Pak.less(&y.(*FileRun).File.Pak)
 }
 
 
@@ -329,7 +329,7 @@ func reduce(h0 *RunList) HitList {
        // create a HitList
        h := make(HitList, h2.Len());
        for i := 0; i < h2.Len(); i++ {
-               h[i] = h2.At(i).(*PakRun);
+               h[i] = h2.At(i).(*PakRun)
        }
        return h;
 }
@@ -340,7 +340,7 @@ func (h HitList) filter(pakname string) HitList {
        n := 0;
        for _, p := range h {
                if p.Pak.Name == pakname {
-                       n++;
+                       n++
                }
        }
        // create filtered HitList
@@ -393,7 +393,7 @@ func newAltWords(h *RunList, i, j int) interface{} {
 func (a *AltWords) filter(s string) *AltWords {
        if len(a.Alts) == 1 && a.Alts[0] == s {
                // there are no different alternatives
-               return nil;
+               return nil
        }
 
        // make a new AltWords with the current spelling removed
@@ -445,7 +445,7 @@ func (x *Indexer) addSnippet(s *Snippet) int {
 
 func (x *Indexer) visitComment(c *ast.CommentGroup) {
        if c != nil {
-               ast.Walk(x, c);
+               ast.Walk(x, c)
        }
 }
 
@@ -480,7 +480,7 @@ func (x *Indexer) visitSpec(spec ast.Spec, isVarDecl bool) {
                x.visitComment(n.Doc);
                x.visitIdent(ImportDecl, n.Name);
                for _, s := range n.Path {
-                       ast.Walk(x, s);
+                       ast.Walk(x, s)
                }
                x.visitComment(n.Comment);
 
@@ -488,14 +488,14 @@ func (x *Indexer) visitSpec(spec ast.Spec, isVarDecl bool) {
                x.visitComment(n.Doc);
                kind := ConstDecl;
                if isVarDecl {
-                       kind = VarDecl;
+                       kind = VarDecl
                }
                for _, n := range n.Names {
-                       x.visitIdent(kind, n);
+                       x.visitIdent(kind, n)
                }
                ast.Walk(x, n.Type);
                for _, v := range n.Values {
-                       ast.Walk(x, v);
+                       ast.Walk(x, v)
                }
                x.visitComment(n.Comment);
 
@@ -512,17 +512,17 @@ func (x *Indexer) Visit(node interface{}) bool {
        // TODO(gri): methods in interface types are categorized as VarDecl
        switch n := node.(type) {
        case *ast.Ident:
-               x.visitIdent(Use, n);
+               x.visitIdent(Use, n)
 
        case *ast.Field:
                x.decl = nil;   // no snippets for fields
                x.visitComment(n.Doc);
                for _, m := range n.Names {
-                       x.visitIdent(VarDecl, m);
+                       x.visitIdent(VarDecl, m)
                }
                ast.Walk(x, n.Type);
                for _, s := range n.Tag {
-                       ast.Walk(x, s);
+                       ast.Walk(x, s)
                }
                x.visitComment(n.Comment);
 
@@ -532,18 +532,18 @@ func (x *Indexer) Visit(node interface{}) bool {
                        x.decl = nil;   // no snippets for local declarations
                        x.visitComment(decl.Doc);
                        for _, s := range decl.Specs {
-                               x.visitSpec(s, decl.Tok == token.VAR);
+                               x.visitSpec(s, decl.Tok == token.VAR)
                        }
                } else {
                        // handle error case gracefully
-                       ast.Walk(x, n.Decl);
+                       ast.Walk(x, n.Decl)
                }
 
        case *ast.GenDecl:
                x.decl = n;
                x.visitComment(n.Doc);
                for _, s := range n.Specs {
-                       x.visitSpec(s, n.Tok == token.VAR);
+                       x.visitSpec(s, n.Tok == token.VAR)
                }
 
        case *ast.FuncDecl:
@@ -557,7 +557,7 @@ func (x *Indexer) Visit(node interface{}) bool {
                x.visitIdent(kind, n.Name);
                ast.Walk(x, n.Type);
                if n.Body != nil {
-                       ast.Walk(x, n.Type);
+                       ast.Walk(x, n.Type)
                }
 
        case *ast.File:
@@ -565,14 +565,14 @@ func (x *Indexer) Visit(node interface{}) bool {
                x.decl = nil;
                x.visitIdent(PackageClause, n.Name);
                for _, d := range n.Decls {
-                       ast.Walk(x, d);
+                       ast.Walk(x, d)
                }
                // don't visit package level comments for now
                // to avoid duplicate visiting from individual
                // nodes
 
        default:
-               return true;
+               return true
        }
 
        return false;
@@ -580,26 +580,26 @@ func (x *Indexer) Visit(node interface{}) bool {
 
 
 func (x *Indexer) VisitDir(path string, d *os.Dir) bool {
-       return true;
+       return true
 }
 
 
 func (x *Indexer) VisitFile(path string, d *os.Dir) {
        if !isGoFile(d) {
-               return;
+               return
        }
 
        if excludeTestFiles && (!isPkgFile(d) || strings.HasPrefix(path, "test/")) {
-               return;
+               return
        }
 
        if excludeMainPackages && pkgName(path) == "main" {
-               return;
+               return
        }
 
        file, err := parser.ParseFile(path, nil, parser.ParseComments);
        if err != nil {
-               return; // ignore files with (parse) errors
+               return  // ignore files with (parse) errors
        }
 
        dir, _ := pathutil.Split(path);
@@ -668,7 +668,7 @@ func NewIndex(root string) *Index {
        // convert snippet vector into a list
        snippets := make([]*Snippet, x.snippets.Len());
        for i := 0; i < x.snippets.Len(); i++ {
-               snippets[i] = x.snippets.At(i).(*Snippet);
+               snippets[i] = x.snippets.At(i).(*Snippet)
        }
 
        return &Index{words, alts, snippets, x.nspots};
@@ -678,7 +678,7 @@ func NewIndex(root string) *Index {
 // Size returns the number of different words and
 // spots indexed as a measure for the index size.
 func (x *Index) Size() (nwords int, nspots int) {
-       return len(x.words), x.nspots;
+       return len(x.words), x.nspots
 }
 
 
@@ -689,7 +689,7 @@ func (x *Index) LookupWord(w string) (match *LookupResult, alt *AltWords) {
        // (if there is no match, the alternatives do
        // not contain the current spelling)
        if match != nil && alt != nil {
-               alt = alt.filter(w);
+               alt = alt.filter(w)
        }
        return;
 }
@@ -722,7 +722,7 @@ func (x *Index) Lookup(query string) (match *LookupResult, alt *AltWords, illega
 
        switch len(ss) {
        case 1:
-               match, alt = x.LookupWord(ss[0]);
+               match, alt = x.LookupWord(ss[0])
 
        case 2:
                pakname := ss[0];
@@ -735,7 +735,7 @@ func (x *Index) Lookup(query string) (match *LookupResult, alt *AltWords, illega
                }
 
        default:
-               illegal = true;
+               illegal = true
        }
 
        return;
@@ -745,7 +745,7 @@ func (x *Index) Lookup(query string) (match *LookupResult, alt *AltWords, illega
 func (x *Index) Snippet(i int) *Snippet {
        // handle illegal snippet indices gracefully
        if 0 <= i && i < len(x.snippets) {
-               return x.snippets[i];
+               return x.snippets[i]
        }
        return nil;
 }
index 83a05a12f618527669095455699a85579e076c52..ee4f1965070194694dc9b1fa447b95ebf7399be7 100644 (file)
@@ -60,7 +60,7 @@ func exec(c *http.Conn, args []string) (status int) {
        bin := args[0];
        fds := []*os.File{nil, w, w};
        if *verbose {
-               log.Stderrf("executing %v", args);
+               log.Stderrf("executing %v", args)
        }
        pid, err := os.ForkExec(bin, args, os.Environ(), goroot, fds);
        defer r.Close();
@@ -86,7 +86,7 @@ func exec(c *http.Conn, args []string) (status int) {
        }
 
        if *verbose {
-               os.Stderr.Write(buf.Bytes());
+               os.Stderr.Write(buf.Bytes())
        }
        if c != nil {
                c.SetHeader("content-type", "text/plain; charset=utf-8");
@@ -114,10 +114,10 @@ func dosync(c *http.Conn, r *http.Request) {
        case 1:
                // sync failed because no files changed;
                // don't change the package tree
-               syncDelay.set(*syncMin);        //  revert to regular sync schedule
+               syncDelay.set(*syncMin) //  revert to regular sync schedule
        default:
                // sync failed because of an error - back off exponentially, but try at least once a day
-               syncDelay.backoff(24*60);
+               syncDelay.backoff(24*60)
        }
 }
 
@@ -135,7 +135,7 @@ func loggingHandler(h http.Handler) http.Handler {
        return http.HandlerFunc(func(c *http.Conn, req *http.Request) {
                log.Stderrf("%s\t%s", c.RemoteAddr, req.URL);
                h.ServeHTTP(c, req);
-       });
+       })
 }
 
 
@@ -145,15 +145,15 @@ func main() {
 
        // Check usage: either server and no args, or command line and args
        if (*httpaddr != "") != (flag.NArg() == 0) {
-               usage();
+               usage()
        }
 
        if *tabwidth < 0 {
-               log.Exitf("negative tabwidth %d", *tabwidth);
+               log.Exitf("negative tabwidth %d", *tabwidth)
        }
 
        if err := os.Chdir(goroot); err != nil {
-               log.Exitf("chdir %s: %v", goroot, err);
+               log.Exitf("chdir %s: %v", goroot, err)
        }
 
        readTemplates();
@@ -174,7 +174,7 @@ func main() {
 
                registerPublicHandlers(http.DefaultServeMux);
                if *syncCmd != "" {
-                       http.Handle("/debug/sync", http.HandlerFunc(dosync));
+                       http.Handle("/debug/sync", http.HandlerFunc(dosync))
                }
 
                // Initialize directory tree with corresponding timestamp.
@@ -192,7 +192,7 @@ func main() {
                                        dosync(nil, nil);
                                        delay, _ := syncDelay.get();
                                        if *verbose {
-                                               log.Stderrf("next sync in %dmin", delay.(int));
+                                               log.Stderrf("next sync in %dmin", delay.(int))
                                        }
                                        time.Sleep(int64(delay.(int))*60e9);
                                }
@@ -210,7 +210,7 @@ func main() {
 
                // Start http server.
                if err := http.ListenAndServe(*httpaddr, handler); err != nil {
-                       log.Exitf("ListenAndServe %s: %v", *httpaddr, err);
+                       log.Exitf("ListenAndServe %s: %v", *httpaddr, err)
                }
                return;
        }
@@ -225,7 +225,7 @@ func main() {
 
        if info.PDoc == nil && info.Dirs == nil {
                // try again, this time assume it's a command
-               info = cmdHandler.getPageInfo(flag.Arg(0));
+               info = cmdHandler.getPageInfo(flag.Arg(0))
        }
 
        if info.PDoc != nil && flag.NArg() > 1 {
@@ -234,6 +234,6 @@ func main() {
        }
 
        if err := packageText.Execute(info, os.Stdout); err != nil {
-               log.Stderrf("packageText.Execute: %s", err);
+               log.Stderrf("packageText.Execute: %s", err)
        }
 }
index b6f64462a7a0b8ae3158ee67ffe2ec3f474feea2..be027ffc813e1ff767210cacdee34086b9c9fc4e 100755 (executable)
@@ -31,14 +31,14 @@ type snippetStyler struct {
 
 
 func (s *snippetStyler) LineTag(line int) (text []uint8, tag printer.HTMLTag) {
-       return; // no LineTag for snippets
+       return  // no LineTag for snippets
 }
 
 
 func (s *snippetStyler) Ident(id *ast.Ident) (text []byte, tag printer.HTMLTag) {
        text = strings.Bytes(id.Value);
        if s.highlight == id {
-               tag = printer.HTMLTag{"<span class=highlight>", "</span>"};
+               tag = printer.HTMLTag{"<span class=highlight>", "</span>"}
        }
        return;
 }
@@ -56,17 +56,17 @@ func findSpec(list []ast.Spec, id *ast.Ident) ast.Spec {
                switch s := spec.(type) {
                case *ast.ImportSpec:
                        if s.Name == id {
-                               return s;
+                               return s
                        }
                case *ast.ValueSpec:
                        for _, n := range s.Names {
                                if n == id {
-                                       return s;
+                                       return s
                                }
                        }
                case *ast.TypeSpec:
                        if s.Name == id {
-                               return s;
+                               return s
                        }
                }
        }
@@ -77,7 +77,7 @@ func findSpec(list []ast.Spec, id *ast.Ident) ast.Spec {
 func genSnippet(d *ast.GenDecl, id *ast.Ident) *Snippet {
        s := findSpec(d.Specs, id);
        if s == nil {
-               return nil;     //  declaration doesn't contain id - exit gracefully
+               return nil      //  declaration doesn't contain id - exit gracefully
        }
 
        // only use the spec containing the id for the snippet
@@ -89,7 +89,7 @@ func genSnippet(d *ast.GenDecl, id *ast.Ident) *Snippet {
 
 func funcSnippet(d *ast.FuncDecl, id *ast.Ident) *Snippet {
        if d.Name != id {
-               return nil;     //  declaration doesn't contain id - exit gracefully
+               return nil      //  declaration doesn't contain id - exit gracefully
        }
 
        // only use the function signature for the snippet
@@ -106,9 +106,9 @@ func funcSnippet(d *ast.FuncDecl, id *ast.Ident) *Snippet {
 func NewSnippet(decl ast.Decl, id *ast.Ident) (s *Snippet) {
        switch d := decl.(type) {
        case *ast.GenDecl:
-               s = genSnippet(d, id);
+               s = genSnippet(d, id)
        case *ast.FuncDecl:
-               s = funcSnippet(d, id);
+               s = funcSnippet(d, id)
        }
 
        // handle failure gracefully
@@ -116,7 +116,7 @@ func NewSnippet(decl ast.Decl, id *ast.Ident) (s *Snippet) {
                s = &Snippet{
                        id.Pos().Line,
                        fmt.Sprintf(`could not generate a snippet for <span class="highlight">%s</span>`, id.Value),
-               };
+               }
        }
        return;
 }
index a473fc7b44f128d387137d1cd89af29b4ce2abaa..a863a16cd33aa2116f0568d6baf436b9c3cf3531 100644 (file)
@@ -43,13 +43,13 @@ func (p *ebnfParser) next() {
        if p.tok.IsKeyword() {
                // TODO Should keyword mapping always happen outside scanner?
                //      Or should there be a flag to scanner to enable keyword mapping?
-               p.tok = token.IDENT;
+               p.tok = token.IDENT
        }
 }
 
 
 func (p *ebnfParser) Error(pos token.Position, msg string) {
-       fmt.Fprintf(p.out, `<span class="alert">error: %s</span>`, msg);
+       fmt.Fprintf(p.out, `<span class="alert">error: %s</span>`, msg)
 }
 
 
@@ -60,7 +60,7 @@ func (p *ebnfParser) errorExpected(pos token.Position, msg string) {
                // make the error message more specific
                msg += ", found '" + p.tok.String() + "'";
                if p.tok.IsLiteral() {
-                       msg += " "+string(p.lit);
+                       msg += " "+string(p.lit)
                }
        }
        p.Error(pos, msg);
@@ -70,7 +70,7 @@ func (p *ebnfParser) errorExpected(pos token.Position, msg string) {
 func (p *ebnfParser) expect(tok token.Token) token.Position {
        pos := p.pos;
        if p.tok != tok {
-               p.errorExpected(pos, "'" + tok.String() + "'");
+               p.errorExpected(pos, "'" + tok.String() + "'")
        }
        p.next();       // make progress in any case
        return pos;
@@ -81,9 +81,9 @@ func (p *ebnfParser) parseIdentifier(def bool) {
        name := string(p.lit);
        p.expect(token.IDENT);
        if def {
-               fmt.Fprintf(p.out, `<a id="%s">%s</a>`, name, name);
+               fmt.Fprintf(p.out, `<a id="%s">%s</a>`, name, name)
        } else {
-               fmt.Fprintf(p.out, `<a href="#%s" class="noline">%s</a>`, name, name);
+               fmt.Fprintf(p.out, `<a href="#%s" class="noline">%s</a>`, name, name)
        }
        p.prev += len(name);    // skip identifier when calling flush
 }
@@ -92,7 +92,7 @@ func (p *ebnfParser) parseIdentifier(def bool) {
 func (p *ebnfParser) parseTerm() bool {
        switch p.tok {
        case token.IDENT:
-               p.parseIdentifier(false);
+               p.parseIdentifier(false)
 
        case token.STRING:
                p.next();
@@ -117,7 +117,7 @@ func (p *ebnfParser) parseTerm() bool {
                p.expect(token.RBRACE);
 
        default:
-               return false;
+               return false
        }
 
        return true;
@@ -134,7 +134,7 @@ func (p *ebnfParser) parseExpression() {
        for {
                p.parseSequence();
                if p.tok != token.OR {
-                       break;
+                       break
                }
                p.next();
        }
@@ -158,7 +158,7 @@ func (p *ebnfParser) parse(out io.Writer, src []byte) {
 
        // process source
        for p.tok != token.EOF {
-               p.parseProduction();
+               p.parseProduction()
        }
        p.flush();
 }
@@ -178,14 +178,14 @@ func linkify(out io.Writer, src []byte) {
                // i: beginning of EBNF text (or end of source)
                i := bytes.Index(src, openTag);
                if i < 0 {
-                       i = n-len(openTag);
+                       i = n-len(openTag)
                }
                i += len(openTag);
 
                // j: end of EBNF text (or end of source)
                j := bytes.Index(src[i:n], closeTag);   // close marker
                if j < 0 {
-                       j = n-i;
+                       j = n-i
                }
                j += i;
 
index b554c4f1514681ebec69ed91df80c2ccec626fd1..4d2d14f521d26be73e80d713139a6acbbfdd2ba9 100644 (file)
@@ -52,10 +52,10 @@ func usage() {
 func parserMode() uint {
        mode := uint(0);
        if *comments {
-               mode |= parser.ParseComments;
+               mode |= parser.ParseComments
        }
        if *trace {
-               mode |= parser.Trace;
+               mode |= parser.Trace
        }
        return mode;
 }
@@ -64,10 +64,10 @@ func parserMode() uint {
 func printerMode() uint {
        mode := uint(0);
        if !*align {
-               mode |= printer.RawFormat;
+               mode |= printer.RawFormat
        }
        if *usespaces {
-               mode |= printer.UseSpaces;
+               mode |= printer.UseSpaces
        }
        return mode;
 }
@@ -75,42 +75,42 @@ func printerMode() uint {
 
 func isGoFile(d *os.Dir) bool {
        // ignore non-Go files
-       return d.IsRegular() && !strings.HasPrefix(d.Name, ".") && strings.HasSuffix(d.Name, ".go");
+       return d.IsRegular() && !strings.HasPrefix(d.Name, ".") && strings.HasSuffix(d.Name, ".go")
 }
 
 
 func processFile(filename string) os.Error {
        src, err := io.ReadFile(filename);
        if err != nil {
-               return err;
+               return err
        }
 
        file, err := parser.ParseFile(filename, src, parserMode());
        if err != nil {
-               return err;
+               return err
        }
 
        var res bytes.Buffer;
        _, err = (&printer.Config{printerMode(), *tabwidth, nil}).Fprint(&res, file);
        if err != nil {
-               return err;
+               return err
        }
 
        if bytes.Compare(src, res.Bytes()) != 0 {
                // formatting has changed
                if *list {
-                       fmt.Fprintln(os.Stdout, filename);
+                       fmt.Fprintln(os.Stdout, filename)
                }
                if *write {
                        err = io.WriteFile(filename, res.Bytes(), 0);
                        if err != nil {
-                               return err;
+                               return err
                        }
                }
        }
 
        if !*list && !*write {
-               _, err = os.Stdout.Write(res.Bytes());
+               _, err = os.Stdout.Write(res.Bytes())
        }
 
        return err;
@@ -120,7 +120,7 @@ func processFile(filename string) os.Error {
 type fileVisitor chan os.Error
 
 func (v fileVisitor) VisitDir(path string, d *os.Dir) bool {
-       return true;
+       return true
 }
 
 
@@ -128,7 +128,7 @@ func (v fileVisitor) VisitFile(path string, d *os.Dir) {
        if isGoFile(d) {
                v <- nil;       // synchronize error handler
                if err := processFile(path); err != nil {
-                       v <- err;
+                       v <- err
                }
        }
 }
@@ -140,7 +140,7 @@ func walkDir(path string) {
        go func() {
                for err := range v {
                        if err != nil {
-                               report(err);
+                               report(err)
                        }
                }
        }();
@@ -160,7 +160,7 @@ func main() {
 
        if flag.NArg() == 0 {
                if err := processFile("/dev/stdin"); err != nil {
-                       report(err);
+                       report(err)
                }
        }
 
@@ -168,13 +168,13 @@ func main() {
                path := flag.Arg(i);
                switch dir, err := os.Stat(path); {
                case err != nil:
-                       report(err);
+                       report(err)
                case dir.IsRegular():
                        if err := processFile(path); err != nil {
-                               report(err);
+                               report(err)
                        }
                case dir.IsDirectory():
-                       walkDir(path);
+                       walkDir(path)
                }
        }
 
index ea4c544f8c7baf90ad3021e2924d1fc12221de91..983052cf237db9e53edcf84066abee12faec01d4 100644 (file)
@@ -352,7 +352,7 @@ func setup() {
 
        flag.Parse();
        if flag.NArg() != 1 {
-               usage();
+               usage()
        }
        if stacksize < 1 {
                // never set so cannot happen
@@ -374,24 +374,24 @@ outer:
        for {
                switch t {
                default:
-                       error("syntax error tok=%v", t-PRIVATE);
+                       error("syntax error tok=%v", t-PRIVATE)
 
                case MARK, ENDFILE:
-                       break outer;
+                       break outer
 
                case ';':
 
                case START:
                        t = gettok();
                        if t != IDENTIFIER {
-                               error("bad %%start construction");
+                               error("bad %%start construction")
                        }
                        start = chfind(1, tokname);
 
                case TYPEDEF:
                        t = gettok();
                        if t != TYPENAME {
-                               error("bad syntax in %%type");
+                               error("bad syntax in %%type")
                        }
                        ty = numbval;
                        for {
@@ -403,36 +403,36 @@ outer:
                                                j = TYPE(toklev[t]);
                                                if j != 0 && j != ty {
                                                        error("type redeclaration of token ",
-                                                               tokset[t].name);
+                                                               tokset[t].name)
                                                } else {
-                                                       toklev[t] = SETTYPE(toklev[t], ty);
+                                                       toklev[t] = SETTYPE(toklev[t], ty)
                                                }
                                        } else {
                                                j = nontrst[t-NTBASE].value;
                                                if j != 0 && j != ty {
                                                        error("type redeclaration of nonterminal %v",
-                                                               nontrst[t-NTBASE].name);
+                                                               nontrst[t-NTBASE].name)
                                                } else {
-                                                       nontrst[t-NTBASE].value = ty;
+                                                       nontrst[t-NTBASE].value = ty
                                                }
                                        }
                                        continue;
 
                                case ',':
-                                       continue;
+                                       continue
                                }
                                break;
                        }
                        continue;
 
                case UNION:
-                       cpyunion();
+                       cpyunion()
 
                case LEFT, BINARY, RIGHT, TERM:
                        // nonzero means new prec. and assoc.
                        lev := t-TERM;
                        if lev != 0 {
-                               i++;
+                               i++
                        }
                        ty = 0;
 
@@ -451,23 +451,23 @@ outer:
                                        continue;
 
                                case ';':
-                                       break;
+                                       break
 
                                case IDENTIFIER:
                                        j = chfind(0, tokname);
                                        if j >= NTBASE {
-                                               error("%v defined earlier as nonterminal", tokname);
+                                               error("%v defined earlier as nonterminal", tokname)
                                        }
                                        if lev != 0 {
                                                if ASSOC(toklev[j]) != 0 {
-                                                       error("redeclaration of precedence of %v", tokname);
+                                                       error("redeclaration of precedence of %v", tokname)
                                                }
                                                toklev[j] = SETASC(toklev[j], lev);
                                                toklev[j] = SETPLEV(toklev[j], i);
                                        }
                                        if ty != 0 {
                                                if TYPE(toklev[j]) != 0 {
-                                                       error("redeclaration of type of %v", tokname);
+                                                       error("redeclaration of type of %v", tokname)
                                                }
                                                toklev[j] = SETTYPE(toklev[j], ty);
                                        }
@@ -484,13 +484,13 @@ outer:
                        continue;
 
                case LCURLY:
-                       cpycode();
+                       cpycode()
                }
                t = gettok();
        }
 
        if t == ENDFILE {
-               error("unexpected EOF before %%");
+               error("unexpected EOF before %%")
        }
 
        // put out non-literal terminals
@@ -498,14 +498,14 @@ outer:
                // non-literals
                c := tokset[i].name[0];
                if c != ' ' && c != '$' {
-                       fmt.Fprintf(ftable, "const\t%v\t= %v\n", tokset[i].name, tokset[i].value);
+                       fmt.Fprintf(ftable, "const\t%v\t= %v\n", tokset[i].name, tokset[i].value)
                }
        }
 
        // put out names of token names
        fmt.Fprintf(ftable, "var\tToknames\t =[]string {\n");
        for i := TOKSTART; i <= ntokens; i++ {
-               fmt.Fprintf(ftable, "\t\"%v\",\n", tokset[i].name);
+               fmt.Fprintf(ftable, "\t\"%v\",\n", tokset[i].name)
        }
        fmt.Fprintf(ftable, "}\n");
 
@@ -527,11 +527,11 @@ outer:
        curprod := make([]int, RULEINC);
        t = gettok();
        if t != IDENTCOLON {
-               error("bad syntax on first rule");
+               error("bad syntax on first rule")
        }
 
        if start == 0 {
-               prdptr[0][1] = chfind(1, tokname);
+               prdptr[0][1] = chfind(1, tokname)
        }
 
        // read rules
@@ -551,11 +551,11 @@ outer:
                } else if t == IDENTCOLON {
                        curprod[mem] = chfind(1, tokname);
                        if curprod[mem] < NTBASE {
-                               error("token illegal on LHS of grammar rule");
+                               error("token illegal on LHS of grammar rule")
                        }
                        mem++;
                } else {
-                       error("illegal rule: missing semicolon or | ?");
+                       error("illegal rule: missing semicolon or | ?")
                }
 
                // read rule body
@@ -564,13 +564,13 @@ outer:
                        for t == IDENTIFIER {
                                curprod[mem] = chfind(1, tokname);
                                if curprod[mem] < NTBASE {
-                                       levprd[nprod] = toklev[curprod[mem]];
+                                       levprd[nprod] = toklev[curprod[mem]]
                                }
                                mem++;
                                if mem >= len(curprod) {
                                        ncurprod := make([]int, mem+RULEINC);
                                        for ll := 0; ll < mem; ll++ {
-                                               ncurprod[ll] = curprod[ll];
+                                               ncurprod[ll] = curprod[ll]
                                        }
                                        curprod = ncurprod;
                                }
@@ -578,17 +578,17 @@ outer:
                        }
                        if t == PREC {
                                if gettok() != IDENTIFIER {
-                                       error("illegal %%prec syntax");
+                                       error("illegal %%prec syntax")
                                }
                                j = chfind(2, tokname);
                                if j >= NTBASE {
-                                       error("nonterminal " + nontrst[j-NTBASE].name + " illegal after %%prec");
+                                       error("nonterminal " + nontrst[j-NTBASE].name + " illegal after %%prec")
                                }
                                levprd[nprod] = toklev[j];
                                t = gettok();
                        }
                        if t != '=' {
-                               break;
+                               break
                        }
                        levprd[nprod] |= ACTFLAG;
                        fmt.Fprintf(ftable, "\ncase %v:", nprod);
@@ -621,7 +621,7 @@ outer:
                                if mem >= len(curprod) {
                                        ncurprod := make([]int, mem+RULEINC);
                                        for ll := 0; ll < mem; ll++ {
-                                               ncurprod[ll] = curprod[ll];
+                                               ncurprod[ll] = curprod[ll]
                                        }
                                        curprod = ncurprod;
                                }
@@ -629,7 +629,7 @@ outer:
                }
 
                for t == ';' {
-                       t = gettok();
+                       t = gettok()
                }
                curprod[mem] = -nprod;
                mem++;
@@ -640,15 +640,15 @@ outer:
                        // no explicit action, LHS has value
                        tempty := curprod[1];
                        if tempty < 0 {
-                               error("must return a value, since LHS has a type");
+                               error("must return a value, since LHS has a type")
                        }
                        if tempty >= NTBASE {
-                               tempty = nontrst[tempty-NTBASE].value;
+                               tempty = nontrst[tempty-NTBASE].value
                        } else {
-                               tempty = TYPE(toklev[tempty]);
+                               tempty = TYPE(toklev[tempty])
                        }
                        if tempty != nontrst[curprod[0]-NTBASE].value {
-                               error("default action causes potential type clash");
+                               error("default action causes potential type clash")
                        }
                        fmt.Fprintf(ftable, "\ncase %v:", nprod);
                        fmt.Fprintf(ftable, "\n\tYYVAL.%v = YYS[yypt-0].%v;",
@@ -657,7 +657,7 @@ outer:
                moreprod();
                prdptr[nprod] = make([]int, mem);
                for ll := 0; ll < mem; ll++ {
-                       prdptr[nprod][ll] = curprod[ll];
+                       prdptr[nprod][ll] = curprod[ll]
                }
                nprod++;
                moreprod();
@@ -681,12 +681,12 @@ outer:
        //
        if t == MARK {
                if !lflag {
-                       fmt.Fprintf(ftable, "\n//line %v:%v\n", infile, lineno);
+                       fmt.Fprintf(ftable, "\n//line %v:%v\n", infile, lineno)
                }
                for {
                        c := getrune(finput);
                        if c == EOF {
-                               break;
+                               break
                        }
                        putrune(ftable, c);
                }
@@ -727,7 +727,7 @@ func defin(nt int, s string) int {
                if nnonter >= len(nontrst) {
                        anontrst := make([]Symb, nnonter+SYMINC);
                        for ll := 0; ll < len(nontrst); ll++ {
-                               anontrst[ll] = nontrst[ll];
+                               anontrst[ll] = nontrst[ll]
                        }
                        nontrst = anontrst;
                }
@@ -756,31 +756,31 @@ func defin(nt int, s string) int {
        // establish value for token
        // single character literal
        if s[0] == ' ' && len(s) == 1+1 {
-               val = int(s[1]);
+               val = int(s[1])
        } else if s[0] == ' ' && s[1] == '\\' { // escape sequence
                if len(s) == 2+1 {
                        // single character escape sequence
                        switch s[2] {
                        case '\'':
-                               val = '\'';
+                               val = '\''
                        case '"':
-                               val = '"';
+                               val = '"'
                        case '\\':
-                               val = '\\';
+                               val = '\\'
                        case 'a':
-                               val = '\a';
+                               val = '\a'
                        case 'b':
-                               val = '\b';
+                               val = '\b'
                        case 'n':
-                               val = '\n';
+                               val = '\n'
                        case 'r':
-                               val = '\r';
+                               val = '\r'
                        case 't':
-                               val = '\t';
+                               val = '\t'
                        case 'v':
-                               val = '\v';
+                               val = '\v'
                        default:
-                               error("invalid escape %v", s[1:3]);
+                               error("invalid escape %v", s[1:3])
                        }
                } else if s[2] == 'u' && len(s) == 2+1+4 {      // \unnnn sequence
                        val = 0;
@@ -789,22 +789,22 @@ func defin(nt int, s string) int {
                                c := int(s[0]);
                                switch {
                                case c >= '0' && c <= '9':
-                                       c -= '0';
+                                       c -= '0'
                                case c >= 'a' && c <= 'f':
-                                       c -= 'a'-10;
+                                       c -= 'a'-10
                                case c >= 'A' && c <= 'F':
-                                       c -= 'A'-10;
+                                       c -= 'A'-10
                                default:
-                                       error("illegal \\unnnn construction");
+                                       error("illegal \\unnnn construction")
                                }
                                val = val*16 + c;
                                s = s[1:len(s)];
                        }
                        if val == 0 {
-                               error("'\\u0000' is illegal");
+                               error("'\\u0000' is illegal")
                        }
                } else {
-                       error("unknown escape");
+                       error("unknown escape")
                }
        } else {
                val = extval;
@@ -827,14 +827,14 @@ func gettok() int {
                c = getrune(finput);
                for c == ' ' || c == '\n' || c == '\t' || c == '\v' || c == '\r' {
                        if c == '\n' {
-                               lineno++;
+                               lineno++
                        }
                        c = getrune(finput);
                }
 
                // skip comment -- fix
                if c != '/' {
-                       break;
+                       break
                }
                lineno += skipcom();
        }
@@ -842,14 +842,14 @@ func gettok() int {
        switch c {
        case EOF:
                if tokflag {
-                       fmt.Printf(">>> ENDFILE %v\n", lineno);
+                       fmt.Printf(">>> ENDFILE %v\n", lineno)
                }
                return ENDFILE;
 
        case '{':
                ungetrune(finput, c);
                if tokflag {
-                       fmt.Printf(">>> ={ %v\n", lineno);
+                       fmt.Printf(">>> ={ %v\n", lineno)
                }
                return '=';
 
@@ -862,14 +862,14 @@ func gettok() int {
                }
 
                if c != '>' {
-                       error("unterminated < ... > clause");
+                       error("unterminated < ... > clause")
                }
 
                for i = 1; i <= ntypes; i++ {
                        if typeset[i] == tokname {
                                numbval = i;
                                if tokflag {
-                                       fmt.Printf(">>> TYPENAME old <%v> %v\n", tokname, lineno);
+                                       fmt.Printf(">>> TYPENAME old <%v> %v\n", tokname, lineno)
                                }
                                return TYPENAME;
                        }
@@ -878,7 +878,7 @@ func gettok() int {
                numbval = ntypes;
                typeset[numbval] = tokname;
                if tokflag {
-                       fmt.Printf(">>> TYPENAME new <%v> %v\n", tokname, lineno);
+                       fmt.Printf(">>> TYPENAME new <%v> %v\n", tokname, lineno)
                }
                return TYPENAME;
 
@@ -888,14 +888,14 @@ func gettok() int {
                for {
                        c = getrune(finput);
                        if c == '\n' || c == EOF {
-                               error("illegal or missing ' or \"");
+                               error("illegal or missing ' or \"")
                        }
                        if c == '\\' {
                                tokname += string('\\');
                                c = getrune(finput);
                        } else if c == match {
                                if tokflag {
-                                       fmt.Printf(">>> IDENTIFIER \"%v\" %v\n", tokname, lineno);
+                                       fmt.Printf(">>> IDENTIFIER \"%v\" %v\n", tokname, lineno)
                                }
                                return IDENTIFIER;
                        }
@@ -907,17 +907,17 @@ func gettok() int {
                switch c {
                case '%':
                        if tokflag {
-                               fmt.Printf(">>> MARK %%%% %v\n", lineno);
+                               fmt.Printf(">>> MARK %%%% %v\n", lineno)
                        }
                        return MARK;
                case '=':
                        if tokflag {
-                               fmt.Printf(">>> PREC %%= %v\n", lineno);
+                               fmt.Printf(">>> PREC %%= %v\n", lineno)
                        }
                        return PREC;
                case '{':
                        if tokflag {
-                               fmt.Printf(">>> LCURLY %%{ %v\n", lineno);
+                               fmt.Printf(">>> LCURLY %%{ %v\n", lineno)
                        }
                        return LCURLY;
                }
@@ -928,7 +928,7 @@ func gettok() int {
                        if tokname == resrv[c].name {
                                if tokflag {
                                        fmt.Printf(">>> %%%v %v %v\n", tokname,
-                                               resrv[c].value - PRIVATE, lineno);
+                                               resrv[c].value - PRIVATE, lineno)
                                }
                                return resrv[c].value;
                        }
@@ -940,13 +940,13 @@ func gettok() int {
                for {
                        c = getrune(finput);
                        if !isdigit(c) {
-                               break;
+                               break
                        }
                        numbval = numbval*10 + c - '0';
                }
                ungetrune(finput, c);
                if tokflag {
-                       fmt.Printf(">>> NUMBER %v %v\n", numbval, lineno);
+                       fmt.Printf(">>> NUMBER %v %v\n", numbval, lineno)
                }
                return NUMBER;
 
@@ -956,7 +956,7 @@ func gettok() int {
                        break;
                }
                if tokflag {
-                       fmt.Printf(">>> OPERATOR %v %v\n", string(c), lineno);
+                       fmt.Printf(">>> OPERATOR %v %v\n", string(c), lineno)
                }
                return c;
        }
@@ -965,24 +965,24 @@ func gettok() int {
        c = getrune(finput);
        for c == ' ' || c == '\t' || c == '\n' || c == '\v' || c == '\r' || c == '/' {
                if c == '\n' {
-                       peekline++;
+                       peekline++
                }
                // look for comments
                if c == '/' {
-                       peekline += skipcom();
+                       peekline += skipcom()
                }
                c = getrune(finput);
        }
        if c == ':' {
                if tokflag {
-                       fmt.Printf(">>> IDENTCOLON %v: %v\n", tokname, lineno);
+                       fmt.Printf(">>> IDENTCOLON %v: %v\n", tokname, lineno)
                }
                return IDENTCOLON;
        }
 
        ungetrune(finput, c);
        if tokflag {
-               fmt.Printf(">>> IDENTIFIER %v %v\n", tokname, lineno);
+               fmt.Printf(">>> IDENTIFIER %v %v\n", tokname, lineno)
        }
        return IDENTIFIER;
 }
@@ -1011,29 +1011,29 @@ func fdtype(t int) int {
                s = tokset[t].name;
        }
        if v <= 0 {
-               error("must specify type for %v", s);
+               error("must specify type for %v", s)
        }
        return v;
 }
 
 func chfind(t int, s string) int {
        if s[0] == ' ' {
-               t = 0;
+               t = 0
        }
        for i := 0; i <= ntokens; i++ {
                if s == tokset[i].name {
-                       return i;
+                       return i
                }
        }
        for i := 0; i <= nnonter; i++ {
                if s == nontrst[i].name {
-                       return NTBASE+i;
+                       return NTBASE+i
                }
        }
 
        // cannot find name
        if t > 1 {
-               error("%v should have been defined earlier", s);
+               error("%v should have been defined earlier", s)
        }
        return defin(t, s);
 }
@@ -1044,7 +1044,7 @@ func chfind(t int, s string) int {
 func cpyunion() {
 
        if !lflag {
-               fmt.Fprintf(ftable, "\n//line %v %v\n", lineno, infile);
+               fmt.Fprintf(ftable, "\n//line %v %v\n", lineno, infile)
        }
        fmt.Fprintf(ftable, "type\tYYSTYPE\tstruct");
 
@@ -1054,21 +1054,21 @@ out:
        for {
                c := getrune(finput);
                if c == EOF {
-                       error("EOF encountered while processing %%union");
+                       error("EOF encountered while processing %%union")
                }
                putrune(ftable, c);
                switch c {
                case '\n':
-                       lineno++;
+                       lineno++
                case '{':
                        if level == 0 {
-                               fmt.Fprintf(ftable, "\n\tyys\tint;");
+                               fmt.Fprintf(ftable, "\n\tyys\tint;")
                        }
                        level++;
                case '}':
                        level--;
                        if level == 0 {
-                               break out;
+                               break out
                        }
                }
        }
@@ -1090,19 +1090,19 @@ func cpycode() {
                lineno++;
        }
        if !lflag {
-               fmt.Fprintf(ftable, "\n//line %v %v\n", lineno, infile);
+               fmt.Fprintf(ftable, "\n//line %v %v\n", lineno, infile)
        }
        for c != EOF {
                if c == '%' {
                        c = getrune(finput);
                        if c == '}' {
-                               return;
+                               return
                        }
                        putrune(ftable, '%');
                }
                putrune(ftable, c);
                if c == '\n' {
-                       lineno++;
+                       lineno++
                }
                c = getrune(finput);
        }
@@ -1189,7 +1189,7 @@ func skipcom() int {
        if c == '/' {
                for c != EOF {
                        if c == '\n' {
-                               return 1;
+                               return 1
                        }
                        c = getrune(finput);
                }
@@ -1197,7 +1197,7 @@ func skipcom() int {
                return 0;
        }
        if c != '*' {
-               error("illegal comment");
+               error("illegal comment")
        }
 
        nl := 0;        // lines skipped
@@ -1208,7 +1208,7 @@ l1:
        case '*':
                c = getrune(finput);
                if c == '/' {
-                       break;
+                       break
                }
                goto l1;
 
@@ -1228,9 +1228,9 @@ func dumpprod(curprod []int, max int) {
        for i := 0; i < max; i++ {
                p := curprod[i];
                if p < 0 {
-                       fmt.Printf("[%v] %v\n", i, p);
+                       fmt.Printf("[%v] %v\n", i, p)
                } else {
-                       fmt.Printf("[%v] %v\n", i, symnam(p));
+                       fmt.Printf("[%v] %v\n", i, symnam(p))
                }
        }
 }
@@ -1241,7 +1241,7 @@ func dumpprod(curprod []int, max int) {
 func cpyact(curprod []int, max int) {
 
        if !lflag {
-               fmt.Fprintf(ftable, "\n//line %v %v\n", lineno, infile);
+               fmt.Fprintf(ftable, "\n//line %v %v\n", lineno, infile)
        }
 
        lno := lineno;
@@ -1274,7 +1274,7 @@ loop:
                        if c == '<' {
                                ungetrune(finput, c);
                                if gettok() != TYPENAME {
-                                       error("bad syntax on $<ident> clause");
+                                       error("bad syntax on $<ident> clause")
                                }
                                tok = numbval;
                                c = getrune(finput);
@@ -1285,7 +1285,7 @@ loop:
                                // put out the proper tag...
                                if ntypes != 0 {
                                        if tok < 0 {
-                                               tok = fdtype(curprod[0]);
+                                               tok = fdtype(curprod[0])
                                        }
                                        fmt.Fprintf(ftable, ".%v", typeset[tok]);
                                }
@@ -1304,39 +1304,39 @@ loop:
                                ungetrune(finput, c);
                                j = j*s;
                                if j >= max {
-                                       error("Illegal use of $%v", j);
+                                       error("Illegal use of $%v", j)
                                }
                        } else if isword(c) || c == '_' || c == '.' {
                                // look for $name
                                ungetrune(finput, c);
                                if gettok() != IDENTIFIER {
-                                       error("$ must be followed by an identifier");
+                                       error("$ must be followed by an identifier")
                                }
                                tokn := chfind(2, tokname);
                                fnd := -1;
                                c = getrune(finput);
                                if c != '@' {
-                                       ungetrune(finput, c);
+                                       ungetrune(finput, c)
                                } else if gettok() != NUMBER {
-                                       error("@ must be followed by number");
+                                       error("@ must be followed by number")
                                } else {
-                                       fnd = numbval;
+                                       fnd = numbval
                                }
                                for j = 1; j < max; j++ {
                                        if tokn == curprod[j] {
                                                fnd--;
                                                if fnd <= 0 {
-                                                       break;
+                                                       break
                                                }
                                        }
                                }
                                if j >= max {
-                                       error("$name or $name@number not found");
+                                       error("$name or $name@number not found")
                                }
                        } else {
                                putrune(ftable, '$');
                                if s < 0 {
-                                       putrune(ftable, '-');
+                                       putrune(ftable, '-')
                                }
                                ungetrune(finput, c);
                                continue loop;
@@ -1346,10 +1346,10 @@ loop:
                        // put out the proper tag
                        if ntypes != 0 {
                                if j <= 0 && tok < 0 {
-                                       error("must specify type of $%v", j);
+                                       error("must specify type of $%v", j)
                                }
                                if tok < 0 {
-                                       tok = fdtype(curprod[j]);
+                                       tok = fdtype(curprod[j])
                                }
                                fmt.Fprintf(ftable, ".%v", typeset[tok]);
                        }
@@ -1358,7 +1358,7 @@ loop:
                case '}':
                        brac--;
                        if brac != 0 {
-                               break;
+                               break
                        }
                        putrune(ftable, c);
                        return;
@@ -1387,13 +1387,13 @@ loop:
                                        putrune(ftable, c);
                                        c = getrune(finput);
                                        if c == '\n' {
-                                               lineno++;
+                                               lineno++
                                        }
                                } else if c == match {
-                                       break swt;
+                                       break swt
                                }
                                if c == '\n' {
-                                       error("newline in string or char const");
+                                       error("newline in string or char const")
                                }
                                putrune(ftable, c);
                                c = getrune(finput);
@@ -1405,7 +1405,7 @@ loop:
                        error("action does not terminate");
 
                case '\n':
-                       lineno++;
+                       lineno++
                }
 
                putrune(ftable, c);
@@ -1416,24 +1416,24 @@ func openup() {
        infile = flag.Arg(0);
        finput = open(infile);
        if finput == nil {
-               error("cannot open %v", infile);
+               error("cannot open %v", infile)
        }
 
        foutput = nil;
        if vflag != "" {
                foutput = create(vflag, 0666);
                if foutput == nil {
-                       error("can't create file %v", vflag);
+                       error("can't create file %v", vflag)
                }
        }
 
        ftable = nil;
        if oflag == "" {
-               oflag = "y.go";
+               oflag = "y.go"
        }
        ftable = create(oflag, 0666);
        if ftable == nil {
-               error("can't create file %v", oflag);
+               error("can't create file %v", oflag)
        }
 
 }
@@ -1445,12 +1445,12 @@ func symnam(i int) string {
        var s string;
 
        if i >= NTBASE {
-               s = nontrst[i-NTBASE].name;
+               s = nontrst[i-NTBASE].name
        } else {
-               s = tokset[i].name;
+               s = tokset[i].name
        }
        if s[0] == ' ' {
-               s = s[1:len(s)];
+               s = s[1:len(s)]
        }
        return s;
 }
@@ -1460,7 +1460,7 @@ func symnam(i int) string {
 //
 func aryfil(v []int, n, c int) {
        for i := 0; i < n; i++ {
-               v[i] = c;
+               v[i] = c
        }
 }
 
@@ -1475,10 +1475,10 @@ func cpres() {
 
        if false {
                for j := 0; j <= nnonter; j++ {
-                       fmt.Printf("nnonter[%v] = %v\n", j, nontrst[j].name);
+                       fmt.Printf("nnonter[%v] = %v\n", j, nontrst[j].name)
                }
                for j := 0; j < nprod; j++ {
-                       fmt.Printf("prdptr[%v][0] = %v+NTBASE\n", j, prdptr[j][0]-NTBASE);
+                       fmt.Printf("prdptr[%v][0] = %v+NTBASE\n", j, prdptr[j][0]-NTBASE)
                }
        }
 
@@ -1498,7 +1498,7 @@ func cpres() {
                }
                pres[i] = make([][]int, n);
                for ll := 0; ll < n; ll++ {
-                       pres[i][ll] = curres[ll];
+                       pres[i][ll] = curres[ll]
                }
        }
        fatfl = 1;
@@ -1516,7 +1516,7 @@ func dumppres() {
                        print("\tproduction %d:", j);
                        prd := curres[j];
                        for k := 0; k < len(prd); k++ {
-                               print(" %d", prd[k]);
+                               print(" %d", prd[k])
                        }
                        print("\n");
                }
@@ -1543,12 +1543,12 @@ more:
                for i = 0; i < nprod; i++ {
                        prd = prdptr[i];
                        if pempty[prd[0]-NTBASE] != 0 {
-                               continue;
+                               continue
                        }
                        np = len(prd)-1;
                        for p = 1; p < np; p++ {
                                if prd[p] >= NTBASE && pempty[prd[p]-NTBASE] == WHOKNOWS {
-                                       break;
+                                       break
                                }
                        }
                        // production can be derived
@@ -1564,7 +1564,7 @@ more:
        for i = 0; i <= nnonter; i++ {
                // the added production rises or falls as the start symbol ...
                if i == 0 {
-                       continue;
+                       continue
                }
                if pempty[i] != OK {
                        fatfl = 0;
@@ -1590,12 +1590,12 @@ again:
                        // not known to be empty
                        prd = prdptr[i];
                        if pempty[prd[0]-NTBASE] != WHOKNOWS {
-                               continue;
+                               continue
                        }
                        np = len(prd)-1;
                        for p = 1; p < np; p++ {
                                if prd[p] < NTBASE || pempty[prd[p]-NTBASE] != EMPTY {
-                                       continue next;
+                                       continue next
                                }
                        }
 
@@ -1612,7 +1612,7 @@ again:
 func dumpempty() {
        for i := 0; i <= nnonter; i++ {
                if pempty[i] == EMPTY {
-                       print("non-term %d %s matches empty\n", i, symnam(i+NTBASE));
+                       print("non-term %d %s matches empty\n", i, symnam(i+NTBASE))
                }
        }
 }
@@ -1644,7 +1644,7 @@ func cpfir() {
                                        break;
                                }
                                if pempty[ch-NTBASE] == 0 {
-                                       break;
+                                       break
                                }
                        }
                }
@@ -1663,11 +1663,11 @@ func cpfir() {
                                for p = 0; p < np; p++ {
                                        ch = prd[p]-NTBASE;
                                        if ch < 0 {
-                                               break;
+                                               break
                                        }
                                        changes |= setunion(pfirst[i], pfirst[ch]);
                                        if pempty[ch] == 0 {
-                                               break;
+                                               break
                                        }
                                }
                        }
@@ -1675,12 +1675,12 @@ func cpfir() {
        }
 
        if indebug == 0 {
-               return;
+               return
        }
        if foutput != nil {
                for i = 0; i <= nnonter; i++ {
                        fmt.Fprintf(foutput, "\n%v: %v %v\n",
-                               nontrst[i].name, pfirst[i], pempty[i]);
+                               nontrst[i].name, pfirst[i], pempty[i])
                }
        }
 }
@@ -1717,7 +1717,7 @@ func stagen() {
                more = 0;
                for i := 0; i < nstate; i++ {
                        if tystate[i] != MUSTDO {
-                               continue;
+                               continue
                        }
 
                        tystate[i] = DONE;
@@ -1730,13 +1730,13 @@ func stagen() {
                        for p := 0; p < cwp; p++ {
                                pi := wsets[p];
                                if pi.flag != 0 {
-                                       continue;
+                                       continue
                                }
                                wsets[p].flag = 1;
                                c := pi.pitem.first;
                                if c <= 1 {
                                        if pstate[i+1]-pstate[i] <= p {
-                                               tystate[i] = MUSTLOOKAHEAD;
+                                               tystate[i] = MUSTLOOKAHEAD
                                        }
                                        continue;
                                }
@@ -1752,9 +1752,9 @@ func stagen() {
                                }
 
                                if c < NTBASE {
-                                       state(c);       // register new state
+                                       state(c)        // register new state
                                } else {
-                                       temp1[c-NTBASE] = state(c);
+                                       temp1[c-NTBASE] = state(c)
                                }
                        }
 
@@ -1762,14 +1762,14 @@ func stagen() {
                                fmt.Fprintf(foutput, "%v: ", i);
                                for j := 0; j <= nnonter; j++ {
                                        if temp1[j] != 0 {
-                                               fmt.Fprintf(foutput, "%v %v,", nontrst[j].name, temp1[j]);
+                                               fmt.Fprintf(foutput, "%v %v,", nontrst[j].name, temp1[j])
                                        }
                                }
                                fmt.Fprintf(foutput, "\n");
                        }
 
                        if first != 0 {
-                               indgo[i] = apack(temp1[1:len(temp1)], nnonter-1) - 1;
+                               indgo[i] = apack(temp1[1:len(temp1)], nnonter-1) - 1
                        }
 
                        more++;
@@ -1790,7 +1790,7 @@ func closure(i int) {
                wsets[cwp].pitem = statemem[p].pitem;
                wsets[cwp].flag = 1;    // this item must get closed
                for ll := 0; ll < len(wsets[cwp].ws); ll++ {
-                       wsets[cwp].ws[ll] = statemem[p].look[ll];
+                       wsets[cwp].ws[ll] = statemem[p].look[ll]
                }
                cwp++;
        }
@@ -1801,7 +1801,7 @@ func closure(i int) {
                work = 0;
                for u := 0; u < cwp; u++ {
                        if wsets[u].flag == 0 {
-                               continue;
+                               continue
                        }
 
                        // dot is before c
@@ -1818,14 +1818,14 @@ func closure(i int) {
                        // find items involving c
                        for v := u; v < cwp; v++ {
                                if wsets[v].flag != 1 || wsets[v].pitem.first != c {
-                                       continue;
+                                       continue
                                }
                                pi := wsets[v].pitem.prod;
                                ipi := wsets[v].pitem.off + 1;
 
                                wsets[v].flag = 0;
                                if nolook != 0 {
-                                       continue;
+                                       continue
                                }
 
                                ch := pi[ipi];
@@ -1840,13 +1840,13 @@ func closure(i int) {
                                        // nonterminal symbol
                                        setunion(clset, pfirst[ch-NTBASE]);
                                        if pempty[ch-NTBASE] == 0 {
-                                               break;
+                                               break
                                        }
                                        ch = pi[ipi];
                                        ipi++;
                                }
                                if ch <= 0 {
-                                       setunion(clset, wsets[v].ws);
+                                       setunion(clset, wsets[v].ws)
                                }
                        }
 
@@ -1882,7 +1882,7 @@ func closure(i int) {
                                if cwp >= len(wsets) {
                                        awsets := make([]Wset, cwp+WSETINC);
                                        for ll := 0; ll < len(wsets); ll++ {
-                                               awsets[ll] = wsets[ll];
+                                               awsets[ll] = wsets[ll]
                                        }
                                        wsets = awsets;
                                }
@@ -1892,7 +1892,7 @@ func closure(i int) {
                                if nolook == 0 {
                                        work = 1;
                                        for ll := 0; ll < len(wsets[cwp].ws); ll++ {
-                                               wsets[cwp].ws[ll] = clset[ll];
+                                               wsets[cwp].ws[ll] = clset[ll]
                                        }
                                }
                                cwp++;
@@ -1905,7 +1905,7 @@ func closure(i int) {
                fmt.Fprintf(foutput, "\nState %v, nolook = %v\n", i, nolook);
                for u := 0; u < cwp; u++ {
                        if wsets[u].flag != 0 {
-                               fmt.Fprintf(foutput, "flag set\n");
+                               fmt.Fprintf(foutput, "flag set\n")
                        }
                        wsets[u].flag = 0;
                        fmt.Fprintf(foutput, "\t%v", writem(wsets[u].pitem));
@@ -1923,7 +1923,7 @@ func state(c int) int {
        p1 := pstate[nstate];
        p2 := pstate[nstate+1];
        if p1 == p2 {
-               return 0;       // null state
+               return 0        // null state
        }
 
        // sort the items
@@ -1937,7 +1937,7 @@ func state(c int) int {
                                statemem[l] = statemem[l-1];
                                statemem[l-1] = s;
                        } else {
-                               break;
+                               break
                        }
                }
        }
@@ -1946,9 +1946,9 @@ func state(c int) int {
 
        var i int;
        if c >= NTBASE {
-               i = ntstates[c-NTBASE];
+               i = ntstates[c-NTBASE]
        } else {
-               i = tstates[c];
+               i = tstates[c]
        }
 
 look:
@@ -1958,13 +1958,13 @@ look:
                q2 := pstate[i+1];
                size2 := q2-q1;
                if size1 != size2 {
-                       continue;
+                       continue
                }
                k = p1;
                for l = q1; l < q2; l++ {
                        if aryeq(statemem[l].pitem.prod, statemem[k].pitem.prod) == 0 ||
                                statemem[l].pitem.off != statemem[k].pitem.off {
-                               continue look;
+                               continue look
                        }
                        k++;
                }
@@ -1974,12 +1974,12 @@ look:
 
                // fix up lookaheads
                if nolook != 0 {
-                       return i;
+                       return i
                }
                k = p1;
                for l = q1; l < q2; l++ {
                        if setunion(statemem[l].look, statemem[k].look) != 0 {
-                               tystate[i] = MUSTDO;
+                               tystate[i] = MUSTDO
                        }
                        k++;
                }
@@ -1989,11 +1989,11 @@ look:
        // state is new
        zznewstate++;
        if nolook != 0 {
-               error("yacc state/nolook error");
+               error("yacc state/nolook error")
        }
        pstate[nstate+2] = p2;
        if nstate+1 >= NSTATES {
-               error("too many states");
+               error("too many states")
        }
        if c >= NTBASE {
                mstates[nstate] = ntstates[c-NTBASE];
@@ -2012,13 +2012,13 @@ func putitem(p Pitem, set Lkset) {
        p.first = p.prod[p.off];
 
        if pidebug != 0 && foutput != nil {
-               fmt.Fprintf(foutput, "putitem(%v), state %v\n", writem(p), nstate);
+               fmt.Fprintf(foutput, "putitem(%v), state %v\n", writem(p), nstate)
        }
        j := pstate[nstate+1];
        if j >= len(statemem) {
                asm := make([]Item, j+STATEINC);
                for ll := 0; ll < len(statemem); ll++ {
-                       asm[ll] = statemem[ll];
+                       asm[ll] = statemem[ll]
                }
                statemem = asm;
        }
@@ -2026,7 +2026,7 @@ func putitem(p Pitem, set Lkset) {
        if nolook == 0 {
                s := mkset();
                for ll := 0; ll < len(set); ll++ {
-                       s[ll] = set[ll];
+                       s[ll] = set[ll]
                }
                statemem[j].look = s;
        }
@@ -2049,14 +2049,14 @@ func writem(pp Pitem) string {
        for {
                c := ' ';
                if pi == npi {
-                       c = '.';
+                       c = '.'
                }
                q += string(c);
 
                i = p[pi];
                pi++;
                if i <= 0 {
-                       break;
+                       break
                }
                q += chcopy(symnam(i));
        }
@@ -2064,7 +2064,7 @@ func writem(pp Pitem) string {
        // an item calling for a reduction
        i = p[npi];
        if i < 0 {
-               q += fmt.Sprintf("    (%v)", -i);
+               q += fmt.Sprintf("    (%v)", -i)
        }
 
        return q;
@@ -2082,12 +2082,12 @@ func apack(p []int, n int) int {
        off := 0;
        pp := 0;
        for ; pp <= n && p[pp] == 0; pp++ {
-               off--;
+               off--
        }
 
        // no actions
        if pp > n {
-               return 0;
+               return 0
        }
        for ; n > pp && p[n] == 0; n-- {
        }
@@ -2102,7 +2102,7 @@ nextk:
                for pp = 0; pp < len(p); pp++ {
                        if p[pp] != 0 {
                                if p[pp] != amem[qq] && amem[qq] != 0 {
-                                       continue nextk;
+                                       continue nextk
                                }
                        }
                        qq++;
@@ -2110,13 +2110,13 @@ nextk:
 
                // we have found an acceptable k
                if pkdebug != 0 && foutput != nil {
-                       fmt.Fprintf(foutput, "off = %v, k = %v\n", off+rr, rr);
+                       fmt.Fprintf(foutput, "off = %v, k = %v\n", off+rr, rr)
                }
                qq = rr;
                for pp = 0; pp < len(p); pp++ {
                        if p[pp] != 0 {
                                if qq > memp {
-                                       memp = qq;
+                                       memp = qq
                                }
                                amem[qq] = p[pp];
                        }
@@ -2126,7 +2126,7 @@ nextk:
                        for pp = 0; pp <= memp; pp += 10 {
                                fmt.Fprintf(foutput, "\n");
                                for qq = pp; qq <= pp+9; qq++ {
-                                       fmt.Fprintf(foutput, "%v ", amem[qq]);
+                                       fmt.Fprintf(foutput, "%v ", amem[qq])
                                }
                                fmt.Fprintf(foutput, "\n");
                        }
@@ -2151,7 +2151,7 @@ func output() {
        for i := 0; i < nstate; i++ {
                nolook = 0;
                if tystate[i] != MUSTLOOKAHEAD {
-                       nolook = 1;
+                       nolook = 1
                }
                closure(i);
 
@@ -2163,19 +2163,19 @@ func output() {
                        if c > 1 && c < NTBASE && temp1[c] == 0 {
                                for v = u; v < cwp; v++ {
                                        if c == wsets[v].pitem.first {
-                                               putitem(wsets[v].pitem, noset);
+                                               putitem(wsets[v].pitem, noset)
                                        }
                                }
                                temp1[c] = state(c);
                        } else if c > NTBASE {
                                c -= NTBASE;
                                if temp1[c+ntokens] == 0 {
-                                       temp1[c+ntokens] = amem[indgo[i]+c];
+                                       temp1[c+ntokens] = amem[indgo[i]+c]
                                }
                        }
                }
                if i == 1 {
-                       temp1[1] = ACCEPTCODE;
+                       temp1[1] = ACCEPTCODE
                }
 
                // now, we have the shifts; look at the reductions
@@ -2185,30 +2185,30 @@ func output() {
 
                        // reduction
                        if c > 0 {
-                               continue;
+                               continue
                        }
                        lastred = -c;
                        us := wsets[u].ws;
                        for k := 0; k <= ntokens; k++ {
                                if bitset(us, k) == 0 {
-                                       continue;
+                                       continue
                                }
                                if temp1[k] == 0 {
-                                       temp1[k] = c;
+                                       temp1[k] = c
                                } else if temp1[k] < 0 {        // reduce/reduce conflict
                                        if foutput != nil {
                                                fmt.Fprintf(foutput,
                                                        "\n %v: reduce/reduce conflict  (red'ns "
                                                                "%v and %v) on %v",
-                                                       i, -temp1[k], lastred, symnam(k));
+                                                       i, -temp1[k], lastred, symnam(k))
                                        }
                                        if -temp1[k] > lastred {
-                                               temp1[k] = -lastred;
+                                               temp1[k] = -lastred
                                        }
                                        zzrrconf++;
                                } else {
                                        // potential shift/reduce conflict
-                                       precftn(lastred, k, i);
+                                       precftn(lastred, k, i)
                                }
                        }
                }
@@ -2238,23 +2238,23 @@ func precftn(r, t, s int) {
                if foutput != nil {
                        fmt.Fprintf(foutput,
                                "\n%v: shift/reduce conflict (shift %v(%v), red'n %v(%v)) on %v",
-                               s, temp1[t], PLEVEL(lt), r, PLEVEL(lp), symnam(t));
+                               s, temp1[t], PLEVEL(lt), r, PLEVEL(lp), symnam(t))
                }
                zzsrconf++;
                return;
        }
        if PLEVEL(lt) == PLEVEL(lp) {
-               action = ASSOC(lt);
+               action = ASSOC(lt)
        } else if PLEVEL(lt) > PLEVEL(lp) {
-               action = RASC;  // shift
+               action = RASC   // shift
        } else {
-               action = LASC;
+               action = LASC
        }       // reduce
        switch action {
        case BASC:      // error action
-               temp1[t] = ERRCODE;
+               temp1[t] = ERRCODE
        case LASC:      // reduce
-               temp1[t] = -r;
+               temp1[t] = -r
        }
 }
 
@@ -2270,10 +2270,10 @@ func wract(i int) {
        ntimes := 0;
        for j := 0; j <= ntokens; j++ {
                if temp1[j] >= 0 {
-                       continue;
+                       continue
                }
                if temp1[j]+lastred == 0 {
-                       continue;
+                       continue
                }
                // count the number of appearances of temp1[j]
                count := 0;
@@ -2281,7 +2281,7 @@ func wract(i int) {
                levprd[tred] |= REDFLAG;
                for p = 0; p <= ntokens; p++ {
                        if temp1[p]+tred == 0 {
-                               count++;
+                               count++
                        }
                }
                if count > ntimes {
@@ -2295,7 +2295,7 @@ func wract(i int) {
        // error recovery token, `error', that the default be the error action
        //
        if temp1[2] > 0 {
-               lastred = 0;
+               lastred = 0
        }
 
        // clear out entries in temp1 which equal lastred
@@ -2308,7 +2308,7 @@ func wract(i int) {
                        p1 = 0;
                }
                if p1 > 0 && p1 != ACCEPTCODE && p1 != ERRCODE {
-                       n++;
+                       n++
                }
        }
 
@@ -2321,11 +2321,11 @@ func wract(i int) {
                p1 = temp1[p];
                if p1 != 0 {
                        if p1 < 0 {
-                               p1 = -p1;
+                               p1 = -p1
                        } else if p1 == ACCEPTCODE {
-                               p1 = -1;
+                               p1 = -1
                        } else if p1 == ERRCODE {
-                               p1 = 0;
+                               p1 = 0
                        } else {
                                os[n] = p;
                                n++;
@@ -2335,7 +2335,7 @@ func wract(i int) {
                                continue;
                        }
                        if flag == 0 {
-                               fmt.Fprintf(ftable, "-1, %v,\n", i);
+                               fmt.Fprintf(ftable, "-1, %v,\n", i)
                        }
                        flag++;
                        fmt.Fprintf(ftable, "\t%v, %v,\n", p, p1);
@@ -2357,18 +2357,18 @@ func wrstate(i int) {
        var pp, qq int;
 
        if foutput == nil {
-               return;
+               return
        }
        fmt.Fprintf(foutput, "\nstate %v\n", i);
        qq = pstate[i+1];
        for pp = pstate[i]; pp < qq; pp++ {
-               fmt.Fprintf(foutput, "\t%v\n", writem(statemem[pp].pitem));
+               fmt.Fprintf(foutput, "\t%v\n", writem(statemem[pp].pitem))
        }
        if tystate[i] == MUSTLOOKAHEAD {
                // print out empty productions in closure
                for u = pstate[i+1]-pstate[i]; u < cwp; u++ {
                        if wsets[u].pitem.first < 0 {
-                               fmt.Fprintf(foutput, "\t%v\n", writem(wsets[u].pitem));
+                               fmt.Fprintf(foutput, "\t%v\n", writem(wsets[u].pitem))
                        }
                }
        }
@@ -2382,14 +2382,14 @@ func wrstate(i int) {
                        // shift, error, or accept
                        if j1 > 0 {
                                if j1 == ACCEPTCODE {
-                                       fmt.Fprintf(foutput, "accept");
+                                       fmt.Fprintf(foutput, "accept")
                                } else if j1 == ERRCODE {
-                                       fmt.Fprintf(foutput, "error");
+                                       fmt.Fprintf(foutput, "error")
                                } else {
-                                       fmt.Fprintf(foutput, "shift %v", j1);
+                                       fmt.Fprintf(foutput, "shift %v", j1)
                                }
                        } else {
-                               fmt.Fprintf(foutput, "reduce %v (src line %v)", -j1, rlines[-j1]);
+                               fmt.Fprintf(foutput, "reduce %v (src line %v)", -j1, rlines[-j1])
                        }
                }
        }
@@ -2397,9 +2397,9 @@ func wrstate(i int) {
        // output the final production
        if lastred != 0 {
                fmt.Fprintf(foutput, "\n\t.  reduce %v (src line %v)\n\n",
-                       lastred, rlines[lastred]);
+                       lastred, rlines[lastred])
        } else {
-               fmt.Fprintf(foutput, "\n\t.  error\n\n");
+               fmt.Fprintf(foutput, "\n\t.  error\n\n")
        }
 
        // now, output nonterminal actions
@@ -2407,7 +2407,7 @@ func wrstate(i int) {
        for j0 = 1; j0 <= nnonter; j0++ {
                j1++;
                if temp1[j1] != 0 {
-                       fmt.Fprintf(foutput, "\t%v  goto %v\n", symnam(j0+NTBASE), temp1[j1]);
+                       fmt.Fprintf(foutput, "\t%v  goto %v\n", symnam(j0+NTBASE), temp1[j1])
                }
        }
 }
@@ -2426,10 +2426,10 @@ func go2out() {
                // is j the most frequent
                for j := 0; j < nstate; j++ {
                        if tystate[j] == 0 {
-                               continue;
+                               continue
                        }
                        if tystate[j] == best {
-                               continue;
+                               continue
                        }
 
                        // is tystate[j] the most frequent
@@ -2437,7 +2437,7 @@ func go2out() {
                        cbest := tystate[j];
                        for k := j; k < nstate; k++ {
                                if tystate[k] == cbest {
-                                       count++;
+                                       count++
                                }
                        }
                        if count > times {
@@ -2451,7 +2451,7 @@ func go2out() {
                n := 0;
                for j := 0; j < nstate; j++ {
                        if tystate[j] != 0 && tystate[j] != best {
-                               n++;
+                               n++
                        }
                }
                goent := make([]int, 2*n + 1);
@@ -2468,7 +2468,7 @@ func go2out() {
 
                // now, the default
                if best == -1 {
-                       best = 0;
+                       best = 0
                }
 
                zzgoent++;
@@ -2508,7 +2508,7 @@ func go2gen(c int) {
                fmt.Fprintf(foutput, "%v: gotos on ", nontrst[c].name);
                for i = 0; i <= nnonter; i++ {
                        if temp1[i] != 0 {
-                               fmt.Fprintf(foutput, "%v ", nontrst[i].name);
+                               fmt.Fprintf(foutput, "%v ", nontrst[i].name)
                        }
                }
                fmt.Fprintf(foutput, "\n");
@@ -2544,7 +2544,7 @@ func hideprod() {
                if (levprd[i]&REDFLAG) == 0 {
                        if foutput != nil {
                                fmt.Fprintf(foutput, "Rule not reduced: %v\n",
-                                       writem(Pitem{prdptr[i], 0, 0, i}));
+                                       writem(Pitem{prdptr[i], 0, 0, i}))
                        }
                        fmt.Printf("rule %v never reduced\n", writem(Pitem{prdptr[i], 0, 0, i}));
                        nred++;
@@ -2552,7 +2552,7 @@ func hideprod() {
                levprd[i] = prdptr[i][0]-NTBASE;
        }
        if nred != 0 {
-               fmt.Printf("%v rules never reduced\n", nred);
+               fmt.Printf("%v rules never reduced\n", nred)
        }
 }
 
@@ -2571,10 +2571,10 @@ func callopt() {
                q = len(v);
                for p = 0; p < q; p += 2 {
                        if v[p] > j {
-                               j = v[p];
+                               j = v[p]
                        }
                        if v[p] < k {
-                               k = v[p];
+                               k = v[p]
                        }
                }
 
@@ -2583,12 +2583,12 @@ func callopt() {
                        // j is now the range
                        //                      j -= k;                 // call scj
                        if k > maxoff {
-                               maxoff = k;
+                               maxoff = k
                        }
                }
                tystate[i] = q + 2*j;
                if j > maxspr {
-                       maxspr = j;
+                       maxspr = j
                }
        }
 
@@ -2604,23 +2604,23 @@ func callopt() {
                for p = 0; p < q; p += 2 {
                        ggreed[i] += 2;
                        if v[p] > j {
-                               j = v[p];
+                               j = v[p]
                        }
                }
                ggreed[i] = ggreed[i] + 2*j;
                if j > maxoff {
-                       maxoff = j;
+                       maxoff = j
                }
        }
 
        // now, prepare to put the shift actions into the amem array
        for i = 0; i < ACTSIZE; i++ {
-               amem[i] = 0;
+               amem[i] = 0
        }
        maxa = 0;
        for i = 0; i < nstate; i++ {
                if tystate[i] == 0 && adb > 1 {
-                       fmt.Fprintf(ftable, "State %v: null\n", i);
+                       fmt.Fprintf(ftable, "State %v: null\n", i)
                }
                indgo[i] = YYFLAG;
        }
@@ -2628,9 +2628,9 @@ func callopt() {
        i = nxti();
        for i != NOMORE {
                if i >= 0 {
-                       stin(i);
+                       stin(i)
                } else {
-                       gin(-i);
+                       gin(-i)
                }
                i = nxti();
        }
@@ -2640,7 +2640,7 @@ func callopt() {
                for p = 0; p <= maxa; p += 10 {
                        fmt.Fprintf(ftable, "%v  ", p);
                        for i = 0; i < 10; i++ {
-                               fmt.Fprintf(ftable, "%v  ", amem[p+i]);
+                               fmt.Fprintf(ftable, "%v  ", amem[p+i])
                        }
                        putrune(ftable, '\n');
                }
@@ -2669,7 +2669,7 @@ func nxti() int {
                }
        }
        if max == 0 {
-               return NOMORE;
+               return NOMORE
        }
        return maxi;
 }
@@ -2687,25 +2687,25 @@ func gin(i int) {
 nextgp:
        for p := 0; p < ACTSIZE; p++ {
                if amem[p] != 0 {
-                       continue;
+                       continue
                }
                for r := 0; r < nq; r += 2 {
                        s = p+q[r]+1;
                        if s > maxa {
                                maxa = s;
                                if maxa >= ACTSIZE {
-                                       error("a array overflow");
+                                       error("a array overflow")
                                }
                        }
                        if amem[s] != 0 {
-                               continue nextgp;
+                               continue nextgp
                        }
                }
 
                // we have found amem spot
                amem[p] = q[nq];
                if p > maxa {
-                       maxa = p;
+                       maxa = p
                }
                for r := 0; r < nq; r += 2 {
                        s = p+q[r]+1;
@@ -2713,7 +2713,7 @@ nextgp:
                }
                pgo[i] = p;
                if adb > 1 {
-                       fmt.Fprintf(ftable, "Nonterminal %v, entry at %v\n", i, pgo[i]);
+                       fmt.Fprintf(ftable, "Nonterminal %v, entry at %v\n", i, pgo[i])
                }
                return;
        }
@@ -2736,12 +2736,12 @@ nextn:
                for r := 0; r < nq; r += 2 {
                        s = q[r]+n;
                        if s < 0 || s > ACTSIZE {
-                               continue nextn;
+                               continue nextn
                        }
                        if amem[s] == 0 {
-                               flag++;
+                               flag++
                        } else if amem[s] != q[r+1] {
-                               continue nextn;
+                               continue nextn
                        }
                }
 
@@ -2751,7 +2751,7 @@ nextn:
 
                                // we have some disagreement
                                if flag != 0 {
-                                       continue nextn;
+                                       continue nextn
                                }
                                if nq == len(optst[j]) {
 
@@ -2760,7 +2760,7 @@ nextn:
                                        if adb > 1 {
                                                fmt.Fprintf(ftable, "State %v: entry at"
                                                        "%v equals state %v\n",
-                                                       i, n, j);
+                                                       i, n, j)
                                        }
                                        return;
                                }
@@ -2773,16 +2773,16 @@ nextn:
                for r := 0; r < nq; r += 2 {
                        s = q[r]+n;
                        if s > maxa {
-                               maxa = s;
+                               maxa = s
                        }
                        if amem[s] != 0 && amem[s] != q[r+1] {
-                               error("clobber of a array, pos'n %v, by %v", s, q[r+1]);
+                               error("clobber of a array, pos'n %v, by %v", s, q[r+1])
                        }
                        amem[s] = q[r+1];
                }
                indgo[i] = n;
                if adb > 1 {
-                       fmt.Fprintf(ftable, "State %v: entry at %v\n", i, indgo[i]);
+                       fmt.Fprintf(ftable, "State %v: entry at %v\n", i, indgo[i])
                }
                return;
        }
@@ -2813,19 +2813,19 @@ func others() {
        //yyr2 is the number of rules for each production
        //
        for i = 1; i < nprod; i++ {
-               temp1[i] = len(prdptr[i])-2;
+               temp1[i] = len(prdptr[i])-2
        }
        arout("YYR2", temp1, nprod);
 
        aryfil(temp1, nstate, -1000);
        for i = 0; i <= ntokens; i++ {
                for j := tstates[i]; j != 0; j = mstates[j] {
-                       temp1[j] = i;
+                       temp1[j] = i
                }
        }
        for i = 0; i <= nnonter; i++ {
                for j = ntstates[i]; j != 0; j = mstates[j] {
-                       temp1[j] = -i;
+                       temp1[j] = -i
                }
        }
        arout("YYCHK", temp1, nstate);
@@ -2845,13 +2845,13 @@ func others() {
                        }
                        temp1[j] = i;
                        if j > c {
-                               c = j;
+                               c = j
                        }
                }
        }
        for i = 0; i <= c; i++ {
                if temp1[i] == 0 {
-                       temp1[i] = YYLEXUNK;
+                       temp1[i] = YYLEXUNK
                }
        }
        arout("YYTOK1", temp1, c+1);
@@ -2869,7 +2869,7 @@ func others() {
                        }
                        temp1[j] = i;
                        if j > c {
-                               c = j;
+                               c = j
                        }
                }
        }
@@ -2881,16 +2881,16 @@ func others() {
        for i = 1; i <= ntokens; i++ {
                j = tokset[i].value;
                if j >= 0 && j < 256 {
-                       continue;
+                       continue
                }
                if j >= PRIVATE && j < 256+PRIVATE {
-                       continue;
+                       continue
                }
 
                fmt.Fprintf(ftable, "%4d,%4d,", j, i);
                c++;
                if c%5 == 0 {
-                       putrune(ftable, '\n');
+                       putrune(ftable, '\n')
                }
        }
        fmt.Fprintf(ftable, "%4d\n };\n", 0);
@@ -2910,7 +2910,7 @@ func arout(s string, v []int, n int) {
        fmt.Fprintf(ftable, "var\t%v\t= []int {\n", s);
        for i := 0; i < n; i++ {
                if i%10 == 0 {
-                       putrune(ftable, '\n');
+                       putrune(ftable, '\n')
                }
                fmt.Fprintf(ftable, "%4d", v[i]);
                putrune(ftable, ',');
@@ -2936,13 +2936,13 @@ func summary() {
        if zzsrconf != 0 || zzrrconf != 0 {
                fmt.Printf("\nconflicts: ");
                if zzsrconf != 0 {
-                       fmt.Printf("%v shift/reduce", zzsrconf);
+                       fmt.Printf("%v shift/reduce", zzsrconf)
                }
                if zzsrconf != 0 && zzrrconf != 0 {
-                       fmt.Printf(", ");
+                       fmt.Printf(", ")
                }
                if zzrrconf != 0 {
-                       fmt.Printf("%v reduce/reduce", zzrrconf);
+                       fmt.Printf("%v reduce/reduce", zzrrconf)
                }
                fmt.Printf("\n");
        }
@@ -2953,12 +2953,12 @@ func summary() {
 //
 func osummary() {
        if foutput == nil {
-               return;
+               return
        }
        i := 0;
        for p := maxa; p >= 0; p-- {
                if amem[p] == 0 {
-                       i++;
+                       i++
                }
        }
 
@@ -3005,7 +3005,7 @@ func setunion(a, b []int) int {
                y := x|b[i];
                a[i] = y;
                if y != x {
-                       sub = 1;
+                       sub = 1
                }
        }
        return sub;
@@ -3019,7 +3019,7 @@ func prlook(p Lkset) {
        fmt.Fprintf(foutput, " { ");
        for j := 0; j <= ntokens; j++ {
                if bitset(p, j) != 0 {
-                       fmt.Fprintf(foutput, "%v ", symnam(j));
+                       fmt.Fprintf(foutput, "%v ", symnam(j))
                }
        }
        fmt.Fprintf(foutput, "}");
@@ -3033,7 +3033,7 @@ var peekrune int
 func isdigit(c int) bool       { return c >= '0' && c <= '9' }
 
 func isword(c int) bool {
-       return c >= 0xa0 || (c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z');
+       return c >= 0xa0 || (c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z')
 }
 
 func mktemp(t string) string   { return t }
@@ -3045,11 +3045,11 @@ func mktemp(t string) string    { return t }
 func aryeq(a []int, b []int) int {
        n := len(a);
        if len(b) != n {
-               return 0;
+               return 0
        }
        for ll := 0; ll < n; ll++ {
                if a[ll] != b[ll] {
-                       return 0;
+                       return 0
                }
        }
        return 1;
@@ -3058,7 +3058,7 @@ func aryeq(a []int, b []int) int {
 func putrune(f *bufio.Writer, c int) {
        s := string(c);
        for i := 0; i < len(s); i++ {
-               f.WriteByte(s[i]);
+               f.WriteByte(s[i])
        }
 }
 
@@ -3067,7 +3067,7 @@ func getrune(f *bufio.Reader) int {
 
        if peekrune != 0 {
                if peekrune == EOF {
-                       return EOF;
+                       return EOF
                }
                r = peekrune;
                peekrune = 0;
@@ -3076,10 +3076,10 @@ func getrune(f *bufio.Reader) int {
 
        c, n, err := f.ReadRune();
        if n == 0 {
-               return EOF;
+               return EOF
        }
        if err != nil {
-               error("read error: %v", err);
+               error("read error: %v", err)
        }
        //fmt.Printf("rune = %v n=%v\n", string(c), n);
        return c;
@@ -3087,10 +3087,10 @@ func getrune(f *bufio.Reader) int {
 
 func ungetrune(f *bufio.Reader, c int) {
        if f != finput {
-               panic("ungetc - not finput");
+               panic("ungetc - not finput")
        }
        if peekrune != 0 {
-               panic("ungetc - 2nd unget");
+               panic("ungetc - 2nd unget")
        }
        peekrune = c;
 }
@@ -3103,7 +3103,7 @@ func write(f *bufio.Writer, b []byte, n int) int {
 func open(s string) *bufio.Reader {
        fi, err := os.Open(s, os.O_RDONLY, 0);
        if err != nil {
-               error("error opening %v: %v", s, err);
+               error("error opening %v: %v", s, err)
        }
        //fmt.Printf("open %v\n", s);
        return bufio.NewReader(fi);
@@ -3112,7 +3112,7 @@ func open(s string) *bufio.Reader {
 func create(s string, m int) *bufio.Writer {
        fo, err := os.Open(s, os.O_WRONLY | os.O_CREAT | os.O_TRUNC, m);
        if err != nil {
-               error("error opening %v: %v", s, err);
+               error("error opening %v: %v", s, err)
        }
        //fmt.Printf("create %v mode %v\n", s, m);
        return bufio.NewWriter(fo);
index a46f9ab75f1069c53400f57f453a433cf564708c..53dbfa1f5bb5441776aa531be42bd2a7c905deb2 100644 (file)
@@ -35,11 +35,11 @@ func main() {
        var err os.Error;
        switch len(args) {
        case 0:
-               data, err = io.ReadAll(os.Stdin);
+               data, err = io.ReadAll(os.Stdin)
        case 1:
-               data, err = io.ReadFile(args[0]);
+               data, err = io.ReadFile(args[0])
        default:
-               usage();
+               usage()
        }
        chk(err);
 
@@ -63,25 +63,25 @@ func main() {
        chk(err);
        dirty := make(map[string]int);
        for _, f := range dirtylist {
-               dirty[f] = 1;
+               dirty[f] = 1
        }
        conflict := make(map[string]int);
        for _, f := range pset.File {
                if f.Verb == patch.Delete || f.Verb == patch.Rename {
                        if _, ok := dirty[f.Src]; ok {
-                               conflict[f.Src] = 1;
+                               conflict[f.Src] = 1
                        }
                }
                if f.Verb != patch.Delete {
                        if _, ok := dirty[f.Dst]; ok {
-                               conflict[f.Dst] = 1;
+                               conflict[f.Dst] = 1
                        }
                }
        }
        if len(conflict) > 0 {
                fmt.Fprintf(os.Stderr, "cannot apply patch to locally modified files:\n");
                for name := range conflict {
-                       fmt.Fprintf(os.Stderr, "\t%s\n", name);
+                       fmt.Fprintf(os.Stderr, "\t%s\n", name)
                }
                os.Exit(2);
        }
@@ -136,7 +136,7 @@ func main() {
        for i := range op {
                o := &op[i];
                if o.Verb == patch.Delete {
-                       continue;
+                       continue
                }
                if o.Verb == patch.Add {
                        makeParent(o.Dst);
@@ -145,9 +145,9 @@ func main() {
                if o.Data != nil {
                        chk(io.WriteFile(o.Dst, o.Data, 0644));
                        if o.Verb == patch.Add {
-                               undoRm(o.Dst);
+                               undoRm(o.Dst)
                        } else {
-                               undoRevert(o.Dst);
+                               undoRevert(o.Dst)
                        }
                        changed[o.Dst] = 1;
                }
@@ -178,7 +178,7 @@ func main() {
        }
        sort.SortStrings(list);
        for _, f := range list {
-               fmt.Printf("%s\n", f);
+               fmt.Printf("%s\n", f)
        }
 }
 
@@ -195,25 +195,25 @@ func mkdirAll(path string, perm int) os.Error {
        dir, err := os.Lstat(path);
        if err == nil {
                if dir.IsDirectory() {
-                       return nil;
+                       return nil
                }
                return &os.PathError{"mkdir", path, os.ENOTDIR};
        }
 
        i := len(path);
        for i > 0 && path[i-1] == '/' { // Skip trailing slashes.
-               i--;
+               i--
        }
 
        j := i;
        for j > 0 && path[j-1] != '/' { // Scan backward over element.
-               j--;
+               j--
        }
 
        if j > 0 {
                err = mkdirAll(path[0 : j-1], perm);
                if err != nil {
-                       return err;
+                       return err
                }
        }
 
@@ -223,7 +223,7 @@ func mkdirAll(path string, perm int) os.Error {
                // double-checking that directory doesn't exist.
                dir, err1 := os.Lstat(path);
                if err1 == nil && dir.IsDirectory() {
-                       return nil;
+                       return nil
                }
                return err;
        }
@@ -253,7 +253,7 @@ func undoRm(name string)    { undoLog.Push(undo(func() os.Error { return os.Remove(
 func runUndo() {
        for i := undoLog.Len() - 1; i >= 0; i-- {
                if err := undoLog.At(i).(undo)(); err != nil {
-                       fmt.Fprintf(os.Stderr, "%s\n", err);
+                       fmt.Fprintf(os.Stderr, "%s\n", err)
                }
        }
 }
@@ -263,7 +263,7 @@ func runUndo() {
 func hgRoot() (string, os.Error) {
        out, err := run([]string{"hg", "root"}, nil);
        if err != nil {
-               return "", err;
+               return "", err
        }
        return strings.TrimSpace(out), nil;
 }
@@ -280,7 +280,7 @@ func hgIncoming() bool {
 func hgModified() ([]string, os.Error) {
        out, err := run([]string{"hg", "status", "-n"}, nil);
        if err != nil {
-               return nil, err;
+               return nil, err
        }
        return strings.Split(strings.TrimSpace(out), "\n", 0), nil;
 }
@@ -320,7 +320,7 @@ func hgRename(dst, src string) os.Error {
 func copy(a []string) []string {
        b := make([]string, len(a));
        for i, s := range a {
-               b[i] = s;
+               b[i] = s
        }
        return b;
 }
@@ -338,7 +338,7 @@ func run(argv []string, input []byte) (out string, err os.Error) {
        if !ok {
                prog, err = exec.LookPath(argv[0]);
                if err != nil {
-                       goto Error;
+                       goto Error
                }
                lookPathCache[argv[0]] = prog;
        }
@@ -347,12 +347,12 @@ func run(argv []string, input []byte) (out string, err os.Error) {
        if len(input) == 0 {
                cmd, err = exec.Run(prog, argv, os.Environ(), exec.DevNull, exec.Pipe, exec.MergeWithStdout);
                if err != nil {
-                       goto Error;
+                       goto Error
                }
        } else {
                cmd, err = exec.Run(prog, argv, os.Environ(), exec.Pipe, exec.Pipe, exec.MergeWithStdout);
                if err != nil {
-                       goto Error;
+                       goto Error
                }
                go func() {
                        cmd.Stdin.Write(input);
@@ -369,7 +369,7 @@ func run(argv []string, input []byte) (out string, err os.Error) {
        }
        w, err := cmd.Wait(0);
        if err != nil {
-               goto Error;
+               goto Error
        }
        if !w.Exited() || w.ExitStatus() != 0 {
                err = w;
index 8cb40304d753bc06e5c2ac2ae9a674be9b1f705b..a10b913283c24cccdd22afd81c411718a2b6b773 100644 (file)
@@ -50,10 +50,10 @@ func NewReader(r io.Reader) *Reader { return &Reader{r: r} }
 func (tr *Reader) Next() (*Header, os.Error) {
        var hdr *Header;
        if tr.err == nil {
-               tr.skipUnread();
+               tr.skipUnread()
        }
        if tr.err == nil {
-               hdr = tr.readHeader();
+               hdr = tr.readHeader()
        }
        return hdr, tr.err;
 }
@@ -63,7 +63,7 @@ func (tr *Reader) Next() (*Header, os.Error) {
 func cString(b []byte) string {
        n := 0;
        for n < len(b) && b[n] != 0 {
-               n++;
+               n++
        }
        return string(b[0:n]);
 }
@@ -71,15 +71,15 @@ func cString(b []byte) string {
 func (tr *Reader) octal(b []byte) int64 {
        // Removing leading spaces.
        for len(b) > 0 && b[0] == ' ' {
-               b = b[1:len(b)];
+               b = b[1:len(b)]
        }
        // Removing trailing NULs and spaces.
        for len(b) > 0 && (b[len(b)-1] == ' ' || b[len(b)-1] == '\x00') {
-               b = b[0 : len(b)-1];
+               b = b[0 : len(b)-1]
        }
        x, err := strconv.Btoui64(cString(b), 8);
        if err != nil {
-               tr.err = err;
+               tr.err = err
        }
        return int64(x);
 }
@@ -87,7 +87,7 @@ func (tr *Reader) octal(b []byte) int64 {
 type ignoreWriter struct{}
 
 func (ignoreWriter) Write(b []byte) (n int, err os.Error) {
-       return len(b), nil;
+       return len(b), nil
 }
 
 // Skip any unread bytes in the existing file entry, as well as any alignment padding.
@@ -95,16 +95,16 @@ func (tr *Reader) skipUnread() {
        nr := tr.nb + tr.pad;   // number of bytes to skip
 
        if sr, ok := tr.r.(io.Seeker); ok {
-               _, tr.err = sr.Seek(nr, 1);
+               _, tr.err = sr.Seek(nr, 1)
        } else {
-               _, tr.err = io.Copyn(ignoreWriter{}, tr.r, nr);
+               _, tr.err = io.Copyn(ignoreWriter{}, tr.r, nr)
        }
        tr.nb, tr.pad = 0, 0;
 }
 
 func (tr *Reader) verifyChecksum(header []byte) bool {
        if tr.err != nil {
-               return false;
+               return false
        }
 
        given := tr.octal(header[148:156]);
@@ -115,16 +115,16 @@ func (tr *Reader) verifyChecksum(header []byte) bool {
 func (tr *Reader) readHeader() *Header {
        header := make([]byte, blockSize);
        if _, tr.err = io.ReadFull(tr.r, header); tr.err != nil {
-               return nil;
+               return nil
        }
 
        // Two blocks of zero bytes marks the end of the archive.
        if bytes.Equal(header, zeroBlock[0 : blockSize]) {
                if _, tr.err = io.ReadFull(tr.r, header); tr.err != nil {
-                       return nil;
+                       return nil
                }
                if !bytes.Equal(header, zeroBlock[0 : blockSize]) {
-                       tr.err = HeaderError;
+                       tr.err = HeaderError
                }
                return nil;
        }
@@ -156,12 +156,12 @@ func (tr *Reader) readHeader() *Header {
        switch magic {
        case "ustar\x0000":     // POSIX tar (1003.1-1988)
                if string(header[508:512]) == "tar\x00" {
-                       format = "star";
+                       format = "star"
                } else {
-                       format = "posix";
+                       format = "posix"
                }
        case "ustar  \x00":     // old GNU tar
-               format = "gnu";
+               format = "gnu"
        }
 
        switch format {
@@ -177,14 +177,14 @@ func (tr *Reader) readHeader() *Header {
                var prefix string;
                switch format {
                case "posix", "gnu":
-                       prefix = cString(s.next(155));
+                       prefix = cString(s.next(155))
                case "star":
                        prefix = cString(s.next(131));
                        hdr.Atime = tr.octal(s.next(12));
                        hdr.Ctime = tr.octal(s.next(12));
                }
                if len(prefix) > 0 {
-                       hdr.Name = prefix + "/" + hdr.Name;
+                       hdr.Name = prefix + "/" + hdr.Name
                }
        }
 
@@ -206,7 +206,7 @@ func (tr *Reader) readHeader() *Header {
 // until Next is called to advance to the next entry.
 func (tr *Reader) Read(b []uint8) (n int, err os.Error) {
        if int64(len(b)) > tr.nb {
-               b = b[0 : tr.nb];
+               b = b[0 : tr.nb]
        }
        n, err = tr.r.Read(b);
        tr.nb -= int64(n);
index 0cefc08693ca116a60264630259f79aef41b780f..0e6f40082bd5b7a33436b159c939797dd167781d 100644 (file)
@@ -120,12 +120,12 @@ testLoop:
                        }
                        if !reflect.DeepEqual(hdr, header) {
                                t.Errorf("test %d, entry %d: Incorrect header:\nhave %+v\nwant %+v",
-                                       i, j, *hdr, *header);
+                                       i, j, *hdr, *header)
                        }
                }
                hdr, err := tr.Next();
                if hdr != nil || err != nil {
-                       t.Errorf("test %d: Unexpected entry or error: hdr=%v err=%v", i, err);
+                       t.Errorf("test %d: Unexpected entry or error: hdr=%v err=%v", i, err)
                }
                f.Close();
        }
@@ -134,7 +134,7 @@ testLoop:
 func TestPartialRead(t *testing.T) {
        f, err := os.Open("testdata/gnu.tar", os.O_RDONLY, 0444);
        if err != nil {
-               t.Fatalf("Unexpected error: %v", err);
+               t.Fatalf("Unexpected error: %v", err)
        }
        defer f.Close();
 
@@ -143,26 +143,26 @@ func TestPartialRead(t *testing.T) {
        // Read the first four bytes; Next() should skip the last byte.
        hdr, err := tr.Next();
        if err != nil || hdr == nil {
-               t.Fatalf("Didn't get first file: %v", err);
+               t.Fatalf("Didn't get first file: %v", err)
        }
        buf := make([]byte, 4);
        if _, err := io.ReadFull(tr, buf); err != nil {
-               t.Fatalf("Unexpected error: %v", err);
+               t.Fatalf("Unexpected error: %v", err)
        }
        if expected := strings.Bytes("Kilt"); !bytes.Equal(buf, expected) {
-               t.Errorf("Contents = %v, want %v", buf, expected);
+               t.Errorf("Contents = %v, want %v", buf, expected)
        }
 
        // Second file
        hdr, err = tr.Next();
        if err != nil || hdr == nil {
-               t.Fatalf("Didn't get second file: %v", err);
+               t.Fatalf("Didn't get second file: %v", err)
        }
        buf = make([]byte, 6);
        if _, err := io.ReadFull(tr, buf); err != nil {
-               t.Fatalf("Unexpected error: %v", err);
+               t.Fatalf("Unexpected error: %v", err)
        }
        if expected := strings.Bytes("Google"); !bytes.Equal(buf, expected) {
-               t.Errorf("Contents = %v, want %v", buf, expected);
+               t.Errorf("Contents = %v, want %v", buf, expected)
        }
 }
index a3c03cef14d8f6b0bc5d67ebd80de74e6732eb2b..16443fcc6b802cf5e4b6f69ee6f6691270635382 100644 (file)
@@ -53,7 +53,7 @@ func (tw *Writer) Flush() os.Error {
        for n > 0 && tw.err == nil {
                nr := n;
                if nr > blockSize {
-                       nr = blockSize;
+                       nr = blockSize
                }
                var nw int;
                nw, tw.err = tw.w.Write(zeroBlock[0:nr]);
@@ -68,15 +68,15 @@ func (tw *Writer) Flush() os.Error {
 func (tw *Writer) cString(b []byte, s string) {
        if len(s) > len(b) {
                if tw.err == nil {
-                       tw.err = ErrFieldTooLong;
+                       tw.err = ErrFieldTooLong
                }
                return;
        }
        for i, ch := range strings.Bytes(s) {
-               b[i] = ch;
+               b[i] = ch
        }
        if len(s) < len(b) {
-               b[len(s)] = 0;
+               b[len(s)] = 0
        }
 }
 
@@ -85,7 +85,7 @@ func (tw *Writer) octal(b []byte, x int64) {
        s := strconv.Itob64(x, 8);
        // leading zeros, but leave room for a NUL.
        for len(s)+1 < len(b) {
-               s = "0"+s;
+               s = "0"+s
        }
        tw.cString(b, s);
 }
@@ -111,10 +111,10 @@ func (tw *Writer) numeric(b []byte, x int64) {
 // WriteHeader calls Flush if it is not the first header.
 func (tw *Writer) WriteHeader(hdr *Header) os.Error {
        if tw.err == nil {
-               tw.Flush();
+               tw.Flush()
        }
        if tw.err != nil {
-               return tw.err;
+               return tw.err
        }
 
        tw.nb = int64(hdr.Size);
@@ -142,7 +142,7 @@ func (tw *Writer) WriteHeader(hdr *Header) os.Error {
 
        // Use the GNU magic instead of POSIX magic if we used any GNU extensions.
        if tw.usedBinary {
-               bytes.Copy(header[257:265], strings.Bytes("ustar  \x00"));
+               bytes.Copy(header[257:265], strings.Bytes("ustar  \x00"))
        }
 
        // The chksum field is terminated by a NUL and a space.
@@ -153,7 +153,7 @@ func (tw *Writer) WriteHeader(hdr *Header) os.Error {
 
        if tw.err != nil {
                // problem with header; probably integer too big for a field.
-               return tw.err;
+               return tw.err
        }
 
        _, tw.err = tw.w.Write(header);
@@ -173,7 +173,7 @@ func (tw *Writer) Write(b []uint8) (n int, err os.Error) {
        n, err = tw.w.Write(b);
        tw.nb -= int64(n);
        if err == nil && overwrite {
-               err = ErrWriteTooLong;
+               err = ErrWriteTooLong
        }
        tw.err = err;
        return;
@@ -181,7 +181,7 @@ func (tw *Writer) Write(b []uint8) (n int, err os.Error) {
 
 func (tw *Writer) Close() os.Error {
        if tw.err != nil || tw.closed {
-               return tw.err;
+               return tw.err
        }
        tw.Flush();
        tw.closed = true;
@@ -190,7 +190,7 @@ func (tw *Writer) Close() os.Error {
        for i := 0; i < 2; i++ {
                _, tw.err = tw.w.Write(zeroBlock);
                if tw.err != nil {
-                       break;
+                       break
                }
        }
        return tw.err;
index 94251f9a5e72d4d7ac96d35969e62b5a13f47e45..5edeaba078180a6468cc2f6c404c9634b40ca8fc 100644 (file)
@@ -87,9 +87,9 @@ func bytestr(offset int, b []byte) string {
        for _, ch := range b {
                switch {
                case '0' <= ch && ch <= '9', 'A' <= ch && ch <= 'Z', 'a' <= ch && ch <= 'z':
-                       s += fmt.Sprintf("  %c", ch);
+                       s += fmt.Sprintf("  %c", ch)
                default:
-                       s += fmt.Sprintf(" %02x", ch);
+                       s += fmt.Sprintf(" %02x", ch)
                }
        }
        return s;
@@ -102,15 +102,15 @@ func bytediff(a []byte, b []byte) string {
        for offset := 0; len(a)+len(b) > 0; offset += rowLen {
                na, nb := rowLen, rowLen;
                if na > len(a) {
-                       na = len(a);
+                       na = len(a)
                }
                if nb > len(b) {
-                       nb = len(b);
+                       nb = len(b)
                }
                sa := bytestr(offset, a[0:na]);
                sb := bytestr(offset, b[0:nb]);
                if sa != sb {
-                       s += fmt.Sprintf("-%v\n+%v\n", sa, sb);
+                       s += fmt.Sprintf("-%v\n+%v\n", sa, sb)
                }
                a = a[na:len(a)];
                b = b[nb:len(b)];
@@ -147,7 +147,7 @@ testLoop:
                actual := buf.Bytes();
                if !bytes.Equal(expected, actual) {
                        t.Errorf("test %d: Incorrect result: (-=expected, +=actual)\n%v",
-                               i, bytediff(expected, actual));
+                               i, bytediff(expected, actual))
                }
        }
 }
index fac5bba556b393c6b9c6067b3be6433d887553a4..b787bd8249ba1cd47a8e15152431d0f6d77e60ee 100644 (file)
@@ -82,10 +82,10 @@ func parseInt64(bytes []byte) (ret int64, err os.Error) {
 func parseInt(bytes []byte) (int, os.Error) {
        ret64, err := parseInt64(bytes);
        if err != nil {
-               return 0, err;
+               return 0, err
        }
        if ret64 != int64(int(ret64)) {
-               return 0, StructuralError{"integer too large"};
+               return 0, StructuralError{"integer too large"}
        }
        return int(ret64), nil;
 }
@@ -104,7 +104,7 @@ type BitString struct {
 // returns false.
 func (b BitString) At(i int) int {
        if i < 0 || i >= b.BitLength {
-               return 0;
+               return 0
        }
        x := i/8;
        y := 7-uint(i%8);
@@ -155,7 +155,7 @@ func parseObjectIdentifier(bytes []byte) (s []int, err os.Error) {
                var v int;
                v, offset, err = parseBase128Int(bytes, offset);
                if err != nil {
-                       return;
+                       return
                }
                s[i] = v;
        }
@@ -177,7 +177,7 @@ func parseBase128Int(bytes []byte, initOffset int) (ret, offset int, err os.Erro
                ret |= int(b&0x7f);
                offset++;
                if b&0x80 == 0 {
-                       return;
+                       return
                }
        }
        err = SyntaxError{"truncated base 128 integer"};
@@ -192,12 +192,12 @@ func isDigit(b byte) bool { return '0' <= b && b <= '9' }
 func twoDigits(bytes []byte, max int) (int, bool) {
        for i := 0; i < 2; i++ {
                if !isDigit(bytes[i]) {
-                       return 0, false;
+                       return 0, false
                }
        }
        value := (int(bytes[0])-'0')*10 + int(bytes[1]-'0');
        if value > max {
-               return 0, false;
+               return 0, false
        }
        return value, true;
 }
@@ -225,54 +225,54 @@ func parseUTCTime(bytes []byte) (ret time.Time, err os.Error) {
        // RFC 5280, section 5.1.2.4 says that years 2050 or later use another date
        // scheme.
        if year > 50 {
-               ret.Year = 1900+int64(year);
+               ret.Year = 1900+int64(year)
        } else {
-               ret.Year = 2000+int64(year);
+               ret.Year = 2000+int64(year)
        }
        ret.Month, ok2 = twoDigits(bytes[2:4], 12);
        ret.Day, ok3 = twoDigits(bytes[4:6], 31);
        ret.Hour, ok4 = twoDigits(bytes[6:8], 23);
        ret.Minute, ok5 = twoDigits(bytes[8:10], 59);
        if !ok1 || !ok2 || !ok3 || !ok4 || !ok5 {
-               goto Error;
+               goto Error
        }
        bytes = bytes[10:len(bytes)];
        switch bytes[0] {
        case '0', '1', '2', '3', '4', '5', '6':
                if len(bytes) < 3 {
-                       goto Error;
+                       goto Error
                }
                ret.Second, ok1 = twoDigits(bytes[0:2], 60);    // 60, not 59, because of leap seconds.
                if !ok1 {
-                       goto Error;
+                       goto Error
                }
                bytes = bytes[2:len(bytes)];
        }
        if len(bytes) == 0 {
-               goto Error;
+               goto Error
        }
        switch bytes[0] {
        case 'Z':
                if len(bytes) != 1 {
-                       goto Error;
+                       goto Error
                }
                return;
        case '-', '+':
                if len(bytes) != 5 {
-                       goto Error;
+                       goto Error
                }
                hours, ok1 := twoDigits(bytes[1:3], 12);
                minutes, ok2 := twoDigits(bytes[3:5], 59);
                if !ok1 || !ok2 {
-                       goto Error;
+                       goto Error
                }
                sign := 1;
                if bytes[0] == '-' {
-                       sign = -1;
+                       sign = -1
                }
                ret.ZoneOffset = sign*(60*(hours*60 + minutes));
        default:
-               goto Error;
+               goto Error
        }
        return;
 
@@ -306,7 +306,7 @@ func isPrintable(b byte) bool {
                b == ' ' ||
                b == ':' ||
                b == '=' ||
-               b == '?';
+               b == '?'
 }
 
 // IA5String
@@ -383,7 +383,7 @@ func parseTagAndLength(bytes []byte, initOffset int) (ret tagAndLength, offset i
        if ret.tag == 0x1f {
                ret.tag, offset, err = parseBase128Int(bytes, offset);
                if err != nil {
-                       return;
+                       return
                }
        }
        if offset >= len(bytes) {
@@ -394,7 +394,7 @@ func parseTagAndLength(bytes []byte, initOffset int) (ret tagAndLength, offset i
        offset++;
        if b&0x80 == 0 {
                // The length is encoded in the bottom 7 bits.
-               ret.length = int(b&0x7f);
+               ret.length = int(b&0x7f)
        } else {
                // Bottom 7 bits give the number of length bytes to follow.
                numBytes := int(b&0x7f);
@@ -423,7 +423,7 @@ func parseTagAndLength(bytes []byte, initOffset int) (ret tagAndLength, offset i
        // We magically map SET and SET OF to SEQUENCE and SEQUENCE OF
        // because we treat everything as ordered.
        if ret.tag == tagSet {
-               ret.tag = tagSequence;
+               ret.tag = tagSequence
        }
        return;
 }
@@ -464,7 +464,7 @@ func parseFieldParameters(str string) (ret fieldParameters) {
        for _, part := range strings.Split(str, ",", 0) {
                switch {
                case part == "optional":
-                       ret.optional = true;
+                       ret.optional = true
                case part == "explicit":
                        ret.explicit = true;
                        if ret.tag == nil {
@@ -493,28 +493,28 @@ func parseFieldParameters(str string) (ret fieldParameters) {
 func getUniversalType(t reflect.Type) (tagNumber int, isCompound, ok bool) {
        switch t {
        case objectIdentifierType:
-               return tagOID, false, true;
+               return tagOID, false, true
        case bitStringType:
-               return tagBitString, false, true;
+               return tagBitString, false, true
        case timeType:
-               return tagUTCTime, false, true;
+               return tagUTCTime, false, true
        }
        switch i := t.(type) {
        case *reflect.BoolType:
-               return tagBoolean, false, true;
+               return tagBoolean, false, true
        case *reflect.IntType:
-               return tagInteger, false, true;
+               return tagInteger, false, true
        case *reflect.Int64Type:
-               return tagInteger, false, true;
+               return tagInteger, false, true
        case *reflect.StructType:
-               return tagSequence, true, true;
+               return tagSequence, true, true
        case *reflect.SliceType:
                if _, ok := t.(*reflect.SliceType).Elem().(*reflect.Uint8Type); ok {
-                       return tagOctetString, false, true;
+                       return tagOctetString, false, true
                }
                return tagSequence, true, true;
        case *reflect.StringType:
-               return tagPrintableString, false, true;
+               return tagPrintableString, false, true
        }
        return 0, false, false;
 }
@@ -536,7 +536,7 @@ func parseSequenceOf(bytes []byte, sliceType *reflect.SliceType, elemType reflec
                var t tagAndLength;
                t, offset, err = parseTagAndLength(bytes, offset);
                if err != nil {
-                       return;
+                       return
                }
                if t.class != classUniversal || t.isCompound != compoundType || t.tag != expectedTag {
                        err = StructuralError{"sequence tag mismatch"};
@@ -555,7 +555,7 @@ func parseSequenceOf(bytes []byte, sliceType *reflect.SliceType, elemType reflec
        for i := 0; i < numElements; i++ {
                offset, err = parseField(ret.Elem(i), bytes, offset, params);
                if err != nil {
-                       return;
+                       return
                }
        }
        return;
@@ -571,7 +571,7 @@ var (
 // invalidLength returns true iff offset + length > sliceLength, or if the
 // addition would overflow.
 func invalidLength(offset, length, sliceLength int) bool {
-       return offset+length < offset || offset+length > sliceLength;
+       return offset+length < offset || offset+length > sliceLength
 }
 
 // parseField is the main parsing function. Given a byte array and an offset
@@ -584,7 +584,7 @@ func parseField(v reflect.Value, bytes []byte, initOffset int, params fieldParam
        // If we have run out of data, it may be that there are optional elements at the end.
        if offset == len(bytes) {
                if !setDefaultValue(v, params) {
-                       err = SyntaxError{"sequence truncated"};
+                       err = SyntaxError{"sequence truncated"}
                }
                return;
        }
@@ -594,7 +594,7 @@ func parseField(v reflect.Value, bytes []byte, initOffset int, params fieldParam
                var t tagAndLength;
                t, offset, err = parseTagAndLength(bytes, offset);
                if err != nil {
-                       return;
+                       return
                }
                if invalidLength(offset, t.length, len(bytes)) {
                        err = SyntaxError{"data truncated"};
@@ -612,7 +612,7 @@ func parseField(v reflect.Value, bytes []byte, initOffset int, params fieldParam
                var t tagAndLength;
                t, offset, err = parseTagAndLength(bytes, offset);
                if err != nil {
-                       return;
+                       return
                }
                if invalidLength(offset, t.length, len(bytes)) {
                        err = SyntaxError{"data truncated"};
@@ -623,29 +623,29 @@ func parseField(v reflect.Value, bytes []byte, initOffset int, params fieldParam
                        innerBytes := bytes[offset : offset + t.length];
                        switch t.tag {
                        case tagPrintableString:
-                               result, err = parsePrintableString(innerBytes);
+                               result, err = parsePrintableString(innerBytes)
                        case tagIA5String:
-                               result, err = parseIA5String(innerBytes);
+                               result, err = parseIA5String(innerBytes)
                        case tagInteger:
-                               result, err = parseInt64(innerBytes);
+                               result, err = parseInt64(innerBytes)
                        case tagBitString:
-                               result, err = parseBitString(innerBytes);
+                               result, err = parseBitString(innerBytes)
                        case tagOID:
-                               result, err = parseObjectIdentifier(innerBytes);
+                               result, err = parseObjectIdentifier(innerBytes)
                        case tagUTCTime:
-                               result, err = parseUTCTime(innerBytes);
+                               result, err = parseUTCTime(innerBytes)
                        case tagOctetString:
-                               result = innerBytes;
+                               result = innerBytes
                        default:
                                // If we don't know how to handle the type, we just leave Value as nil.
                        }
                }
                offset += t.length;
                if err != nil {
-                       return;
+                       return
                }
                if result != nil {
-                       ifaceValue.Set(reflect.NewValue(result));
+                       ifaceValue.Set(reflect.NewValue(result))
                }
                return;
        }
@@ -657,21 +657,21 @@ func parseField(v reflect.Value, bytes []byte, initOffset int, params fieldParam
 
        t, offset, err := parseTagAndLength(bytes, offset);
        if err != nil {
-               return;
+               return
        }
        if params.explicit {
                if t.class == classContextSpecific && t.tag == *params.tag && t.isCompound {
                        t, offset, err = parseTagAndLength(bytes, offset);
                        if err != nil {
-                               return;
+                               return
                        }
                } else {
                        // The tags didn't match, it might be an optional element.
                        ok := setDefaultValue(v, params);
                        if ok {
-                               offset = initOffset;
+                               offset = initOffset
                        } else {
-                               err = StructuralError{"explicitly tagged member didn't match"};
+                               err = StructuralError{"explicitly tagged member didn't match"}
                        }
                        return;
                }
@@ -682,7 +682,7 @@ func parseField(v reflect.Value, bytes []byte, initOffset int, params fieldParam
        // PrintableString when it sees a string so, if we see an IA5String on
        // the wire, we change the universal type to match.
        if universalTag == tagPrintableString && t.tag == tagIA5String {
-               universalTag = tagIA5String;
+               universalTag = tagIA5String
        }
 
        expectedClass := classUniversal;
@@ -698,9 +698,9 @@ func parseField(v reflect.Value, bytes []byte, initOffset int, params fieldParam
                // Tags don't match. Again, it could be an optional element.
                ok := setDefaultValue(v, params);
                if ok {
-                       offset = initOffset;
+                       offset = initOffset
                } else {
-                       err = StructuralError{fmt.Sprintf("tags don't match (%d vs %+v) %+v %s %#v", expectedTag, t, params, fieldType.Name(), bytes[offset:len(bytes)])};
+                       err = StructuralError{fmt.Sprintf("tags don't match (%d vs %+v) %+v %s %#v", expectedTag, t, params, fieldType.Name(), bytes[offset:len(bytes)])}
                }
                return;
        }
@@ -717,7 +717,7 @@ func parseField(v reflect.Value, bytes []byte, initOffset int, params fieldParam
                sliceValue := v.(*reflect.SliceValue);
                sliceValue.Set(reflect.MakeSlice(sliceValue.Type().(*reflect.SliceType), len(newSlice), len(newSlice)));
                if err1 == nil {
-                       reflect.ArrayCopy(sliceValue, reflect.NewValue(newSlice).(reflect.ArrayOrSliceValue));
+                       reflect.ArrayCopy(sliceValue, reflect.NewValue(newSlice).(reflect.ArrayOrSliceValue))
                }
                offset += t.length;
                err = err1;
@@ -727,7 +727,7 @@ func parseField(v reflect.Value, bytes []byte, initOffset int, params fieldParam
                bs, err1 := parseBitString(innerBytes);
                offset += t.length;
                if err1 == nil {
-                       structValue.Set(reflect.NewValue(bs).(*reflect.StructValue));
+                       structValue.Set(reflect.NewValue(bs).(*reflect.StructValue))
                }
                err = err1;
                return;
@@ -736,7 +736,7 @@ func parseField(v reflect.Value, bytes []byte, initOffset int, params fieldParam
                time, err1 := parseUTCTime(innerBytes);
                offset += t.length;
                if err1 == nil {
-                       structValue.Set(reflect.NewValue(time).(*reflect.StructValue));
+                       structValue.Set(reflect.NewValue(time).(*reflect.StructValue))
                }
                err = err1;
                return;
@@ -746,7 +746,7 @@ func parseField(v reflect.Value, bytes []byte, initOffset int, params fieldParam
                parsedBool, err1 := parseBool(innerBytes);
                offset += t.length;
                if err1 == nil {
-                       val.Set(parsedBool);
+                       val.Set(parsedBool)
                }
                err = err1;
                return;
@@ -754,7 +754,7 @@ func parseField(v reflect.Value, bytes []byte, initOffset int, params fieldParam
                parsedInt, err1 := parseInt(innerBytes);
                offset += t.length;
                if err1 == nil {
-                       val.Set(parsedInt);
+                       val.Set(parsedInt)
                }
                err = err1;
                return;
@@ -762,7 +762,7 @@ func parseField(v reflect.Value, bytes []byte, initOffset int, params fieldParam
                parsedInt, err1 := parseInt64(innerBytes);
                offset += t.length;
                if err1 == nil {
-                       val.Set(parsedInt);
+                       val.Set(parsedInt)
                }
                err = err1;
                return;
@@ -773,7 +773,7 @@ func parseField(v reflect.Value, bytes []byte, initOffset int, params fieldParam
                        field := structType.Field(i);
                        innerOffset, err = parseField(val.Field(i), innerBytes, innerOffset, parseFieldParameters(field.Tag));
                        if err != nil {
-                               return;
+                               return
                        }
                }
                offset += t.length;
@@ -791,7 +791,7 @@ func parseField(v reflect.Value, bytes []byte, initOffset int, params fieldParam
                newSlice, err1 := parseSequenceOf(innerBytes, sliceType, sliceType.Elem());
                offset += t.length;
                if err1 == nil {
-                       val.Set(newSlice);
+                       val.Set(newSlice)
                }
                err = err1;
                return;
@@ -799,14 +799,14 @@ func parseField(v reflect.Value, bytes []byte, initOffset int, params fieldParam
                var v string;
                switch universalTag {
                case tagPrintableString:
-                       v, err = parsePrintableString(innerBytes);
+                       v, err = parsePrintableString(innerBytes)
                case tagIA5String:
-                       v, err = parseIA5String(innerBytes);
+                       v, err = parseIA5String(innerBytes)
                default:
-                       err = SyntaxError{fmt.Sprintf("internal error: unknown string type %d", universalTag)};
+                       err = SyntaxError{fmt.Sprintf("internal error: unknown string type %d", universalTag)}
                }
                if err == nil {
-                       val.Set(v);
+                       val.Set(v)
                }
                return;
        }
@@ -819,17 +819,17 @@ func parseField(v reflect.Value, bytes []byte, initOffset int, params fieldParam
 // wasn't provided or it failed to install it into the Value.
 func setDefaultValue(v reflect.Value, params fieldParameters) (ok bool) {
        if !params.optional {
-               return;
+               return
        }
        ok = true;
        if params.defaultValue == nil {
-               return;
+               return
        }
        switch val := v.(type) {
        case *reflect.IntValue:
-               val.Set(int(*params.defaultValue));
+               val.Set(int(*params.defaultValue))
        case *reflect.Int64Value:
-               val.Set(int64(*params.defaultValue));
+               val.Set(int64(*params.defaultValue))
        }
        return;
 }
index f9a7106d94e92c38d793ce71a0c13f3689ec6bf3..6d537fb5e38cc77f0ecaaf351d5727838f9fa98f 100644 (file)
@@ -35,10 +35,10 @@ func TestParseInt64(t *testing.T) {
        for i, test := range int64TestData {
                ret, err := parseInt64(test.in);
                if (err == nil) != test.ok {
-                       t.Errorf("#%d: Incorrect error result (did fail? %v, expected: %v)", i, err == nil, test.ok);
+                       t.Errorf("#%d: Incorrect error result (did fail? %v, expected: %v)", i, err == nil, test.ok)
                }
                if test.ok && ret != test.out {
-                       t.Errorf("#%d: Bad result: %v (expected %v)", i, ret, test.out);
+                       t.Errorf("#%d: Bad result: %v (expected %v)", i, ret, test.out)
                }
        }
 }
@@ -63,11 +63,11 @@ func TestBitString(t *testing.T) {
        for i, test := range bitStringTestData {
                ret, err := parseBitString(test.in);
                if (err == nil) != test.ok {
-                       t.Errorf("#%d: Incorrect error result (did fail? %v, expected: %v)", i, err == nil, test.ok);
+                       t.Errorf("#%d: Incorrect error result (did fail? %v, expected: %v)", i, err == nil, test.ok)
                }
                if err == nil {
                        if test.bitLength != ret.BitLength || bytes.Compare(ret.Bytes, test.out) != 0 {
-                               t.Errorf("#%d: Bad result: %v (expected %v %v)", i, ret, test.out, test.bitLength);
+                               t.Errorf("#%d: Bad result: %v (expected %v %v)", i, ret, test.out, test.bitLength)
                        }
                }
        }
@@ -76,16 +76,16 @@ func TestBitString(t *testing.T) {
 func TestBitStringAt(t *testing.T) {
        bs := BitString{[]byte{0x82, 0x40}, 16};
        if bs.At(0) != 1 {
-               t.Error("#1: Failed");
+               t.Error("#1: Failed")
        }
        if bs.At(1) != 0 {
-               t.Error("#2: Failed");
+               t.Error("#2: Failed")
        }
        if bs.At(6) != 1 {
-               t.Error("#3: Failed");
+               t.Error("#3: Failed")
        }
        if bs.At(9) != 1 {
-               t.Error("#4: Failed");
+               t.Error("#4: Failed")
        }
 }
 
@@ -107,11 +107,11 @@ func TestObjectIdentifier(t *testing.T) {
        for i, test := range objectIdentifierTestData {
                ret, err := parseObjectIdentifier(test.in);
                if (err == nil) != test.ok {
-                       t.Errorf("#%d: Incorrect error result (did fail? %v, expected: %v)", i, err == nil, test.ok);
+                       t.Errorf("#%d: Incorrect error result (did fail? %v, expected: %v)", i, err == nil, test.ok)
                }
                if err == nil {
                        if !reflect.DeepEqual(test.out, ret) {
-                               t.Errorf("#%d: Bad result: %v (expected %v)", i, ret, test.out);
+                               t.Errorf("#%d: Bad result: %v (expected %v)", i, ret, test.out)
                        }
                }
        }
@@ -142,11 +142,11 @@ func TestTime(t *testing.T) {
        for i, test := range timeTestData {
                ret, err := parseUTCTime(strings.Bytes(test.in));
                if (err == nil) != test.ok {
-                       t.Errorf("#%d: Incorrect error result (did fail? %v, expected: %v)", i, err == nil, test.ok);
+                       t.Errorf("#%d: Incorrect error result (did fail? %v, expected: %v)", i, err == nil, test.ok)
                }
                if err == nil {
                        if !reflect.DeepEqual(test.out, ret) {
-                               t.Errorf("#%d: Bad result: %v (expected %v)", i, ret, test.out);
+                               t.Errorf("#%d: Bad result: %v (expected %v)", i, ret, test.out)
                        }
                }
        }
@@ -177,10 +177,10 @@ func TestParseTagAndLength(t *testing.T) {
        for i, test := range tagAndLengthData {
                tagAndLength, _, err := parseTagAndLength(test.in, 0);
                if (err == nil) != test.ok {
-                       t.Errorf("#%d: Incorrect error result (did pass? %v, expected: %v)", i, err == nil, test.ok);
+                       t.Errorf("#%d: Incorrect error result (did pass? %v, expected: %v)", i, err == nil, test.ok)
                }
                if err == nil && !reflect.DeepEqual(test.out, tagAndLength) {
-                       t.Errorf("#%d: Bad result: %v (expected %v)", i, tagAndLength, test.out);
+                       t.Errorf("#%d: Bad result: %v (expected %v)", i, tagAndLength, test.out)
                }
        }
 }
@@ -213,7 +213,7 @@ func TestParseFieldParameters(t *testing.T) {
        for i, test := range parseFieldParametersTestData {
                f := parseFieldParameters(test.in);
                if !reflect.DeepEqual(f, test.out) {
-                       t.Errorf("#%d: Bad result: %v (expected %v)", i, f, test.out);
+                       t.Errorf("#%d: Bad result: %v (expected %v)", i, f, test.out)
                }
        }
 }
@@ -260,10 +260,10 @@ func TestUnmarshal(t *testing.T) {
                val := pv.Interface();
                err := Unmarshal(val, test.in);
                if err != nil {
-                       t.Errorf("Unmarshal failed at index %d %v", i, err);
+                       t.Errorf("Unmarshal failed at index %d %v", i, err)
                }
                if !reflect.DeepEqual(val, test.out) {
-                       t.Errorf("#%d:\nhave %#v\nwant %#v", i, val, test.out);
+                       t.Errorf("#%d:\nhave %#v\nwant %#v", i, val, test.out)
                }
        }
 }
@@ -310,10 +310,10 @@ func TestCertificate(t *testing.T) {
        // This is a minimal, self-signed certificate that should parse correctly.
        var cert Certificate;
        if err := Unmarshal(&cert, derEncodedSelfSignedCertBytes); err != nil {
-               t.Errorf("Unmarshal failed: %v", err);
+               t.Errorf("Unmarshal failed: %v", err)
        }
        if !reflect.DeepEqual(cert, derEncodedSelfSignedCert) {
-               t.Errorf("Bad result:\ngot: %+v\nwant: %+v\n", cert, derEncodedSelfSignedCert);
+               t.Errorf("Bad result:\ngot: %+v\nwant: %+v\n", cert, derEncodedSelfSignedCert)
        }
 }
 
@@ -323,7 +323,7 @@ func TestCertificateWithNUL(t *testing.T) {
 
        var cert Certificate;
        if err := Unmarshal(&cert, derEncodedPaypalNULCertBytes); err == nil {
-               t.Error("Unmarshal succeeded, should not have");
+               t.Error("Unmarshal succeeded, should not have")
        }
 }
 
index d442e1dda3e6ec714f7820973b7cc71546df5646..dfef4f6e37062e0a3f172d59787bbc564adb80f3 100644 (file)
@@ -33,7 +33,7 @@ func addWW_g(x, y, c Word) (z1, z0 Word) {
        yc := y+c;
        z0 = x+yc;
        if z0 < x || yc < y {
-               z1 = 1;
+               z1 = 1
        }
        return;
 }
@@ -44,7 +44,7 @@ func subWW_g(x, y, c Word) (z1, z0 Word) {
        yc := y+c;
        z0 = x-yc;
        if z0 > x || yc < y {
-               z1 = 1;
+               z1 = 1
        }
        return;
 }
@@ -57,7 +57,7 @@ func mulWW_g(x, y Word) (z1, z0 Word) {
        // and return the product as 2 Words.
 
        if x < y {
-               x, y = y, x;
+               x, y = y, x
        }
 
        if x < _B2 {
@@ -100,7 +100,7 @@ func mulWW_g(x, y Word) (z1, z0 Word) {
        t1a := t1;
        t1 += x0*y1;
        if t1 < t1a {
-               c++;
+               c++
        }
        t2 := x1*y1 + c*_B2;
 
@@ -114,7 +114,7 @@ func mulWW_g(x, y Word) (z1, z0 Word) {
        var c3 Word;
        z1 = t1 + t0>>_W2;
        if z1 < t1 {
-               c3++;
+               c3++
        }
        z1 >>= _W2;
        z1 += c3*_B2;
@@ -149,7 +149,7 @@ func mulAddWWW_g(x, y, c Word) (z1, z0 Word) {
        t1a := t1;
        t1 += x0*y1;
        if t1 < t1a {   // If the number got smaller then we overflowed.
-               c2++;
+               c2++
        }
 
        t2 := x1*y1 + c2*_B2;
@@ -164,7 +164,7 @@ func mulAddWWW_g(x, y, c Word) (z1, z0 Word) {
        var c3 Word;
        z1 = t1 + t0>>_W2;
        if z1 < t1 {
-               c3++;
+               c3++
        }
        z1 >>= _W2;
        z1 += t2 + c3*_B2;
@@ -213,7 +213,7 @@ func divStep(x1, x0, y Word) (q, r Word) {
 // Number of leading zeros in x.
 func leadingZeros(x Word) (n uint) {
        if x == 0 {
-               return uint(_W);
+               return uint(_W)
        }
        for x&(1<<(_W-1)) == 0 {
                n++;
@@ -259,7 +259,7 @@ func divWW_g(x1, x0, y Word) (q, r Word) {
        r = x0>>z;
 
        if q1 != 0 {
-               panic("div out of range");
+               panic("div out of range")
        }
 
        return q0, r;
@@ -315,14 +315,14 @@ func init() {
 
 
 func (p *Word) at(i int) *Word {
-       return (*Word)(unsafe.Pointer(uintptr(unsafe.Pointer(p)) + uintptr(i)*_S));
+       return (*Word)(unsafe.Pointer(uintptr(unsafe.Pointer(p)) + uintptr(i)*_S))
 }
 
 
 func addVV_s(z, x, y *Word, n int) (c Word)
 func addVV_g(z, x, y *Word, n int) (c Word) {
        for i := 0; i < n; i++ {
-               c, *z.at(i) = addWW_g(*x.at(i), *y.at(i), c);
+               c, *z.at(i) = addWW_g(*x.at(i), *y.at(i), c)
        }
        return;
 }
@@ -331,7 +331,7 @@ func addVV_g(z, x, y *Word, n int) (c Word) {
 func subVV_s(z, x, y *Word, n int) (c Word)
 func subVV_g(z, x, y *Word, n int) (c Word) {
        for i := 0; i < n; i++ {
-               c, *z.at(i) = subWW_g(*x.at(i), *y.at(i), c);
+               c, *z.at(i) = subWW_g(*x.at(i), *y.at(i), c)
        }
        return;
 }
@@ -341,7 +341,7 @@ func addVW_s(z, x *Word, y Word, n int) (c Word)
 func addVW_g(z, x *Word, y Word, n int) (c Word) {
        c = y;
        for i := 0; i < n; i++ {
-               c, *z.at(i) = addWW_g(*x.at(i), c, 0);
+               c, *z.at(i) = addWW_g(*x.at(i), c, 0)
        }
        return;
 }
@@ -351,7 +351,7 @@ func subVW_s(z, x *Word, y Word, n int) (c Word)
 func subVW_g(z, x *Word, y Word, n int) (c Word) {
        c = y;
        for i := 0; i < n; i++ {
-               c, *z.at(i) = subWW_g(*x.at(i), c, 0);
+               c, *z.at(i) = subWW_g(*x.at(i), c, 0)
        }
        return;
 }
@@ -361,7 +361,7 @@ func mulAddVWW_s(z, x *Word, y, r Word, n int) (c Word)
 func mulAddVWW_g(z, x *Word, y, r Word, n int) (c Word) {
        c = r;
        for i := 0; i < n; i++ {
-               c, *z.at(i) = mulAddWWW_g(*x.at(i), y, c);
+               c, *z.at(i) = mulAddWWW_g(*x.at(i), y, c)
        }
        return;
 }
@@ -382,7 +382,7 @@ func divWVW_s(z *Word, xn Word, x *Word, y Word, n int) (r Word)
 func divWVW_g(z *Word, xn Word, x *Word, y Word, n int) (r Word) {
        r = xn;
        for i := n-1; i >= 0; i-- {
-               *z.at(i), r = divWW_g(r, *x.at(i), y);
+               *z.at(i), r = divWW_g(r, *x.at(i), y)
        }
        return;
 }
index 030b81f1689bf9370b194061171ca8f62914f525..205d51c0b1cc8f32d59c599a49a6e25bddf9d2f1 100644 (file)
@@ -30,7 +30,7 @@ var sumWW = []argWW{
 func testFunWW(t *testing.T, msg string, f funWW, a argWW) {
        z1, z0 := f(a.x, a.y, a.c);
        if z1 != a.z1 || z0 != a.z0 {
-               t.Errorf("%s%+v\n\tgot z1:z0 = %#x:%#x; want %#x:%#x", msg, a, z1, z0, a.z1, a.z0);
+               t.Errorf("%s%+v\n\tgot z1:z0 = %#x:%#x; want %#x:%#x", msg, a, z1, z0, a.z1, a.z0)
        }
 }
 
@@ -54,7 +54,7 @@ func TestFunWW(t *testing.T) {
 
 func addr(x []Word) *Word {
        if len(x) == 0 {
-               return nil;
+               return nil
        }
        return &x[0];
 }
@@ -90,7 +90,7 @@ func testFunVV(t *testing.T, msg string, f funVV, a argVV) {
                }
        }
        if c != a.c {
-               t.Errorf("%s%+v\n\tgot c = %#x; want %#x", msg, a, c, a.c);
+               t.Errorf("%s%+v\n\tgot c = %#x; want %#x", msg, a, c, a.c)
        }
 }
 
@@ -159,7 +159,7 @@ func testFunVW(t *testing.T, msg string, f funVW, a argVW) {
                }
        }
        if c != a.c {
-               t.Errorf("%s%+v\n\tgot c = %#x; want %#x", msg, a, c, a.c);
+               t.Errorf("%s%+v\n\tgot c = %#x; want %#x", msg, a, c, a.c)
        }
 }
 
@@ -222,7 +222,7 @@ func testFunVWW(t *testing.T, msg string, f funVWW, a argVWW) {
                }
        }
        if c != a.c {
-               t.Errorf("%s%+v\n\tgot c = %#x; want %#x", msg, a, c, a.c);
+               t.Errorf("%s%+v\n\tgot c = %#x; want %#x", msg, a, c, a.c)
        }
 }
 
@@ -250,7 +250,7 @@ func testFunWVW(t *testing.T, msg string, f funWVW, a argWVW) {
                }
        }
        if r != a.r {
-               t.Errorf("%s%+v\n\tgot r = %#x; want %#x", msg, a, r, a.r);
+               t.Errorf("%s%+v\n\tgot r = %#x; want %#x", msg, a, r, a.r)
        }
 }
 
@@ -286,7 +286,7 @@ func TestMulWW(t *testing.T) {
        for i, test := range mulWWTests {
                q, r := mulWW_g(test.x, test.y);
                if q != test.q || r != test.r {
-                       t.Errorf("#%d got (%x, %x) want (%x, %x)", i, q, r, test.q, test.r);
+                       t.Errorf("#%d got (%x, %x) want (%x, %x)", i, q, r, test.q, test.r)
                }
        }
 }
@@ -311,7 +311,7 @@ func TestMulAddWWW(t *testing.T) {
        for i, test := range mulAddWWWTests {
                q, r := mulAddWWW_g(test.x, test.y, test.c);
                if q != test.q || r != test.r {
-                       t.Errorf("#%d got (%x, %x) want (%x, %x)", i, q, r, test.q, test.r);
+                       t.Errorf("#%d got (%x, %x) want (%x, %x)", i, q, r, test.q, test.r)
                }
        }
 }
index 235becfeb3f3176fac02be711010bb4f9224db75..a92875bbdd70e9397c2d9e7d19f3f70a6f36930d 100644 (file)
@@ -57,7 +57,7 @@ func (z *Int) Add(x, y *Int) *Int {
                }
        }
        if len(z.abs) == 0 {
-               z.neg = false;  // 0 has no sign
+               z.neg = false   // 0 has no sign
        }
        return z;
 }
@@ -82,7 +82,7 @@ func (z *Int) Sub(x, y *Int) *Int {
                }
        }
        if len(z.abs) == 0 {
-               z.neg = false;  // 0 has no sign
+               z.neg = false   // 0 has no sign
        }
        return z;
 }
@@ -120,7 +120,7 @@ func (z *Int) Mod(x, y *Int) (r *Int) {
 
 func div(q, r, x, y *Int) {
        if len(y.abs) == 0 {
-               panic("Divide by zero undefined");
+               panic("Divide by zero undefined")
        }
 
        if cmpNN(x.abs, y.abs) < 0 {
@@ -131,12 +131,12 @@ func div(q, r, x, y *Int) {
                src := x.abs;
                dst := x.abs;
                if r == x {
-                       dst = nil;
+                       dst = nil
                }
 
                r.abs = makeN(dst, len(src), false);
                for i, v := range src {
-                       r.abs[i] = v;
+                       r.abs[i] = v
                }
                return;
        }
@@ -185,12 +185,12 @@ func CmpInt(x, y *Int) (r int) {
        case x.neg == y.neg:
                r = cmpNN(x.abs, y.abs);
                if x.neg {
-                       r = -r;
+                       r = -r
                }
        case x.neg:
-               r = -1;
+               r = -1
        default:
-               r = 1;
+               r = 1
        }
        return;
 }
@@ -199,7 +199,7 @@ func CmpInt(x, y *Int) (r int) {
 func (z *Int) String() string {
        s := "";
        if z.neg {
-               s = "-";
+               s = "-"
        }
        return s + stringN(z.abs, 10);
 }
@@ -212,23 +212,23 @@ func (z *Int) SetString(s string, base int) (*Int, bool) {
        var scanned int;
 
        if base == 1 || base > 16 {
-               goto Error;
+               goto Error
        }
 
        if len(s) == 0 {
-               goto Error;
+               goto Error
        }
 
        if s[0] == '-' {
                z.neg = true;
                s = s[1:len(s)];
        } else {
-               z.neg = false;
+               z.neg = false
        }
 
        z.abs, _, scanned = scanN(z.abs, s, base);
        if scanned != len(s) {
-               goto Error;
+               goto Error
        }
 
        return z, true;
@@ -293,7 +293,7 @@ func (z *Int) Bytes() []byte {
 
        i := 0;
        for i < len(b) && b[i] == 0 {
-               i++;
+               i++
        }
 
        return b[i:len(b)];
@@ -304,7 +304,7 @@ func (z *Int) Bytes() []byte {
 // considered to have a length of one.
 func (z *Int) Len() int {
        if len(z.abs) == 0 {
-               return 0;
+               return 0
        }
 
        return len(z.abs)*int(_W) - int(leadingZeros(z.abs[len(z.abs)-1]));
@@ -338,11 +338,11 @@ func (z *Int) Exp(x, y, m *Int) *Int {
                z.Mul(z, z);
 
                if v&mask != 0 {
-                       z.Mul(z, x);
+                       z.Mul(z, x)
                }
 
                if m != nil {
-                       z.Mod(z, m);
+                       z.Mod(z, m)
                }
 
                v <<= 1;
@@ -355,11 +355,11 @@ func (z *Int) Exp(x, y, m *Int) *Int {
                        z.Mul(z, z);
 
                        if v&mask != 0 {
-                               z.Mul(z, x);
+                               z.Mul(z, x)
                        }
 
                        if m != nil {
-                               z.Mod(z, m);
+                               z.Mod(z, m)
                        }
 
                        v <<= 1;
@@ -379,10 +379,10 @@ func GcdInt(d, x, y, a, b *Int) {
        if a.neg || b.neg {
                d.New(0);
                if x != nil {
-                       x.New(0);
+                       x.New(0)
                }
                if y != nil {
-                       y.New(0);
+                       y.New(0)
                }
                return;
        }
@@ -418,11 +418,11 @@ func GcdInt(d, x, y, a, b *Int) {
        }
 
        if x != nil {
-               *x = *lastX;
+               *x = *lastX
        }
 
        if y != nil {
-               *y = *lastY;
+               *y = *lastY
        }
 
        *d = *A;
index a89b7aa9e054c6820845b98794be0d5d7c14e028..e5795232a5645e2967a9d80e8ad25b4f5ae66182 100644 (file)
@@ -47,7 +47,7 @@ func TestSetZ(t *testing.T) {
                var z Int;
                z.Set(a.z);
                if CmpInt(&z, a.z) != 0 {
-                       t.Errorf("got z = %v; want %v", z, a.z);
+                       t.Errorf("got z = %v; want %v", z, a.z)
                }
        }
 }
@@ -57,7 +57,7 @@ func testFunZZ(t *testing.T, msg string, f funZZ, a argZZ) {
        var z Int;
        f(&z, a.x, a.y);
        if CmpInt(&z, a.z) != 0 {
-               t.Errorf("%s%+v\n\tgot z = %v; want %v", msg, a, &z, a.z);
+               t.Errorf("%s%+v\n\tgot z = %v; want %v", msg, a, &z, a.z)
        }
 }
 
@@ -121,7 +121,7 @@ func TestFact(t *testing.T) {
        for n, s := range facts {
                f := fact(n).String();
                if f != s {
-                       t.Errorf("%d! = %s; want %s", n, f, s);
+                       t.Errorf("%d! = %s; want %s", n, f, s)
                }
        }
 }
@@ -162,11 +162,11 @@ func TestSetString(t *testing.T) {
                        continue;
                }
                if !ok {
-                       continue;
+                       continue
                }
 
                if CmpInt(n, new(Int).New(test.out)) != 0 {
-                       t.Errorf("#%d (input '%s') got: %s want: %d\n", i, test.in, n, test.out);
+                       t.Errorf("#%d (input '%s') got: %s want: %d\n", i, test.in, n, test.out)
                }
        }
 }
@@ -197,7 +197,7 @@ func TestDivSigns(t *testing.T) {
                expectedR := new(Int).New(test.r);
 
                if CmpInt(q, expectedQ) != 0 || CmpInt(r, expectedR) != 0 {
-                       t.Errorf("#%d: got (%s, %s) want (%s, %s)", i, q, r, expectedQ, expectedR);
+                       t.Errorf("#%d: got (%s, %s) want (%s, %s)", i, q, r, expectedQ, expectedR)
                }
        }
 }
@@ -208,11 +208,11 @@ func checkSetBytes(b []byte) bool {
        hex2 := hex.EncodeToString(b);
 
        for len(hex1) < len(hex2) {
-               hex1 = "0"+hex1;
+               hex1 = "0"+hex1
        }
 
        for len(hex1) > len(hex2) {
-               hex2 = "0"+hex2;
+               hex2 = "0"+hex2
        }
 
        return hex1 == hex2;
@@ -222,7 +222,7 @@ func checkSetBytes(b []byte) bool {
 func TestSetBytes(t *testing.T) {
        err := quick.Check(checkSetBytes, nil);
        if err != nil {
-               t.Error(err);
+               t.Error(err)
        }
 }
 
@@ -236,7 +236,7 @@ func checkBytes(b []byte) bool {
 func TestBytes(t *testing.T) {
        err := quick.Check(checkSetBytes, nil);
        if err != nil {
-               t.Error(err);
+               t.Error(err)
        }
 }
 
@@ -246,13 +246,13 @@ func checkDiv(x, y []byte) bool {
        v := new(Int).SetBytes(y);
 
        if len(v.abs) == 0 {
-               return true;
+               return true
        }
 
        q, r := new(Int).Div(u, v);
 
        if CmpInt(r, v) >= 0 {
-               return false;
+               return false
        }
 
        uprime := new(Int).Set(q);
@@ -282,7 +282,7 @@ var divTests = []divTest{
 func TestDiv(t *testing.T) {
        err := quick.Check(checkDiv, nil);
        if err != nil {
-               t.Error(err);
+               t.Error(err)
        }
 
        for i, test := range divTests {
@@ -294,7 +294,7 @@ func TestDiv(t *testing.T) {
                q, r := new(Int).Div(x, y);
 
                if CmpInt(q, expectedQ) != 0 || CmpInt(r, expectedR) != 0 {
-                       t.Errorf("#%d got (%s, %s) want (%s, %s)", i, q, r, expectedQ, expectedR);
+                       t.Errorf("#%d got (%s, %s) want (%s, %s)", i, q, r, expectedQ, expectedR)
                }
        }
 }
@@ -314,7 +314,7 @@ func TestDivStepD6(t *testing.T) {
        const expectedR32 = "39614081266355540837921718287";
        if q.String() != expectedQ64 && q.String() != expectedQ32 ||
                r.String() != expectedR64 && r.String() != expectedR32 {
-               t.Errorf("got (%s, %s) want (%s, %s) or (%s, %s)", q, r, expectedQ64, expectedR64, expectedQ32, expectedR32);
+               t.Errorf("got (%s, %s) want (%s, %s) or (%s, %s)", q, r, expectedQ64, expectedR64, expectedQ32, expectedR32)
        }
 }
 
@@ -347,7 +347,7 @@ func TestLen(t *testing.T) {
                }
 
                if n.Len() != test.out {
-                       t.Errorf("#%d got %d want %d\n", i, n.Len(), test.out);
+                       t.Errorf("#%d got %d want %d\n", i, n.Len(), test.out)
                }
        }
 }
@@ -390,9 +390,9 @@ func TestExp(t *testing.T) {
                var m *Int;
 
                if len(test.m) == 0 {
-                       m, ok4 = nil, true;
+                       m, ok4 = nil, true
                } else {
-                       m, ok4 = new(Int).SetString(test.m, 0);
+                       m, ok4 = new(Int).SetString(test.m, 0)
                }
 
                if !ok1 || !ok2 || !ok3 || !ok4 {
@@ -402,7 +402,7 @@ func TestExp(t *testing.T) {
 
                z := new(Int).Exp(x, y, m);
                if CmpInt(z, out) != 0 {
-                       t.Errorf("#%d got %s want %s", i, z, out);
+                       t.Errorf("#%d got %s want %s", i, z, out)
                }
        }
 }
@@ -454,7 +454,7 @@ func TestGcd(t *testing.T) {
                if CmpInt(expectedX, x) != 0 ||
                        CmpInt(expectedY, y) != 0 ||
                        CmpInt(expectedD, d) != 0 {
-                       t.Errorf("#%d got (%s %s %s) want (%s %s %s)", i, x, y, d, expectedX, expectedY, expectedD);
+                       t.Errorf("#%d got (%s %s %s) want (%s %s %s)", i, x, y, d, expectedX, expectedY, expectedD)
                }
        }
 
index 99ddefb6276262c307a9980d53f5e6699408cd27..48162731534df3d4f077faf0f1d4ad956d88fc84 100644 (file)
@@ -37,7 +37,7 @@ package big
 func normN(z []Word) []Word {
        i := len(z);
        for i > 0 && z[i-1] == 0 {
-               i--;
+               i--
        }
        z = z[0:i];
        return z;
@@ -49,7 +49,7 @@ func makeN(z []Word, m int, clear bool) []Word {
                z = z[0:m];     // reuse z - has at least one extra word for a carry, if any
                if clear {
                        for i := range z {
-                               z[i] = 0;
+                               z[i] = 0
                        }
                }
                return z;
@@ -57,7 +57,7 @@ func makeN(z []Word, m int, clear bool) []Word {
 
        c := 4; // minimum capacity
        if m > c {
-               c = m;
+               c = m
        }
        return make([]Word, m, c+1);    // +1: extra word for a carry, if any
 }
@@ -65,7 +65,7 @@ func makeN(z []Word, m int, clear bool) []Word {
 
 func newN(z []Word, x uint64) []Word {
        if x == 0 {
-               return makeN(z, 0, false);
+               return makeN(z, 0, false)
        }
 
        // single-digit values
@@ -78,7 +78,7 @@ func newN(z []Word, x uint64) []Word {
        // compute number of words n required to represent x
        n := 0;
        for t := x; t > 0; t >>= _W {
-               n++;
+               n++
        }
 
        // split x into n words
@@ -95,7 +95,7 @@ func newN(z []Word, x uint64) []Word {
 func setN(z, x []Word) []Word {
        z = makeN(z, len(x), false);
        for i, d := range x {
-               z[i] = d;
+               z[i] = d
        }
        return z;
 }
@@ -107,20 +107,20 @@ func addNN(z, x, y []Word) []Word {
 
        switch {
        case m < n:
-               return addNN(z, y, x);
+               return addNN(z, y, x)
        case m == 0:
                // n == 0 because m >= n; result is 0
-               return makeN(z, 0, false);
+               return makeN(z, 0, false)
        case n == 0:
                // result is x
-               return setN(z, x);
+               return setN(z, x)
        }
        // m > 0
 
        z = makeN(z, m, false);
        c := addVV(&z[0], &x[0], &y[0], n);
        if m > n {
-               c = addVW(&z[n], &x[n], c, m-n);
+               c = addVW(&z[n], &x[n], c, m-n)
        }
        if c > 0 {
                z = z[0 : m+1];
@@ -137,23 +137,23 @@ func subNN(z, x, y []Word) []Word {
 
        switch {
        case m < n:
-               panic("underflow");
+               panic("underflow")
        case m == 0:
                // n == 0 because m >= n; result is 0
-               return makeN(z, 0, false);
+               return makeN(z, 0, false)
        case n == 0:
                // result is x
-               return setN(z, x);
+               return setN(z, x)
        }
        // m > 0
 
        z = makeN(z, m, false);
        c := subVV(&z[0], &x[0], &y[0], n);
        if m > n {
-               c = subVW(&z[n], &x[n], c, m-n);
+               c = subVW(&z[n], &x[n], c, m-n)
        }
        if c != 0 {
-               panic("underflow");
+               panic("underflow")
        }
        z = normN(z);
 
@@ -167,23 +167,23 @@ func cmpNN(x, y []Word) (r int) {
        if m != n || m == 0 {
                switch {
                case m < n:
-                       r = -1;
+                       r = -1
                case m > n:
-                       r = 1;
+                       r = 1
                }
                return;
        }
 
        i := m-1;
        for i > 0 && x[i] == y[i] {
-               i--;
+               i--
        }
 
        switch {
        case x[i] < y[i]:
-               r = -1;
+               r = -1
        case x[i] > y[i]:
-               r = 1;
+               r = 1
        }
        return;
 }
@@ -192,7 +192,7 @@ func cmpNN(x, y []Word) (r int) {
 func mulAddNWW(z, x []Word, y, r Word) []Word {
        m := len(x);
        if m == 0 || y == 0 {
-               return newN(z, uint64(r));      // result is r
+               return newN(z, uint64(r))       // result is r
        }
        // m > 0
 
@@ -213,21 +213,21 @@ func mulNN(z, x, y []Word) []Word {
 
        switch {
        case m < n:
-               return mulNN(z, y, x);
+               return mulNN(z, y, x)
        case m == 0 || n == 0:
-               return makeN(z, 0, false);
+               return makeN(z, 0, false)
        case n == 1:
-               return mulAddNWW(z, x, y[0], 0);
+               return mulAddNWW(z, x, y[0], 0)
        }
        // m >= n && m > 1 && n > 1
 
        z = makeN(z, m+n, true);
        if &z[0] == &x[0] || &z[0] == &y[0] {
-               z = makeN(nil, m+n, true);      // z is an alias for x or y - cannot reuse
+               z = makeN(nil, m+n, true)       // z is an alias for x or y - cannot reuse
        }
        for i := 0; i < n; i++ {
                if f := y[i]; f != 0 {
-                       z[m+i] = addMulVVW(&z[i], &x[0], f, m);
+                       z[m+i] = addMulVVW(&z[i], &x[0], f, m)
                }
        }
        z = normN(z);
@@ -241,7 +241,7 @@ func divNW(z, x []Word, y Word) (q []Word, r Word) {
        m := len(x);
        switch {
        case y == 0:
-               panic("division by zero");
+               panic("division by zero")
        case y == 1:
                q = setN(z, x); // result is x
                return;
@@ -290,7 +290,7 @@ func divNN(z, z2, uIn, v []Word) (q, r []Word) {
                        rhat += v[n-1];
                        // v[n-1] >= 0, so this tests for overflow.
                        if rhat < prevRhat {
-                               break;
+                               break
                        }
                        x1, x2 = mulWW_g(qhat, v[n-2]);
                }
@@ -323,7 +323,7 @@ func divNN(z, z2, uIn, v []Word) (q, r []Word) {
 func log2(x Word) int {
        n := 0;
        for ; x > 0; x >>= 1 {
-               n++;
+               n++
        }
        return n-1;
 }
@@ -335,7 +335,7 @@ func log2(x Word) int {
 func log2N(x []Word) int {
        m := len(x);
        if m > 0 {
-               return (m-1)*int(_W) + log2(x[m-1]);
+               return (m-1)*int(_W) + log2(x[m-1])
        }
        return -1;
 }
@@ -345,13 +345,13 @@ func hexValue(ch byte) int {
        var d byte;
        switch {
        case '0' <= ch && ch <= '9':
-               d = ch-'0';
+               d = ch-'0'
        case 'a' <= ch && ch <= 'f':
-               d = ch-'a'+10;
+               d = ch-'a'+10
        case 'A' <= ch && ch <= 'F':
-               d = ch-'A'+10;
+               d = ch-'A'+10
        default:
-               return -1;
+               return -1
        }
        return int(d);
 }
@@ -376,16 +376,16 @@ func scanN(z []Word, s string, base int) ([]Word, int, int) {
                        if n > 1 && (s[1] == 'x' || s[1] == 'X') {
                                if n == 2 {
                                        // Reject a string which is just '0x' as nonsense.
-                                       return nil, 0, 0;
+                                       return nil, 0, 0
                                }
                                base, i = 16, 2;
                        } else {
-                               base, i = 8, 1;
+                               base, i = 8, 1
                        }
                }
        }
        if base < 2 || 16 < base {
-               panic("illegal base");
+               panic("illegal base")
        }
 
        // convert string
@@ -393,9 +393,9 @@ func scanN(z []Word, s string, base int) ([]Word, int, int) {
        for ; i < n; i++ {
                d := hexValue(s[i]);
                if 0 <= d && d < base {
-                       z = mulAddNWW(z, z, Word(base), Word(d));
+                       z = mulAddNWW(z, z, Word(base), Word(d))
                } else {
-                       break;
+                       break
                }
        }
 
@@ -408,11 +408,11 @@ func scanN(z []Word, s string, base int) ([]Word, int, int) {
 //           a []byte buffer and return it
 func stringN(x []Word, base int) string {
        if base < 2 || 16 < base {
-               panic("illegal base");
+               panic("illegal base")
        }
 
        if len(x) == 0 {
-               return "0";
+               return "0"
        }
 
        // allocate buffer for conversion
@@ -444,7 +444,7 @@ func leadingZeroBits(x Word) int {
 
        for i := 0; x != 0; i++ {
                if x&(1<<(_W-1)) != 0 {
-                       return i+c;
+                       return i+c
                }
                x <<= 1;
        }
@@ -455,7 +455,7 @@ func leadingZeroBits(x Word) int {
 
 func shiftLeft(dst, src []Word, n int) {
        if len(src) == 0 {
-               return;
+               return
        }
 
        Ã± := uint(_W)-uint(n);
@@ -469,7 +469,7 @@ func shiftLeft(dst, src []Word, n int) {
 
 func shiftRight(dst, src []Word, n int) {
        if len(src) == 0 {
-               return;
+               return
        }
 
        Ã± := uint(_W)-uint(n);
index 098575a17224ab2c99f9c6a7634d061850341345..1c8c293217dc2a2e25f751572c7a63d97c9b8342 100644 (file)
@@ -43,7 +43,7 @@ func TestSetN(t *testing.T) {
        for _, a := range sumNN {
                z := setN(nil, a.z);
                if cmpNN(z, a.z) != 0 {
-                       t.Errorf("got z = %v; want %v", z, a.z);
+                       t.Errorf("got z = %v; want %v", z, a.z)
                }
        }
 }
@@ -52,7 +52,7 @@ func TestSetN(t *testing.T) {
 func testFunNN(t *testing.T, msg string, f funNN, a argNN) {
        z := f(nil, a.x, a.y);
        if cmpNN(z, a.z) != 0 {
-               t.Errorf("%s%+v\n\tgot z = %v; want %v", msg, a, z, a.z);
+               t.Errorf("%s%+v\n\tgot z = %v; want %v", msg, a, z, a.z)
        }
 }
 
@@ -101,18 +101,18 @@ func TestStringN(t *testing.T) {
        for _, a := range tabN {
                s := stringN(a.x, a.b);
                if s != a.s {
-                       t.Errorf("stringN%+v\n\tgot s = %s; want %s", a, s, a.s);
+                       t.Errorf("stringN%+v\n\tgot s = %s; want %s", a, s, a.s)
                }
 
                x, b, n := scanN(nil, a.s, a.b);
                if cmpNN(x, a.x) != 0 {
-                       t.Errorf("scanN%+v\n\tgot z = %v; want %v", a, x, a.x);
+                       t.Errorf("scanN%+v\n\tgot z = %v; want %v", a, x, a.x)
                }
                if b != a.b {
-                       t.Errorf("scanN%+v\n\tgot b = %d; want %d", a, b, a.b);
+                       t.Errorf("scanN%+v\n\tgot b = %d; want %d", a, b, a.b)
                }
                if n != len(a.s) {
-                       t.Errorf("scanN%+v\n\tgot n = %d; want %d", a, n, len(a.s));
+                       t.Errorf("scanN%+v\n\tgot n = %d; want %d", a, n, len(a.s))
                }
        }
 }
@@ -122,7 +122,7 @@ func TestLeadingZeroBits(t *testing.T) {
        var x Word = 1<<(_W-1);
        for i := 0; i <= int(_W); i++ {
                if leadingZeroBits(x) != i {
-                       t.Errorf("failed at %x: got %d want %d", x, leadingZeroBits(x), i);
+                       t.Errorf("failed at %x: got %d want %d", x, leadingZeroBits(x), i)
                }
                x >>= 1;
        }
index a84a1139eec3ace8dc40f4fedc1996c374962a93..068416729bd08def6df7f3fce812976497d94fa0 100644 (file)
@@ -25,7 +25,7 @@ func Mul128(x, y uint64) (z1, z0 uint64) {
        )
 
        if x < y {
-               x, y = y, x;
+               x, y = y, x
        }
 
        if x < B2 {
index ed61dad6bd4d4b3cd9be12393bc2ba9473464cc6..bb7fb68f0502e3d831db5f8ecee56b8e0b8c63c1 100755 (executable)
@@ -83,7 +83,7 @@ const (
 
 func assert(p bool) {
        if !p {
-               panic("assert failed");
+               panic("assert failed")
        }
 }
 
@@ -115,14 +115,14 @@ type Natural []digit
 //
 func Nat(x uint64) Natural {
        if x == 0 {
-               return nil;     // len == 0
+               return nil      // len == 0
        }
 
        // single-digit values
        // (note: cannot re-use preallocated values because
        //        the in-place operations may overwrite them)
        if x < _B {
-               return Natural{digit(x)};
+               return Natural{digit(x)}
        }
 
        // compute number of digits required to represent x
@@ -130,7 +130,7 @@ func Nat(x uint64) Natural {
        // for any base)
        n := 0;
        for t := x; t > 0; t >>= _W {
-               n++;
+               n++
        }
 
        // split x into digits
@@ -151,9 +151,9 @@ func (x Natural) Value() uint64 {
        n := len(x);
        switch n {
        case 0:
-               return 0;
+               return 0
        case 1:
-               return uint64(x[0]);
+               return uint64(x[0])
        }
 
        // multi-digit values
@@ -199,7 +199,7 @@ func (x Natural) IsZero() bool      { return len(x) == 0 }
 func normalize(x Natural) Natural {
        n := len(x);
        for n > 0 && x[n-1] == 0 {
-               n--;
+               n--
        }
        return x[0:n];
 }
@@ -212,10 +212,10 @@ func normalize(x Natural) Natural {
 func nalloc(z Natural, n int) Natural {
        size := n;
        if size <= 0 {
-               size = 4;
+               size = 4
        }
        if size <= cap(z) {
-               return z[0:n];
+               return z[0:n]
        }
        return make(Natural, n, size);
 }
@@ -270,7 +270,7 @@ func Nsub(zp *Natural, x, y Natural) {
        n := len(x);
        m := len(y);
        if n < m {
-               panic("underflow");
+               panic("underflow")
        }
 
        z := nalloc(*zp, n);
@@ -287,7 +287,7 @@ func Nsub(zp *Natural, x, y Natural) {
                i++;
        }
        if int64(c) < 0 {
-               panic("underflow");
+               panic("underflow")
        }
        *zp = normalize(z);
 }
@@ -313,7 +313,7 @@ func muladd11(x, y, c digit) (digit, digit) {
 
 func mul1(z, x Natural, y digit) (c digit) {
        for i := 0; i < len(x); i++ {
-               c, z[i] = muladd11(x[i], y, c);
+               c, z[i] = muladd11(x[i], y, c)
        }
        return;
 }
@@ -327,7 +327,7 @@ func Nscale(z *Natural, d uint64) {
                *z = Nat(0);
                return;
        case d == 1:
-               return;
+               return
        case d >= _B:
                *z = z.Mul1(d);
                return;
@@ -340,11 +340,11 @@ func Nscale(z *Natural, d uint64) {
                if n >= cap(*z) {
                        zz := make(Natural, n+1);
                        for i, d := range *z {
-                               zz[i] = d;
+                               zz[i] = d
                        }
                        *z = zz;
                } else {
-                       *z = (*z)[0 : n+1];
+                       *z = (*z)[0 : n+1]
                }
                (*z)[n] = c;
        }
@@ -373,13 +373,13 @@ func muladd1(x Natural, d, c digit) Natural {
 func (x Natural) Mul1(d uint64) Natural {
        switch {
        case d == 0:
-               return Nat(0);
+               return Nat(0)
        case d == 1:
-               return x;
+               return x
        case isSmall(digit(d)):
-               muladd1(x, digit(d), 0);
+               muladd1(x, digit(d), 0)
        case d >= _B:
-               return x.Mul(Nat(d));
+               return x.Mul(Nat(d))
        }
 
        z := make(Natural, len(x)+1);
@@ -395,15 +395,15 @@ func (x Natural) Mul(y Natural) Natural {
        n := len(x);
        m := len(y);
        if n < m {
-               return y.Mul(x);
+               return y.Mul(x)
        }
 
        if m == 0 {
-               return Nat(0);
+               return Nat(0)
        }
 
        if m == 1 && y[0] < _B {
-               return x.Mul1(uint64(y[0]));
+               return x.Mul1(uint64(y[0]))
        }
 
        z := make(Natural, n+m);
@@ -412,7 +412,7 @@ func (x Natural) Mul(y Natural) Natural {
                if d != 0 {
                        c := digit(0);
                        for i := 0; i < n; i++ {
-                               c, z[i+j] = muladd11(x[i], d, z[i+j]+c);
+                               c, z[i+j] = muladd11(x[i], d, z[i+j]+c)
                        }
                        z[n+j] = c;
                }
@@ -439,7 +439,7 @@ func unpack(x Natural) []digit2 {
        // normalize result
        k := 2*n;
        for k > 0 && z[k-1] == 0 {
-               k--;
+               k--
        }
        return z[0:k];  // trim leading 0's
 }
@@ -454,7 +454,7 @@ func pack(x []digit2) Natural {
                z[n] = digit(x[n*2]);
        }
        for i := 0; i < n; i++ {
-               z[i] = digit(x[i*2 + 1])<<_W2 | digit(x[i*2]);
+               z[i] = digit(x[i*2 + 1])<<_W2 | digit(x[i*2])
        }
        return normalize(z);
 }
@@ -506,7 +506,7 @@ func divmod(x, y []digit2) ([]digit2, []digit2) {
        n := len(x);
        m := len(y);
        if m == 0 {
-               panic("division by zero");
+               panic("division by zero")
        }
        assert(n+1 <= cap(x));  // space for one extra digit
        x = x[0 : n+1];
@@ -515,12 +515,12 @@ func divmod(x, y []digit2) ([]digit2, []digit2) {
        if m == 1 {
                // division by single digit
                // result is shifted left by 1 in place!
-               x[0] = div21(x[1 : n+1], x[0:n], y[0]);
+               x[0] = div21(x[1 : n+1], x[0:n], y[0])
 
        } else if m > n {
                // y > x => quotient = 0, remainder = x
                // TODO in this case we shouldn't even unpack x and y
-               m = n;
+               m = n
 
        } else {
                // general case
@@ -546,12 +546,12 @@ func divmod(x, y []digit2) ([]digit2, []digit2) {
                        {
                                x0, x1, x2 := digit(x[k]), digit(x[k-1]), digit(x[k-2]);
                                if x0 != y1 {
-                                       q = (x0<<_W2 + x1)/y1;
+                                       q = (x0<<_W2 + x1)/y1
                                } else {
-                                       q = _B2-1;
+                                       q = _B2-1
                                }
                                for y2*q > (x0<<_W2 + x1 - y1*q)<<_W2 + x2 {
-                                       q--;
+                                       q--
                                }
                        }
 
@@ -623,7 +623,7 @@ func shl(z, x Natural, s uint) digit {
        n := len(x);
        c := digit(0);
        for i := 0; i < n; i++ {
-               c, z[i] = x[i]>>(_W-s), x[i]<<s&_M | c;
+               c, z[i] = x[i]>>(_W-s), x[i]<<s&_M | c
        }
        return c;
 }
@@ -647,7 +647,7 @@ func shr(z, x Natural, s uint) digit {
        n := len(x);
        c := digit(0);
        for i := n-1; i >= 0; i-- {
-               c, z[i] = x[i]<<(_W-s)&_M, x[i]>>s | c;
+               c, z[i] = x[i]<<(_W-s)&_M, x[i]>>s | c
        }
        return c;
 }
@@ -659,7 +659,7 @@ func (x Natural) Shr(s uint) Natural {
        n := uint(len(x));
        m := n - s/_W;
        if m > n {      // check for underflow
-               m = 0;
+               m = 0
        }
        z := make(Natural, m);
 
@@ -675,12 +675,12 @@ func (x Natural) And(y Natural) Natural {
        n := len(x);
        m := len(y);
        if n < m {
-               return y.And(x);
+               return y.And(x)
        }
 
        z := make(Natural, m);
        for i := 0; i < m; i++ {
-               z[i] = x[i]&y[i];
+               z[i] = x[i]&y[i]
        }
        // upper bits are 0
 
@@ -690,7 +690,7 @@ func (x Natural) And(y Natural) Natural {
 
 func copy(z, x Natural) {
        for i, e := range x {
-               z[i] = e;
+               z[i] = e
        }
 }
 
@@ -701,12 +701,12 @@ func (x Natural) AndNot(y Natural) Natural {
        n := len(x);
        m := len(y);
        if n < m {
-               m = n;
+               m = n
        }
 
        z := make(Natural, n);
        for i := 0; i < m; i++ {
-               z[i] = x[i]&^y[i];
+               z[i] = x[i]&^y[i]
        }
        copy(z[m:n], x[m:n]);
 
@@ -720,12 +720,12 @@ func (x Natural) Or(y Natural) Natural {
        n := len(x);
        m := len(y);
        if n < m {
-               return y.Or(x);
+               return y.Or(x)
        }
 
        z := make(Natural, n);
        for i := 0; i < m; i++ {
-               z[i] = x[i]|y[i];
+               z[i] = x[i]|y[i]
        }
        copy(z[m:n], x[m:n]);
 
@@ -739,12 +739,12 @@ func (x Natural) Xor(y Natural) Natural {
        n := len(x);
        m := len(y);
        if n < m {
-               return y.Xor(x);
+               return y.Xor(x)
        }
 
        z := make(Natural, n);
        for i := 0; i < m; i++ {
-               z[i] = x[i]^y[i];
+               z[i] = x[i]^y[i]
        }
        copy(z[m:n], x[m:n]);
 
@@ -763,20 +763,20 @@ func (x Natural) Cmp(y Natural) int {
        m := len(y);
 
        if n != m || n == 0 {
-               return n-m;
+               return n-m
        }
 
        i := n-1;
        for i > 0 && x[i] == y[i] {
-               i--;
+               i--
        }
 
        d := 0;
        switch {
        case x[i] < y[i]:
-               d = -1;
+               d = -1
        case x[i] > y[i]:
-               d = 1;
+               d = 1
        }
 
        return d;
@@ -805,7 +805,7 @@ func log2(x uint64) uint {
 func (x Natural) Log2() uint {
        n := len(x);
        if n > 0 {
-               return (uint(n)-1)*_W + log2(uint64(x[n-1]));
+               return (uint(n)-1)*_W + log2(uint64(x[n-1]))
        }
        panic("Log2(0)");
 }
@@ -831,7 +831,7 @@ func divmod1(x Natural, d digit) (Natural, digit) {
 //
 func (x Natural) ToString(base uint) string {
        if len(x) == 0 {
-               return "0";
+               return "0"
        }
 
        // allocate buffer for conversion
@@ -865,11 +865,11 @@ func (x Natural) String() string  { return x.ToString(10) }
 func fmtbase(c int) uint {
        switch c {
        case 'b':
-               return 2;
+               return 2
        case 'o':
-               return 8;
+               return 8
        case 'x':
-               return 16;
+               return 16
        }
        return 10;
 }
@@ -885,11 +885,11 @@ func hexvalue(ch byte) uint {
        d := uint(1<<logH);
        switch {
        case '0' <= ch && ch <= '9':
-               d = uint(ch-'0');
+               d = uint(ch-'0')
        case 'a' <= ch && ch <= 'f':
-               d = uint(ch-'a')+10;
+               d = uint(ch-'a')+10
        case 'A' <= ch && ch <= 'F':
-               d = uint(ch-'A')+10;
+               d = uint(ch-'A')+10
        }
        return d;
 }
@@ -912,9 +912,9 @@ func NatFromString(s string, base uint) (Natural, uint, int) {
                base = 10;
                if n > 0 && s[0] == '0' {
                        if n > 1 && (s[1] == 'x' || s[1] == 'X') {
-                               base, i = 16, 2;
+                               base, i = 16, 2
                        } else {
-                               base, i = 8, 1;
+                               base, i = 8, 1
                        }
                }
        }
@@ -925,9 +925,9 @@ func NatFromString(s string, base uint) (Natural, uint, int) {
        for ; i < n; i++ {
                d := hexvalue(s[i]);
                if d < base {
-                       x = muladd1(x, digit(base), digit(d));
+                       x = muladd1(x, digit(base), digit(d))
                } else {
-                       break;
+                       break
                }
        }
 
@@ -952,7 +952,7 @@ func pop1(x digit) uint {
 func (x Natural) Pop() uint {
        n := uint(0);
        for i := len(x)-1; i >= 0; i-- {
-               n += pop1(x[i]);
+               n += pop1(x[i])
        }
        return n;
 }
@@ -966,7 +966,7 @@ func (xp Natural) Pow(n uint) Natural {
        for n > 0 {
                // z * x^n == x^n0
                if n&1 == 1 {
-                       z = z.Mul(x);
+                       z = z.Mul(x)
                }
                x, n = x.Mul(x), n/2;
        }
@@ -980,11 +980,11 @@ func (xp Natural) Pow(n uint) Natural {
 func MulRange(a, b uint) Natural {
        switch {
        case a > b:
-               return Nat(1);
+               return Nat(1)
        case a == b:
-               return Nat(uint64(a));
+               return Nat(uint64(a))
        case a+1 == b:
-               return Nat(uint64(a)).Mul(Nat(uint64(b)));
+               return Nat(uint64(a)).Mul(Nat(uint64(b)))
        }
        m := (a+b)>>1;
        assert(a <= m && m < b);
@@ -997,7 +997,7 @@ func MulRange(a, b uint) Natural {
 func Fact(n uint) Natural {
        // Using MulRange() instead of the basic for-loop
        // lead to faster factorial computation.
-       return MulRange(2, n);
+       return MulRange(2, n)
 }
 
 
@@ -1012,7 +1012,7 @@ func (x Natural) Gcd(y Natural) Natural {
        // Euclidean algorithm.
        a, b := x, y;
        for !b.IsZero() {
-               a, b = b, a.Mod(b);
+               a, b = b, a.Mod(b)
        }
        return a;
 }
index 230e42f13bdf306b37e80ca64a04370d5140c0d5..b62fbf4859c323e71defc3e05d4cc88e6accf350 100644 (file)
@@ -21,7 +21,7 @@ const (
 func natFromString(s string, base uint, slen *int) Natural {
        x, _, len := NatFromString(s, base);
        if slen != nil {
-               *slen = len;
+               *slen = len
        }
        return x;
 }
@@ -30,7 +30,7 @@ func natFromString(s string, base uint, slen *int) Natural {
 func intFromString(s string, base uint, slen *int) *Integer {
        x, _, len := IntFromString(s, base);
        if slen != nil {
-               *slen = len;
+               *slen = len
        }
        return x;
 }
@@ -39,7 +39,7 @@ func intFromString(s string, base uint, slen *int) *Integer {
 func ratFromString(s string, base uint, slen *int) *Rational {
        x, _, len := RatFromString(s, base);
        if slen != nil {
-               *slen = len;
+               *slen = len
        }
        return x;
 }
@@ -69,28 +69,28 @@ var tester *testing.T
 
 func test(n uint, b bool) {
        if !b {
-               tester.Fatalf("TEST failed: %s (%d)", test_msg, n);
+               tester.Fatalf("TEST failed: %s (%d)", test_msg, n)
        }
 }
 
 
 func nat_eq(n uint, x, y Natural) {
        if x.Cmp(y) != 0 {
-               tester.Fatalf("TEST failed: %s (%d)\nx = %v\ny = %v", test_msg, n, &x, &y);
+               tester.Fatalf("TEST failed: %s (%d)\nx = %v\ny = %v", test_msg, n, &x, &y)
        }
 }
 
 
 func int_eq(n uint, x, y *Integer) {
        if x.Cmp(y) != 0 {
-               tester.Fatalf("TEST failed: %s (%d)\nx = %v\ny = %v", test_msg, n, x, y);
+               tester.Fatalf("TEST failed: %s (%d)\nx = %v\ny = %v", test_msg, n, x, y)
        }
 }
 
 
 func rat_eq(n uint, x, y *Rational) {
        if x.Cmp(y) != 0 {
-               tester.Fatalf("TEST failed: %s (%d)\nx = %v\ny = %v", test_msg, n, x, y);
+               tester.Fatalf("TEST failed: %s (%d)\nx = %v\ny = %v", test_msg, n, x, y)
        }
 }
 
@@ -116,7 +116,7 @@ func TestNatConv(t *testing.T) {
 
        test_msg = "NatConvB";
        for i := uint(0); i < 100; i++ {
-               test(i, Nat(uint64(i)).String() == fmt.Sprintf("%d", i));
+               test(i, Nat(uint64(i)).String() == fmt.Sprintf("%d", i))
        }
 
        test_msg = "NatConvC";
@@ -146,7 +146,7 @@ func TestNatConv(t *testing.T) {
        test_msg = "NatConvF";
        tmp := c.Mul(c);
        for base := uint(2); base <= 16; base++ {
-               nat_eq(base, natFromString(tmp.ToString(base), base, nil), tmp);
+               nat_eq(base, natFromString(tmp.ToString(base), base, nil), tmp)
        }
 
        test_msg = "NatConvG";
@@ -158,7 +158,7 @@ func TestNatConv(t *testing.T) {
 
 func abs(x int64) uint64 {
        if x < 0 {
-               x = -x;
+               x = -x
        }
        return uint64(x);
 }
@@ -235,7 +235,7 @@ func add(x, y Natural) Natural {
        z1 := x.Add(y);
        z2 := y.Add(x);
        if z1.Cmp(z2) != 0 {
-               tester.Fatalf("addition not symmetric:\n\tx = %v\n\ty = %t", x, y);
+               tester.Fatalf("addition not symmetric:\n\tx = %v\n\ty = %t", x, y)
        }
        return z1;
 }
@@ -244,7 +244,7 @@ func add(x, y Natural) Natural {
 func sum(n uint64, scale Natural) Natural {
        s := nat_zero;
        for ; n > 0; n-- {
-               s = add(s, Nat(n).Mul(scale));
+               s = add(s, Nat(n).Mul(scale))
        }
        return s;
 }
@@ -268,13 +268,13 @@ func mul(x, y Natural) Natural {
        z1 := x.Mul(y);
        z2 := y.Mul(x);
        if z1.Cmp(z2) != 0 {
-               tester.Fatalf("multiplication not symmetric:\n\tx = %v\n\ty = %t", x, y);
+               tester.Fatalf("multiplication not symmetric:\n\tx = %v\n\ty = %t", x, y)
        }
        if !x.IsZero() && z1.Div(x).Cmp(y) != 0 {
-               tester.Fatalf("multiplication/division not inverse (A):\n\tx = %v\n\ty = %t", x, y);
+               tester.Fatalf("multiplication/division not inverse (A):\n\tx = %v\n\ty = %t", x, y)
        }
        if !y.IsZero() && z1.Div(y).Cmp(x) != 0 {
-               tester.Fatalf("multiplication/division not inverse (B):\n\tx = %v\n\ty = %t", x, y);
+               tester.Fatalf("multiplication/division not inverse (B):\n\tx = %v\n\ty = %t", x, y)
        }
        return z1;
 }
@@ -290,7 +290,7 @@ func TestNatSub(t *testing.T) {
        for i := uint64(0); i < 100; i++ {
                t := sum(i, c);
                for j := uint64(0); j <= i; j++ {
-                       t = t.Sub(mul(Nat(j), c));
+                       t = t.Sub(mul(Nat(j), c))
                }
                nat_eq(uint(i), t, nat_zero);
        }
@@ -311,7 +311,7 @@ func TestNatMul(t *testing.T) {
        const n = 100;
        p := b.Mul(c).Shl(n);
        for i := uint(0); i < n; i++ {
-               nat_eq(i, mul(b.Shl(i), c.Shl(n-i)), p);
+               nat_eq(i, mul(b.Shl(i), c.Shl(n-i)), p)
        }
 }
 
@@ -329,7 +329,7 @@ func TestNatDiv(t *testing.T) {
        const n = 100;
        p := Fact(n);
        for i := uint(0); i < n; i++ {
-               nat_eq(100+i, p.Div(MulRange(1, i)), MulRange(i+1, n));
+               nat_eq(100+i, p.Div(MulRange(1, i)), MulRange(i+1, n))
        }
 }
 
@@ -398,7 +398,7 @@ func TestNatMod(t *testing.T) {
        for i := uint(0); ; i++ {
                d := nat_one.Shl(i);
                if d.Cmp(c) < 0 {
-                       nat_eq(i, c.Add(d).Mod(c), d);
+                       nat_eq(i, c.Add(d).Mod(c), d)
                } else {
                        nat_eq(i, c.Add(d).Div(c), nat_two);
                        nat_eq(i, c.Add(d).Mod(c), d.Sub(c));
@@ -420,7 +420,7 @@ func TestNatShift(t *testing.T) {
 
        test_msg = "NatShift2";
        for i := uint(0); i < 100; i++ {
-               test(i, c.Shl(i).Shr(i).Cmp(c) == 0);
+               test(i, c.Shl(i).Shr(i).Cmp(c) == 0)
        }
 
        test_msg = "NatShift3L";
@@ -457,7 +457,7 @@ func TestIntShift(t *testing.T) {
 
        test_msg = "IntShift2";
        for i := uint(0); i < 100; i++ {
-               test(i, ip.Shl(i).Shr(i).Cmp(ip) == 0);
+               test(i, ip.Shl(i).Shr(i).Cmp(ip) == 0)
        }
 
        test_msg = "IntShift3L";
@@ -499,25 +499,25 @@ func TestNatBitOps(t *testing.T) {
        test_msg = "NatAnd";
        bz := Nat(x&y);
        for i := uint(0); i < 100; i++ {
-               nat_eq(i, bx.Shl(i).And(by.Shl(i)), bz.Shl(i));
+               nat_eq(i, bx.Shl(i).And(by.Shl(i)), bz.Shl(i))
        }
 
        test_msg = "NatAndNot";
        bz = Nat(x&^y);
        for i := uint(0); i < 100; i++ {
-               nat_eq(i, bx.Shl(i).AndNot(by.Shl(i)), bz.Shl(i));
+               nat_eq(i, bx.Shl(i).AndNot(by.Shl(i)), bz.Shl(i))
        }
 
        test_msg = "NatOr";
        bz = Nat(x|y);
        for i := uint(0); i < 100; i++ {
-               nat_eq(i, bx.Shl(i).Or(by.Shl(i)), bz.Shl(i));
+               nat_eq(i, bx.Shl(i).Or(by.Shl(i)), bz.Shl(i))
        }
 
        test_msg = "NatXor";
        bz = Nat(x^y);
        for i := uint(0); i < 100; i++ {
-               nat_eq(i, bx.Shl(i).Xor(by.Shl(i)), bz.Shl(i));
+               nat_eq(i, bx.Shl(i).Xor(by.Shl(i)), bz.Shl(i))
        }
 }
 
@@ -560,7 +560,7 @@ func TestIntBitOps2(t *testing.T) {
                for y := int64(-5); y < 15; y++ {
                        by := Int(y);
                        for i := uint(50); i < 70; i++ {        // shift across 64bit boundary
-                               int_eq(i, bx.Shl(i).And(by.Shl(i)), Int(x&y).Shl(i));
+                               int_eq(i, bx.Shl(i).And(by.Shl(i)), Int(x&y).Shl(i))
                        }
                }
        }
@@ -583,7 +583,7 @@ func TestIntBitOps2(t *testing.T) {
                for y := int64(-5); y < 15; y++ {
                        by := Int(y);
                        for i := uint(50); i < 70; i++ {        // shift across 64bit boundary
-                               int_eq(i, bx.Shl(i).Or(by.Shl(i)), Int(x|y).Shl(i));
+                               int_eq(i, bx.Shl(i).Or(by.Shl(i)), Int(x|y).Shl(i))
                        }
                }
        }
@@ -594,7 +594,7 @@ func TestIntBitOps2(t *testing.T) {
                for y := int64(-5); y < 15; y++ {
                        by := Int(y);
                        for i := uint(50); i < 70; i++ {        // shift across 64bit boundary
-                               int_eq(i, bx.Shl(i).Xor(by.Shl(i)), Int(x^y).Shl(i));
+                               int_eq(i, bx.Shl(i).Xor(by.Shl(i)), Int(x^y).Shl(i))
                        }
                }
        }
@@ -624,7 +624,7 @@ func TestNatLog2(t *testing.T) {
 
        test_msg = "NatLog2B";
        for i := uint(0); i < 100; i++ {
-               test(i, nat_one.Shl(i).Log2() == i);
+               test(i, nat_one.Shl(i).Log2() == i)
        }
 }
 
@@ -644,7 +644,7 @@ func TestNatPow(t *testing.T) {
 
        test_msg = "NatPowB";
        for i := uint(0); i < 100; i++ {
-               nat_eq(i, nat_two.Pow(i), nat_one.Shl(i));
+               nat_eq(i, nat_two.Pow(i), nat_one.Shl(i))
        }
 }
 
@@ -660,6 +660,6 @@ func TestNatPop(t *testing.T) {
 
        test_msg = "NatPopB";
        for i := uint(0); i < 100; i++ {
-               test(i, nat_one.Shl(i).Sub(nat_one).Pop() == i);
+               test(i, nat_one.Shl(i).Sub(nat_one).Pop() == i)
        }
 }
index d305625b5a78cf02ed7597d98eef9e55252f3f87..618c6d3d2047489b0169180e63f8ec1685135e63 100644 (file)
@@ -29,7 +29,7 @@ type Integer struct {
 //
 func MakeInt(sign bool, mant Natural) *Integer {
        if mant.IsZero() {
-               sign = false;   // normalize
+               sign = false    // normalize
        }
        return &Integer{sign, mant};
 }
@@ -42,9 +42,9 @@ func Int(x int64) *Integer {
        if x < 0 {
                // For the most negative x, -x == x, and
                // the bit pattern has the correct value.
-               ux = uint64(-x);
+               ux = uint64(-x)
        } else {
-               ux = uint64(x);
+               ux = uint64(x)
        }
        return MakeInt(x < 0, Nat(ux));
 }
@@ -56,7 +56,7 @@ func Int(x int64) *Integer {
 func (x *Integer) Value() int64 {
        z := int64(x.mant.Value());
        if x.sign {
-               z = -z;
+               z = -z
        }
        return z;
 }
@@ -167,7 +167,7 @@ func (x *Integer) Sub(y *Integer) *Integer {
 func Iscale(z *Integer, d int64) {
        f := uint64(d);
        if d < 0 {
-               f = uint64(-d);
+               f = uint64(-d)
        }
        z.sign = z.sign != (d < 0);
        Nscale(&z.mant, f);
@@ -179,7 +179,7 @@ func Iscale(z *Integer, d int64) {
 func (x *Integer) Mul1(d int64) *Integer {
        f := uint64(d);
        if d < 0 {
-               f = uint64(-d);
+               f = uint64(-d)
        }
        return MakeInt(x.sign != (d < 0), x.mant.Mul1(f));
 }
@@ -192,7 +192,7 @@ func (x *Integer) Mul(y *Integer) *Integer {
        // x * (-y) == -(x * y)
        // (-x) * y == -(x * y)
        // (-x) * (-y) == x * y
-       return MakeInt(x.sign != y.sign, x.mant.Mul(y.mant));
+       return MakeInt(x.sign != y.sign, x.mant.Mul(y.mant))
 }
 
 
@@ -201,7 +201,7 @@ func (x *Integer) Mul(y *Integer) *Integer {
 func (x *Integer) MulNat(y Natural) *Integer {
        // x * y == x * y
        // (-x) * y == -(x * y)
-       return MakeInt(x.sign, x.mant.Mul(y));
+       return MakeInt(x.sign, x.mant.Mul(y))
 }
 
 
@@ -220,7 +220,7 @@ func (x *Integer) Quo(y *Integer) *Integer {
        // x / (-y) == -(x / y)
        // (-x) / y == -(x / y)
        // (-x) / (-y) == x / y
-       return MakeInt(x.sign != y.sign, x.mant.Div(y.mant));
+       return MakeInt(x.sign != y.sign, x.mant.Div(y.mant))
 }
 
 
@@ -234,7 +234,7 @@ func (x *Integer) Rem(y *Integer) *Integer {
        // x % (-y) == x % y
        // (-x) % y == -(x % y)
        // (-x) % (-y) == -(x % y)
-       return MakeInt(x.sign, x.mant.Mod(y.mant));
+       return MakeInt(x.sign, x.mant.Mod(y.mant))
 }
 
 
@@ -264,9 +264,9 @@ func (x *Integer) Div(y *Integer) *Integer {
        q, r := x.QuoRem(y);
        if r.IsNeg() {
                if y.IsPos() {
-                       q = q.Sub(Int(1));
+                       q = q.Sub(Int(1))
                } else {
-                       q = q.Add(Int(1));
+                       q = q.Add(Int(1))
                }
        }
        return q;
@@ -281,9 +281,9 @@ func (x *Integer) Mod(y *Integer) *Integer {
        r := x.Rem(y);
        if r.IsNeg() {
                if y.IsPos() {
-                       r = r.Add(y);
+                       r = r.Add(y)
                } else {
-                       r = r.Sub(y);
+                       r = r.Sub(y)
                }
        }
        return r;
@@ -333,7 +333,7 @@ func (x *Integer) Shl(s uint) *Integer      { return MakeInt(x.sign, x.mant.Shl(s)) }
 func (x *Integer) Shr(s uint) *Integer {
        if x.sign {
                // (-x) >> s == ^(x-1) >> s == ^((x-1) >> s) == -(((x-1) >> s) + 1)
-               return MakeInt(true, x.mant.Sub(Nat(1)).Shr(s).Add(Nat(1)));
+               return MakeInt(true, x.mant.Sub(Nat(1)).Shr(s).Add(Nat(1)))
        }
 
        return MakeInt(false, x.mant.Shr(s));
@@ -344,7 +344,7 @@ func (x *Integer) Shr(s uint) *Integer {
 func (x *Integer) Not() *Integer {
        if x.sign {
                // ^(-x) == ^(^(x-1)) == x-1
-               return MakeInt(false, x.mant.Sub(Nat(1)));
+               return MakeInt(false, x.mant.Sub(Nat(1)))
        }
 
        // ^x == -x-1 == -(x+1)
@@ -358,7 +358,7 @@ func (x *Integer) And(y *Integer) *Integer {
        if x.sign == y.sign {
                if x.sign {
                        // (-x) & (-y) == ^(x-1) & ^(y-1) == ^((x-1) | (y-1)) == -(((x-1) | (y-1)) + 1)
-                       return MakeInt(true, x.mant.Sub(Nat(1)).Or(y.mant.Sub(Nat(1))).Add(Nat(1)));
+                       return MakeInt(true, x.mant.Sub(Nat(1)).Or(y.mant.Sub(Nat(1))).Add(Nat(1)))
                }
 
                // x & y == x & y
@@ -367,7 +367,7 @@ func (x *Integer) And(y *Integer) *Integer {
 
        // x.sign != y.sign
        if x.sign {
-               x, y = y, x;    // & is symmetric
+               x, y = y, x     // & is symmetric
        }
 
        // x & (-y) == x & ^(y-1) == x &^ (y-1)
@@ -381,7 +381,7 @@ func (x *Integer) AndNot(y *Integer) *Integer {
        if x.sign == y.sign {
                if x.sign {
                        // (-x) &^ (-y) == ^(x-1) &^ ^(y-1) == ^(x-1) & (y-1) == (y-1) &^ (x-1)
-                       return MakeInt(false, y.mant.Sub(Nat(1)).AndNot(x.mant.Sub(Nat(1))));
+                       return MakeInt(false, y.mant.Sub(Nat(1)).AndNot(x.mant.Sub(Nat(1))))
                }
 
                // x &^ y == x &^ y
@@ -390,7 +390,7 @@ func (x *Integer) AndNot(y *Integer) *Integer {
 
        if x.sign {
                // (-x) &^ y == ^(x-1) &^ y == ^(x-1) & ^y == ^((x-1) | y) == -(((x-1) | y) + 1)
-               return MakeInt(true, x.mant.Sub(Nat(1)).Or(y.mant).Add(Nat(1)));
+               return MakeInt(true, x.mant.Sub(Nat(1)).Or(y.mant).Add(Nat(1)))
        }
 
        // x &^ (-y) == x &^ ^(y-1) == x & (y-1)
@@ -404,7 +404,7 @@ func (x *Integer) Or(y *Integer) *Integer {
        if x.sign == y.sign {
                if x.sign {
                        // (-x) | (-y) == ^(x-1) | ^(y-1) == ^((x-1) & (y-1)) == -(((x-1) & (y-1)) + 1)
-                       return MakeInt(true, x.mant.Sub(Nat(1)).And(y.mant.Sub(Nat(1))).Add(Nat(1)));
+                       return MakeInt(true, x.mant.Sub(Nat(1)).And(y.mant.Sub(Nat(1))).Add(Nat(1)))
                }
 
                // x | y == x | y
@@ -413,7 +413,7 @@ func (x *Integer) Or(y *Integer) *Integer {
 
        // x.sign != y.sign
        if x.sign {
-               x, y = y, x;    // | or symmetric
+               x, y = y, x     // | or symmetric
        }
 
        // x | (-y) == x | ^(y-1) == ^((y-1) &^ x) == -(^((y-1) &^ x) + 1)
@@ -427,7 +427,7 @@ func (x *Integer) Xor(y *Integer) *Integer {
        if x.sign == y.sign {
                if x.sign {
                        // (-x) ^ (-y) == ^(x-1) ^ ^(y-1) == (x-1) ^ (y-1)
-                       return MakeInt(false, x.mant.Sub(Nat(1)).Xor(y.mant.Sub(Nat(1))));
+                       return MakeInt(false, x.mant.Sub(Nat(1)).Xor(y.mant.Sub(Nat(1))))
                }
 
                // x ^ y == x ^ y
@@ -436,7 +436,7 @@ func (x *Integer) Xor(y *Integer) *Integer {
 
        // x.sign != y.sign
        if x.sign {
-               x, y = y, x;    // ^ is symmetric
+               x, y = y, x     // ^ is symmetric
        }
 
        // x ^ (-y) == x ^ ^(y-1) == ^(x ^ (y-1)) == -((x ^ (y-1)) + 1)
@@ -460,12 +460,12 @@ func (x *Integer) Cmp(y *Integer) int {
        case x.sign == y.sign:
                r = x.mant.Cmp(y.mant);
                if x.sign {
-                       r = -r;
+                       r = -r
                }
        case x.sign:
-               r = -1;
+               r = -1
        case y.sign:
-               r = 1;
+               r = 1
        }
        return r;
 }
@@ -475,11 +475,11 @@ func (x *Integer) Cmp(y *Integer) int {
 //
 func (x *Integer) ToString(base uint) string {
        if x.mant.IsZero() {
-               return "0";
+               return "0"
        }
        var s string;
        if x.sign {
-               s = "-";
+               s = "-"
        }
        return s + x.mant.ToString(base);
 }
@@ -511,7 +511,7 @@ func IntFromString(s string, base uint) (*Integer, uint, int) {
        // skip sign, if any
        i0 := 0;
        if len(s) > 0 && (s[0] == '-' || s[0] == '+') {
-               i0 = 1;
+               i0 = 1
        }
 
        mant, base, slen := NatFromString(s[i0:len(s)], base);
index a695e73c5beb43a12183ce15393e40d73b63f7f8..752ab79037178e1b693ef3720c981c8d52cd50bc 100644 (file)
@@ -30,9 +30,9 @@ type fpNat struct {
 func (x fpNat) sub(y fpNat) fpNat {
        switch d := x.e - y.e; {
        case d < 0:
-               return fpNat{x.m.Sub(y.m.Shl(uint(-d))), x.e};
+               return fpNat{x.m.Sub(y.m.Shl(uint(-d))), x.e}
        case d > 0:
-               return fpNat{x.m.Shl(uint(d)).Sub(y.m), y.e};
+               return fpNat{x.m.Shl(uint(d)).Sub(y.m), y.e}
        }
        return fpNat{x.m.Sub(y.m), x.e};
 }
@@ -52,9 +52,9 @@ func (x fpNat) mul(y fpNat) fpNat     { return fpNat{x.m.Mul(y.m), x.e + y.e} }
 func (x fpNat) mant() Natural {
        switch {
        case x.e > 0:
-               return x.m.Shl(uint(x.e));
+               return x.m.Shl(uint(x.e))
        case x.e < 0:
-               return x.m.Shr(uint(-x.e));
+               return x.m.Shr(uint(-x.e))
        }
        return x.m;
 }
@@ -71,15 +71,15 @@ func nrDivEst(x0, y0 Natural) Natural {
        // y0 > 0
 
        if y0.Cmp(Nat(1)) == 0 {
-               return x0;
+               return x0
        }
        // y0 > 1
 
        switch d := x0.Cmp(y0); {
        case d < 0:
-               return Nat(0);
+               return Nat(0)
        case d == 0:
-               return Nat(1);
+               return Nat(1)
        }
        // x0 > y0 > 1
 
@@ -119,7 +119,7 @@ func nrDivEst(x0, y0 Natural) Natural {
                q.e -= e;
                res := q.mant();
                if res.Cmp(p) == 0 {
-                       return res;
+                       return res
                }
                p = res;
 
@@ -131,7 +131,7 @@ func nrDivEst(x0, y0 Natural) Natural {
                //       computation time massively.
                d := int(r.m.Log2() + 1)-maxLen;
                if d > 0 {
-                       r = fpNat{r.m.Shr(uint(d)), r.e + d};
+                       r = fpNat{r.m.Shr(uint(d)), r.e + d}
                }
        }
 
@@ -157,10 +157,10 @@ func div(t *testing.T, x, y Natural) {
        q, r := nrdiv(x, y);
        qx, rx := x.DivMod(y);
        if q.Cmp(qx) != 0 {
-               t.Errorf("x = %s, y = %s, got q = %s, want q = %s", x, y, q, qx);
+               t.Errorf("x = %s, y = %s, got q = %s, want q = %s", x, y, q, qx)
        }
        if r.Cmp(rx) != 0 {
-               t.Errorf("x = %s, y = %s, got r = %s, want r = %s", x, y, r, rx);
+               t.Errorf("x = %s, y = %s, got r = %s, want r = %s", x, y, r, rx)
        }
 }
 
index 6cdc1f34416d75c4495d22ee8e1eef770fc26b50..e65efc138af4e9aa91c1ef15d2994356de47b399 100644 (file)
@@ -34,7 +34,7 @@ func MakeRat(a *Integer, b Natural) *Rational {
 func Rat(a0 int64, b0 int64) *Rational {
        a, b := Int(a0), Int(b0);
        if b.sign {
-               a = a.Neg();
+               a = a.Neg()
        }
        return MakeRat(a, b.mant);
 }
@@ -43,7 +43,7 @@ func Rat(a0 int64, b0 int64) *Rational {
 // Value returns the numerator and denominator of x.
 //
 func (x *Rational) Value() (numerator *Integer, denominator Natural) {
-       return x.a, x.b;
+       return x.a, x.b
 }
 
 
@@ -80,14 +80,14 @@ func (x *Rational) Neg() *Rational  { return MakeRat(x.a.Neg(), x.b) }
 // Add returns the sum x + y.
 //
 func (x *Rational) Add(y *Rational) *Rational {
-       return MakeRat((x.a.MulNat(y.b)).Add(y.a.MulNat(x.b)), x.b.Mul(y.b));
+       return MakeRat((x.a.MulNat(y.b)).Add(y.a.MulNat(x.b)), x.b.Mul(y.b))
 }
 
 
 // Sub returns the difference x - y.
 //
 func (x *Rational) Sub(y *Rational) *Rational {
-       return MakeRat((x.a.MulNat(y.b)).Sub(y.a.MulNat(x.b)), x.b.Mul(y.b));
+       return MakeRat((x.a.MulNat(y.b)).Sub(y.a.MulNat(x.b)), x.b.Mul(y.b))
 }
 
 
@@ -103,7 +103,7 @@ func (x *Rational) Quo(y *Rational) *Rational {
        a := x.a.MulNat(y.b);
        b := y.a.MulNat(x.b);
        if b.IsNeg() {
-               a = a.Neg();
+               a = a.Neg()
        }
        return MakeRat(a, b.mant);
 }
@@ -125,7 +125,7 @@ func (x *Rational) Cmp(y *Rational) int     { return (x.a.MulNat(y.b)).Cmp(y.a.MulNa
 func (x *Rational) ToString(base uint) string {
        s := x.a.ToString(base);
        if !x.IsInt() {
-               s += "/" + x.b.ToString(base);
+               s += "/" + x.b.ToString(base)
        }
        return s;
 }
@@ -194,9 +194,9 @@ func RatFromString(s string, base uint) (*Rational, uint, int) {
                        rlen += elen;
                        m := Nat(10).Pow(uint(e.mant.Value()));
                        if e.sign {
-                               b = b.Mul(m);
+                               b = b.Mul(m)
                        } else {
-                               a = a.MulNat(m);
+                               a = a.MulNat(m)
                        }
                }
        }
index c529f7d94d8c91ced955a5b9596e2b901c845ea9..ef36c7aec840b18374b624d2ae31ae49cded5479 100644 (file)
@@ -34,12 +34,12 @@ var (
 type BufSizeError int
 
 func (b BufSizeError) String() string {
-       return "bufio: bad buffer size " + strconv.Itoa(int(b));
+       return "bufio: bad buffer size " + strconv.Itoa(int(b))
 }
 
 func copySlice(dst []byte, src []byte) {
        for i := 0; i < len(dst); i++ {
-               dst[i] = src[i];
+               dst[i] = src[i]
        }
 }
 
@@ -61,12 +61,12 @@ type Reader struct {
 // It returns the Reader and any error.
 func NewReaderSize(rd io.Reader, size int) (*Reader, os.Error) {
        if size <= 0 {
-               return nil, BufSizeError(size);
+               return nil, BufSizeError(size)
        }
        // Is it already a Reader?
        b, ok := rd.(*Reader);
        if ok && len(b.buf) >= size {
-               return b, nil;
+               return b, nil
        }
        b = new(Reader);
        b.buf = make([]byte, size);
@@ -80,7 +80,7 @@ func NewReader(rd io.Reader) *Reader {
        b, err := NewReaderSize(rd, defaultBufSize);
        if err != nil {
                // cannot happen - defaultBufSize is a valid size
-               panic("bufio: NewReader: ", err.String());
+               panic("bufio: NewReader: ", err.String())
        }
        return b;
 }
@@ -92,7 +92,7 @@ func (b *Reader) fill() {
                copySlice(b.buf[0 : b.w - b.r], b.buf[b.r : b.w]);
                b.w -= b.r;
        } else {
-               b.w = 0;
+               b.w = 0
        }
        b.r = 0;
 
@@ -100,7 +100,7 @@ func (b *Reader) fill() {
        n, e := b.rd.Read(b.buf[b.w : len(b.buf)]);
        b.w += n;
        if e != nil {
-               b.err = e;
+               b.err = e
        }
 }
 
@@ -115,14 +115,14 @@ func (b *Reader) Read(p []byte) (nn int, err os.Error) {
                n := len(p);
                if b.w == b.r {
                        if b.err != nil {
-                               return nn, b.err;
+                               return nn, b.err
                        }
                        if len(p) >= len(b.buf) {
                                // Large read, empty buffer.
                                // Read directly into p to avoid copy.
                                n, b.err = b.rd.Read(p);
                                if n > 0 {
-                                       b.lastbyte = int(p[n-1]);
+                                       b.lastbyte = int(p[n-1])
                                }
                                p = p[n:len(p)];
                                nn += n;
@@ -132,7 +132,7 @@ func (b *Reader) Read(p []byte) (nn int, err os.Error) {
                        continue;
                }
                if n > b.w - b.r {
-                       n = b.w - b.r;
+                       n = b.w - b.r
                }
                copySlice(p[0:n], b.buf[b.r : b.r + n]);
                p = p[n:len(p)];
@@ -148,7 +148,7 @@ func (b *Reader) Read(p []byte) (nn int, err os.Error) {
 func (b *Reader) ReadByte() (c byte, err os.Error) {
        for b.w == b.r {
                if b.err != nil {
-                       return 0, b.err;
+                       return 0, b.err
                }
                b.fill();
        }
@@ -168,7 +168,7 @@ func (b *Reader) UnreadByte() os.Error {
                return nil;
        }
        if b.r <= 0 {
-               return ErrInvalidUnreadByte;
+               return ErrInvalidUnreadByte
        }
        b.r--;
        b.lastbyte = -1;
@@ -179,14 +179,14 @@ func (b *Reader) UnreadByte() os.Error {
 // rune and its size in bytes.
 func (b *Reader) ReadRune() (rune int, size int, err os.Error) {
        for b.r + utf8.UTFMax > b.w && !utf8.FullRune(b.buf[b.r : b.w]) && b.err == nil {
-               b.fill();
+               b.fill()
        }
        if b.r == b.w {
-               return 0, 0, b.err;
+               return 0, 0, b.err
        }
        rune, size = int(b.buf[b.r]), 1;
        if rune >= 0x80 {
-               rune, size = utf8.DecodeRune(b.buf[b.r : b.w]);
+               rune, size = utf8.DecodeRune(b.buf[b.r : b.w])
        }
        b.r += size;
        b.lastbyte = int(b.buf[b.r - 1]);
@@ -198,7 +198,7 @@ func (b *Reader) ReadRune() (rune int, size int, err os.Error) {
 func findByte(p []byte, c byte) int {
        for i := 0; i < len(p); i++ {
                if p[i] == c {
-                       return i;
+                       return i
                }
        }
        return -1;
@@ -245,7 +245,7 @@ func (b *Reader) ReadSlice(delim byte) (line []byte, err os.Error) {
 
                // Buffer is full?
                if b.Buffered() >= len(b.buf) {
-                       return nil, ErrBufferFull;
+                       return nil, ErrBufferFull
                }
        }
        panic("not reached");
@@ -268,7 +268,7 @@ func (b *Reader) ReadBytes(delim byte) (line []byte, err os.Error) {
                var e os.Error;
                frag, e = b.ReadSlice(delim);
                if e == nil {   // got final fragment
-                       break;
+                       break
                }
                if e != ErrBufferFull { // unexpected error
                        err = e;
@@ -292,11 +292,11 @@ func (b *Reader) ReadBytes(delim byte) (line []byte, err os.Error) {
 
                // Grow list if needed.
                if full == nil {
-                       full = make([][]byte, 16);
+                       full = make([][]byte, 16)
                } else if nfull >= len(full) {
                        newfull := make([][]byte, len(full)*2);
                        for i := 0; i < len(full); i++ {
-                               newfull[i] = full[i];
+                               newfull[i] = full[i]
                        }
                        full = newfull;
                }
@@ -309,7 +309,7 @@ func (b *Reader) ReadBytes(delim byte) (line []byte, err os.Error) {
        // Allocate new buffer to hold the full pieces and the fragment.
        n := 0;
        for i := 0; i < nfull; i++ {
-               n += len(full[i]);
+               n += len(full[i])
        }
        n += len(frag);
 
@@ -351,12 +351,12 @@ type Writer struct {
 // It returns the Writer and any error.
 func NewWriterSize(wr io.Writer, size int) (*Writer, os.Error) {
        if size <= 0 {
-               return nil, BufSizeError(size);
+               return nil, BufSizeError(size)
        }
        // Is it already a Writer?
        b, ok := wr.(*Writer);
        if ok && len(b.buf) >= size {
-               return b, nil;
+               return b, nil
        }
        b = new(Writer);
        b.buf = make([]byte, size);
@@ -369,7 +369,7 @@ func NewWriter(wr io.Writer) *Writer {
        b, err := NewWriterSize(wr, defaultBufSize);
        if err != nil {
                // cannot happen - defaultBufSize is valid size
-               panic("bufio: NewWriter: ", err.String());
+               panic("bufio: NewWriter: ", err.String())
        }
        return b;
 }
@@ -377,15 +377,15 @@ func NewWriter(wr io.Writer) *Writer {
 // Flush writes any buffered data to the underlying io.Writer.
 func (b *Writer) Flush() os.Error {
        if b.err != nil {
-               return b.err;
+               return b.err
        }
        n, e := b.wr.Write(b.buf[0 : b.n]);
        if n < b.n && e == nil {
-               e = io.ErrShortWrite;
+               e = io.ErrShortWrite
        }
        if e != nil {
                if n > 0 && n < b.n {
-                       copySlice(b.buf[0 : b.n - n], b.buf[n : b.n]);
+                       copySlice(b.buf[0 : b.n - n], b.buf[n : b.n])
                }
                b.n -= n;
                b.err = e;
@@ -407,14 +407,14 @@ func (b *Writer) Buffered() int   { return b.n }
 // why the write is short.
 func (b *Writer) Write(p []byte) (nn int, err os.Error) {
        if b.err != nil {
-               return 0, b.err;
+               return 0, b.err
        }
        nn = 0;
        for len(p) > 0 {
                n := b.Available();
                if n <= 0 {
                        if b.Flush(); b.err != nil {
-                               break;
+                               break
                        }
                        n = b.Available();
                }
@@ -425,12 +425,12 @@ func (b *Writer) Write(p []byte) (nn int, err os.Error) {
                        nn += n;
                        p = p[n:len(p)];
                        if b.err != nil {
-                               break;
+                               break
                        }
                        continue;
                }
                if n > len(p) {
-                       n = len(p);
+                       n = len(p)
                }
                copySlice(b.buf[b.n : b.n + n], p[0:n]);
                b.n += n;
@@ -443,10 +443,10 @@ func (b *Writer) Write(p []byte) (nn int, err os.Error) {
 // WriteByte writes a single byte.
 func (b *Writer) WriteByte(c byte) os.Error {
        if b.err != nil {
-               return b.err;
+               return b.err
        }
        if b.Available() <= 0 && b.Flush() != nil {
-               return b.err;
+               return b.err
        }
        b.buf[b.n] = c;
        b.n++;
@@ -456,7 +456,7 @@ func (b *Writer) WriteByte(c byte) os.Error {
 // WriteString writes a string.
 func (b *Writer) WriteString(s string) os.Error {
        if b.err != nil {
-               return b.err;
+               return b.err
        }
        // Common case, worth making fast.
        if b.Available() >= len(s) || len(b.buf) >= len(s) && b.Flush() == nil {
@@ -467,7 +467,7 @@ func (b *Writer) WriteString(s string) os.Error {
                return nil;
        }
        for i := 0; i < len(s); i++ {   // loop over bytes, not runes.
-               b.WriteByte(s[i]);
+               b.WriteByte(s[i])
        }
        return b.err;
 }
@@ -483,5 +483,5 @@ type ReadWriter struct {
 
 // NewReadWriter allocates a new ReadWriter that dispatches to r and w.
 func NewReadWriter(r *Reader, w *Writer) *ReadWriter {
-       return &ReadWriter{r, w};
+       return &ReadWriter{r, w}
 }
index 545ed7e94d3a66c9ebcf14587fdb65e66529984c..cc24dbfe0c0fd1607c455686c1aeec97a60f40db 100644 (file)
@@ -28,14 +28,14 @@ func newRot13Reader(r io.Reader) *rot13Reader {
 func (r13 *rot13Reader) Read(p []byte) (int, os.Error) {
        n, e := r13.r.Read(p);
        if e != nil {
-               return n, e;
+               return n, e
        }
        for i := 0; i < n; i++ {
                c := p[i]|0x20; // lowercase byte
                if 'a' <= c && c <= 'm' {
-                       p[i] += 13;
+                       p[i] += 13
                } else if 'n' <= c && c <= 'z' {
-                       p[i] -= 13;
+                       p[i] -= 13
                }
        }
        return n, nil;
@@ -48,10 +48,10 @@ func readBytes(buf *Reader) string {
        for {
                c, e := buf.ReadByte();
                if e == os.EOF {
-                       break;
+                       break
                }
                if e != nil {
-                       panic("Data: " + e.String());
+                       panic("Data: " + e.String())
                }
                b[nb] = c;
                nb++;
@@ -63,12 +63,12 @@ func TestReaderSimple(t *testing.T) {
        data := "hello world";
        b := NewReader(bytes.NewBufferString(data));
        if s := readBytes(b); s != "hello world" {
-               t.Errorf("simple hello world test failed: got %q", s);
+               t.Errorf("simple hello world test failed: got %q", s)
        }
 
        b = NewReader(newRot13Reader(bytes.NewBufferString(data)));
        if s := readBytes(b); s != "uryyb jbeyq" {
-               t.Error("rot13 hello world test failed: got %q", s);
+               t.Error("rot13 hello world test failed: got %q", s)
        }
 }
 
@@ -92,10 +92,10 @@ func readLines(b *Reader) string {
        for {
                s1, e := b.ReadString('\n');
                if e == os.EOF {
-                       break;
+                       break
                }
                if e != nil {
-                       panic("GetLines: " + e.String());
+                       panic("GetLines: " + e.String())
                }
                s += s1;
        }
@@ -110,7 +110,7 @@ func reads(buf *Reader, m int) string {
                n, e := buf.Read(b[nb : nb+m]);
                nb += n;
                if e == os.EOF {
-                       break;
+                       break
                }
        }
        return string(b[0:nb]);
@@ -161,7 +161,7 @@ func TestReader(t *testing.T) {
                                        s := bufreader.fn(buf);
                                        if s != text {
                                                t.Errorf("reader=%s fn=%s bufsize=%d want=%q got=%q",
-                                                       readmaker.name, bufreader.name, bufsize, text, s);
+                                                       readmaker.name, bufreader.name, bufsize, text, s)
                                        }
                                }
                        }
@@ -179,12 +179,12 @@ func (r *StringReader) Read(p []byte) (n int, err os.Error) {
        if r.step < len(r.data) {
                s := r.data[r.step];
                for i := 0; i < len(s); i++ {
-                       p[i] = s[i];
+                       p[i] = s[i]
                }
                n = len(s);
                r.step++;
        } else {
-               err = os.EOF;
+               err = os.EOF
        }
        return;
 }
@@ -197,14 +197,14 @@ func readRuneSegments(t *testing.T, segments []string) {
                rune, _, err := r.ReadRune();
                if err != nil {
                        if err != os.EOF {
-                               return;
+                               return
                        }
                        break;
                }
                got += string(rune);
        }
        if got != want {
-               t.Errorf("segments=%v got=%s want=%s", segments, got, want);
+               t.Errorf("segments=%v got=%s want=%s", segments, got, want)
        }
 }
 
@@ -221,7 +221,7 @@ var segmentList = [][]string{
 
 func TestReadRune(t *testing.T) {
        for _, s := range segmentList {
-               readRuneSegments(t, s);
+               readRuneSegments(t, s)
        }
 }
 
@@ -229,7 +229,7 @@ func TestWriter(t *testing.T) {
        var data [8192]byte;
 
        for i := 0; i < len(data); i++ {
-               data[i] = byte(' ' + i%('~'-' '));
+               data[i] = byte(' ' + i%('~'-' '))
        }
        w := new(bytes.Buffer);
        for i := 0; i < len(bufsizes); i++ {
@@ -254,12 +254,12 @@ func TestWriter(t *testing.T) {
                                continue;
                        }
                        if e = buf.Flush(); e != nil {
-                               t.Errorf("%s: buf.Flush = %v", context, e);
+                               t.Errorf("%s: buf.Flush = %v", context, e)
                        }
 
                        written := w.Bytes();
                        if len(written) != nwrite {
-                               t.Errorf("%s: %d bytes written", context, len(written));
+                               t.Errorf("%s: %d bytes written", context, len(written))
                        }
                        for l := 0; l < len(written); l++ {
                                if written[i] != data[i] {
@@ -281,7 +281,7 @@ type errorWriterTest struct {
 }
 
 func (w errorWriterTest) Write(p []byte) (int, os.Error) {
-       return len(p) * w.n / w.m, w.err;
+       return len(p) * w.n / w.m, w.err
 }
 
 var errorWriterTests = []errorWriterTest{
@@ -303,7 +303,7 @@ func TestWriteErrors(t *testing.T) {
                }
                e = buf.Flush();
                if e != w.expect {
-                       t.Errorf("Flush %v: got %v, wanted %v", w, e, w.expect);
+                       t.Errorf("Flush %v: got %v, wanted %v", w, e, w.expect)
                }
        }
 }
@@ -312,23 +312,23 @@ func TestNewReaderSizeIdempotent(t *testing.T) {
        const BufSize = 1000;
        b, err := NewReaderSize(bytes.NewBufferString("hello world"), BufSize);
        if err != nil {
-               t.Error("NewReaderSize create fail", err);
+               t.Error("NewReaderSize create fail", err)
        }
        // Does it recognize itself?
        b1, err2 := NewReaderSize(b, BufSize);
        if err2 != nil {
-               t.Error("NewReaderSize #2 create fail", err2);
+               t.Error("NewReaderSize #2 create fail", err2)
        }
        if b1 != b {
-               t.Error("NewReaderSize did not detect underlying Reader");
+               t.Error("NewReaderSize did not detect underlying Reader")
        }
        // Does it wrap if existing buffer is too small?
        b2, err3 := NewReaderSize(b, 2*BufSize);
        if err3 != nil {
-               t.Error("NewReaderSize #3 create fail", err3);
+               t.Error("NewReaderSize #3 create fail", err3)
        }
        if b2 == b {
-               t.Error("NewReaderSize did not enlarge buffer");
+               t.Error("NewReaderSize did not enlarge buffer")
        }
 }
 
@@ -336,23 +336,23 @@ func TestNewWriterSizeIdempotent(t *testing.T) {
        const BufSize = 1000;
        b, err := NewWriterSize(new(bytes.Buffer), BufSize);
        if err != nil {
-               t.Error("NewWriterSize create fail", err);
+               t.Error("NewWriterSize create fail", err)
        }
        // Does it recognize itself?
        b1, err2 := NewWriterSize(b, BufSize);
        if err2 != nil {
-               t.Error("NewWriterSize #2 create fail", err2);
+               t.Error("NewWriterSize #2 create fail", err2)
        }
        if b1 != b {
-               t.Error("NewWriterSize did not detect underlying Writer");
+               t.Error("NewWriterSize did not detect underlying Writer")
        }
        // Does it wrap if existing buffer is too small?
        b2, err3 := NewWriterSize(b, 2*BufSize);
        if err3 != nil {
-               t.Error("NewWriterSize #3 create fail", err3);
+               t.Error("NewWriterSize #3 create fail", err3)
        }
        if b2 == b {
-               t.Error("NewWriterSize did not enlarge buffer");
+               t.Error("NewWriterSize did not enlarge buffer")
        }
 }
 
@@ -361,7 +361,7 @@ func TestWriteString(t *testing.T) {
        buf := new(bytes.Buffer);
        b, err := NewWriterSize(buf, BufSize);
        if err != nil {
-               t.Error("NewWriterSize create fail", err);
+               t.Error("NewWriterSize create fail", err)
        }
        b.WriteString("0");                             // easy
        b.WriteString("123456");                        // still easy
@@ -370,10 +370,10 @@ func TestWriteString(t *testing.T) {
        b.WriteString("z");
        b.Flush();
        if b.err != nil {
-               t.Error("WriteString", b.err);
+               t.Error("WriteString", b.err)
        }
        s := "01234567890abcdefghijklmnopqrstuvwxyz";
        if string(buf.Bytes()) != s {
-               t.Errorf("WriteString wants %q gets %q", s, string(buf.Bytes()));
+               t.Errorf("WriteString wants %q gets %q", s, string(buf.Bytes()))
        }
 }
index a448dff845898579d6f90034b3540db586aaa913..eed8f6b681aa66f430bf8962ace98d312b5ea227 100644 (file)
@@ -44,7 +44,7 @@ func (b *Buffer) Bytes() []byte       { return b.buf[b.off : len(b.buf)] }
 func (b *Buffer) String() string {
        if b == nil {
                // Special case, useful in debugging.
-               return "<nil>";
+               return "<nil>"
        }
        return string(b.buf[b.off : len(b.buf)]);
 }
@@ -58,7 +58,7 @@ func (b *Buffer) Len() int    { return len(b.buf) - b.off }
 func (b *Buffer) Truncate(n int) {
        if n == 0 {
                // Reuse buffer space.
-               b.off = 0;
+               b.off = 0
        }
        b.buf = b.buf[0 : b.off + n];
 }
@@ -78,7 +78,7 @@ func (b *Buffer) Write(p []byte) (n int, err os.Error) {
                buf := b.buf;
                if m+n > cap(b.buf) {
                        // not enough space anywhere
-                       buf = make([]byte, 2*cap(b.buf) + n);
+                       buf = make([]byte, 2*cap(b.buf) + n)
                }
                copyBytes(buf, 0, b.buf[b.off : b.off + m]);
                b.buf = buf;
@@ -101,7 +101,7 @@ func (b *Buffer) WriteString(s string) (n int, err os.Error) {
                buf := b.buf;
                if m+n > cap(b.buf) {
                        // not enough space anywhere
-                       buf = make([]byte, 2*cap(b.buf) + n);
+                       buf = make([]byte, 2*cap(b.buf) + n)
                }
                copyBytes(buf, 0, b.buf[b.off : b.off + m]);
                b.buf = buf;
@@ -119,7 +119,7 @@ func (b *Buffer) WriteString(s string) (n int, err os.Error) {
 func (b *Buffer) WriteByte(c byte) os.Error {
        if b.oneByte == nil {
                // Only happens once per Buffer, and then we have a slice.
-               b.oneByte = make([]byte, 1);
+               b.oneByte = make([]byte, 1)
        }
        b.oneByte[0] = c;
        b.Write(b.oneByte);
@@ -132,14 +132,14 @@ func (b *Buffer) WriteByte(c byte) os.Error {
 // otherwise it is nil.
 func (b *Buffer) Read(p []byte) (n int, err os.Error) {
        if b.off >= len(b.buf) {
-               return 0, os.EOF;
+               return 0, os.EOF
        }
        m := b.Len();
        n = len(p);
 
        if n > m {
                // more bytes requested than available
-               n = m;
+               n = m
        }
 
        copyBytes(p, 0, b.buf[b.off : b.off + n]);
@@ -151,7 +151,7 @@ func (b *Buffer) Read(p []byte) (n int, err os.Error) {
 // If no byte is available, it returns error os.EOF.
 func (b *Buffer) ReadByte() (c byte, err os.Error) {
        if b.off >= len(b.buf) {
-               return 0, os.EOF;
+               return 0, os.EOF
        }
        c = b.buf[b.off];
        b.off++;
index c364eece4f992125cc9c2e72ab26523c0d98347c..f566183be70dd03d5006cf8c4e659d2fe51bcdd9 100644 (file)
@@ -19,7 +19,7 @@ var bytes []byte      // test data; same as data but as a slice.
 func init() {
        bytes = make([]byte, N);
        for i := 0; i < N; i++ {
-               bytes[i] = 'a'+byte(i%26);
+               bytes[i] = 'a'+byte(i%26)
        }
        data = string(bytes);
 }
@@ -29,19 +29,19 @@ func check(t *testing.T, testname string, buf *Buffer, s string) {
        bytes := buf.Bytes();
        str := buf.String();
        if buf.Len() != len(bytes) {
-               t.Errorf("%s: buf.Len() == %d, len(buf.Bytes()) == %d\n", testname, buf.Len(), len(bytes));
+               t.Errorf("%s: buf.Len() == %d, len(buf.Bytes()) == %d\n", testname, buf.Len(), len(bytes))
        }
 
        if buf.Len() != len(str) {
-               t.Errorf("%s: buf.Len() == %d, len(buf.String()) == %d\n", testname, buf.Len(), len(str));
+               t.Errorf("%s: buf.Len() == %d, len(buf.String()) == %d\n", testname, buf.Len(), len(str))
        }
 
        if buf.Len() != len(s) {
-               t.Errorf("%s: buf.Len() == %d, len(s) == %d\n", testname, buf.Len(), len(s));
+               t.Errorf("%s: buf.Len() == %d, len(s) == %d\n", testname, buf.Len(), len(s))
        }
 
        if string(bytes) != s {
-               t.Errorf("%s: string(buf.Bytes()) == %q, s == %q\n", testname, string(bytes), s);
+               t.Errorf("%s: string(buf.Bytes()) == %q, s == %q\n", testname, string(bytes), s)
        }
 }
 
@@ -54,10 +54,10 @@ func fillString(t *testing.T, testname string, buf *Buffer, s string, n int, fus
        for ; n > 0; n-- {
                m, err := buf.WriteString(fus);
                if m != len(fus) {
-                       t.Errorf(testname + " (fill 2): m == %d, expected %d\n", m, len(fus));
+                       t.Errorf(testname + " (fill 2): m == %d, expected %d\n", m, len(fus))
                }
                if err != nil {
-                       t.Errorf(testname + " (fill 3): err should always be nil, found err == %s\n", err);
+                       t.Errorf(testname + " (fill 3): err should always be nil, found err == %s\n", err)
                }
                s += fus;
                check(t, testname + " (fill 4)", buf, s);
@@ -74,10 +74,10 @@ func fillBytes(t *testing.T, testname string, buf *Buffer, s string, n int, fub
        for ; n > 0; n-- {
                m, err := buf.Write(fub);
                if m != len(fub) {
-                       t.Errorf(testname + " (fill 2): m == %d, expected %d\n", m, len(fub));
+                       t.Errorf(testname + " (fill 2): m == %d, expected %d\n", m, len(fub))
                }
                if err != nil {
-                       t.Errorf(testname + " (fill 3): err should always be nil, found err == %s\n", err);
+                       t.Errorf(testname + " (fill 3): err should always be nil, found err == %s\n", err)
                }
                s += string(fub);
                check(t, testname + " (fill 4)", buf, s);
@@ -106,10 +106,10 @@ func empty(t *testing.T, testname string, buf *Buffer, s string, fub []byte) {
        for {
                n, err := buf.Read(fub);
                if n == 0 {
-                       break;
+                       break
                }
                if err != nil {
-                       t.Errorf(testname + " (empty 2): err should always be nil, found err == %s\n", err);
+                       t.Errorf(testname + " (empty 2): err should always be nil, found err == %s\n", err)
                }
                s = s[n:len(s)];
                check(t, testname + " (empty 3)", buf, s);
@@ -133,10 +133,10 @@ func TestBasicOperations(t *testing.T) {
 
                n, err := buf.Write(Bytes(data[0:1]));
                if n != 1 {
-                       t.Errorf("wrote 1 byte, but n == %d\n", n);
+                       t.Errorf("wrote 1 byte, but n == %d\n", n)
                }
                if err != nil {
-                       t.Errorf("err should always be nil, but err == %s\n", err);
+                       t.Errorf("err should always be nil, but err == %s\n", err)
                }
                check(t, "TestBasicOperations (4)", &buf, "a");
 
@@ -145,7 +145,7 @@ func TestBasicOperations(t *testing.T) {
 
                n, err = buf.Write(Bytes(data[2:26]));
                if n != 24 {
-                       t.Errorf("wrote 25 bytes, but n == %d\n", n);
+                       t.Errorf("wrote 25 bytes, but n == %d\n", n)
                }
                check(t, "TestBasicOperations (6)", &buf, string(data[0:26]));
 
@@ -161,14 +161,14 @@ func TestBasicOperations(t *testing.T) {
                buf.WriteByte(data[1]);
                c, err := buf.ReadByte();
                if err != nil {
-                       t.Errorf("ReadByte unexpected eof\n");
+                       t.Errorf("ReadByte unexpected eof\n")
                }
                if c != data[1] {
-                       t.Errorf("ReadByte wrong value c=%v\n", c);
+                       t.Errorf("ReadByte wrong value c=%v\n", c)
                }
                c, err = buf.ReadByte();
                if err == nil {
-                       t.Errorf("ReadByte unexpected not eof\n");
+                       t.Errorf("ReadByte unexpected not eof\n")
                }
        }
 }
@@ -220,9 +220,9 @@ func TestMixedReadsAndWrites(t *testing.T) {
        for i := 0; i < 50; i++ {
                wlen := rand.Intn(len(data));
                if i%2 == 0 {
-                       s = fillString(t, "TestMixedReadsAndWrites (1)", &buf, s, 1, data[0:wlen]);
+                       s = fillString(t, "TestMixedReadsAndWrites (1)", &buf, s, 1, data[0:wlen])
                } else {
-                       s = fillBytes(t, "TestMixedReadsAndWrites (1)", &buf, s, 1, bytes[0:wlen]);
+                       s = fillBytes(t, "TestMixedReadsAndWrites (1)", &buf, s, 1, bytes[0:wlen])
                }
 
                rlen := rand.Intn(len(data));
@@ -237,6 +237,6 @@ func TestMixedReadsAndWrites(t *testing.T) {
 func TestNil(t *testing.T) {
        var b *Buffer;
        if b.String() != "<nil>" {
-               t.Error("expcted <nil>; got %q", b.String());
+               t.Error("expcted <nil>; got %q", b.String())
        }
 }
index 3ebc8373ab4659b29a77a16d3602a9733ec4322d..db964f6dae1b8565c52264418f59b01316e5f444 100644 (file)
@@ -17,16 +17,16 @@ func Compare(a, b []byte) int {
        for i := 0; i < len(a) && i < len(b); i++ {
                switch {
                case a[i] > b[i]:
-                       return 1;
+                       return 1
                case a[i] < b[i]:
-                       return -1;
+                       return -1
                }
        }
        switch {
        case len(a) < len(b):
-               return -1;
+               return -1
        case len(a) > len(b):
-               return 1;
+               return 1
        }
        return 0;
 }
@@ -34,11 +34,11 @@ func Compare(a, b []byte) int {
 // Equal returns a boolean reporting whether a == b.
 func Equal(a, b []byte) bool {
        if len(a) != len(b) {
-               return false;
+               return false
        }
        for i := 0; i < len(a); i++ {
                if a[i] != b[i] {
-                       return false;
+                       return false
                }
        }
        return true;
@@ -50,10 +50,10 @@ func Equal(a, b []byte) bool {
 // It returns the number of bytes copied.
 func Copy(dst, src []byte) int {
        if len(src) > len(dst) {
-               src = src[0:len(dst)];
+               src = src[0:len(dst)]
        }
        for i, x := range src {
-               dst[i] = x;
+               dst[i] = x
        }
        return len(src);
 }
@@ -62,7 +62,7 @@ func Copy(dst, src []byte) int {
 // up to a maximum of n byte arrays. Invalid UTF-8 sequences are chopped into individual bytes.
 func explode(s []byte, n int) [][]byte {
        if n <= 0 {
-               n = len(s);
+               n = len(s)
        }
        a := make([][]byte, n);
        var size int;
@@ -84,7 +84,7 @@ func explode(s []byte, n int) [][]byte {
 // Count counts the number of non-overlapping instances of sep in s.
 func Count(s, sep []byte) int {
        if len(sep) == 0 {
-               return utf8.RuneCount(s) + 1;
+               return utf8.RuneCount(s) + 1
        }
        c := sep[0];
        n := 0;
@@ -101,12 +101,12 @@ func Count(s, sep []byte) int {
 func Index(s, sep []byte) int {
        n := len(sep);
        if n == 0 {
-               return 0;
+               return 0
        }
        c := sep[0];
        for i := 0; i+n <= len(s); i++ {
                if s[i] == c && (n == 1 || Equal(s[i : i+n], sep)) {
-                       return i;
+                       return i
                }
        }
        return -1;
@@ -116,12 +116,12 @@ func Index(s, sep []byte) int {
 func LastIndex(s, sep []byte) int {
        n := len(sep);
        if n == 0 {
-               return len(s);
+               return len(s)
        }
        c := sep[0];
        for i := len(s)-n; i >= 0; i-- {
                if s[i] == c && (n == 1 || Equal(s[i : i+n], sep)) {
-                       return i;
+                       return i
                }
        }
        return -1;
@@ -131,10 +131,10 @@ func LastIndex(s, sep []byte) int {
 // including sepSave bytes of sep in the subarrays.
 func genSplit(s, sep []byte, sepSave, n int) [][]byte {
        if len(sep) == 0 {
-               return explode(s, n);
+               return explode(s, n)
        }
        if n <= 0 {
-               n = Count(s, sep) + 1;
+               n = Count(s, sep) + 1
        }
        c := sep[0];
        start := 0;
@@ -162,21 +162,21 @@ func Split(s, sep []byte, n int) [][]byte { return genSplit(s, sep, 0, n) }
 // If n > 0, SplitAfter splits s into at most n subarrays; the last subarray will contain an
 // unsplit remainder.
 func SplitAfter(s, sep []byte, n int) [][]byte {
-       return genSplit(s, sep, len(sep), n);
+       return genSplit(s, sep, len(sep), n)
 }
 
 // Join concatenates the elements of a to create a single byte array.   The separator
 // sep is placed between elements in the resulting array.
 func Join(a [][]byte, sep []byte) []byte {
        if len(a) == 0 {
-               return []byte{};
+               return []byte{}
        }
        if len(a) == 1 {
-               return a[0];
+               return a[0]
        }
        n := len(sep)*(len(a)-1);
        for i := 0; i < len(a); i++ {
-               n += len(a[i]);
+               n += len(a[i])
        }
 
        b := make([]byte, n);
@@ -200,12 +200,12 @@ func Join(a [][]byte, sep []byte) []byte {
 
 // HasPrefix tests whether the byte array s begins with prefix.
 func HasPrefix(s, prefix []byte) bool {
-       return len(s) >= len(prefix) && Equal(s[0:len(prefix)], prefix);
+       return len(s) >= len(prefix) && Equal(s[0:len(prefix)], prefix)
 }
 
 // HasSuffix tests whether the byte array s ends with suffix.
 func HasSuffix(s, suffix []byte) bool {
-       return len(s) >= len(suffix) && Equal(s[len(s)-len(suffix) : len(s)], suffix);
+       return len(s) >= len(suffix) && Equal(s[len(s)-len(suffix) : len(s)], suffix)
 }
 
 // Map returns a copy of the byte array s with all its characters modified
@@ -221,9 +221,9 @@ func Map(mapping func(rune int) int, s []byte) []byte {
                wid := 1;
                rune := int(s[i]);
                if rune < utf8.RuneSelf {
-                       rune = mapping(rune);
+                       rune = mapping(rune)
                } else {
-                       rune, wid = utf8.DecodeRune(s[i:len(s)]);
+                       rune, wid = utf8.DecodeRune(s[i:len(s)])
                }
                rune = mapping(rune);
                if nbytes + utf8.RuneLen(rune) > maxbytes {
@@ -231,7 +231,7 @@ func Map(mapping func(rune int) int, s []byte) []byte {
                        maxbytes = maxbytes*2 + utf8.UTFMax;
                        nb := make([]byte, maxbytes);
                        for i, c := range b[0:nbytes] {
-                               nb[i] = c;
+                               nb[i] = c
                        }
                        b = nb;
                }
@@ -258,10 +258,10 @@ func TrimSpace(s []byte) []byte {
                wid := 1;
                rune := int(s[start]);
                if rune >= utf8.RuneSelf {
-                       rune, wid = utf8.DecodeRune(s[start:end]);
+                       rune, wid = utf8.DecodeRune(s[start:end])
                }
                if !unicode.IsSpace(rune) {
-                       break;
+                       break
                }
                start += wid;
        }
@@ -273,12 +273,12 @@ func TrimSpace(s []byte) []byte {
                        for wid = 2; start <= end-wid && !utf8.RuneStart(s[end-wid]); wid++ {
                        }
                        if start > end-wid {    // invalid UTF-8 sequence; stop processing
-                               return s[start:end];
+                               return s[start:end]
                        }
                        rune, wid = utf8.DecodeRune(s[end-wid : end]);
                }
                if !unicode.IsSpace(rune) {
-                       break;
+                       break
                }
                end -= wid;
        }
@@ -289,7 +289,7 @@ func TrimSpace(s []byte) []byte {
 // Heuristic: Scale by 50% to give n log n time.
 func resize(n int) int {
        if n < 16 {
-               n = 16;
+               n = 16
        }
        return n + n/2;
 }
@@ -301,7 +301,7 @@ func Add(s, t []byte) []byte {
        lens := len(s);
        lent := len(t);
        if lens+lent <= cap(s) {
-               s = s[0 : lens+lent];
+               s = s[0 : lens+lent]
        } else {
                news := make([]byte, lens+lent, resize(lens+lent));
                Copy(news, s);
@@ -317,7 +317,7 @@ func Add(s, t []byte) []byte {
 func AddByte(s []byte, t byte) []byte {
        lens := len(s);
        if lens+1 <= cap(s) {
-               s = s[0 : lens+1];
+               s = s[0 : lens+1]
        } else {
                news := make([]byte, lens+1, resize(lens+1));
                Copy(news, s);
index b00de1b0cdeec1e9667a49e8fe2c23cefdc449b6..47e5964d1a8505a6f0c58983231022e5dc130de1 100644 (file)
@@ -13,11 +13,11 @@ import (
 
 func eq(a, b []string) bool {
        if len(a) != len(b) {
-               return false;
+               return false
        }
        for i := 0; i < len(a); i++ {
                if a[i] != b[i] {
-                       return false;
+                       return false
                }
        }
        return true;
@@ -26,7 +26,7 @@ func eq(a, b []string) bool {
 func arrayOfString(a [][]byte) []string {
        result := make([]string, len(a));
        for j := 0; j < len(a); j++ {
-               result[j] = string(a[j]);
+               result[j] = string(a[j])
        }
        return result;
 }
@@ -66,10 +66,10 @@ func TestCompare(t *testing.T) {
                cmp := Compare(a, b);
                eql := Equal(a, b);
                if cmp != tt.cmp {
-                       t.Errorf(`Compare(%q, %q) = %v`, tt.a, tt.b, cmp);
+                       t.Errorf(`Compare(%q, %q) = %v`, tt.a, tt.b, cmp)
                }
                if eql != (tt.cmp == 0) {
-                       t.Errorf(`Equal(%q, %q) = %v`, tt.a, tt.b, eql);
+                       t.Errorf(`Equal(%q, %q) = %v`, tt.a, tt.b, eql)
                }
        }
 }
@@ -97,7 +97,7 @@ func TestExplode(t *testing.T) {
                }
                s := Join(a, []byte{});
                if string(s) != tt.s {
-                       t.Errorf(`Join(Explode("%s", %d), "") = "%s"`, tt.s, tt.n, s);
+                       t.Errorf(`Join(Explode("%s", %d), "") = "%s"`, tt.s, tt.n, s)
                }
        }
 }
@@ -136,7 +136,7 @@ func TestSplit(t *testing.T) {
                }
                s := Join(a, strings.Bytes(tt.sep));
                if string(s) != tt.s {
-                       t.Errorf(`Join(Split(%q, %q, %d), %q) = %q`, tt.s, tt.sep, tt.n, tt.sep, s);
+                       t.Errorf(`Join(Split(%q, %q, %d), %q) = %q`, tt.s, tt.sep, tt.n, tt.sep, s)
                }
        }
 }
@@ -167,7 +167,7 @@ func TestSplitAfter(t *testing.T) {
                }
                s := Join(a, nil);
                if string(s) != tt.s {
-                       t.Errorf(`Join(Split(%q, %q, %d), %q) = %q`, tt.s, tt.sep, tt.n, tt.sep, s);
+                       t.Errorf(`Join(Split(%q, %q, %d), %q) = %q`, tt.s, tt.sep, tt.n, tt.sep, s)
                }
        }
 }
@@ -244,7 +244,7 @@ var trimSpaceTests = []StringTest{
 func Bytes(s string) []byte {
        b := make([]byte, len(s));
        for i := 0; i < len(s); i++ {
-               b[i] = s[i];
+               b[i] = s[i]
        }
        return b;
 }
@@ -255,7 +255,7 @@ func runStringTests(t *testing.T, f func([]byte) []byte, funcName string, testCa
        for _, tc := range testCases {
                actual := string(f(Bytes(tc.in)));
                if actual != tc.out {
-                       t.Errorf("%s(%q) = %q; want %q", funcName, tc.in, actual, tc.out);
+                       t.Errorf("%s(%q) = %q; want %q", funcName, tc.in, actual, tc.out)
                }
        }
 }
@@ -263,7 +263,7 @@ func runStringTests(t *testing.T, f func([]byte) []byte, funcName string, testCa
 func tenRunes(rune int) string {
        r := make([]int, 10);
        for i := range r {
-               r[i] = rune;
+               r[i] = rune
        }
        return string(r);
 }
@@ -276,14 +276,14 @@ func TestMap(t *testing.T) {
        m := Map(maxRune, Bytes(a));
        expect := tenRunes(unicode.MaxRune);
        if string(m) != expect {
-               t.Errorf("growing: expected %q got %q", expect, m);
+               t.Errorf("growing: expected %q got %q", expect, m)
        }
        // 2. Shrink
        minRune := func(rune int) int { return 'a' };
        m = Map(minRune, Bytes(tenRunes(unicode.MaxRune)));
        expect = a;
        if string(m) != expect {
-               t.Errorf("shrinking: expected %q got %q", expect, m);
+               t.Errorf("shrinking: expected %q got %q", expect, m)
        }
 }
 
@@ -309,11 +309,11 @@ func TestAdd(t *testing.T) {
        for _, test := range addtests {
                b := make([]byte, len(test.s), test.cap);
                for i := 0; i < len(test.s); i++ {
-                       b[i] = test.s[i];
+                       b[i] = test.s[i]
                }
                b = Add(b, strings.Bytes(test.t));
                if string(b) != test.s + test.t {
-                       t.Errorf("Add(%q,%q) = %q", test.s, test.t, string(b));
+                       t.Errorf("Add(%q,%q) = %q", test.s, test.t, string(b))
                }
        }
 }
@@ -322,14 +322,14 @@ func TestAddByte(t *testing.T) {
        const N = 2e5;
        b := make([]byte, 0);
        for i := 0; i < N; i++ {
-               b = AddByte(b, byte(i));
+               b = AddByte(b, byte(i))
        }
        if len(b) != N {
-               t.Errorf("AddByte: too small; expected %d got %d", N, len(b));
+               t.Errorf("AddByte: too small; expected %d got %d", N, len(b))
        }
        for i, c := range b {
                if c != byte(i) {
-                       t.Fatalf("AddByte: b[%d] should be %d is %d", i, c, byte(i));
+                       t.Fatalf("AddByte: b[%d] should be %d is %d", i, c, byte(i))
                }
        }
 }
index 79b8ec3ba45d60f806724f9626fb7f4b82b981fd..4b6726e30437d5c1d9ab974dae1bf0ed28eb694e 100644 (file)
@@ -132,15 +132,15 @@ func (d *deflater) fillWindow(index int) (int, os.Error) {
                index -= wSize;
                d.windowEnd -= wSize;
                if d.blockStart >= wSize {
-                       d.blockStart -= wSize;
+                       d.blockStart -= wSize
                } else {
-                       d.blockStart = math.MaxInt32;
+                       d.blockStart = math.MaxInt32
                }
                for i, h := range d.hashHead {
-                       d.hashHead[i] = max(h-wSize, -1);
+                       d.hashHead[i] = max(h-wSize, -1)
                }
                for i, h := range d.hashPrev {
-                       d.hashPrev[i] = max(h-wSize, -1);
+                       d.hashPrev[i] = max(h-wSize, -1)
                }
        }
        var count int;
@@ -148,7 +148,7 @@ func (d *deflater) fillWindow(index int) (int, os.Error) {
        count, err = io.ReadAtLeast(d.r, d.window[d.windowEnd : len(d.window)], 1);
        d.windowEnd += count;
        if err == os.EOF {
-               return index, nil;
+               return index, nil
        }
        return index, err;
 }
@@ -157,7 +157,7 @@ func (d *deflater) writeBlock(tokens []token, index int, eof bool) os.Error {
        if index > 0 || eof {
                var window []byte;
                if d.blockStart <= index {
-                       window = d.window[d.blockStart : index];
+                       window = d.window[d.blockStart : index]
                }
                d.blockStart = index;
                d.w.writeBlock(tokens, eof, window);
@@ -178,7 +178,7 @@ func (d *deflater) findMatch(pos int, prevHead int, prevLength int, lookahead in
        tries := d.maxChainLength;
        length = prevLength;
        if length >= d.goodMatch {
-               tries >>= 2;
+               tries >>= 2
        }
 
        w0 := win[pos];
@@ -192,7 +192,7 @@ func (d *deflater) findMatch(pos int, prevHead int, prevLength int, lookahead in
 
                        n := 3;
                        for pos+n < len(win) && win[i+n] == win[pos+n] {
-                               n++;
+                               n++
                        }
                        if n > length && (n > 3 || pos-i <= 4096) {
                                length = n;
@@ -200,17 +200,17 @@ func (d *deflater) findMatch(pos int, prevHead int, prevLength int, lookahead in
                                ok = true;
                                if n >= nice {
                                        // The match is good enough that we don't try to find a better one.
-                                       break;
+                                       break
                                }
                                wEnd = win[pos+n];
                        }
                }
                if i == minIndex {
                        // hashPrev[i & windowMask] has already been overwritten, so stop now.
-                       break;
+                       break
                }
                if i = d.hashPrev[i & d.windowMask]; i < minIndex || i < 0 {
-                       break;
+                       break
                }
        }
        return;
@@ -218,7 +218,7 @@ func (d *deflater) findMatch(pos int, prevHead int, prevLength int, lookahead in
 
 func (d *deflater) writeStoredBlock(buf []byte) os.Error {
        if d.w.writeStoredHeader(len(buf), false); d.w.err != nil {
-               return d.w.err;
+               return d.w.err
        }
        d.w.writeBytes(buf);
        return d.w.err;
@@ -230,12 +230,12 @@ func (d *deflater) storedDeflate() os.Error {
                n, err := d.r.Read(buf);
                if n > 0 {
                        if err := d.writeStoredBlock(buf[0:n]); err != nil {
-                               return err;
+                               return err
                        }
                }
                if err != nil {
                        if err == os.EOF {
-                               break;
+                               break
                        }
                        return err;
                }
@@ -263,7 +263,7 @@ func (d *deflater) doDeflate() (err os.Error) {
        index := 0;
        // run
        if index, err = d.fillWindow(index); err != nil {
-               return;
+               return
        }
        maxOffset := d.windowMask + 1;  // (1 << logWindowSize);
        // only need to change when you refill the window
@@ -273,26 +273,26 @@ func (d *deflater) doDeflate() (err os.Error) {
 
        hash := int(0);
        if index < maxInsertIndex {
-               hash = int(d.window[index]) << hashShift + int(d.window[index+1]);
+               hash = int(d.window[index]) << hashShift + int(d.window[index+1])
        }
        chainHead := -1;
        for {
                if index > windowEnd {
-                       panic("index > windowEnd");
+                       panic("index > windowEnd")
                }
                lookahead := windowEnd - index;
                if lookahead < minMatchLength + maxMatchLength {
                        if index, err = d.fillWindow(index); err != nil {
-                               return;
+                               return
                        }
                        windowEnd = d.windowEnd;
                        if index > windowEnd {
-                               panic("index > windowEnd");
+                               panic("index > windowEnd")
                        }
                        maxInsertIndex = windowEnd - (minMatchLength - 1);
                        lookahead = windowEnd - index;
                        if lookahead == 0 {
-                               break;
+                               break
                        }
                }
                if index < maxInsertIndex {
@@ -321,9 +321,9 @@ func (d *deflater) doDeflate() (err os.Error) {
                        // There was a match at the previous step, and the current match is
                        // not better. Output the previous match.
                        if isFastDeflate {
-                               tokens[ti] = matchToken(uint32(length - minMatchLength), uint32(offset - minOffsetSize));
+                               tokens[ti] = matchToken(uint32(length - minMatchLength), uint32(offset - minOffsetSize))
                        } else {
-                               tokens[ti] = matchToken(uint32(prevLength - minMatchLength), uint32(prevOffset - minOffsetSize));
+                               tokens[ti] = matchToken(uint32(prevLength - minMatchLength), uint32(prevOffset - minOffsetSize))
                        }
                        ti++;
                        // Insert in the hash table all strings up to the end of the match.
@@ -333,9 +333,9 @@ func (d *deflater) doDeflate() (err os.Error) {
                        if length <= l.fastSkipHashing {
                                var newIndex int;
                                if isFastDeflate {
-                                       newIndex = index+length;
+                                       newIndex = index+length
                                } else {
-                                       newIndex = prevLength - 1;
+                                       newIndex = prevLength - 1
                                }
                                for index++; index < newIndex; index++ {
                                        if index < maxInsertIndex {
@@ -360,7 +360,7 @@ func (d *deflater) doDeflate() (err os.Error) {
                        if ti == maxFlateBlockTokens {
                                // The block includes the current character
                                if err = d.writeBlock(tokens, index, false); err != nil {
-                                       return;
+                                       return
                                }
                                ti = 0;
                        }
@@ -368,20 +368,20 @@ func (d *deflater) doDeflate() (err os.Error) {
                        if isFastDeflate || byteAvailable {
                                i := index-1;
                                if isFastDeflate {
-                                       i = index;
+                                       i = index
                                }
                                tokens[ti] = literalToken(uint32(d.window[i])&0xFF);
                                ti++;
                                if ti == maxFlateBlockTokens {
                                        if err = d.writeBlock(tokens, i+1, false); err != nil {
-                                               return;
+                                               return
                                        }
                                        ti = 0;
                                }
                        }
                        index++;
                        if !isFastDeflate {
-                               byteAvailable = true;
+                               byteAvailable = true
                        }
                }
 
@@ -394,7 +394,7 @@ func (d *deflater) doDeflate() (err os.Error) {
 
        if ti > 0 {
                if err = d.writeBlock(tokens[0:ti], index, false); err != nil {
-                       return;
+                       return
                }
        }
        return;
@@ -408,21 +408,21 @@ func (d *deflater) deflater(r io.Reader, w io.Writer, level int, logWindowSize u
 
        switch {
        case level == NoCompression:
-               err = d.storedDeflate();
+               err = d.storedDeflate()
        case level == DefaultCompression:
                d.level = 6;
                fallthrough;
        case 1 <= level && level <= 9:
-               err = d.doDeflate();
+               err = d.doDeflate()
        default:
-               return WrongValueError{"level", 0, 9, int32(level)};
+               return WrongValueError{"level", 0, 9, int32(level)}
        }
 
        if err != nil {
-               return err;
+               return err
        }
        if d.w.writeStoredHeader(0, true); d.w.err != nil {
-               return d.w.err;
+               return d.w.err
        }
        return d.flush();
 }
@@ -438,5 +438,5 @@ func newDeflater(w io.Writer, level int, logWindowSize uint) io.WriteCloser {
 }
 
 func NewDeflater(w io.Writer, level int) io.WriteCloser {
-       return newDeflater(w, level, logMaxOffsetSize);
+       return newDeflater(w, level, logMaxOffsetSize)
 }
index 3f6c60bf55222ed98913a9a01c207e54f4183b48..85cc12d383d5441b600afb9ec4906fa82a81e694 100644 (file)
@@ -72,7 +72,7 @@ var reverseBitsTests = []*reverseBitsTest{
 func getLargeDataChunk() []byte {
        result := make([]byte, 100000);
        for i := range result {
-               result[i] = byte(int64(i)*int64(i)&0xFF);
+               result[i] = byte(int64(i)*int64(i)&0xFF)
        }
        return result;
 }
@@ -85,7 +85,7 @@ func TestDeflate(t *testing.T) {
                w.Close();
                if bytes.Compare(buffer.Bytes(), h.out) != 0 {
                        t.Errorf("buffer is wrong; level = %v, buffer.Bytes() = %v, expected output = %v",
-                               h.level, buffer.Bytes(), h.out);
+                               h.level, buffer.Bytes(), h.out)
                }
        }
 }
@@ -103,20 +103,20 @@ func testToFromWithLevel(t *testing.T, level int, input []byte, name string) os.
        }
        inflater.Close();
        if bytes.Compare(input, decompressed) != 0 {
-               t.Errorf("decompress(compress(data)) != data: level=%d input=%s", level, name);
+               t.Errorf("decompress(compress(data)) != data: level=%d input=%s", level, name)
        }
        return nil;
 }
 
 func testToFrom(t *testing.T, input []byte, name string) {
        for i := 0; i < 10; i++ {
-               testToFromWithLevel(t, i, input, name);
+               testToFromWithLevel(t, i, input, name)
        }
 }
 
 func TestDeflateInflate(t *testing.T) {
        for i, h := range deflateInflateTests {
-               testToFrom(t, h.in, fmt.Sprintf("#%d", i));
+               testToFrom(t, h.in, fmt.Sprintf("#%d", i))
        }
 }
 
@@ -124,7 +124,7 @@ func TestReverseBits(t *testing.T) {
        for _, h := range reverseBitsTests {
                if v := reverseBits(h.in, h.bitCount); v != h.out {
                        t.Errorf("reverseBits(%v,%v) = %v, want %v",
-                               h.in, h.bitCount, v, h.out);
+                               h.in, h.bitCount, v, h.out)
                }
        }
 }
@@ -260,5 +260,5 @@ func getEdata() string {
                "30186739439716388611764209004068663398856841681003872389214483176070116684503887" +
                "21236436704331409115573328018297798873659091665961240202177855885487617616198937" +
                "07943800566633648843650891448055710397652146960276625835990519870423001794655367" +
-               "9";
+               "9"
 }
index ab7ce250b7d3996ede646c46211ae1b3fdbb8c59..e2a97b368ecc109f13e76a40a791b3b03642c816 100644 (file)
@@ -121,7 +121,7 @@ func TestInitDecoder(t *testing.T) {
                        continue;
                }
                if !reflect.DeepEqual(&h, &tt.out) {
-                       t.Errorf("test %d:\nhave %v\nwant %v", i, h, tt.out);
+                       t.Errorf("test %d:\nhave %v\nwant %v", i, h, tt.out)
                }
        }
 }
@@ -131,9 +131,9 @@ func TestUncompressedSource(t *testing.T) {
        output := make([]byte, 1);
        n, error := decoder.Read(output);
        if n != 1 || error != nil {
-               t.Fatalf("decoder.Read() = %d, %v, want 1, nil", n, error);
+               t.Fatalf("decoder.Read() = %d, %v, want 1, nil", n, error)
        }
        if output[0] != 0x11 {
-               t.Errorf("output[0] = %x, want 0x11", output[0]);
+               t.Errorf("output[0] = %x, want 0x11", output[0])
        }
 }
index e81c6e6e055e943f61874971fa70d02e4cbc908b..44cb9811b9aa7282ee43eb5ef5aff2b4783fd6c4 100644 (file)
@@ -106,12 +106,12 @@ func newHuffmanBitWriter(w io.Writer) *huffmanBitWriter {
                literalEncoding: newHuffmanEncoder(maxLit),
                offsetEncoding: newHuffmanEncoder(extendedOffsetCodeCount),
                codegenEncoding: newHuffmanEncoder(codegenCodeCount),
-       };
+       }
 }
 
 func (err WrongValueError) String() string {
        return "huffmanBitWriter: " + err.name + " should belong to [" + strconv.Itoa64(int64(err.from)) + ";" +
-               strconv.Itoa64(int64(err.to)) + "] but actual value is " + strconv.Itoa64(int64(err.value));
+               strconv.Itoa64(int64(err.to)) + "] but actual value is " + strconv.Itoa64(int64(err.value))
 }
 
 func (w *huffmanBitWriter) flushBits() {
@@ -157,13 +157,13 @@ func (w *huffmanBitWriter) flush() {
 func (w *huffmanBitWriter) writeBits(b, nb int32) {
        w.bits |= uint32(b) << w.nbits;
        if w.nbits += uint32(nb); w.nbits >= 16 {
-               w.flushBits();
+               w.flushBits()
        }
 }
 
 func (w *huffmanBitWriter) writeBytes(bytes []byte) {
        if w.err != nil {
-               return;
+               return
        }
        n := w.nbytes;
        if w.nbits == 8 {
@@ -178,7 +178,7 @@ func (w *huffmanBitWriter) writeBytes(bytes []byte) {
        if n != 0 {
                _, w.err = w.w.Write(w.bytes[0:n]);
                if w.err != nil {
-                       return;
+                       return
                }
        }
        w.nbytes = 0;
@@ -270,7 +270,7 @@ func (w *huffmanBitWriter) generateCodegen(numLiterals int, numOffsets int) {
 
 func (w *huffmanBitWriter) writeCode(code *huffmanEncoder, literal uint32) {
        if w.err != nil {
-               return;
+               return
        }
        w.writeBits(int32(code.code[literal]), int32(code.codeBits[literal]));
 }
@@ -282,11 +282,11 @@ func (w *huffmanBitWriter) writeCode(code *huffmanEncoder, literal uint32) {
 //  numCodegens  Tne number of codegens used in codegen
 func (w *huffmanBitWriter) writeDynamicHeader(numLiterals int, numOffsets int, numCodegens int, isEof bool) {
        if w.err != nil {
-               return;
+               return
        }
        var firstBits int32 = 4;
        if isEof {
-               firstBits = 5;
+               firstBits = 5
        }
        w.writeBits(firstBits, 3);
        w.writeBits(int32(numLiterals - 257), 5);
@@ -295,7 +295,7 @@ func (w *huffmanBitWriter) writeDynamicHeader(numLiterals int, numOffsets int, n
                w.writeBits(int32(offsetCodeCount + ((numOffsets - (1 + offsetCodeCount))>>3)), 5);
                w.writeBits(int32((numOffsets - (1 + offsetCodeCount))&0x7), 3);
        } else {
-               w.writeBits(int32(numOffsets - 1), 5);
+               w.writeBits(int32(numOffsets - 1), 5)
        }
        w.writeBits(int32(numCodegens - 4), 4);
 
@@ -309,7 +309,7 @@ func (w *huffmanBitWriter) writeDynamicHeader(numLiterals int, numOffsets int, n
                var codeWord int = int(w.codegen[i]);
                i++;
                if codeWord == badCode {
-                       break;
+                       break
                }
                // The low byte contains the actual code to generate.
                w.writeCode(w.codegenEncoding, uint32(codeWord));
@@ -333,11 +333,11 @@ func (w *huffmanBitWriter) writeDynamicHeader(numLiterals int, numOffsets int, n
 
 func (w *huffmanBitWriter) writeStoredHeader(length int, isEof bool) {
        if w.err != nil {
-               return;
+               return
        }
        var flag int32;
        if isEof {
-               flag = 1;
+               flag = 1
        }
        w.writeBits(flag, 3);
        w.flush();
@@ -347,19 +347,19 @@ func (w *huffmanBitWriter) writeStoredHeader(length int, isEof bool) {
 
 func (w *huffmanBitWriter) writeFixedHeader(isEof bool) {
        if w.err != nil {
-               return;
+               return
        }
        // Indicate that we are a fixed Huffman block
        var value int32 = 2;
        if isEof {
-               value = 3;
+               value = 3
        }
        w.writeBits(value, 3);
 }
 
 func (w *huffmanBitWriter) writeBlock(tokens []token, eof bool, input []byte) {
        if w.err != nil {
-               return;
+               return
        }
        fillInt32s(w.literalFreq, 0);
        fillInt32s(w.offsetFreq, 0);
@@ -390,16 +390,16 @@ func (w *huffmanBitWriter) writeBlock(tokens []token, eof bool, input []byte) {
        // get the number of literals
        numLiterals := len(w.literalFreq);
        for w.literalFreq[numLiterals - 1] == 0 {
-               numLiterals--;
+               numLiterals--
        }
        // get the number of offsets
        numOffsets := len(w.offsetFreq);
        for numOffsets > 1 && w.offsetFreq[numOffsets - 1] == 0 {
-               numOffsets--;
+               numOffsets--
        }
        storedBytes := 0;
        if input != nil {
-               storedBytes = len(input);
+               storedBytes = len(input)
        }
        var extraBits int64;
        var storedSize int64;
@@ -411,14 +411,14 @@ func (w *huffmanBitWriter) writeBlock(tokens []token, eof bool, input []byte) {
                // against stored encoding.
                for lengthCode := lengthCodesStart + 8; lengthCode < numLiterals; lengthCode++ {
                        // First eight length codes have extra size = 0.
-                       extraBits += int64(w.literalFreq[lengthCode])*int64(lengthExtraBits[lengthCode - lengthCodesStart]);
+                       extraBits += int64(w.literalFreq[lengthCode])*int64(lengthExtraBits[lengthCode - lengthCodesStart])
                }
                for offsetCode := 4; offsetCode < numOffsets; offsetCode++ {
                        // First four offset codes have extra size = 0.
-                       extraBits += int64(w.offsetFreq[offsetCode])*int64(offsetExtraBits[offsetCode]);
+                       extraBits += int64(w.offsetFreq[offsetCode])*int64(offsetExtraBits[offsetCode])
                }
        } else {
-               storedSize = math.MaxInt32;
+               storedSize = math.MaxInt32
        }
 
        // Figure out which generates smaller code, fixed Huffman, dynamic
@@ -428,7 +428,7 @@ func (w *huffmanBitWriter) writeBlock(tokens []token, eof bool, input []byte) {
                fixedSize = int64(3) +
                        fixedLiteralEncoding.bitLength(w.literalFreq) +
                        fixedOffsetEncoding.bitLength(w.offsetFreq) +
-                       extraBits;
+                       extraBits
        }
        // Generate codegen and codegenFrequencies, which indicates how to encode
        // the literalEncoding and the offsetEncoding.
@@ -436,11 +436,11 @@ func (w *huffmanBitWriter) writeBlock(tokens []token, eof bool, input []byte) {
        w.codegenEncoding.generate(w.codegenFreq, 7);
        numCodegens := len(w.codegenFreq);
        for numCodegens > 4 && w.codegenFreq[codegenOrder[numCodegens - 1]] == 0 {
-               numCodegens--;
+               numCodegens--
        }
        extensionSummand := 0;
        if numOffsets > offsetCodeCount {
-               extensionSummand = 3;
+               extensionSummand = 3
        }
        dynamicHeader := int64(3+5+5+4+(3 * numCodegens)) +
                // Following line is an extension.
@@ -500,7 +500,7 @@ func (w *huffmanBitWriter) writeBlock(tokens []token, eof bool, input []byte) {
                        }
                        break;
                default:
-                       panic("unknown token type: " + string(t));
+                       panic("unknown token type: " + string(t))
                }
        }
 }
index eecfceb9c1d8ca6eeb58a11ae3dc59ddbd097ff0..c3cd482dc91f0be699223e1d71857aa4279294db 100644 (file)
@@ -58,7 +58,7 @@ type levelInfo struct {
 func maxNode() literalNode     { return literalNode{math.MaxUint16, math.MaxInt32} }
 
 func newHuffmanEncoder(size int) *huffmanEncoder {
-       return &huffmanEncoder{make([]uint8, size), make([]uint16, size)};
+       return &huffmanEncoder{make([]uint8, size), make([]uint16, size)}
 }
 
 // Generates a HuffmanCode corresponding to the fixed literal table
@@ -115,7 +115,7 @@ func (h *huffmanEncoder) bitLength(freq []int32) int64 {
        var total int64;
        for i, f := range freq {
                if f != 0 {
-                       total += int64(f)*int64(h.codeBits[i]);
+                       total += int64(f)*int64(h.codeBits[i])
                }
        }
        return total;
@@ -163,14 +163,14 @@ func (h *huffmanEncoder) generateChains(top *levelInfo, list []literalNode) {
                        up := l.up;
                        if up == nil {
                                // All done!
-                               return;
+                               return
                        }
                        up.nextPairFreq = prevFreq + l.lastChain.freq;
                        l = up;
                } else {
                        // If we stole from below, move down temporarily to replenish it.
                        for l.down.needed > 0 {
-                               l = l.down;
+                               l = l.down
                        }
                }
        }
@@ -215,7 +215,7 @@ func (h *huffmanEncoder) bitCounts(list []literalNode, maxBits int32) []int32 {
                };
                top.down.up = top;
                if level == 1 {
-                       top.nextPairFreq = math.MaxInt32;
+                       top.nextPairFreq = math.MaxInt32
                }
        }
 
@@ -258,14 +258,14 @@ func (h *huffmanEncoder) bitCounts(list []literalNode, maxBits int32) []int32 {
                        up := l.up;
                        if up == nil {
                                // All done!
-                               break;
+                               break
                        }
                        up.nextPairFreq = prevFreq + l.lastChain.freq;
                        l = up;
                } else {
                        // If we stole from below, move down temporarily to replenish it.
                        for l.down.needed > 0 {
-                               l = l.down;
+                               l = l.down
                        }
                }
        }
@@ -274,7 +274,7 @@ func (h *huffmanEncoder) bitCounts(list []literalNode, maxBits int32) []int32 {
        // Somethings is wrong if at the end, the top level is null or hasn't used
        // all of the leaves.
        if top.lastChain.leafCount != n {
-               panic("top.lastChain.leafCount != n");
+               panic("top.lastChain.leafCount != n")
        }
 
        bitCount := make([]int32, maxBits+1);
@@ -295,7 +295,7 @@ func (h *huffmanEncoder) assignEncodingAndSize(bitCount []int32, list []literalN
        for n, bits := range bitCount {
                code <<= 1;
                if n == 0 || bits == 0 {
-                       continue;
+                       continue
                }
                // The literals list[len(list)-bits] .. list[len(list)-bits]
                // are encoded using "bits" bits, and get the values
@@ -326,7 +326,7 @@ func (h *huffmanEncoder) generate(freq []int32, maxBits int32) {
                        list[count] = literalNode{uint16(i), f};
                        count++;
                } else {
-                       h.codeBits[i] = 0;
+                       h.codeBits[i] = 0
                }
        }
        // If freq[] is shorter than codeBits[], fill rest of codeBits[] with zeros
@@ -358,7 +358,7 @@ type literalNodeSorter struct {
 func (s literalNodeSorter) Len() int   { return len(s.a) }
 
 func (s literalNodeSorter) Less(i, j int) bool {
-       return s.less(i, j);
+       return s.less(i, j)
 }
 
 func (s literalNodeSorter) Swap(i, j int)      { s.a[i], s.a[j] = s.a[j], s.a[i] }
index a39166d961ead597ec12d37e34056d38f50c08f9..5bdd5cfae50f5c60e220d0cd5d838f604cdcdc5b 100644 (file)
@@ -26,7 +26,7 @@ const (
 type CorruptInputError int64
 
 func (e CorruptInputError) String() string {
-       return "flate: corrupt input before offset " + strconv.Itoa64(int64(e));
+       return "flate: corrupt input before offset " + strconv.Itoa64(int64(e))
 }
 
 // An InternalError reports an error in the flate code itself.
@@ -41,7 +41,7 @@ type ReadError struct {
 }
 
 func (e *ReadError) String() string {
-       return "flate: read error at offset " + strconv.Itoa64(e.Offset) + ": " + e.Error.String();
+       return "flate: read error at offset " + strconv.Itoa64(e.Offset) + ": " + e.Error.String()
 }
 
 // A WriteError reports an error encountered while writing output.
@@ -51,7 +51,7 @@ type WriteError struct {
 }
 
 func (e *WriteError) String() string {
-       return "flate: write error at offset " + strconv.Itoa64(e.Offset) + ": " + e.Error.String();
+       return "flate: write error at offset " + strconv.Itoa64(e.Offset) + ": " + e.Error.String()
 }
 
 // Huffman decoder is based on
@@ -85,18 +85,18 @@ func (h *huffmanDecoder) init(bits []int) bool {
        var min, max int;
        for _, n := range bits {
                if n == 0 {
-                       continue;
+                       continue
                }
                if min == 0 || n < min {
-                       min = n;
+                       min = n
                }
                if n > max {
-                       max = n;
+                       max = n
                }
                count[n]++;
        }
        if max == 0 {
-               return false;
+               return false
        }
 
        h.min = min;
@@ -122,11 +122,11 @@ func (h *huffmanDecoder) init(bits []int) bool {
 
        // Make array mapping sequence numbers to codes.
        if len(h.codes) < len(bits) {
-               h.codes = make([]int, len(bits));
+               h.codes = make([]int, len(bits))
        }
        for i, n := range bits {
                if n == 0 {
-                       continue;
+                       continue
                }
                code := nextcode[n];
                nextcode[n]++;
@@ -229,7 +229,7 @@ func (f *inflater) inflate() (err os.Error) {
        for err == nil && !final {
                for f.nb < 1+2 {
                        if err = f.moreBits(); err != nil {
-                               return;
+                               return
                        }
                }
                final = f.b & 1 == 1;
@@ -239,18 +239,18 @@ func (f *inflater) inflate() (err os.Error) {
                f.nb -= 1+2;
                switch typ {
                case 0:
-                       err = f.dataBlock();
+                       err = f.dataBlock()
                case 1:
                        // compressed, fixed Huffman tables
-                       err = f.decodeBlock(&fixedHuffmanDecoder, nil);
+                       err = f.decodeBlock(&fixedHuffmanDecoder, nil)
                case 2:
                        // compressed, dynamic Huffman tables
                        if err = f.readHuffman(); err == nil {
-                               err = f.decodeBlock(&f.h1, &f.h2);
+                               err = f.decodeBlock(&f.h1, &f.h2)
                        }
                default:
                        // 3 is reserved.
-                       err = CorruptInputError(f.roffset);
+                       err = CorruptInputError(f.roffset)
                }
        }
        return;
@@ -265,7 +265,7 @@ func (f *inflater) readHuffman() os.Error {
        // HLIT[5], HDIST[5], HCLEN[4].
        for f.nb < 5+5+4 {
                if err := f.moreBits(); err != nil {
-                       return err;
+                       return err
                }
        }
        nlit := int(f.b & 0x1F)+257;
@@ -280,7 +280,7 @@ func (f *inflater) readHuffman() os.Error {
        for i := 0; i < nclen; i++ {
                for f.nb < 3 {
                        if err := f.moreBits(); err != nil {
-                               return err;
+                               return err
                        }
                }
                f.codebits[codeOrder[i]] = int(f.b & 0x7);
@@ -288,10 +288,10 @@ func (f *inflater) readHuffman() os.Error {
                f.nb -= 3;
        }
        for i := nclen; i < len(codeOrder); i++ {
-               f.codebits[codeOrder[i]] = 0;
+               f.codebits[codeOrder[i]] = 0
        }
        if !f.h1.init(&f.codebits) {
-               return CorruptInputError(f.roffset);
+               return CorruptInputError(f.roffset)
        }
 
        // HLIT + 257 code lengths, HDIST + 1 code lengths,
@@ -299,7 +299,7 @@ func (f *inflater) readHuffman() os.Error {
        for i, n := 0, nlit+ndist; i < n; {
                x, err := f.huffSym(&f.h1);
                if err != nil {
-                       return err;
+                       return err
                }
                if x < 16 {
                        // Actual length.
@@ -313,12 +313,12 @@ func (f *inflater) readHuffman() os.Error {
                var b int;
                switch x {
                default:
-                       return InternalError("unexpected length code");
+                       return InternalError("unexpected length code")
                case 16:
                        rep = 3;
                        nb = 2;
                        if i == 0 {
-                               return CorruptInputError(f.roffset);
+                               return CorruptInputError(f.roffset)
                        }
                        b = f.bits[i-1];
                case 17:
@@ -332,14 +332,14 @@ func (f *inflater) readHuffman() os.Error {
                }
                for f.nb < nb {
                        if err := f.moreBits(); err != nil {
-                               return err;
+                               return err
                        }
                }
                rep += int(f.b & uint32(1<<nb - 1));
                f.b >>= nb;
                f.nb -= nb;
                if i+rep > n {
-                       return CorruptInputError(f.roffset);
+                       return CorruptInputError(f.roffset)
                }
                for j := 0; j < rep; j++ {
                        f.bits[i] = b;
@@ -348,7 +348,7 @@ func (f *inflater) readHuffman() os.Error {
        }
 
        if !f.h1.init(f.bits[0:nlit]) || !f.h2.init(f.bits[nlit : nlit+ndist]) {
-               return CorruptInputError(f.roffset);
+               return CorruptInputError(f.roffset)
        }
 
        return nil;
@@ -362,7 +362,7 @@ func (f *inflater) decodeBlock(hl, hd *huffmanDecoder) os.Error {
        for {
                v, err := f.huffSym(hl);
                if err != nil {
-                       return err;
+                       return err
                }
                var n uint;     // number of bits extra
                var length int;
@@ -372,12 +372,12 @@ func (f *inflater) decodeBlock(hl, hd *huffmanDecoder) os.Error {
                        f.hp++;
                        if f.hp == len(f.hist) {
                                if err = f.flush(); err != nil {
-                                       return err;
+                                       return err
                                }
                        }
                        continue;
                case v == 256:
-                       return nil;
+                       return nil
                // otherwise, reference to older data
                case v < 265:
                        length = v-(257-3);
@@ -404,7 +404,7 @@ func (f *inflater) decodeBlock(hl, hd *huffmanDecoder) os.Error {
                if n > 0 {
                        for f.nb < n {
                                if err = f.moreBits(); err != nil {
-                                       return err;
+                                       return err
                                }
                        }
                        length += int(f.b & uint32(1<<n - 1));
@@ -416,7 +416,7 @@ func (f *inflater) decodeBlock(hl, hd *huffmanDecoder) os.Error {
                if hd == nil {
                        for f.nb < 5 {
                                if err = f.moreBits(); err != nil {
-                                       return err;
+                                       return err
                                }
                        }
                        dist = int(reverseByte[(f.b & 0x1F)<<3]);
@@ -424,22 +424,22 @@ func (f *inflater) decodeBlock(hl, hd *huffmanDecoder) os.Error {
                        f.nb -= 5;
                } else {
                        if dist, err = f.huffSym(hd); err != nil {
-                               return err;
+                               return err
                        }
                }
 
                switch {
                case dist < 4:
-                       dist++;
+                       dist++
                case dist >= 30:
-                       return CorruptInputError(f.roffset);
+                       return CorruptInputError(f.roffset)
                default:
                        nb := uint(dist-2)>>1;
                        // have 1 bit in bottom of dist, need nb more.
                        extra := (dist&1)<<nb;
                        for f.nb < nb {
                                if err = f.moreBits(); err != nil {
-                                       return err;
+                                       return err
                                }
                        }
                        extra |= int(f.b & uint32(1<<nb - 1));
@@ -450,17 +450,17 @@ func (f *inflater) decodeBlock(hl, hd *huffmanDecoder) os.Error {
 
                // Copy history[-dist:-dist+length] into output.
                if dist > len(f.hist) {
-                       return InternalError("bad history distance");
+                       return InternalError("bad history distance")
                }
 
                // No check on length; encoding can be prescient.
                if !f.hfull && dist > f.hp {
-                       return CorruptInputError(f.roffset);
+                       return CorruptInputError(f.roffset)
                }
 
                p := f.hp - dist;
                if p < 0 {
-                       p += len(f.hist);
+                       p += len(f.hist)
                }
                for i := 0; i < length; i++ {
                        f.hist[f.hp] = f.hist[p];
@@ -468,11 +468,11 @@ func (f *inflater) decodeBlock(hl, hd *huffmanDecoder) os.Error {
                        p++;
                        if f.hp == len(f.hist) {
                                if err = f.flush(); err != nil {
-                                       return err;
+                                       return err
                                }
                        }
                        if p == len(f.hist) {
-                               p = 0;
+                               p = 0
                        }
                }
        }
@@ -490,12 +490,12 @@ func (f *inflater) dataBlock() os.Error {
        nr, err := io.ReadFull(f.r, f.buf[0:4]);
        f.roffset += int64(nr);
        if err != nil {
-               return &ReadError{f.roffset, err};
+               return &ReadError{f.roffset, err}
        }
        n := int(f.buf[0]) | int(f.buf[1])<<8;
        nn := int(f.buf[2]) | int(f.buf[3])<<8;
        if uint16(nn) != uint16(^n) {
-               return CorruptInputError(f.roffset);
+               return CorruptInputError(f.roffset)
        }
 
        // Read len bytes into history,
@@ -503,18 +503,18 @@ func (f *inflater) dataBlock() os.Error {
        for n > 0 {
                m := len(f.hist) - f.hp;
                if m > n {
-                       m = n;
+                       m = n
                }
                m, err := io.ReadFull(f.r, f.hist[f.hp : f.hp + m]);
                f.roffset += int64(m);
                if err != nil {
-                       return &ReadError{f.roffset, err};
+                       return &ReadError{f.roffset, err}
                }
                n -= m;
                f.hp += m;
                if f.hp == len(f.hist) {
                        if err = f.flush(); err != nil {
-                               return err;
+                               return err
                        }
                }
        }
@@ -525,7 +525,7 @@ func (f *inflater) moreBits() os.Error {
        c, err := f.r.ReadByte();
        if err != nil {
                if err == os.EOF {
-                       err = io.ErrUnexpectedEOF;
+                       err = io.ErrUnexpectedEOF
                }
                return err;
        }
@@ -540,11 +540,11 @@ func (f *inflater) huffSym(h *huffmanDecoder) (int, os.Error) {
        for n := uint(h.min); n <= uint(h.max); n++ {
                lim := h.limit[n];
                if lim == -1 {
-                       continue;
+                       continue
                }
                for f.nb < n {
                        if err := f.moreBits(); err != nil {
-                               return 0, err;
+                               return 0, err
                        }
                }
                v := int(f.b & uint32(1<<n - 1));
@@ -562,14 +562,14 @@ func (f *inflater) huffSym(h *huffmanDecoder) (int, os.Error) {
 // Flush any buffered output to the underlying writer.
 func (f *inflater) flush() os.Error {
        if f.hp == 0 {
-               return nil;
+               return nil
        }
        n, err := f.w.Write(f.hist[0 : f.hp]);
        if n != f.hp && err == nil {
-               err = io.ErrShortWrite;
+               err = io.ErrShortWrite
        }
        if err != nil {
-               return &WriteError{f.woffset, err};
+               return &WriteError{f.woffset, err}
        }
        f.woffset += int64(f.hp);
        f.hp = 0;
@@ -579,7 +579,7 @@ func (f *inflater) flush() os.Error {
 
 func makeReader(r io.Reader) Reader {
        if rr, ok := r.(Reader); ok {
-               return rr;
+               return rr
        }
        return bufio.NewReader(r);
 }
@@ -591,10 +591,10 @@ func (f *inflater) inflater(r io.Reader, w io.Writer) os.Error {
        f.w = w;
        f.woffset = 0;
        if err := f.inflate(); err != nil {
-               return err;
+               return err
        }
        if err := f.flush(); err != nil {
-               return err;
+               return err
        }
        return nil;
 }
index 76693d4757d369288dd1fc488dc69946635d0113..8376da32a667fad1fc2ca06ca909430b7289a817 100644 (file)
@@ -40,9 +40,9 @@ var reverseByte = [256]byte{
 }
 
 func reverseUint16(v uint16) uint16 {
-       return uint16(reverseByte[v>>8]) | uint16(reverseByte[v&0xFF])<<8;
+       return uint16(reverseByte[v>>8]) | uint16(reverseByte[v&0xFF])<<8
 }
 
 func reverseBits(number uint16, bitLength byte) uint16 {
-       return reverseUint16(number<<uint8(16 - bitLength));
+       return reverseUint16(number<<uint8(16 - bitLength))
 }
index d37730ca574be04735fd10ea4994b698888cf810..5d4bcefaf5403d63602e2b22bdd5fa94e51f4e00 100644 (file)
@@ -72,7 +72,7 @@ func literalToken(literal uint32) token       { return token(literalType + literal) }
 
 // Convert a < xlength, xoffset > pair into a match token.
 func matchToken(xlength uint32, xoffset uint32) token {
-       return token(matchType + xlength << lengthShift + xoffset);
+       return token(matchType + xlength << lengthShift + xoffset)
 }
 
 // Returns the type of a token
@@ -93,11 +93,11 @@ func offsetCode(off uint32) uint32 {
        const n = uint32(len(offsetCodes));
        switch {
        case off < n:
-               return offsetCodes[off];
+               return offsetCodes[off]
        case off>>7 < n:
-               return offsetCodes[off>>7] + 14;
+               return offsetCodes[off>>7] + 14
        default:
-               return offsetCodes[off>>14] + 28;
+               return offsetCodes[off>>14] + 28
        }
        panic("unreachable");
 }
index 177ee21d6f56cd031a9b089b15cb48216ab53b2d..f4e0b9ba388cf5f3f6ddb35493ead04946a78bc2 100644 (file)
@@ -6,59 +6,59 @@ package flate
 
 func min(left int, right int) int {
        if left < right {
-               return left;
+               return left
        }
        return right;
 }
 
 func minInt32(left int32, right int32) int32 {
        if left < right {
-               return left;
+               return left
        }
        return right;
 }
 
 func max(left int, right int) int {
        if left > right {
-               return left;
+               return left
        }
        return right;
 }
 
 func fillInts(a []int, value int) {
        for i := range a {
-               a[i] = value;
+               a[i] = value
        }
 }
 
 func fillInt32s(a []int32, value int32) {
        for i := range a {
-               a[i] = value;
+               a[i] = value
        }
 }
 
 func fillBytes(a []byte, value byte) {
        for i := range a {
-               a[i] = value;
+               a[i] = value
        }
 }
 
 func fillInt8s(a []int8, value int8) {
        for i := range a {
-               a[i] = value;
+               a[i] = value
        }
 }
 
 func fillUint8s(a []uint8, value uint8) {
        for i := range a {
-               a[i] = value;
+               a[i] = value
        }
 }
 
 func copyInt8s(dst []int8, src []int8) int {
        cnt := min(len(dst), len(src));
        for i := 0; i < cnt; i++ {
-               dst[i] = src[i];
+               dst[i] = src[i]
        }
        return cnt;
 }
@@ -66,7 +66,7 @@ func copyInt8s(dst []int8, src []int8) int {
 func copyUint8s(dst []uint8, src []uint8) int {
        cnt := min(len(dst), len(src));
        for i := 0; i < cnt; i++ {
-               dst[i] = src[i];
+               dst[i] = src[i]
        }
        return cnt;
 }
index 3dbfeca6527c58127f775d8622e62263722af018..8dc64fea36d2a4bbf41d4790c372e56d69a34978 100644 (file)
@@ -28,7 +28,7 @@ const (
 
 func makeReader(r io.Reader) flate.Reader {
        if rr, ok := r.(flate.Reader); ok {
-               return rr;
+               return rr
        }
        return bufio.NewReader(r);
 }
@@ -85,21 +85,21 @@ func NewInflater(r io.Reader) (*Inflater, os.Error) {
 
 // GZIP (RFC 1952) is little-endian, unlike ZLIB (RFC 1950).
 func get4(p []byte) uint32 {
-       return uint32(p[0]) | uint32(p[1])<<8 | uint32(p[2])<<16 | uint32(p[3])<<24;
+       return uint32(p[0]) | uint32(p[1])<<8 | uint32(p[2])<<16 | uint32(p[3])<<24
 }
 
 func (z *Inflater) readString() (string, os.Error) {
        var err os.Error;
        for i := 0; ; i++ {
                if i >= len(z.buf) {
-                       return "", HeaderError;
+                       return "", HeaderError
                }
                z.buf[i], err = z.r.ReadByte();
                if err != nil {
-                       return "", err;
+                       return "", err
                }
                if z.buf[i] == 0 {
-                       return string(z.buf[0:i]), nil;
+                       return string(z.buf[0:i]), nil
                }
        }
        panic("not reached");
@@ -108,7 +108,7 @@ func (z *Inflater) readString() (string, os.Error) {
 func (z *Inflater) read2() (uint32, os.Error) {
        _, err := z.r.Read(z.buf[0:2]);
        if err != nil {
-               return 0, err;
+               return 0, err
        }
        return uint32(z.buf[0]) | uint32(z.buf[1])<<8, nil;
 }
@@ -116,10 +116,10 @@ func (z *Inflater) read2() (uint32, os.Error) {
 func (z *Inflater) readHeader(save bool) os.Error {
        _, err := io.ReadFull(z.r, z.buf[0:10]);
        if err != nil {
-               return err;
+               return err
        }
        if z.buf[0] != gzipID1 || z.buf[1] != gzipID2 || z.buf[2] != gzipDeflate {
-               return HeaderError;
+               return HeaderError
        }
        z.flg = z.buf[3];
        if save {
@@ -133,44 +133,44 @@ func (z *Inflater) readHeader(save bool) os.Error {
        if z.flg & flagExtra != 0 {
                n, err := z.read2();
                if err != nil {
-                       return err;
+                       return err
                }
                data := make([]byte, n);
                if _, err = io.ReadFull(z.r, data); err != nil {
-                       return err;
+                       return err
                }
                if save {
-                       z.Extra = data;
+                       z.Extra = data
                }
        }
 
        var s string;
        if z.flg & flagName != 0 {
                if s, err = z.readString(); err != nil {
-                       return err;
+                       return err
                }
                if save {
-                       z.Name = s;
+                       z.Name = s
                }
        }
 
        if z.flg & flagComment != 0 {
                if s, err = z.readString(); err != nil {
-                       return err;
+                       return err
                }
                if save {
-                       z.Comment = s;
+                       z.Comment = s
                }
        }
 
        if z.flg & flagHdrCrc != 0 {
                n, err := z.read2();
                if err != nil {
-                       return err;
+                       return err
                }
                sum := z.digest.Sum32() & 0xFFFF;
                if n != sum {
-                       return HeaderError;
+                       return HeaderError
                }
        }
 
@@ -181,10 +181,10 @@ func (z *Inflater) readHeader(save bool) os.Error {
 
 func (z *Inflater) Read(p []byte) (n int, err os.Error) {
        if z.err != nil {
-               return 0, z.err;
+               return 0, z.err
        }
        if z.eof || len(p) == 0 {
-               return 0, nil;
+               return 0, nil
        }
 
        n, err = z.inflater.Read(p);
index 08e1a59677a3b5902a788a7115551a16dc8fbf53..84286ee3f68e242d18bfd954a904e84776f93056 100644 (file)
@@ -290,16 +290,16 @@ func TestInflater(t *testing.T) {
                }
                defer gzip.Close();
                if tt.name != gzip.Name {
-                       t.Errorf("%s: got name %s", tt.name, gzip.Name);
+                       t.Errorf("%s: got name %s", tt.name, gzip.Name)
                }
                b.Reset();
                n, err := io.Copy(b, gzip);
                if err != tt.err {
-                       t.Errorf("%s: io.Copy: %v want %v", tt.name, err, tt.err);
+                       t.Errorf("%s: io.Copy: %v want %v", tt.name, err, tt.err)
                }
                s := b.String();
                if s != tt.raw {
-                       t.Errorf("%s: got %d-byte %q want %d-byte %q", tt.name, n, s, len(tt.raw), tt.raw);
+                       t.Errorf("%s: got %d-byte %q want %d-byte %q", tt.name, n, s, len(tt.raw), tt.raw)
                }
        }
 }
index cf0eb1b29a7ad4e0f21453af7abc9e1eb71bdf3e..c0025899581aa5c70a249cb9347a692d22888cd3 100644 (file)
@@ -35,21 +35,21 @@ type reader struct {
 func NewInflater(r io.Reader) (io.ReadCloser, os.Error) {
        z := new(reader);
        if fr, ok := r.(flate.Reader); ok {
-               z.r = fr;
+               z.r = fr
        } else {
-               z.r = bufio.NewReader(r);
+               z.r = bufio.NewReader(r)
        }
        _, err := io.ReadFull(z.r, z.scratch[0:2]);
        if err != nil {
-               return nil, err;
+               return nil, err
        }
        h := uint(z.scratch[0])<<8 | uint(z.scratch[1]);
        if (z.scratch[0] & 0x0f != zlibDeflate) || (h%31 != 0) {
-               return nil, HeaderError;
+               return nil, HeaderError
        }
        if z.scratch[1] & 0x20 != 0 {
                // BUG(nigeltao): The zlib package does not implement the FDICT flag.
-               return nil, UnsupportedError;
+               return nil, UnsupportedError
        }
        z.digest = adler32.New();
        z.inflater = flate.NewInflater(z.r);
@@ -58,10 +58,10 @@ func NewInflater(r io.Reader) (io.ReadCloser, os.Error) {
 
 func (z *reader) Read(p []byte) (n int, err os.Error) {
        if z.err != nil {
-               return 0, z.err;
+               return 0, z.err
        }
        if len(p) == 0 {
-               return 0, nil;
+               return 0, nil
        }
 
        n, err = z.inflater.Read(p);
@@ -88,7 +88,7 @@ func (z *reader) Read(p []byte) (n int, err os.Error) {
 // Calling Close does not close the wrapped io.Reader originally passed to NewInflater.
 func (z *reader) Close() os.Error {
        if z.err != nil {
-               return z.err;
+               return z.err
        }
        z.err = z.inflater.Close();
        return z.err;
index 037c9bf6ffc729b8a1bf822f2e71bcb2ac7a9b53..5e057ee21bf81a78b1b20b28dbcb46cf4628d487 100644 (file)
@@ -74,7 +74,7 @@ func TestInflater(t *testing.T) {
                zlib, err := NewInflater(in);
                if err != nil {
                        if err != tt.err {
-                               t.Errorf("%s: NewInflater: %s", tt.desc, err);
+                               t.Errorf("%s: NewInflater: %s", tt.desc, err)
                        }
                        continue;
                }
@@ -83,13 +83,13 @@ func TestInflater(t *testing.T) {
                n, err := io.Copy(b, zlib);
                if err != nil {
                        if err != tt.err {
-                               t.Errorf("%s: io.Copy: %v want %v", tt.desc, err, tt.err);
+                               t.Errorf("%s: io.Copy: %v want %v", tt.desc, err, tt.err)
                        }
                        continue;
                }
                s := b.String();
                if s != tt.raw {
-                       t.Errorf("%s: got %d-byte %q want %d-byte %q", tt.desc, n, s, len(tt.raw), tt.raw);
+                       t.Errorf("%s: got %d-byte %q want %d-byte %q", tt.desc, n, s, len(tt.raw), tt.raw)
                }
        }
 }
index 6c0c0bbd4230702274ec5b4b0c7cb4f622604ac0..9b23b229385f2d65f73246804fc2ab1199e7be54 100644 (file)
@@ -31,7 +31,7 @@ type writer struct {
 
 // NewDeflater calls NewDeflaterLevel with the default compression level.
 func NewDeflater(w io.Writer) (io.WriteCloser, os.Error) {
-       return NewDeflaterLevel(w, DefaultCompression);
+       return NewDeflaterLevel(w, DefaultCompression)
 }
 
 // NewDeflater creates a new io.WriteCloser that satisfies writes by compressing data written to w.
@@ -50,19 +50,19 @@ func NewDeflaterLevel(w io.Writer, level int) (io.WriteCloser, os.Error) {
        // The final five FCHECK bits form a mod-31 checksum.
        switch level {
        case 0, 1:
-               z.scratch[1] = 0x01;
+               z.scratch[1] = 0x01
        case 2, 3, 4, 5:
-               z.scratch[1] = 0x5e;
+               z.scratch[1] = 0x5e
        case 6, -1:
-               z.scratch[1] = 0x9c;
+               z.scratch[1] = 0x9c
        case 7, 8, 9:
-               z.scratch[1] = 0xda;
+               z.scratch[1] = 0xda
        default:
-               return nil, os.NewError("level out of range");
+               return nil, os.NewError("level out of range")
        }
        _, err := w.Write(z.scratch[0:2]);
        if err != nil {
-               return nil, err;
+               return nil, err
        }
        z.w = w;
        z.deflater = flate.NewDeflater(w, level);
@@ -72,10 +72,10 @@ func NewDeflaterLevel(w io.Writer, level int) (io.WriteCloser, os.Error) {
 
 func (z *writer) Write(p []byte) (n int, err os.Error) {
        if z.err != nil {
-               return 0, z.err;
+               return 0, z.err
        }
        if len(p) == 0 {
-               return 0, nil;
+               return 0, nil
        }
        n, err = z.deflater.Write(p);
        if err != nil {
@@ -89,11 +89,11 @@ func (z *writer) Write(p []byte) (n int, err os.Error) {
 // Calling Close does not close the wrapped io.Writer originally passed to NewDeflater.
 func (z *writer) Close() os.Error {
        if z.err != nil {
-               return z.err;
+               return z.err
        }
        z.err = z.deflater.Close();
        if z.err != nil {
-               return z.err;
+               return z.err
        }
        checksum := z.digest.Sum32();
        // ZLIB (RFC 1950) is big-endian, unlike GZIP (RFC 1952).
index 16e88a6a9af57ce55f58baa1367e11e55b237139..13c20d9d1c37dc142b535b636148577b7eace664 100644 (file)
@@ -53,14 +53,14 @@ func testFileLevel(t *testing.T, fn string, level int) {
                        _, err1 := zlibw.Write(b[0:n]);
                        if err1 == os.EPIPE {
                                // Fail, but do not report the error, as some other (presumably reportable) error broke the pipe.
-                               return;
+                               return
                        }
                        if err1 != nil {
                                t.Errorf("%s (level=%d): %v", fn, level, err1);
                                return;
                        }
                        if err0 == os.EOF {
-                               break;
+                               break
                        }
                }
        }();
@@ -99,7 +99,7 @@ func TestWriter(t *testing.T) {
                testFileLevel(t, fn, DefaultCompression);
                testFileLevel(t, fn, NoCompression);
                for level := BestSpeed; level <= BestCompression; level++ {
-                       testFileLevel(t, fn, level);
+                       testFileLevel(t, fn, level)
                }
        }
 }
index 100dcad054fd428180159005f44973e2059335e1..b80805972d9f79a20eb02a2393eb758b1ef916ad 100644 (file)
@@ -68,7 +68,7 @@ func up(h Interface, j int) {
        for {
                i := (j-1)/2;
                if i == j || h.Less(i, j) {
-                       break;
+                       break
                }
                h.Swap(i, j);
                j = i;
@@ -80,13 +80,13 @@ func down(h Interface, i, n int) {
        for {
                j := 2*i + 1;
                if j >= n {
-                       break;
+                       break
                }
                if j1 := j+1; j1 < n && !h.Less(j, j1) {
-                       j = j1; // = 2*i + 2
+                       j = j1  // = 2*i + 2
                }
                if h.Less(i, j) {
-                       break;
+                       break
                }
                h.Swap(i, j);
                i = j;
index 2375906b967fc1022b8ccfd9c1dd91a928498dd6..3259be81265f44419d2763fd1ff677ec4b4f8d1e 100644 (file)
@@ -52,7 +52,7 @@ func (h *myHeap) Pop() interface{}    { return h.IntVector.Pop() }
 func TestInit(t *testing.T) {
        h := newHeap();
        for i := 20; i > 0; i-- {
-               h.Push(i);
+               h.Push(i)
        }
        Init(h);
        h.verify(t, 0);
@@ -61,7 +61,7 @@ func TestInit(t *testing.T) {
                x := Pop(h).(int);
                h.verify(t, 0);
                if x != i {
-                       t.Errorf("%d.th pop got %d; want %d", i, x, i);
+                       t.Errorf("%d.th pop got %d; want %d", i, x, i)
                }
        }
 }
@@ -72,7 +72,7 @@ func Test(t *testing.T) {
        h.verify(t, 0);
 
        for i := 20; i > 10; i-- {
-               h.Push(i);
+               h.Push(i)
        }
        Init(h);
        h.verify(t, 0);
@@ -85,11 +85,11 @@ func Test(t *testing.T) {
        for i := 1; h.Len() > 0; i++ {
                x := Pop(h).(int);
                if i < 20 {
-                       Push(h, 20+i);
+                       Push(h, 20+i)
                }
                h.verify(t, 0);
                if x != i {
-                       t.Errorf("%d.th pop got %d; want %d", i, x, i);
+                       t.Errorf("%d.th pop got %d; want %d", i, x, i)
                }
        }
 }
index b1f12080f05b3f462a63469b0c3ee53d72feb2bc..b7b392ceaa5c440d98753140493e1f1960d84bc5 100755 (executable)
@@ -52,17 +52,17 @@ func (l *List) Back() *Element      { return l.back }
 // Remove removes the element from the list.
 func (l *List) Remove(e *Element) {
        if e.id != l.id {
-               return;
+               return
        }
        if e.prev == nil {
-               l.front = e.next;
+               l.front = e.next
        } else {
-               e.prev.next = e.next;
+               e.prev.next = e.next
        }
        if e.next == nil {
-               l.back = e.prev;
+               l.back = e.prev
        } else {
-               e.next.prev = e.prev;
+               e.next.prev = e.prev
        }
 
        e.prev = nil;
@@ -73,9 +73,9 @@ func (l *List) Remove(e *Element) {
 func (l *List) insertBefore(e *Element, mark *Element) {
        if mark.prev == nil {
                // new front of the list
-               l.front = e;
+               l.front = e
        } else {
-               mark.prev.next = e;
+               mark.prev.next = e
        }
        e.prev = mark.prev;
        mark.prev = e;
@@ -86,9 +86,9 @@ func (l *List) insertBefore(e *Element, mark *Element) {
 func (l *List) insertAfter(e *Element, mark *Element) {
        if mark.next == nil {
                // new back of the list
-               l.back = e;
+               l.back = e
        } else {
-               mark.next.prev = e;
+               mark.next.prev = e
        }
        e.next = mark.next;
        mark.next = e;
@@ -121,7 +121,7 @@ func (l *List) insertBack(e *Element) {
 // PushFront inserts the value at the front of the list and returns a new Element containing the value.
 func (l *List) PushFront(value interface{}) *Element {
        if l.id == nil {
-               l.Init();
+               l.Init()
        }
        e := &Element{nil, nil, l.id, value};
        l.insertFront(e);
@@ -131,7 +131,7 @@ func (l *List) PushFront(value interface{}) *Element {
 // PushBack inserts the value at the back of the list and returns a new Element containing the value.
 func (l *List) PushBack(value interface{}) *Element {
        if l.id == nil {
-               l.Init();
+               l.Init()
        }
        e := &Element{nil, nil, l.id, value};
        l.insertBack(e);
@@ -141,7 +141,7 @@ func (l *List) PushBack(value interface{}) *Element {
 // InsertBefore inserts the value immediately before mark and returns a new Element containing the value.
 func (l *List) InsertBefore(value interface{}, mark *Element) *Element {
        if mark.id != l.id {
-               return nil;
+               return nil
        }
        e := &Element{nil, nil, l.id, value};
        l.insertBefore(e, mark);
@@ -151,7 +151,7 @@ func (l *List) InsertBefore(value interface{}, mark *Element) *Element {
 // InsertAfter inserts the value immediately after mark and returns a new Element containing the value.
 func (l *List) InsertAfter(value interface{}, mark *Element) *Element {
        if mark.id != l.id {
-               return nil;
+               return nil
        }
        e := &Element{nil, nil, l.id, value};
        l.insertAfter(e, mark);
@@ -161,7 +161,7 @@ func (l *List) InsertAfter(value interface{}, mark *Element) *Element {
 // MoveToFront moves the element to the front of the list.
 func (l *List) MoveToFront(e *Element) {
        if e.id != l.id || l.front == e {
-               return;
+               return
        }
        l.Remove(e);
        l.insertFront(e);
@@ -170,7 +170,7 @@ func (l *List) MoveToFront(e *Element) {
 // MoveToBack moves the element to the back of the list.
 func (l *List) MoveToBack(e *Element) {
        if e.id != l.id || l.back == e {
-               return;
+               return
        }
        l.Remove(e);
        l.insertBack(e);
@@ -181,7 +181,7 @@ func (l *List) Len() int    { return l.len }
 
 func (l *List) iterate(c chan<- interface{}) {
        for e := l.front; e != nil; e = e.next {
-               c <- e.Value;
+               c <- e.Value
        }
        close(c);
 }
index 5fa9e62c6e6516c2ec2d4051888f8d5440eedc37..52df37f56176167aaa1a903a73cbfa9b6b193406 100755 (executable)
@@ -11,39 +11,39 @@ import (
 func checkListPointers(t *testing.T, l *List, es []*Element) {
        if len(es) == 0 {
                if l.front != nil || l.back != nil {
-                       t.Errorf("l.front/l.back = %v/%v should be nil/nil", l.front, l.back);
+                       t.Errorf("l.front/l.back = %v/%v should be nil/nil", l.front, l.back)
                }
                return;
        }
 
        if l.front != es[0] {
-               t.Errorf("l.front = %v, want %v", l.front, es[0]);
+               t.Errorf("l.front = %v, want %v", l.front, es[0])
        }
        if last := es[len(es)-1]; l.back != last {
-               t.Errorf("l.back = %v, want %v", l.back, last);
+               t.Errorf("l.back = %v, want %v", l.back, last)
        }
 
        for i := 0; i < len(es); i++ {
                e := es[i];
                var e_prev, e_next *Element = nil, nil;
                if i > 0 {
-                       e_prev = es[i-1];
+                       e_prev = es[i-1]
                }
                if i < len(es)-1 {
-                       e_next = es[i+1];
+                       e_next = es[i+1]
                }
                if e.prev != e_prev {
-                       t.Errorf("elt #%d (%v) has prev=%v, want %v", i, e, e.prev, e_prev);
+                       t.Errorf("elt #%d (%v) has prev=%v, want %v", i, e, e.prev, e_prev)
                }
                if e.next != e_next {
-                       t.Errorf("elt #%d (%v) has next=%v, want %v", i, e, e.next, e_next);
+                       t.Errorf("elt #%d (%v) has next=%v, want %v", i, e, e.next, e_next)
                }
        }
 }
 
 func checkListLen(t *testing.T, l *List, n int) {
        if an := l.Len(); an != n {
-               t.Errorf("l.Len() = %d, want %d", an, n);
+               t.Errorf("l.Len() = %d, want %d", an, n)
        }
 }
 
@@ -118,11 +118,11 @@ func TestList(t *testing.T) {
        sum := 0;
        for e := range l.Iter() {
                if i, ok := e.(int); ok {
-                       sum += i;
+                       sum += i
                }
        }
        if sum != 4 {
-               t.Errorf("sum over l.Iter() = %d, want 4", sum);
+               t.Errorf("sum over l.Iter() = %d, want 4", sum)
        }
 
        // Clear all elements by iterating
index 14593f215958d83e9812e605aefb91e35b4c0e65..a4b631db0b37d7a47af4dc6de56cf916887bb87d 100644 (file)
@@ -27,7 +27,7 @@ func (r *Ring) init() *Ring {
 // Next returns the next ring element. r must not be empty.
 func (r *Ring) Next() *Ring {
        if r.next == nil {
-               return r.init();
+               return r.init()
        }
        return r.next;
 }
@@ -36,7 +36,7 @@ func (r *Ring) Next() *Ring {
 // Prev returns the previous ring element. r must not be empty.
 func (r *Ring) Prev() *Ring {
        if r.next == nil {
-               return r.init();
+               return r.init()
        }
        return r.prev;
 }
@@ -47,16 +47,16 @@ func (r *Ring) Prev() *Ring {
 //
 func (r *Ring) Move(n int) *Ring {
        if r.next == nil {
-               return r.init();
+               return r.init()
        }
        switch {
        case n < 0:
                for ; n < 0; n++ {
-                       r = r.prev;
+                       r = r.prev
                }
        case n > 0:
                for ; n > 0; n-- {
-                       r = r.next;
+                       r = r.next
                }
        }
        return r;
@@ -66,7 +66,7 @@ func (r *Ring) Move(n int) *Ring {
 // New creates a ring of n elements.
 func New(n int) *Ring {
        if n <= 0 {
-               return nil;
+               return nil
        }
        r := new(Ring);
        p := r;
@@ -117,7 +117,7 @@ func (r *Ring) Link(s *Ring) *Ring {
 //
 func (r *Ring) Unlink(n int) *Ring {
        if n <= 0 {
-               return nil;
+               return nil
        }
        return r.Link(r.Move(n+1));
 }
@@ -131,7 +131,7 @@ func (r *Ring) Len() int {
        if r != nil {
                n = 1;
                for p := r.Next(); p != r; p = p.next {
-                       n++;
+                       n++
                }
        }
        return n;
@@ -144,7 +144,7 @@ func (r *Ring) Iter() <-chan interface{} {
                if r != nil {
                        c <- r.Value;
                        for p := r.Next(); p != r; p = p.next {
-                               c <- p.Value;
+                               c <- p.Value
                        }
                }
                close(c);
index 7032cdfcff5f5b3dea92402170fd312fc140b10e..db6fe42c82a0c2d2f0f8fdd1b149bd582f0eb99d 100644 (file)
@@ -29,7 +29,7 @@ func verify(t *testing.T, r *Ring, N int, sum int) {
        // Len
        n := r.Len();
        if n != N {
-               t.Errorf("r.Len() == %d; expected %d", n, N);
+               t.Errorf("r.Len() == %d; expected %d", n, N)
        }
 
        // iteration
@@ -38,18 +38,18 @@ func verify(t *testing.T, r *Ring, N int, sum int) {
        for p := range r.Iter() {
                n++;
                if p != nil {
-                       s += p.(int);
+                       s += p.(int)
                }
        }
        if n != N {
-               t.Errorf("number of forward iterations == %d; expected %d", n, N);
+               t.Errorf("number of forward iterations == %d; expected %d", n, N)
        }
        if sum >= 0 && s != sum {
-               t.Errorf("forward ring sum = %d; expected %d", s, sum);
+               t.Errorf("forward ring sum = %d; expected %d", s, sum)
        }
 
        if r == nil {
-               return;
+               return
        }
 
        // connections
@@ -57,41 +57,41 @@ func verify(t *testing.T, r *Ring, N int, sum int) {
                var p *Ring;    // previous element
                for q := r; p == nil || q != r; q = q.next {
                        if p != nil && p != q.prev {
-                               t.Errorf("prev = %p, expected q.prev = %p\n", p, q.prev);
+                               t.Errorf("prev = %p, expected q.prev = %p\n", p, q.prev)
                        }
                        p = q;
                }
                if p != r.prev {
-                       t.Errorf("prev = %p, expected r.prev = %p\n", p, r.prev);
+                       t.Errorf("prev = %p, expected r.prev = %p\n", p, r.prev)
                }
        }
 
        // Next, Prev
        if r.Next() != r.next {
-               t.Errorf("r.Next() != r.next");
+               t.Errorf("r.Next() != r.next")
        }
        if r.Prev() != r.prev {
-               t.Errorf("r.Prev() != r.prev");
+               t.Errorf("r.Prev() != r.prev")
        }
 
        // Move
        if r.Move(0) != r {
-               t.Errorf("r.Move(0) != r");
+               t.Errorf("r.Move(0) != r")
        }
        if r.Move(N) != r {
-               t.Errorf("r.Move(%d) != r", N);
+               t.Errorf("r.Move(%d) != r", N)
        }
        if r.Move(-N) != r {
-               t.Errorf("r.Move(%d) != r", -N);
+               t.Errorf("r.Move(%d) != r", -N)
        }
        for i := 0; i < 10; i++ {
                ni := N+i;
                mi := ni%N;
                if r.Move(ni) != r.Move(mi) {
-                       t.Errorf("r.Move(%d) != r.Move(%d)", ni, mi);
+                       t.Errorf("r.Move(%d) != r.Move(%d)", ni, mi)
                }
                if r.Move(-ni) != r.Move(-mi) {
-                       t.Errorf("r.Move(%d) != r.Move(%d)", -ni, -mi);
+                       t.Errorf("r.Move(%d) != r.Move(%d)", -ni, -mi)
                }
        }
 }
@@ -132,7 +132,7 @@ func makeN(n int) *Ring {
 func sum(r *Ring) int {
        s := 0;
        for p := range r.Iter() {
-               s += p.(int);
+               s += p.(int)
        }
        return s;
 }
@@ -159,13 +159,13 @@ func TestLink1(t *testing.T) {
        r2a := r1a.Link(&r1b);
        verify(t, r2a, 2, 1);
        if r2a != r1a {
-               t.Errorf("a) 2-element link failed");
+               t.Errorf("a) 2-element link failed")
        }
 
        r2b := r2a.Link(r2a.Next());
        verify(t, r2b, 2, 1);
        if r2b != r2a.Next() {
-               t.Errorf("b) 2-element link failed");
+               t.Errorf("b) 2-element link failed")
        }
 
        r1c := r2b.Link(r2b);
index e17d619ad63f9dbc1bfbe8f24330275b3cd5e159..75f794f79a8477fa4ec504639fb0789218bd1bd0 100644 (file)
@@ -40,7 +40,7 @@ func (p *IntVector) Last() int        { return p.Vector.Last().(int) }
 func (p *IntVector) Data() []int {
        arr := make([]int, p.Len());
        for i, v := range p.a {
-               arr[i] = v.(int);
+               arr[i] = v.(int)
        }
        return arr;
 }
@@ -54,14 +54,14 @@ func (p *IntVector) Insert(i int, x int)    { p.Vector.Insert(i, x) }
 // InsertVector inserts into the vector the contents of the Vector
 // x such that the 0th element of x appears at index i after insertion.
 func (p *IntVector) InsertVector(i int, x *IntVector) {
-       p.Vector.InsertVector(i, &x.Vector);
+       p.Vector.InsertVector(i, &x.Vector)
 }
 
 
 // Slice returns a new IntVector by slicing the old one to extract slice [i:j].
 // The elements are copied. The original vector is unchanged.
 func (p *IntVector) Slice(i, j int) *IntVector {
-       return &IntVector{*p.Vector.Slice(i, j)};
+       return &IntVector{*p.Vector.Slice(i, j)}
 }
 
 
@@ -75,7 +75,7 @@ func (p *IntVector) Pop() int { return p.Vector.Pop().(int) }
 
 // AppendVector appends the entire IntVector x to the end of this vector.
 func (p *IntVector) AppendVector(x *IntVector) {
-       p.Vector.InsertVector(len(p.a), &x.Vector);
+       p.Vector.InsertVector(len(p.a), &x.Vector)
 }
 
 
@@ -87,7 +87,7 @@ func (p *IntVector) Less(i, j int) bool       { return p.At(i) < p.At(j) }
 // Iterate over all elements; driver for range
 func (p *IntVector) iterate(c chan<- int) {
        for _, v := range p.a {
-               c <- v.(int);
+               c <- v.(int)
        }
        close(c);
 }
index c3f31f046ed5bcaba9e478d30f9435c459c99290..0178f6be2ef8a1e4f4311b60b9a9c276040605dd 100644 (file)
@@ -39,7 +39,7 @@ func (p *StringVector) Last() string  { return p.Vector.Last().(string) }
 func (p *StringVector) Data() []string {
        arr := make([]string, p.Len());
        for i, v := range p.a {
-               arr[i] = v.(string);
+               arr[i] = v.(string)
        }
        return arr;
 }
@@ -48,21 +48,21 @@ func (p *StringVector) Data() []string {
 // Insert inserts into the vector an element of value x before
 // the current element at index i.
 func (p *StringVector) Insert(i int, x string) {
-       p.Vector.Insert(i, x);
+       p.Vector.Insert(i, x)
 }
 
 
 // InsertVector inserts into the vector the contents of the Vector
 // x such that the 0th element of x appears at index i after insertion.
 func (p *StringVector) InsertVector(i int, x *StringVector) {
-       p.Vector.InsertVector(i, &x.Vector);
+       p.Vector.InsertVector(i, &x.Vector)
 }
 
 
 // Slice returns a new StringVector by slicing the old one to extract slice [i:j].
 // The elements are copied. The original vector is unchanged.
 func (p *StringVector) Slice(i, j int) *StringVector {
-       return &StringVector{*p.Vector.Slice(i, j)};
+       return &StringVector{*p.Vector.Slice(i, j)}
 }
 
 
@@ -76,7 +76,7 @@ func (p *StringVector) Pop() string   { return p.Vector.Pop().(string) }
 
 // AppendVector appends the entire StringVector x to the end of this vector.
 func (p *StringVector) AppendVector(x *StringVector) {
-       p.Vector.InsertVector(len(p.a), &x.Vector);
+       p.Vector.InsertVector(len(p.a), &x.Vector)
 }
 
 
@@ -88,7 +88,7 @@ func (p *StringVector) Less(i, j int) bool    { return p.At(i) < p.At(j) }
 // Iterate over all elements; driver for range
 func (p *StringVector) iterate(c chan<- string) {
        for _, v := range p.a {
-               c <- v.(string);
+               c <- v.(string)
        }
        close(c);
 }
index ee19997fb78e45e820c35d105724c5ec980d2c20..97c917a7e78c985d85863bb4af5c394c68153018 100644 (file)
@@ -20,7 +20,7 @@ type Vector struct {
 
 func copy(dst, src []Element) {
        for i := 0; i < len(src); i++ {
-               dst[i] = src[i];
+               dst[i] = src[i]
        }
 }
 
@@ -32,13 +32,13 @@ func expand(a []Element, i, n int) []Element {
        len1 := len0+n;
        if len1 < cap(a) {
                // enough space - just expand
-               a = a[0:len1];
+               a = a[0:len1]
        } else {
                // not enough space - double capacity
                capb := cap(a)*2;
                if capb < len1 {
                        // still not enough - use required length
-                       capb = len1;
+                       capb = len1
                }
                // capb >= len1
                b := make([]Element, len1, capb);
@@ -48,7 +48,7 @@ func expand(a []Element, i, n int) []Element {
 
        // make a hole
        for j := len0-1; j >= i; j-- {
-               a[j+n] = a[j];
+               a[j+n] = a[j]
        }
        return a;
 }
@@ -63,13 +63,13 @@ func (p *Vector) Init(initial_len int) *Vector {
        if cap(a) == 0 || cap(a) < initial_len {
                n := 8; // initial capacity
                if initial_len > n {
-                       n = initial_len;
+                       n = initial_len
                }
                a = make([]Element, n);
        } else {
                // nil out entries
                for j := len(a)-1; j >= 0; j-- {
-                       a[j] = nil;
+                       a[j] = nil
                }
        }
 
@@ -86,7 +86,7 @@ func New(len int) *Vector     { return new(Vector).Init(len) }
 // Len is 0 if p == nil.
 func (p *Vector) Len() int {
        if p == nil {
-               return 0;
+               return 0
        }
        return len(p.a);
 }
@@ -108,7 +108,7 @@ func (p *Vector) Last() Element     { return p.a[len(p.a)-1] }
 func (p *Vector) Data() []Element {
        arr := make([]Element, p.Len());
        for i, v := range p.a {
-               arr[i] = v;
+               arr[i] = v
        }
        return arr;
 }
@@ -150,7 +150,7 @@ func (p *Vector) Cut(i, j int) {
 
        copy(a[i:m], a[j:n]);
        for k := m; k < n; k++ {
-               a[k] = nil;     // support GC, nil out entries
+               a[k] = nil      // support GC, nil out entries
        }
 
        p.a = a[0:m];
@@ -170,7 +170,7 @@ func (p *Vector) Slice(i, j int) *Vector {
 // The function should not change the indexing of the vector underfoot.
 func (p *Vector) Do(f func(elem Element)) {
        for i := 0; i < len(p.a); i++ {
-               f(p.a[i]);      // not too safe if f changes the Vector
+               f(p.a[i])       // not too safe if f changes the Vector
        }
 }
 
@@ -217,7 +217,7 @@ func (p *Vector) Swap(i, j int) {
 // Iterate over all elements; driver for range
 func (p *Vector) iterate(c chan<- Element) {
        for _, v := range p.a {
-               c <- v;
+               c <- v
        }
        close(c);
 }
index 12a8aa07710ced914a03949159ba7d7cfa09ec00..4e242601ddf70b917c2580f2e1bd7a441b81d519 100644 (file)
@@ -12,11 +12,11 @@ import "fmt"
 func TestZeroLen(t *testing.T) {
        var a *Vector;
        if a.Len() != 0 {
-               t.Errorf("A) expected 0, got %d", a.Len());
+               t.Errorf("A) expected 0, got %d", a.Len())
        }
        a = New(0);
        if a.Len() != 0 {
-               t.Errorf("B) expected 0, got %d", a.Len());
+               t.Errorf("B) expected 0, got %d", a.Len())
        }
 }
 
@@ -24,26 +24,26 @@ func TestZeroLen(t *testing.T) {
 func TestInit(t *testing.T) {
        var a Vector;
        if a.Init(0).Len() != 0 {
-               t.Error("A");
+               t.Error("A")
        }
        if a.Init(1).Len() != 1 {
-               t.Error("B");
+               t.Error("B")
        }
        if a.Init(10).Len() != 10 {
-               t.Error("C");
+               t.Error("C")
        }
 }
 
 
 func TestNew(t *testing.T) {
        if New(0).Len() != 0 {
-               t.Error("A");
+               t.Error("A")
        }
        if New(1).Len() != 1 {
-               t.Error("B");
+               t.Error("B")
        }
        if New(10).Len() != 10 {
-               t.Error("C");
+               t.Error("C")
        }
 }
 
@@ -56,11 +56,11 @@ func TestAccess(t *testing.T) {
        var a Vector;
        a.Init(n);
        for i := 0; i < n; i++ {
-               a.Set(i, val(i));
+               a.Set(i, val(i))
        }
        for i := 0; i < n; i++ {
                if a.At(i).(int) != val(i) {
-                       t.Error(i);
+                       t.Error(i)
                }
        }
 }
@@ -72,41 +72,41 @@ func TestInsertDeleteClear(t *testing.T) {
 
        for i := 0; i < n; i++ {
                if a.Len() != i {
-                       t.Errorf("A) wrong len %d (expected %d)", a.Len(), i);
+                       t.Errorf("A) wrong len %d (expected %d)", a.Len(), i)
                }
                a.Insert(0, val(i));
                if a.Last().(int) != val(0) {
-                       t.Error("B");
+                       t.Error("B")
                }
        }
        for i := n-1; i >= 0; i-- {
                if a.Last().(int) != val(0) {
-                       t.Error("C");
+                       t.Error("C")
                }
                if a.At(0).(int) != val(i) {
-                       t.Error("D");
+                       t.Error("D")
                }
                a.Delete(0);
                if a.Len() != i {
-                       t.Errorf("E) wrong len %d (expected %d)", a.Len(), i);
+                       t.Errorf("E) wrong len %d (expected %d)", a.Len(), i)
                }
        }
 
        if a.Len() != 0 {
-               t.Errorf("F) wrong len %d (expected 0)", a.Len());
+               t.Errorf("F) wrong len %d (expected 0)", a.Len())
        }
        for i := 0; i < n; i++ {
                a.Push(val(i));
                if a.Len() != i+1 {
-                       t.Errorf("G) wrong len %d (expected %d)", a.Len(), i+1);
+                       t.Errorf("G) wrong len %d (expected %d)", a.Len(), i+1)
                }
                if a.Last().(int) != val(i) {
-                       t.Error("H");
+                       t.Error("H")
                }
        }
        a.Init(0);
        if a.Len() != 0 {
-               t.Errorf("I wrong len %d (expected 0)", a.Len());
+               t.Errorf("I wrong len %d (expected 0)", a.Len())
        }
 
        const m = 5;
@@ -116,15 +116,15 @@ func TestInsertDeleteClear(t *testing.T) {
                        x := val(i);
                        a.Push(x);
                        if a.Pop().(int) != x {
-                               t.Error("J");
+                               t.Error("J")
                        }
                        if a.Len() != j+1 {
-                               t.Errorf("K) wrong len %d (expected %d)", a.Len(), j+1);
+                               t.Errorf("K) wrong len %d (expected %d)", a.Len(), j+1)
                        }
                }
        }
        if a.Len() != m {
-               t.Errorf("L) wrong len %d (expected %d)", a.Len(), m);
+               t.Errorf("L) wrong len %d (expected %d)", a.Len(), m)
        }
 }
 
@@ -132,14 +132,14 @@ func TestInsertDeleteClear(t *testing.T) {
 func verify_slice(t *testing.T, x *Vector, elt, i, j int) {
        for k := i; k < j; k++ {
                if x.At(k).(int) != elt {
-                       t.Errorf("M) wrong [%d] element %d (expected %d)", k, x.At(k).(int), elt);
+                       t.Errorf("M) wrong [%d] element %d (expected %d)", k, x.At(k).(int), elt)
                }
        }
 
        s := x.Slice(i, j);
        for k, n := 0, j-i; k < n; k++ {
                if s.At(k).(int) != elt {
-                       t.Errorf("N) wrong [%d] element %d (expected %d)", k, x.At(k).(int), elt);
+                       t.Errorf("N) wrong [%d] element %d (expected %d)", k, x.At(k).(int), elt)
                }
        }
 }
@@ -148,7 +148,7 @@ func verify_slice(t *testing.T, x *Vector, elt, i, j int) {
 func verify_pattern(t *testing.T, x *Vector, a, b, c int) {
        n := a+b+c;
        if x.Len() != n {
-               t.Errorf("O) wrong len %d (expected %d)", x.Len(), n);
+               t.Errorf("O) wrong len %d (expected %d)", x.Len(), n)
        }
        verify_slice(t, x, 0, 0, a);
        verify_slice(t, x, 1, a, a+b);
@@ -159,7 +159,7 @@ func verify_pattern(t *testing.T, x *Vector, a, b, c int) {
 func make_vector(elt, len int) *Vector {
        x := New(len);
        for i := 0; i < len; i++ {
-               x.Set(i, elt);
+               x.Set(i, elt)
        }
        return x;
 }
@@ -195,18 +195,18 @@ func TestSorting(t *testing.T) {
 
        a := NewIntVector(n);
        for i := n-1; i >= 0; i-- {
-               a.Set(i, n-1-i);
+               a.Set(i, n-1-i)
        }
        if sort.IsSorted(a) {
-               t.Error("int vector not sorted");
+               t.Error("int vector not sorted")
        }
 
        b := NewStringVector(n);
        for i := n-1; i >= 0; i-- {
-               b.Set(i, fmt.Sprint(n-1-i));
+               b.Set(i, fmt.Sprint(n-1-i))
        }
        if sort.IsSorted(b) {
-               t.Error("string vector not sorted");
+               t.Error("string vector not sorted")
        }
 }
 
@@ -216,18 +216,18 @@ func TestDo(t *testing.T) {
        const salt = 17;
        a := NewIntVector(n);
        for i := 0; i < n; i++ {
-               a.Set(i, salt*i);
+               a.Set(i, salt*i)
        }
        count := 0;
        a.Do(func(e Element) {
                i := e.(int);
                if i != count*salt {
-                       t.Error("value at", count, "should be", count*salt, "not", i);
+                       t.Error("value at", count, "should be", count*salt, "not", i)
                }
                count++;
        });
        if count != n {
-               t.Error("should visit", n, "values; did visit", count);
+               t.Error("should visit", n, "values; did visit", count)
        }
 }
 
@@ -236,16 +236,16 @@ func TestIter(t *testing.T) {
        const Len = 100;
        x := New(Len);
        for i := 0; i < Len; i++ {
-               x.Set(i, i*i);
+               x.Set(i, i*i)
        }
        i := 0;
        for v := range x.Iter() {
                if v.(int) != i*i {
-                       t.Error("Iter expected", i*i, "got", v.(int));
+                       t.Error("Iter expected", i*i, "got", v.(int))
                }
                i++;
        }
        if i != Len {
-               t.Error("Iter stopped at", i, "not", Len);
+               t.Error("Iter stopped at", i, "not", Len)
        }
 }
index 4bdf358f65ce8ada7d4cf1589b2ba13920f41fe2..d3a6b2b729a973470f565ea072787475ba131b73 100644 (file)
@@ -16,11 +16,11 @@ func TestPowx(t *testing.T) {
        p := 1;
        for i := 0; i < len(powx); i++ {
                if powx[i] != byte(p) {
-                       t.Errorf("powx[%d] = %#x, want %#x", i, powx[i], p);
+                       t.Errorf("powx[%d] = %#x, want %#x", i, powx[i], p)
                }
                p <<= 1;
                if p&0x100 != 0 {
-                       p ^= poly;
+                       p ^= poly
                }
        }
 }
@@ -42,7 +42,7 @@ func mul(b, c uint32) uint32 {
                // i *= x in GF(2) modulo the polynomial
                i <<= 1;
                if i&0x100 != 0 {
-                       i ^= poly;
+                       i ^= poly
                }
        }
        return s;
@@ -57,12 +57,12 @@ func TestMul(t *testing.T) {
                        for k := uint(0); k < 8; k++ {
                                for l := uint(0); l < 8; l++ {
                                        if i&(1<<k) != 0 && j&(1<<l) != 0 {
-                                               s ^= powx[k+l];
+                                               s ^= powx[k+l]
                                        }
                                }
                        }
                        if x := mul(i, j); x != uint32(s) {
-                               t.Fatalf("mul(%#x, %#x) = %#x, want %#x", i, j, x, s);
+                               t.Fatalf("mul(%#x, %#x) = %#x, want %#x", i, j, x, s)
                        }
                }
        }
@@ -75,10 +75,10 @@ func TestMul(t *testing.T) {
 func TestSboxes(t *testing.T) {
        for i := 0; i < 256; i++ {
                if j := sbox0[sbox1[i]]; j != byte(i) {
-                       t.Errorf("sbox0[sbox1[%#x]] = %#x", i, j);
+                       t.Errorf("sbox0[sbox1[%#x]] = %#x", i, j)
                }
                if j := sbox1[sbox0[i]]; j != byte(i) {
-                       t.Errorf("sbox1[sbox0[%#x]] = %#x", i, j);
+                       t.Errorf("sbox1[sbox0[%#x]] = %#x", i, j)
                }
        }
 }
@@ -93,7 +93,7 @@ func TestTe(t *testing.T) {
                w := s2<<24 | s<<16 | s<<8 | s3;
                for j := 0; j < 4; j++ {
                        if x := te[j][i]; x != w {
-                               t.Fatalf("te[%d][%d] = %#x, want %#x", j, i, x, w);
+                               t.Fatalf("te[%d][%d] = %#x, want %#x", j, i, x, w)
                        }
                        w = w<<24 | w>>8;
                }
@@ -112,7 +112,7 @@ func TestTd(t *testing.T) {
                w := se<<24 | s9<<16 | sd<<8 | sb;
                for j := 0; j < 4; j++ {
                        if x := td[j][i]; x != w {
-                               t.Fatalf("td[%d][%d] = %#x, want %#x", j, i, x, w);
+                               t.Fatalf("td[%d][%d] = %#x, want %#x", j, i, x, w)
                        }
                        w = w<<24 | w>>8;
                }
@@ -217,7 +217,7 @@ L:
                enc := make([]uint32, len(tt.enc));
                var dec []uint32;
                if tt.dec != nil {
-                       dec = make([]uint32, len(tt.dec));
+                       dec = make([]uint32, len(tt.dec))
                }
                expandKey(tt.key, enc, dec);
                for j, v := range enc {
index 9699830195c8ecce29a19b3f1aa4af02c20ecdac..c8870af1a7f352fa02c841a8cca2925ef1bea8a6 100644 (file)
@@ -131,7 +131,7 @@ func subw(w uint32) uint32 {
        return uint32(sbox0[w>>24])<<24 |
                uint32(sbox0[w>>16&0xff])<<16 |
                uint32(sbox0[w>>8&0xff])<<8 |
-               uint32(sbox0[w&0xff]);
+               uint32(sbox0[w&0xff])
 }
 
 // Rotate
@@ -144,14 +144,14 @@ func expandKey(key []byte, enc, dec []uint32) {
        var i int;
        nk := len(key)/4;
        for i = 0; i < nk; i++ {
-               enc[i] = uint32(key[4*i])<<24 | uint32(key[4*i + 1])<<16 | uint32(key[4*i + 2])<<8 | uint32(key[4*i + 3]);
+               enc[i] = uint32(key[4*i])<<24 | uint32(key[4*i + 1])<<16 | uint32(key[4*i + 2])<<8 | uint32(key[4*i + 3])
        }
        for ; i < len(enc); i++ {
                t := enc[i-1];
                if i%nk == 0 {
-                       t = subw(rotw(t))^(uint32(powx[i/nk - 1])<<24);
+                       t = subw(rotw(t))^(uint32(powx[i/nk - 1])<<24)
                } else if nk > 6 && i%nk == 4 {
-                       t = subw(t);
+                       t = subw(t)
                }
                enc[i] = enc[i-nk]^t;
        }
@@ -160,7 +160,7 @@ func expandKey(key []byte, enc, dec []uint32) {
        // Reverse the 4-word round key sets from enc to produce dec.
        // All sets but the first and last get the MixColumn transform applied.
        if dec == nil {
-               return;
+               return
        }
        n := len(enc);
        for i := 0; i < n; i += 4 {
@@ -168,7 +168,7 @@ func expandKey(key []byte, enc, dec []uint32) {
                for j := 0; j < 4; j++ {
                        x := enc[ei+j];
                        if i > 0 && i+4 < n {
-                               x = td[0][sbox0[x>>24]]^td[1][sbox0[x>>16&0xff]]^td[2][sbox0[x>>8&0xff]]^td[3][sbox0[x&0xff]];
+                               x = td[0][sbox0[x>>24]]^td[1][sbox0[x>>16&0xff]]^td[2][sbox0[x>>8&0xff]]^td[3][sbox0[x&0xff]]
                        }
                        dec[i+j] = x;
                }
index 41127254915bba69af2cc38d2071932b2b162e58..fba5863cf1976df95b8e70507927c20973874619 100644 (file)
@@ -21,7 +21,7 @@ type Cipher struct {
 type KeySizeError int
 
 func (k KeySizeError) String() string {
-       return "crypto/aes: invalid key size " + strconv.Itoa(int(k));
+       return "crypto/aes: invalid key size " + strconv.Itoa(int(k))
 }
 
 // NewCipher creates and returns a new Cipher.
@@ -32,9 +32,9 @@ func NewCipher(key []byte) (*Cipher, os.Error) {
        k := len(key);
        switch k {
        default:
-               return nil, KeySizeError(k);
+               return nil, KeySizeError(k)
        case 16, 24, 32:
-               break;
+               break
        }
 
        n := k+28;
@@ -63,9 +63,9 @@ func (c *Cipher) Decrypt(src, dst []byte)     { decryptBlock(c.dec, src, dst) }
 // appear in the process's memory.
 func (c *Cipher) Reset() {
        for i := 0; i < len(c.enc); i++ {
-               c.enc[i] = 0;
+               c.enc[i] = 0
        }
        for i := 0; i < len(c.dec); i++ {
-               c.dec[i] = 0;
+               c.dec[i] = 0
        }
 }
index 47aa8f32d9e0aedb6869fa0550019cd934aed948..ac41ab1fbe166255ff3f0ab1ebd7007f7e798a0c 100644 (file)
@@ -36,11 +36,11 @@ func (x *cbcCipher) BlockSize() int { return x.blockSize }
 
 func (x *cbcCipher) Encrypt(src, dst []byte) {
        for i := 0; i < x.blockSize; i++ {
-               x.iv[i] ^= src[i];
+               x.iv[i] ^= src[i]
        }
        x.c.Encrypt(x.iv, x.iv);
        for i := 0; i < x.blockSize; i++ {
-               dst[i] = x.iv[i];
+               dst[i] = x.iv[i]
        }
 }
 
@@ -58,7 +58,7 @@ func (x *cbcCipher) Decrypt(src, dst []byte) {
 // The returned Reader does not buffer or read ahead except
 // as required by the cipher's block size.
 func NewCBCDecrypter(c Cipher, iv []byte, r io.Reader) io.Reader {
-       return NewECBDecrypter(newCBC(c, iv), r);
+       return NewECBDecrypter(newCBC(c, iv), r)
 }
 
 // NewCBCEncrypter returns a writer that encrypts data using c
@@ -67,5 +67,5 @@ func NewCBCDecrypter(c Cipher, iv []byte, r io.Reader) io.Reader {
 // The returned Writer does no buffering except as required
 // by the cipher's block size, so there is no need for a Flush method.
 func NewCBCEncrypter(c Cipher, iv []byte, w io.Writer) io.Writer {
-       return NewECBEncrypter(newCBC(c, iv), w);
+       return NewECBEncrypter(newCBC(c, iv), w)
 }
index 5149e058c666963dd5e524cd03e83f2d21d1ab4f..02c58fabdd1cc503f84c2e7477f66f3c1b4d0d4f 100644 (file)
@@ -80,9 +80,9 @@ func TestCBC_AES(t *testing.T) {
                var r io.Reader = bytes.NewBuffer(tt.in);
                n, err := io.Copy(w, r);
                if n != int64(len(tt.in)) || err != nil {
-                       t.Errorf("%s: CBCEncrypter io.Copy = %d, %v want %d, nil", test, n, err, len(tt.in));
+                       t.Errorf("%s: CBCEncrypter io.Copy = %d, %v want %d, nil", test, n, err, len(tt.in))
                } else if d := crypt.Bytes(); !same(tt.out, d) {
-                       t.Errorf("%s: CBCEncrypter\nhave %x\nwant %x", test, d, tt.out);
+                       t.Errorf("%s: CBCEncrypter\nhave %x\nwant %x", test, d, tt.out)
                }
 
                var plain bytes.Buffer;
@@ -90,13 +90,13 @@ func TestCBC_AES(t *testing.T) {
                w = &plain;
                n, err = io.Copy(w, r);
                if n != int64(len(tt.out)) || err != nil {
-                       t.Errorf("%s: CBCDecrypter io.Copy = %d, %v want %d, nil", test, n, err, len(tt.out));
+                       t.Errorf("%s: CBCDecrypter io.Copy = %d, %v want %d, nil", test, n, err, len(tt.out))
                } else if d := plain.Bytes(); !same(tt.in, d) {
-                       t.Errorf("%s: CBCDecrypter\nhave %x\nwant %x", test, d, tt.in);
+                       t.Errorf("%s: CBCDecrypter\nhave %x\nwant %x", test, d, tt.in)
                }
 
                if t.Failed() {
-                       break;
+                       break
                }
        }
 }
index f515bdcfd66e5ac25bbcd35e34be7e06239a9f21..b07ea31389d5952137e3d9633531e3d3b942d5a0 100644 (file)
@@ -26,7 +26,7 @@ type cfbCipher struct {
 
 func newCFB(c Cipher, s int, iv []byte) *cfbCipher {
        if s == 0 || s%8 != 0 {
-               panicln("crypto/block: invalid CFB mode", s);
+               panicln("crypto/block: invalid CFB mode", s)
        }
        b := c.BlockSize();
        x := new(cfbCipher);
@@ -44,16 +44,16 @@ func (x *cfbCipher) Encrypt(src, dst []byte) {
        // Encrypt old IV and xor prefix with src to make dst.
        x.c.Encrypt(x.iv, x.tmp);
        for i := 0; i < x.blockSize; i++ {
-               dst[i] = src[i] ^ x.tmp[i];
+               dst[i] = src[i] ^ x.tmp[i]
        }
 
        // Slide unused IV pieces down and insert dst at end.
        for i := 0; i < x.cipherSize - x.blockSize; i++ {
-               x.iv[i] = x.iv[i + x.blockSize];
+               x.iv[i] = x.iv[i + x.blockSize]
        }
        off := x.cipherSize - x.blockSize;
        for i := off; i < x.cipherSize; i++ {
-               x.iv[i] = dst[i-off];
+               x.iv[i] = dst[i-off]
        }
 }
 
@@ -61,18 +61,18 @@ func (x *cfbCipher) Decrypt(src, dst []byte) {
        // Encrypt [sic] old IV and xor prefix with src to make dst.
        x.c.Encrypt(x.iv, x.tmp);
        for i := 0; i < x.blockSize; i++ {
-               dst[i] = src[i] ^ x.tmp[i];
+               dst[i] = src[i] ^ x.tmp[i]
        }
 
        // Slide unused IV pieces down and insert src at top.
        for i := 0; i < x.cipherSize - x.blockSize; i++ {
-               x.iv[i] = x.iv[i + x.blockSize];
+               x.iv[i] = x.iv[i + x.blockSize]
        }
        off := x.cipherSize - x.blockSize;
        for i := off; i < x.cipherSize; i++ {
                // Reconstruct src = dst ^ x.tmp
                // in case we overwrote src (src == dst).
-               x.iv[i] = dst[i-off] ^ x.tmp[i-off];
+               x.iv[i] = dst[i-off] ^ x.tmp[i-off]
        }
 }
 
@@ -82,7 +82,7 @@ func (x *cfbCipher) Decrypt(src, dst []byte) {
 // as required by the cipher's block size.
 // Modes for s not a multiple of 8 are unimplemented.
 func NewCFBDecrypter(c Cipher, s int, iv []byte, r io.Reader) io.Reader {
-       return NewECBDecrypter(newCFB(c, s, iv), r);
+       return NewECBDecrypter(newCFB(c, s, iv), r)
 }
 
 // NewCFBEncrypter returns a writer that encrypts data using c
@@ -92,5 +92,5 @@ func NewCFBDecrypter(c Cipher, s int, iv []byte, r io.Reader) io.Reader {
 // by the cipher's block size, so there is no need for a Flush method.
 // Modes for s not a multiple of 8 are unimplemented.
 func NewCFBEncrypter(c Cipher, s int, iv []byte, w io.Writer) io.Writer {
-       return NewECBEncrypter(newCFB(c, s, iv), w);
+       return NewECBEncrypter(newCFB(c, s, iv), w)
 }
index 521ebd1d280c27fbde8941dcdb9cc139cf046c7e..f1913691b99bc21d014a3abd2f185276c748d0b6 100644 (file)
@@ -275,7 +275,7 @@ func TestCFB_AES(t *testing.T) {
 
                if tt.s == 1 {
                        // 1-bit CFB not implemented
-                       continue;
+                       continue
                }
 
                c, err := aes.NewCipher(tt.key);
@@ -289,9 +289,9 @@ func TestCFB_AES(t *testing.T) {
                var r io.Reader = bytes.NewBuffer(tt.in);
                n, err := io.Copy(w, r);
                if n != int64(len(tt.in)) || err != nil {
-                       t.Errorf("%s: CFBEncrypter io.Copy = %d, %v want %d, nil", test, n, err, len(tt.in));
+                       t.Errorf("%s: CFBEncrypter io.Copy = %d, %v want %d, nil", test, n, err, len(tt.in))
                } else if d := crypt.Bytes(); !same(tt.out, d) {
-                       t.Errorf("%s: CFBEncrypter\nhave %x\nwant %x", test, d, tt.out);
+                       t.Errorf("%s: CFBEncrypter\nhave %x\nwant %x", test, d, tt.out)
                }
 
                var plain bytes.Buffer;
@@ -299,13 +299,13 @@ func TestCFB_AES(t *testing.T) {
                w = &plain;
                n, err = io.Copy(w, r);
                if n != int64(len(tt.out)) || err != nil {
-                       t.Errorf("%s: CFBDecrypter io.Copy = %d, %v want %d, nil", test, n, err, len(tt.out));
+                       t.Errorf("%s: CFBDecrypter io.Copy = %d, %v want %d, nil", test, n, err, len(tt.out))
                } else if d := plain.Bytes(); !same(tt.in, d) {
-                       t.Errorf("%s: CFBDecrypter\nhave %x\nwant %x", test, d, tt.in);
+                       t.Errorf("%s: CFBDecrypter\nhave %x\nwant %x", test, d, tt.in)
                }
 
                if t.Failed() {
-                       break;
+                       break
                }
        }
 }
index 8bff1b87820e8769df8ea0b1ba7db87bb00ec534..37ffebfa07f7730846907bb75ffb4258d299e387 100644 (file)
@@ -39,11 +39,11 @@ func shift1(src, dst []byte) byte {
 
 func same(p, q []byte) bool {
        if len(p) != len(q) {
-               return false;
+               return false
        }
        for i := 0; i < len(p); i++ {
                if p[i] != q[i] {
-                       return false;
+                       return false
                }
        }
        return true;
@@ -52,7 +52,7 @@ func same(p, q []byte) bool {
 func copy(p []byte) []byte {
        q := make([]byte, len(p));
        for i, b := range p {
-               q[i] = b;
+               q[i] = b
        }
        return q;
 }
index f57e64174673e2b21af6fcef7ac392cf601aac2d..9b29316e6a1d5895813f5c4c44b8c3e22d6574d7 100644 (file)
@@ -33,11 +33,11 @@ func NewCMAC(c Cipher) hash.Hash {
        n := c.BlockSize();
        switch n {
        case 64/8:
-               r = r64;
+               r = r64
        case 128/8:
-               r = r128;
+               r = r128
        default:
-               panic("crypto/block: NewCMAC: invalid cipher block size", n);
+               panic("crypto/block: NewCMAC: invalid cipher block size", n)
        }
 
        d := new(cmac);
@@ -50,10 +50,10 @@ func NewCMAC(c Cipher) hash.Hash {
        // Subkey generation, p. 7
        c.Encrypt(d.k1, d.k1);
        if shift1(d.k1, d.k1) != 0 {
-               d.k1[n-1] ^= r;
+               d.k1[n-1] ^= r
        }
        if shift1(d.k1, d.k2) != 0 {
-               d.k2[n-1] ^= r;
+               d.k2[n-1] ^= r
        }
 
        return d;
@@ -62,7 +62,7 @@ func NewCMAC(c Cipher) hash.Hash {
 // Reset clears the digest state, starting a new digest.
 func (d *cmac) Reset() {
        for i := range d.ci {
-               d.ci[i] = 0;
+               d.ci[i] = 0
        }
        d.p = 0;
 }
@@ -90,13 +90,13 @@ func (d *cmac) Sum() []byte {
        // to keep digesting after call to Sum.
        k := d.k1;
        if d.p < len(d.digest) {
-               k = d.k2;
+               k = d.k2
        }
        for i := 0; i < len(d.ci); i++ {
-               d.digest[i] = d.ci[i] ^ k[i];
+               d.digest[i] = d.ci[i] ^ k[i]
        }
        if d.p < len(d.digest) {
-               d.digest[d.p] ^= 0x80;
+               d.digest[d.p] ^= 0x80
        }
        d.c.Encrypt(d.digest, d.digest);
        return d.digest;
index 1e238c43c71b674b48c180381721f66641e82e97..1733a8de10826150c229b74040ca4e1ce64eddb8 100644 (file)
@@ -38,7 +38,7 @@ func (x *ctrStream) Next() []byte {
        for i := len(x.ctr)-1; i >= 0; i-- {
                x.ctr[i]++;
                if x.ctr[i] != 0 {
-                       break;
+                       break
                }
        }
 
@@ -52,7 +52,7 @@ func (x *ctrStream) Next() []byte {
 // a CTR reader applied to an encrypted stream produces a decrypted
 // stream and vice versa.
 func NewCTRReader(c Cipher, iv []byte, r io.Reader) io.Reader {
-       return newXorReader(newCTRStream(c, iv), r);
+       return newXorReader(newCTRStream(c, iv), r)
 }
 
 // NewCTRWriter returns a writer that encrypts (or decrypts) data using c
@@ -63,5 +63,5 @@ func NewCTRReader(c Cipher, iv []byte, r io.Reader) io.Reader {
 // a CTR writer applied to an decrypted stream produces an encrypted
 // stream and vice versa.
 func NewCTRWriter(c Cipher, iv []byte, w io.Writer) io.Writer {
-       return newXorWriter(newCTRStream(c, iv), w);
+       return newXorWriter(newCTRStream(c, iv), w)
 }
index 5cef93184192d38602129b7e2677305575305dcf..456c07131b146b20847648e7fa1c26e8f6ebb745 100644 (file)
@@ -84,9 +84,9 @@ func TestCTR_AES(t *testing.T) {
                        var r io.Reader = bytes.NewBuffer(in);
                        n, err := io.Copy(w, r);
                        if n != int64(len(in)) || err != nil {
-                               t.Errorf("%s/%d: CTRWriter io.Copy = %d, %v want %d, nil", test, len(in), n, err, len(in));
+                               t.Errorf("%s/%d: CTRWriter io.Copy = %d, %v want %d, nil", test, len(in), n, err, len(in))
                        } else if d, out := crypt.Bytes(), tt.out[0:len(in)]; !same(out, d) {
-                               t.Errorf("%s/%d: CTRWriter\ninpt %x\nhave %x\nwant %x", test, len(in), in, d, out);
+                               t.Errorf("%s/%d: CTRWriter\ninpt %x\nhave %x\nwant %x", test, len(in), in, d, out)
                        }
                }
 
@@ -97,14 +97,14 @@ func TestCTR_AES(t *testing.T) {
                        w := &plain;
                        n, err := io.Copy(w, r);
                        if n != int64(len(out)) || err != nil {
-                               t.Errorf("%s/%d: CTRReader io.Copy = %d, %v want %d, nil", test, len(out), n, err, len(out));
+                               t.Errorf("%s/%d: CTRReader io.Copy = %d, %v want %d, nil", test, len(out), n, err, len(out))
                        } else if d, in := plain.Bytes(), tt.in[0:len(out)]; !same(in, d) {
-                               t.Errorf("%s/%d: CTRReader\nhave %x\nwant %x", test, len(out), d, in);
+                               t.Errorf("%s/%d: CTRReader\nhave %x\nwant %x", test, len(out), d, in)
                        }
                }
 
                if t.Failed() {
-                       break;
+                       break
                }
        }
 }
index 3992ea8f7a763a97339bacfec90c43075c403e9e..867c74fc736065a7b2786237225a1b086467f1b5 100644 (file)
@@ -30,13 +30,13 @@ type EAXTagError struct {
 }
 
 func (e *EAXTagError) String() string {
-       return fmt.Sprintf("crypto/block: EAX tag mismatch: read %x but computed %x", e.Read, e.Computed);
+       return fmt.Sprintf("crypto/block: EAX tag mismatch: read %x but computed %x", e.Read, e.Computed)
 }
 
 func setupEAX(c Cipher, iv, hdr []byte, tagBytes int) (ctrIV, tag []byte, cmac hash.Hash) {
        n := len(iv);
        if n != c.BlockSize() {
-               panicln("crypto/block: EAX: iv length", n, "!=", c.BlockSize());
+               panicln("crypto/block: EAX: iv length", n, "!=", c.BlockSize())
        }
        buf := make([]byte, n); // zeroed
 
@@ -54,7 +54,7 @@ func setupEAX(c Cipher, iv, hdr []byte, tagBytes int) (ctrIV, tag []byte, cmac h
        cmac.Write(hdr);
        sum = cmac.Sum();
        for i := 0; i < tagBytes; i++ {
-               tag[i] ^= sum[i];
+               tag[i] ^= sum[i]
        }
 
        cmac.Reset();
@@ -68,7 +68,7 @@ func finishEAX(tag []byte, cmac hash.Hash) {
        // Finish CMAC #2 and xor into tag.
        sum := cmac.Sum();
        for i := range tag {
-               tag[i] ^= sum[i];
+               tag[i] ^= sum[i]
        }
 }
 
@@ -110,7 +110,7 @@ func NewEAXEncrypter(c Cipher, iv []byte, hdr []byte, tagBytes int, w io.Writer)
 }
 
 func (x *eaxEncrypter) Write(p []byte) (n int, err os.Error) {
-       return x.ctr.Write(p);
+       return x.ctr.Write(p)
 }
 
 func (x *eaxEncrypter) Close() os.Error {
@@ -120,7 +120,7 @@ func (x *eaxEncrypter) Close() os.Error {
        finishEAX(x.tag, x.cw.cmac);
        n, err := x.cw.w.Write(x.tag);
        if n != len(x.tag) && err == nil {
-               err = io.ErrShortWrite;
+               err = io.ErrShortWrite
        }
 
        return err;
@@ -154,7 +154,7 @@ func (cr *cmacReader) Read(p []byte) (n int, err os.Error) {
                tag = tag[0 : nt+nn];
                cr.tag = tag;
                if err1 != nil {
-                       return 0, err1;
+                       return 0, err1
                }
        }
 
@@ -163,15 +163,15 @@ func (cr *cmacReader) Read(p []byte) (n int, err os.Error) {
                // If p is big, try to read directly into p to avoid a copy.
                n, err = cr.r.Read(p[tagBytes:len(p)]);
                if n == 0 {
-                       goto out;
+                       goto out
                }
                // copy old tag into p
                for i := 0; i < tagBytes; i++ {
-                       p[i] = tag[i];
+                       p[i] = tag[i]
                }
                // copy new tag out of p
                for i := 0; i < tagBytes; i++ {
-                       tag[i] = p[n+i];
+                       tag[i] = p[n+i]
                }
                goto out;
        }
@@ -179,7 +179,7 @@ func (cr *cmacReader) Read(p []byte) (n int, err os.Error) {
        // Otherwise, read into p and then slide data
        n, err = cr.r.Read(p);
        if n == 0 {
-               goto out;
+               goto out
        }
 
        // copy tag+p into p+tmp and then swap tmp, tag
@@ -187,14 +187,14 @@ func (cr *cmacReader) Read(p []byte) (n int, err os.Error) {
        for i := n+tagBytes-1; i >= 0; i-- {
                var c byte;
                if i < tagBytes {
-                       c = tag[i];
+                       c = tag[i]
                } else {
-                       c = p[i-tagBytes];
+                       c = p[i-tagBytes]
                }
                if i < n {
-                       p[i] = c;
+                       p[i] = c
                } else {
-                       tmp[i] = c;
+                       tmp[i] = c
                }
        }
        cr.tmp, cr.tag = tag, tmp;
@@ -247,7 +247,7 @@ func (x *eaxDecrypter) checkTag() os.Error {
 func (x *eaxDecrypter) Read(p []byte) (n int, err os.Error) {
        n, err = x.ctr.Read(p);
        if n == 0 && err == nil {
-               err = x.checkTag();
+               err = x.checkTag()
        }
        return n, err;
 }
index 5fbf835d29e2ce7cc4c2ddff70b4fa692ca31cd2..43f126d216479165258a45636561207d623731a1 100644 (file)
@@ -101,20 +101,20 @@ func TestEAXEncrypt_AES(t *testing.T) {
                test := fmt.Sprintf("test %d", i);
                c, err := aes.NewCipher(tt.key);
                if err != nil {
-                       t.Fatalf("%s: NewCipher(%d bytes) = %s", test, len(tt.key), err);
+                       t.Fatalf("%s: NewCipher(%d bytes) = %s", test, len(tt.key), err)
                }
                b.Reset();
                enc := NewEAXEncrypter(c, tt.nonce, tt.header, 16, b);
                n, err := io.Copy(enc, bytes.NewBuffer(tt.msg));
                if n != int64(len(tt.msg)) || err != nil {
-                       t.Fatalf("%s: io.Copy into encrypter: %d, %s", test, n, err);
+                       t.Fatalf("%s: io.Copy into encrypter: %d, %s", test, n, err)
                }
                err = enc.Close();
                if err != nil {
-                       t.Fatalf("%s: enc.Close: %s", test, err);
+                       t.Fatalf("%s: enc.Close: %s", test, err)
                }
                if d := b.Bytes(); !same(d, tt.cipher) {
-                       t.Fatalf("%s: got %x want %x", test, d, tt.cipher);
+                       t.Fatalf("%s: got %x want %x", test, d, tt.cipher)
                }
        }
 }
@@ -125,16 +125,16 @@ func TestEAXDecrypt_AES(t *testing.T) {
                test := fmt.Sprintf("test %d", i);
                c, err := aes.NewCipher(tt.key);
                if err != nil {
-                       t.Fatalf("%s: NewCipher(%d bytes) = %s", test, len(tt.key), err);
+                       t.Fatalf("%s: NewCipher(%d bytes) = %s", test, len(tt.key), err)
                }
                b.Reset();
                dec := NewEAXDecrypter(c, tt.nonce, tt.header, 16, bytes.NewBuffer(tt.cipher));
                n, err := io.Copy(b, dec);
                if n != int64(len(tt.msg)) || err != nil {
-                       t.Fatalf("%s: io.Copy into decrypter: %d, %s", test, n, err);
+                       t.Fatalf("%s: io.Copy into decrypter: %d, %s", test, n, err)
                }
                if d := b.Bytes(); !same(d, tt.msg) {
-                       t.Fatalf("%s: got %x want %x", test, d, tt.msg);
+                       t.Fatalf("%s: got %x want %x", test, d, tt.msg)
                }
        }
 }
index f2455ff0a51e499a10f2a32657f6e4f0abc1db27..b6818a72b9ef7cca8b7bf17151c899c262173a05 100644 (file)
@@ -41,7 +41,7 @@ func (x *ecbDecrypter) fillCrypt() os.Error {
                m, err = x.r.Read(x.crypt[off : x.blockSize]);
                x.crypt = x.crypt[0 : off+m];
                if m == 0 {
-                       break;
+                       break
                }
 
                // If an error happened but we got enough
@@ -50,7 +50,7 @@ func (x *ecbDecrypter) fillCrypt() os.Error {
                // But if we don't have enough to decrypt,
                // have to stop now.
                if err != nil && len(x.crypt) < x.blockSize {
-                       break;
+                       break
                }
        }
        return err;
@@ -60,15 +60,15 @@ func (x *ecbDecrypter) fillCrypt() os.Error {
 func (x *ecbDecrypter) readPlain(p []byte) int {
        n := len(x.plain);
        if n > len(p) {
-               n = len(p);
+               n = len(p)
        }
        for i := 0; i < n; i++ {
-               p[i] = x.plain[i];
+               p[i] = x.plain[i]
        }
        if n < len(x.plain) {
-               x.plain = x.plain[n:len(x.plain)];
+               x.plain = x.plain[n:len(x.plain)]
        } else {
-               x.plain = nil;
+               x.plain = nil
        }
        return n;
 }
@@ -76,12 +76,12 @@ func (x *ecbDecrypter) readPlain(p []byte) int {
 type ecbFragmentError int
 
 func (n ecbFragmentError) String() string {
-       return "crypto/block: " + strconv.Itoa(int(n)) + "-byte fragment at EOF";
+       return "crypto/block: " + strconv.Itoa(int(n)) + "-byte fragment at EOF"
 }
 
 func (x *ecbDecrypter) Read(p []byte) (n int, err os.Error) {
        if len(p) == 0 {
-               return;
+               return
        }
 
        // If there's no plaintext waiting and p is not big enough
@@ -89,7 +89,7 @@ func (x *ecbDecrypter) Read(p []byte) (n int, err os.Error) {
        // cipher text buffer.  Set it to non-nil so that the
        // code below will fill it.
        if x.plain == nil && len(p) < x.blockSize && x.crypt == nil {
-               x.crypt = x.buf[0:0];
+               x.crypt = x.buf[0:0]
        }
 
        // If there is a leftover cipher text buffer,
@@ -97,7 +97,7 @@ func (x *ecbDecrypter) Read(p []byte) (n int, err os.Error) {
        if x.crypt != nil {
                err = x.fillCrypt();
                if err != nil || len(x.crypt) == 0 {
-                       return;
+                       return
                }
                x.c.Decrypt(x.crypt, x.crypt);
                x.plain = x.crypt;
@@ -128,7 +128,7 @@ func (x *ecbDecrypter) Read(p []byte) (n int, err os.Error) {
        if i < n {
                p = p[i:n];
                for j, v := range p {
-                       x.buf[j] = v;
+                       x.buf[j] = v
                }
                x.crypt = x.buf[0:len(p)];
                n = i;
@@ -168,17 +168,17 @@ type ecbEncrypter struct {
 // Flush the x.crypt buffer to x.w.
 func (x *ecbEncrypter) flushCrypt() os.Error {
        if len(x.crypt) == 0 {
-               return nil;
+               return nil
        }
        n, err := x.w.Write(x.crypt);
        if n < len(x.crypt) {
                x.crypt = x.crypt[n:len(x.crypt)];
                if err == nil {
-                       err = io.ErrShortWrite;
+                       err = io.ErrShortWrite
                }
        }
        if err != nil {
-               return err;
+               return err
        }
        x.crypt = nil;
        return nil;
@@ -189,12 +189,12 @@ func (x *ecbEncrypter) flushCrypt() os.Error {
 // so this is cheap enough.
 func (x *ecbEncrypter) slidePlain() {
        if len(x.plain) == 0 {
-               x.plain = x.buf[0:0];
+               x.plain = x.buf[0:0]
        } else if cap(x.plain) < cap(x.buf) {
                // plain and buf share same data,
                // but buf is before plain, so forward loop is correct
                for i := 0; i < len(x.plain); i++ {
-                       x.buf[i] = x.plain[i];
+                       x.buf[i] = x.plain[i]
                }
                x.plain = x.buf[0:len(x.plain)];
        }
@@ -206,11 +206,11 @@ func (x *ecbEncrypter) fillPlain(p []byte) int {
        off := len(x.plain);
        n := len(p);
        if max := cap(x.plain)-off; n > max {
-               n = max;
+               n = max
        }
        x.plain = x.plain[0 : off+n];
        for i := 0; i < n; i++ {
-               x.plain[off+i] = p[i];
+               x.plain[off+i] = p[i]
        }
        return n;
 }
@@ -233,7 +233,7 @@ func (x *ecbEncrypter) Write(p []byte) (n int, err os.Error) {
                // This can happen on the first iteration
                // if a write failed in an earlier call.
                if err = x.flushCrypt(); err != nil {
-                       return;
+                       return
                }
 
                // Now that encrypted data is gone (flush ran),
@@ -243,7 +243,7 @@ func (x *ecbEncrypter) Write(p []byte) (n int, err os.Error) {
                // Fill plaintext buffer from p.
                m := x.fillPlain(p);
                if m == 0 {
-                       break;
+                       break
                }
                n += m;
                p = p[m:len(p)];
@@ -253,7 +253,7 @@ func (x *ecbEncrypter) Write(p []byte) (n int, err os.Error) {
 
                // Write x.crypt.
                if err = x.flushCrypt(); err != nil {
-                       break;
+                       break
                }
        }
        return;
index 74dc006829f315c80ca857d4a0fe77ee21f0f771..315ec213dedb1bf08adc92e5288725e7f2dc6785 100644 (file)
@@ -105,9 +105,9 @@ func TestECB_AES(t *testing.T) {
                var r io.Reader = bytes.NewBuffer(tt.in);
                n, err := io.Copy(w, r);
                if n != int64(len(tt.in)) || err != nil {
-                       t.Errorf("%s: ECBReader io.Copy = %d, %v want %d, nil", test, n, err, len(tt.in));
+                       t.Errorf("%s: ECBReader io.Copy = %d, %v want %d, nil", test, n, err, len(tt.in))
                } else if d := crypt.Bytes(); !same(tt.out, d) {
-                       t.Errorf("%s: ECBReader\nhave %x\nwant %x", test, d, tt.out);
+                       t.Errorf("%s: ECBReader\nhave %x\nwant %x", test, d, tt.out)
                }
 
                var plain bytes.Buffer;
@@ -115,13 +115,13 @@ func TestECB_AES(t *testing.T) {
                w = &plain;
                n, err = io.Copy(w, r);
                if n != int64(len(tt.out)) || err != nil {
-                       t.Errorf("%s: ECBWriter io.Copy = %d, %v want %d, nil", test, n, err, len(tt.out));
+                       t.Errorf("%s: ECBWriter io.Copy = %d, %v want %d, nil", test, n, err, len(tt.out))
                } else if d := plain.Bytes(); !same(tt.in, d) {
-                       t.Errorf("%s: ECBWriter\nhave %x\nwant %x", test, d, tt.in);
+                       t.Errorf("%s: ECBWriter\nhave %x\nwant %x", test, d, tt.in)
                }
 
                if t.Failed() {
-                       break;
+                       break
                }
        }
 }
index c6507220bf8fcb8dd3ff678c1f6c8ea2162db201..57aae7ed2b3cc91b5af2e76dd35587fe96339a62 100644 (file)
@@ -24,34 +24,34 @@ func (c *IncCipher) BlockSize() int { return c.blockSize }
 
 func (c *IncCipher) Encrypt(src, dst []byte) {
        if !c.encrypting {
-               panicln("encrypt: not encrypting");
+               panicln("encrypt: not encrypting")
        }
        if len(src) != c.blockSize || len(dst) != c.blockSize {
-               panicln("encrypt: wrong block size", c.blockSize, len(src), len(dst));
+               panicln("encrypt: wrong block size", c.blockSize, len(src), len(dst))
        }
        c.delta++;
        for i, b := range src {
-               dst[i] = b + c.delta;
+               dst[i] = b + c.delta
        }
 }
 
 func (c *IncCipher) Decrypt(src, dst []byte) {
        if c.encrypting {
-               panicln("decrypt: not decrypting");
+               panicln("decrypt: not decrypting")
        }
        if len(src) != c.blockSize || len(dst) != c.blockSize {
-               panicln("decrypt: wrong block size", c.blockSize, len(src), len(dst));
+               panicln("decrypt: wrong block size", c.blockSize, len(src), len(dst))
        }
        c.delta--;
        for i, b := range src {
-               dst[i] = b + c.delta;
+               dst[i] = b + c.delta
        }
 }
 
 func TestECBEncrypter(t *testing.T) {
        var plain, crypt [256]byte;
        for i := 0; i < len(plain); i++ {
-               plain[i] = byte(i);
+               plain[i] = byte(i)
        }
        b := new(bytes.Buffer);
        for block := 1; block <= 64; block *= 2 {
@@ -59,7 +59,7 @@ func TestECBEncrypter(t *testing.T) {
                delta := byte(0);
                for i := 0; i < len(crypt); i++ {
                        if i%block == 0 {
-                               delta++;
+                               delta++
                        }
                        crypt[i] = plain[i]+delta;
                }
@@ -82,7 +82,7 @@ func TestECBEncrypter(t *testing.T) {
                        for n := 1; n <= len(plain)/2; n *= 2 {
                                _, err := io.Copyn(w, r, int64(n));
                                if err != nil {
-                                       t.Errorf("block=%d frag=%d: Copyn %d: %s", block, frag, n, err);
+                                       t.Errorf("block=%d frag=%d: Copyn %d: %s", block, frag, n, err)
                                }
                        }
                        if frag != 0 {
@@ -101,7 +101,7 @@ func TestECBEncrypter(t *testing.T) {
                        }
 
                        if string(data) != string(&crypt) {
-                               t.Errorf("block=%d frag=%d: want %x got %x", block, frag, data, crypt);
+                               t.Errorf("block=%d frag=%d: want %x got %x", block, frag, data, crypt)
                        }
                }
        }
@@ -115,7 +115,7 @@ func testECBDecrypter(t *testing.T, maxio int) {
        };
        var plain, crypt [256]byte;
        for i := 0; i < len(plain); i++ {
-               plain[i] = byte(255-i);
+               plain[i] = byte(255-i)
        }
        b := new(bytes.Buffer);
        for block := 1; block <= 64 && block <= maxio; block *= 2 {
@@ -123,7 +123,7 @@ func testECBDecrypter(t *testing.T, maxio int) {
                delta := byte(0);
                for i := 0; i < len(crypt); i++ {
                        if i%block == 0 {
-                               delta++;
+                               delta++
                        }
                        crypt[i] = plain[i]+delta;
                }
@@ -147,7 +147,7 @@ func testECBDecrypter(t *testing.T, maxio int) {
                                for n := 1; n <= maxio/2; n *= 2 {
                                        _, err := io.Copyn(b, r, int64(n));
                                        if err != nil {
-                                               t.Errorf("%s: Copyn %d: %s", test, n, err);
+                                               t.Errorf("%s: Copyn %d: %s", test, n, err)
                                        }
                                }
                                if frag != 0 {
@@ -166,7 +166,7 @@ func testECBDecrypter(t *testing.T, maxio int) {
                                }
 
                                if string(data) != string(plain[0:maxio]) {
-                                       t.Errorf("%s: input=%x want %x got %x", test, crypt[0:maxio], plain[0:maxio], data);
+                                       t.Errorf("%s: input=%x want %x got %x", test, crypt[0:maxio], plain[0:maxio], data)
                                }
                        }
                }
@@ -176,6 +176,6 @@ func testECBDecrypter(t *testing.T, maxio int) {
 func TestECBDecrypter(t *testing.T) {
        // Do shorter I/O sizes first; they're easier to debug.
        for n := 1; n <= 256 && !t.Failed(); n *= 2 {
-               testECBDecrypter(t, n);
+               testECBDecrypter(t, n)
        }
 }
index 86647abc2f5505cb6f2f0cc3a877945e661835dc..c297541e33c2e2063348acca1de05d6c0176a7c7 100644 (file)
@@ -26,7 +26,7 @@ func newOFBStream(c Cipher, iv []byte) *ofbStream {
        x.c = c;
        n := len(iv);
        if n != c.BlockSize() {
-               panicln("crypto/block: newOFBStream: invalid iv size", n, "!=", c.BlockSize());
+               panicln("crypto/block: newOFBStream: invalid iv size", n, "!=", c.BlockSize())
        }
        x.iv = copy(iv);
        return x;
@@ -44,7 +44,7 @@ func (x *ofbStream) Next() []byte {
 // an OFB reader applied to an encrypted stream produces a decrypted
 // stream and vice versa.
 func NewOFBReader(c Cipher, iv []byte, r io.Reader) io.Reader {
-       return newXorReader(newOFBStream(c, iv), r);
+       return newXorReader(newOFBStream(c, iv), r)
 }
 
 // NewOFBWriter returns a writer that encrypts (or decrypts) data using c
@@ -55,5 +55,5 @@ func NewOFBReader(c Cipher, iv []byte, r io.Reader) io.Reader {
 // an OFB writer applied to an decrypted stream produces an encrypted
 // stream and vice versa.
 func NewOFBWriter(c Cipher, iv []byte, w io.Writer) io.Writer {
-       return newXorWriter(newOFBStream(c, iv), w);
+       return newXorWriter(newOFBStream(c, iv), w)
 }
index 3db92215abe6ec146db6a21bfff77a71b3e8ec09..80af78fe4033bf23a9c92a3b5907feeb6147b926 100644 (file)
@@ -82,9 +82,9 @@ func TestOFB_AES(t *testing.T) {
                        var r io.Reader = bytes.NewBuffer(in);
                        n, err := io.Copy(w, r);
                        if n != int64(len(in)) || err != nil {
-                               t.Errorf("%s/%d: OFBWriter io.Copy = %d, %v want %d, nil", test, len(in), n, err, len(in));
+                               t.Errorf("%s/%d: OFBWriter io.Copy = %d, %v want %d, nil", test, len(in), n, err, len(in))
                        } else if d, out := crypt.Bytes(), tt.out[0:len(in)]; !same(out, d) {
-                               t.Errorf("%s/%d: OFBWriter\ninpt %x\nhave %x\nwant %x", test, len(in), in, d, out);
+                               t.Errorf("%s/%d: OFBWriter\ninpt %x\nhave %x\nwant %x", test, len(in), in, d, out)
                        }
                }
 
@@ -95,14 +95,14 @@ func TestOFB_AES(t *testing.T) {
                        w := &plain;
                        n, err := io.Copy(w, r);
                        if n != int64(len(out)) || err != nil {
-                               t.Errorf("%s/%d: OFBReader io.Copy = %d, %v want %d, nil", test, len(out), n, err, len(out));
+                               t.Errorf("%s/%d: OFBReader io.Copy = %d, %v want %d, nil", test, len(out), n, err, len(out))
                        } else if d, in := plain.Bytes(), tt.in[0:len(out)]; !same(in, d) {
-                               t.Errorf("%s/%d: OFBReader\nhave %x\nwant %x", test, len(out), d, in);
+                               t.Errorf("%s/%d: OFBReader\nhave %x\nwant %x", test, len(out), d, in)
                        }
                }
 
                if t.Failed() {
-                       break;
+                       break
                }
        }
 }
index c92d2d3ffb3b0eba2fc356a89f001f5df48f4a39..36fc5799bcf4e1a1c83dd759ec535566c8a4d2dd 100644 (file)
@@ -75,16 +75,16 @@ func (x *xorWriter) Write(p []byte) (n int, err os.Error) {
                if nn := len(x.extra); nn > 0 {
                        // extra points into work, so edit directly
                        if m > nn {
-                               m = nn;
+                               m = nn
                        }
                        for i := 0; i < m; i++ {
-                               x.extra[i] ^= p[i];
+                               x.extra[i] ^= p[i]
                        }
                        chunk = x.extra[0:m];
                } else {
                        // xor p ^ buf into work, refreshing buf as needed
                        if nn := len(x.work); m > nn {
-                               m = nn;
+                               m = nn
                        }
                        bp := 0;
                        buf := x.buf;
@@ -104,19 +104,19 @@ func (x *xorWriter) Write(p []byte) (n int, err os.Error) {
                var nn int;
                nn, err = x.w.Write(chunk);
                if nn != len(chunk) && err == nil {
-                       err = io.ErrShortWrite;
+                       err = io.ErrShortWrite
                }
                if nn < len(chunk) {
                        // Reconstruct the random bits from the unwritten
                        // data and save them for next time.
                        for i := nn; i < m; i++ {
-                               chunk[i] ^= p[i];
+                               chunk[i] ^= p[i]
                        }
                        x.extra = chunk[nn:len(chunk)];
                }
                n += nn;
                if err != nil {
-                       return;
+                       return
                }
                p = p[m:len(p)];
        }
index 671e319986c8c85849b828b8f4d298345f985c33..7d1decae84990bbe2e504f0ccde5671a2e24c6c9 100644 (file)
@@ -36,7 +36,7 @@ func (x *incStream) Next() []byte {
 func testXorWriter(t *testing.T, maxio int) {
        var plain, crypt [256]byte;
        for i := 0; i < len(plain); i++ {
-               plain[i] = byte(i);
+               plain[i] = byte(i)
        }
        b := new(bytes.Buffer);
        for block := 1; block <= 64 && block <= maxio; block *= 2 {
@@ -44,7 +44,7 @@ func testXorWriter(t *testing.T, maxio int) {
                n := byte(0);
                for i := 0; i < len(crypt); i++ {
                        if i%block == 0 {
-                               n++;
+                               n++
                        }
                        crypt[i] = plain[i]^n;
                        n++;
@@ -69,7 +69,7 @@ func testXorWriter(t *testing.T, maxio int) {
                        for n := 1; n <= len(plain)/2; n *= 2 {
                                _, err := io.Copyn(w, r, int64(n));
                                if err != nil {
-                                       t.Errorf("%s: Copyn %d: %s", test, n, err);
+                                       t.Errorf("%s: Copyn %d: %s", test, n, err)
                                }
                        }
 
@@ -82,7 +82,7 @@ func testXorWriter(t *testing.T, maxio int) {
                        }
 
                        if string(data) != string(crypt) {
-                               t.Errorf("%s: want %x got %x", test, data, crypt);
+                               t.Errorf("%s: want %x got %x", test, data, crypt)
                        }
                }
        }
@@ -92,7 +92,7 @@ func testXorWriter(t *testing.T, maxio int) {
 func TestXorWriter(t *testing.T) {
        // Do shorter I/O sizes first; they're easier to debug.
        for n := 1; n <= 256 && !t.Failed(); n *= 2 {
-               testXorWriter(t, n);
+               testXorWriter(t, n)
        }
 }
 
@@ -104,7 +104,7 @@ func testXorReader(t *testing.T, maxio int) {
        };
        var plain, crypt [256]byte;
        for i := 0; i < len(plain); i++ {
-               plain[i] = byte(255-i);
+               plain[i] = byte(255-i)
        }
        b := new(bytes.Buffer);
        for block := 1; block <= 64 && block <= maxio; block *= 2 {
@@ -112,7 +112,7 @@ func testXorReader(t *testing.T, maxio int) {
                n := byte(0);
                for i := 0; i < len(crypt); i++ {
                        if i%block == 0 {
-                               n++;
+                               n++
                        }
                        crypt[i] = plain[i]^n;
                        n++;
@@ -137,7 +137,7 @@ func testXorReader(t *testing.T, maxio int) {
                                for n := 1; n <= maxio/2; n *= 2 {
                                        _, err := io.Copyn(b, r, int64(n));
                                        if err != nil {
-                                               t.Errorf("%s: Copyn %d: %s", test, n, err);
+                                               t.Errorf("%s: Copyn %d: %s", test, n, err)
                                        }
                                }
 
@@ -151,7 +151,7 @@ func testXorReader(t *testing.T, maxio int) {
                                }
 
                                if string(data) != string(plain) {
-                                       t.Errorf("%s: input=%x want %x got %x", test, crypt, plain, data);
+                                       t.Errorf("%s: input=%x want %x got %x", test, crypt, plain, data)
                                }
                        }
                }
@@ -161,7 +161,7 @@ func testXorReader(t *testing.T, maxio int) {
 func TestXorReader(t *testing.T) {
        // Do shorter I/O sizes first; they're easier to debug.
        for n := 1; n <= 256 && !t.Failed(); n *= 2 {
-               testXorReader(t, n);
+               testXorReader(t, n)
        }
 }
 
index f1cc6b32a2c40464583b303f31f7ac9b364184a0..d3be7c4ac7adb0c1b6dd9b73a9c013890167c6fd 100644 (file)
@@ -42,10 +42,10 @@ type hmac struct {
 
 func (h *hmac) tmpPad(xor byte) {
        for i, k := range h.key {
-               h.tmp[i] = xor^k;
+               h.tmp[i] = xor^k
        }
        for i := len(h.key); i < padSize; i++ {
-               h.tmp[i] = xor;
+               h.tmp[i] = xor
        }
 }
 
@@ -53,7 +53,7 @@ func (h *hmac) Sum() []byte {
        h.tmpPad(0x5c);
        sum := h.inner.Sum();
        for i, b := range sum {
-               h.tmp[padSize+i] = b;
+               h.tmp[padSize+i] = b
        }
        h.inner.Reset();
        h.inner.Write(h.tmp);
@@ -61,7 +61,7 @@ func (h *hmac) Sum() []byte {
 }
 
 func (h *hmac) Write(p []byte) (n int, err os.Error) {
-       return h.inner.Write(p);
+       return h.inner.Write(p)
 }
 
 func (h *hmac) Size() int      { return h.size }
@@ -84,7 +84,7 @@ func New(h hash.Hash, key []byte) hash.Hash {
        hm.size = h.Size();
        hm.key = make([]byte, len(key));
        for i, k := range key {
-               hm.key[i] = k;
+               hm.key[i] = k
        }
        hm.tmp = make([]byte, padSize + hm.size);
        hm.Reset();
index 6df64841342e4c251eb01d689221e1445fd7d0bf..1c81fd9906c52807a14758fbba073b46d3040392 100644 (file)
@@ -87,7 +87,7 @@ func TestHMAC(t *testing.T) {
                        }
                        sum := fmt.Sprintf("%x", h.Sum());
                        if sum != tt.out {
-                               t.Errorf("test %d.%d: have %s want %s\n", i, j, sum, tt.out);
+                               t.Errorf("test %d.%d: have %s want %s\n", i, j, sum, tt.out)
                        }
 
                        // Second iteration: make sure reset works.
index 4236ad3fa0889d4595abb5aa28965696f7edd0b8..3834665888603fa2c58f65d06bcb76e707e92628 100644 (file)
@@ -53,10 +53,10 @@ func (d *digest) Write(p []byte) (nn int, err os.Error) {
        if d.nx > 0 {
                n := len(p);
                if n > _Chunk - d.nx {
-                       n = _Chunk - d.nx;
+                       n = _Chunk - d.nx
                }
                for i := 0; i < n; i++ {
-                       d.x[d.nx + i] = p[i];
+                       d.x[d.nx + i] = p[i]
                }
                d.nx += n;
                if d.nx == _Chunk {
@@ -69,7 +69,7 @@ func (d *digest) Write(p []byte) (nn int, err os.Error) {
        p = p[n:len(p)];
        if len(p) > 0 {
                for i := 0; i < len(p); i++ {
-                       d.x[i] = p[i];
+                       d.x[i] = p[i]
                }
                d.nx = len(p);
        }
@@ -82,20 +82,20 @@ func (d *digest) Sum() []byte {
        var tmp [64]byte;
        tmp[0] = 0x80;
        if len%64 < 56 {
-               d.Write(tmp[0 : 56 - len%64]);
+               d.Write(tmp[0 : 56 - len%64])
        } else {
-               d.Write(tmp[0 : 64 + 56 - len%64]);
+               d.Write(tmp[0 : 64 + 56 - len%64])
        }
 
        // Length in bits.
        len <<= 3;
        for i := uint(0); i < 8; i++ {
-               tmp[i] = byte(len>>(8*i));
+               tmp[i] = byte(len>>(8*i))
        }
        d.Write(tmp[0:8]);
 
        if d.nx != 0 {
-               panicln("oops");
+               panicln("oops")
        }
 
        p := make([]byte, 16);
index a93784e6228c707e44d00bb3835f8aaff47a3e13..5f770f29b661cddc3c0e3f018026eddc7bd4839d 100644 (file)
@@ -23,7 +23,7 @@ type Cipher struct {
 type KeySizeError int
 
 func (k KeySizeError) String() string {
-       return "crypto/rc4: invalid key size " + strconv.Itoa(int(k));
+       return "crypto/rc4: invalid key size " + strconv.Itoa(int(k))
 }
 
 // NewCipher creates and returns a new Cipher.  The key argument should be the
@@ -31,11 +31,11 @@ func (k KeySizeError) String() string {
 func NewCipher(key []byte) (*Cipher, os.Error) {
        k := len(key);
        if k < 1 || k > 256 {
-               return nil, KeySizeError(k);
+               return nil, KeySizeError(k)
        }
        var c Cipher;
        for i := 0; i < 256; i++ {
-               c.s[i] = uint8(i);
+               c.s[i] = uint8(i)
        }
        var j uint8 = 0;
        for i := 0; i < 256; i++ {
@@ -60,7 +60,7 @@ func (c *Cipher) XORKeyStream(buf []byte) {
 // process's memory.
 func (c *Cipher) Reset() {
        for i := range c.s {
-               c.s[i] = 0;
+               c.s[i] = 0
        }
        c.i, c.j = 0, 0;
 }
index 58f860facf3457b7dc345e5bb17260fa3d302915..ddfaad5798eb97d340fe0a691326b4a989c6db7b 100644 (file)
@@ -31,7 +31,7 @@ func EncryptPKCS1v15(rand io.Reader, pub *PublicKey, msg []byte) (out []byte, er
        ps, mm := em[1 : len(em)-len(msg)-1], em[len(em)-len(msg) : len(em)];
        err = nonZeroRandomBytes(ps, rand);
        if err != nil {
-               return;
+               return
        }
        em[len(em)-len(msg)-1] = 0;
        bytes.Copy(mm, msg);
@@ -47,7 +47,7 @@ func EncryptPKCS1v15(rand io.Reader, pub *PublicKey, msg []byte) (out []byte, er
 func DecryptPKCS1v15(rand io.Reader, priv *PrivateKey, ciphertext []byte) (out []byte, err os.Error) {
        valid, out, err := decryptPKCS1v15(rand, priv, ciphertext);
        if err == nil && valid == 0 {
-               err = DecryptionError{};
+               err = DecryptionError{}
        }
 
        return;
@@ -75,7 +75,7 @@ func DecryptPKCS1v15SessionKey(rand io.Reader, priv *PrivateKey, ciphertext []by
 
        valid, msg, err := decryptPKCS1v15(rand, priv, ciphertext);
        if err != nil {
-               return;
+               return
        }
 
        valid &= subtle.ConstantTimeEq(int32(len(msg)), int32(len(key)));
@@ -93,7 +93,7 @@ func decryptPKCS1v15(rand io.Reader, priv *PrivateKey, ciphertext []byte) (valid
        c := new(big.Int).SetBytes(ciphertext);
        m, err := decrypt(rand, priv, c);
        if err != nil {
-               return;
+               return
        }
 
        em := leftPad(m.Bytes(), k);
@@ -122,14 +122,14 @@ func decryptPKCS1v15(rand io.Reader, priv *PrivateKey, ciphertext []byte) (valid
 func nonZeroRandomBytes(s []byte, rand io.Reader) (err os.Error) {
        _, err = io.ReadFull(rand, s);
        if err != nil {
-               return;
+               return
        }
 
        for i := 0; i < len(s); i++ {
                for s[i] == 0 {
                        _, err = rand.Read(s[i : i+1]);
                        if err != nil {
-                               return;
+                               return
                        }
                }
        }
index 1f5cf463a2a67503f80f80db9c62246aefcc796c..549bca4bf1b278c63d483f7231b2af24bda88f97 100644 (file)
@@ -19,7 +19,7 @@ func decodeBase64(in string) []byte {
        out := make([]byte, base64.StdEncoding.DecodedLen(len(in)));
        n, err := base64.StdEncoding.Decode(out, strings.Bytes(in));
        if err != nil {
-               return nil;
+               return nil
        }
        return out[0:n];
 }
@@ -52,11 +52,11 @@ func TestDecryptPKCS1v15(t *testing.T) {
        for i, test := range decryptPKCS1v15Tests {
                out, err := DecryptPKCS1v15(nil, rsaPrivateKey, decodeBase64(test.in));
                if err != nil {
-                       t.Errorf("#%d error decrypting", i);
+                       t.Errorf("#%d error decrypting", i)
                }
                want := strings.Bytes(test.out);
                if bytes.Compare(out, want) != 0 {
-                       t.Errorf("#%d got:%#v want:%#v", i, out, want);
+                       t.Errorf("#%d got:%#v want:%#v", i, out, want)
                }
        }
 }
@@ -64,13 +64,13 @@ func TestDecryptPKCS1v15(t *testing.T) {
 func TestEncryptPKCS1v15(t *testing.T) {
        urandom, err := os.Open("/dev/urandom", os.O_RDONLY, 0);
        if err != nil {
-               t.Errorf("Failed to open /dev/urandom");
+               t.Errorf("Failed to open /dev/urandom")
        }
        k := (rsaPrivateKey.N.Len() + 7)/8;
 
        tryEncryptDecrypt := func(in []byte, blind bool) bool {
                if len(in) > k-11 {
-                       in = in[0 : k-11];
+                       in = in[0 : k-11]
                }
 
                ciphertext, err := EncryptPKCS1v15(urandom, &rsaPrivateKey.PublicKey, in);
@@ -81,9 +81,9 @@ func TestEncryptPKCS1v15(t *testing.T) {
 
                var rand io.Reader;
                if !blind {
-                       rand = nil;
+                       rand = nil
                } else {
-                       rand = urandom;
+                       rand = urandom
                }
                plaintext, err := DecryptPKCS1v15(rand, rsaPrivateKey, ciphertext);
                if err != nil {
@@ -126,11 +126,11 @@ func TestEncryptPKCS1v15SessionKey(t *testing.T) {
                key := strings.Bytes("FAIL");
                err := DecryptPKCS1v15SessionKey(nil, rsaPrivateKey, decodeBase64(test.in), key);
                if err != nil {
-                       t.Errorf("#%d error decrypting", i);
+                       t.Errorf("#%d error decrypting", i)
                }
                want := strings.Bytes(test.out);
                if bytes.Compare(key, want) != 0 {
-                       t.Errorf("#%d got:%#v want:%#v", i, key, want);
+                       t.Errorf("#%d got:%#v want:%#v", i, key, want)
                }
        }
 }
@@ -138,13 +138,13 @@ func TestEncryptPKCS1v15SessionKey(t *testing.T) {
 func TestNonZeroRandomBytes(t *testing.T) {
        urandom, err := os.Open("/dev/urandom", os.O_RDONLY, 0);
        if err != nil {
-               t.Errorf("Failed to open /dev/urandom");
+               t.Errorf("Failed to open /dev/urandom")
        }
 
        b := make([]byte, 512);
        err = nonZeroRandomBytes(b, urandom);
        if err != nil {
-               t.Errorf("returned error: %s", err);
+               t.Errorf("returned error: %s", err)
        }
        for _, b := range b {
                if b == 0 {
index beb41629733219578fbcc053f7ca6f21af4c4dbd..6aeab041b6f97b43f85454a44f7a6c9a3806bf96 100644 (file)
@@ -67,7 +67,7 @@ func randomNumber(rand io.Reader, max *big.Int) (n *big.Int, err os.Error) {
        // max.
        r := uint(max.Len() % 8);
        if r == 0 {
-               r = 8;
+               r = 8
        }
 
        bytes := make([]byte, k);
@@ -76,7 +76,7 @@ func randomNumber(rand io.Reader, max *big.Int) (n *big.Int, err os.Error) {
        for {
                _, err = io.ReadFull(rand, bytes);
                if err != nil {
-                       return;
+                       return
                }
 
                // Clear bits in the first byte to increase the probability
@@ -85,7 +85,7 @@ func randomNumber(rand io.Reader, max *big.Int) (n *big.Int, err os.Error) {
 
                n.SetBytes(bytes);
                if big.CmpInt(n, max) < 0 {
-                       return;
+                       return
                }
        }
 
@@ -123,7 +123,7 @@ func (priv PrivateKey) Validate() os.Error {
        // Check that p*q == n.
        modulus := new(big.Int).Mul(priv.P, priv.Q);
        if big.CmpInt(modulus, priv.N) != 0 {
-               return os.ErrorString("invalid modulus");
+               return os.ErrorString("invalid modulus")
        }
        // Check that e and totient(p, q) are coprime.
        pminus1 := new(big.Int).Sub(priv.P, bigOne);
@@ -135,13 +135,13 @@ func (priv PrivateKey) Validate() os.Error {
        y := new(big.Int);
        big.GcdInt(gcd, x, y, totient, e);
        if big.CmpInt(gcd, bigOne) != 0 {
-               return os.ErrorString("invalid public exponent E");
+               return os.ErrorString("invalid public exponent E")
        }
        // Check that de â‰¡ 1 (mod totient(p, q))
        de := new(big.Int).Mul(priv.D, e);
        de.Mod(de, totient);
        if big.CmpInt(de, bigOne) != 0 {
-               return os.ErrorString("invalid private exponent D");
+               return os.ErrorString("invalid private exponent D")
        }
        return nil;
 }
@@ -209,13 +209,13 @@ func GenerateKey(rand io.Reader, bits int) (priv *PrivateKey, err os.Error) {
 // incCounter increments a four byte, big-endian counter.
 func incCounter(c *[4]byte) {
        if c[3]++; c[3] != 0 {
-               return;
+               return
        }
        if c[2]++; c[2] != 0 {
-               return;
+               return
        }
        if c[1]++; c[1] != 0 {
-               return;
+               return
        }
        c[0]++;
 }
@@ -245,7 +245,7 @@ func mgf1XOR(out []byte, hash hash.Hash, seed []byte) {
 type MessageTooLongError struct{}
 
 func (MessageTooLongError) String() string {
-       return "message too long for RSA public key size";
+       return "message too long for RSA public key size"
 }
 
 func encrypt(c *big.Int, pub *PublicKey, m *big.Int) *big.Int {
@@ -279,7 +279,7 @@ func EncryptOAEP(hash hash.Hash, rand io.Reader, pub *PublicKey, msg []byte, lab
 
        _, err = io.ReadFull(rand, seed);
        if err != nil {
-               return;
+               return
        }
 
        mgf1XOR(db, hash, seed);
@@ -308,7 +308,7 @@ func modInverse(a, n *big.Int) (ia *big.Int) {
        if big.CmpInt(x, bigOne) < 0 {
                // 0 is not the multiplicative inverse of any element so, if x
                // < 1, then x is negative.
-               x.Add(x, n);
+               x.Add(x, n)
        }
 
        return x;
@@ -336,7 +336,7 @@ func decrypt(rand io.Reader, priv *PrivateKey, c *big.Int) (m *big.Int, err os.E
                        return;
                }
                if big.CmpInt(r, bigZero) == 0 {
-                       r = bigOne;
+                       r = bigOne
                }
                ir = modInverse(r, priv.N);
                bigE := big.NewInt(int64(priv.E));
@@ -370,7 +370,7 @@ func DecryptOAEP(hash hash.Hash, rand io.Reader, priv *PrivateKey, ciphertext []
 
        m, err := decrypt(rand, priv, c);
        if err != nil {
-               return;
+               return
        }
 
        hash.Write(label);
@@ -431,7 +431,7 @@ func DecryptOAEP(hash hash.Hash, rand io.Reader, priv *PrivateKey, ciphertext []
 func leftPad(input []byte, size int) (out []byte) {
        n := len(input);
        if n > size {
-               n = size;
+               n = size
        }
        out = make([]byte, size);
        bytes.Copy(out[len(out)-n : len(out)], input);
index 7070a8ba8e4d13a8f5195ff8c34f53237e14fe4b..feeefd476e5be9c1758bab2986173096ded0ed73 100644 (file)
@@ -72,10 +72,10 @@ func TestEncryptOAEP(t *testing.T) {
                        randomSource := bytes.NewBuffer(message.seed);
                        out, err := EncryptOAEP(sha1, randomSource, &public, message.in, nil);
                        if err != nil {
-                               t.Errorf("#%d,%d error: %s", i, j, err);
+                               t.Errorf("#%d,%d error: %s", i, j, err)
                        }
                        if bytes.Compare(out, message.out) != 0 {
-                               t.Errorf("#%d,%d bad result: %s (want %s)", i, j, out, message.out);
+                               t.Errorf("#%d,%d bad result: %s (want %s)", i, j, out, message.out)
                        }
                }
        }
@@ -84,7 +84,7 @@ func TestEncryptOAEP(t *testing.T) {
 func TestDecryptOAEP(t *testing.T) {
        urandom, err := os.Open("/dev/urandom", os.O_RDONLY, 0);
        if err != nil {
-               t.Errorf("Failed to open /dev/urandom");
+               t.Errorf("Failed to open /dev/urandom")
        }
 
        sha1 := sha1.New();
@@ -98,17 +98,17 @@ func TestDecryptOAEP(t *testing.T) {
                for j, message := range test.msgs {
                        out, err := DecryptOAEP(sha1, nil, &private, message.out, nil);
                        if err != nil {
-                               t.Errorf("#%d,%d error: %s", i, j, err);
+                               t.Errorf("#%d,%d error: %s", i, j, err)
                        } else if bytes.Compare(out, message.in) != 0 {
-                               t.Errorf("#%d,%d bad result: %#v (want %#v)", i, j, out, message.in);
+                               t.Errorf("#%d,%d bad result: %#v (want %#v)", i, j, out, message.in)
                        }
 
                        // Decrypt with blinding.
                        out, err = DecryptOAEP(sha1, urandom, &private, message.out, nil);
                        if err != nil {
-                               t.Errorf("#%d,%d (blind) error: %s", i, j, err);
+                               t.Errorf("#%d,%d (blind) error: %s", i, j, err)
                        } else if bytes.Compare(out, message.in) != 0 {
-                               t.Errorf("#%d,%d (blind) bad result: %#v (want %#v)", i, j, out, message.in);
+                               t.Errorf("#%d,%d (blind) bad result: %#v (want %#v)", i, j, out, message.in)
                        }
                }
        }
index 4e75b7336bad6f1ce03bf34fac8696a0313b86ee..b14fdbbf1305861b8ffabf6f1c85c93ced9e7af6 100644 (file)
@@ -55,10 +55,10 @@ func (d *digest) Write(p []byte) (nn int, err os.Error) {
        if d.nx > 0 {
                n := len(p);
                if n > _Chunk - d.nx {
-                       n = _Chunk - d.nx;
+                       n = _Chunk - d.nx
                }
                for i := 0; i < n; i++ {
-                       d.x[d.nx + i] = p[i];
+                       d.x[d.nx + i] = p[i]
                }
                d.nx += n;
                if d.nx == _Chunk {
@@ -71,7 +71,7 @@ func (d *digest) Write(p []byte) (nn int, err os.Error) {
        p = p[n:len(p)];
        if len(p) > 0 {
                for i := 0; i < len(p); i++ {
-                       d.x[i] = p[i];
+                       d.x[i] = p[i]
                }
                d.nx = len(p);
        }
@@ -84,20 +84,20 @@ func (d *digest) Sum() []byte {
        var tmp [64]byte;
        tmp[0] = 0x80;
        if len%64 < 56 {
-               d.Write(tmp[0 : 56 - len%64]);
+               d.Write(tmp[0 : 56 - len%64])
        } else {
-               d.Write(tmp[0 : 64 + 56 - len%64]);
+               d.Write(tmp[0 : 64 + 56 - len%64])
        }
 
        // Length in bits.
        len <<= 3;
        for i := uint(0); i < 8; i++ {
-               tmp[i] = byte(len>>(56 - 8*i));
+               tmp[i] = byte(len>>(56 - 8*i))
        }
        d.Write(tmp[0:8]);
 
        if d.nx != 0 {
-               panicln("oops");
+               panicln("oops")
        }
 
        p := make([]byte, 20);
index 4dd7aa0423a1e2eefadbf938db61e047527f7675..8b5e37ee05a83c4e258d72a18dd122143fc38144 100644 (file)
@@ -13,7 +13,7 @@ func ConstantTimeCompare(x, y []byte) int {
        var v byte;
 
        for i := 0; i < len(x); i++ {
-               v |= x[i]^y[i];
+               v |= x[i]^y[i]
        }
 
        return ConstantTimeByteEq(v, 0);
@@ -51,7 +51,7 @@ func ConstantTimeCopy(v int, x, y []byte) {
        xmask := byte(v-1);
        ymask := byte(^(v-1));
        for i := 0; i < len(x); i++ {
-               x[i] = x[i]&xmask | y[i]&ymask;
+               x[i] = x[i]&xmask | y[i]&ymask
        }
        return;
 }
index 78aa6771d2fa58c7a612edf6756c32b2f642dd5c..9b25b9b72d85a36fc620b4b2935245d13a8f9d75 100644 (file)
@@ -24,7 +24,7 @@ var testConstandTimeCompareData = []TestConstantTimeCompareStruct{
 func TestConstantTimeCompare(t *testing.T) {
        for i, test := range testConstandTimeCompareData {
                if r := ConstantTimeCompare(test.a, test.b); r != test.out {
-                       t.Errorf("#%d bad result (got %x, want %x)", i, r, test.out);
+                       t.Errorf("#%d bad result (got %x, want %x)", i, r, test.out)
                }
        }
 }
@@ -44,7 +44,7 @@ var testConstandTimeByteEqData = []TestConstantTimeByteEqStruct{
 
 func byteEq(a, b uint8) int {
        if a == b {
-               return 1;
+               return 1
        }
        return 0;
 }
@@ -52,18 +52,18 @@ func byteEq(a, b uint8) int {
 func TestConstantTimeByteEq(t *testing.T) {
        for i, test := range testConstandTimeByteEqData {
                if r := ConstantTimeByteEq(test.a, test.b); r != test.out {
-                       t.Errorf("#%d bad result (got %x, want %x)", i, r, test.out);
+                       t.Errorf("#%d bad result (got %x, want %x)", i, r, test.out)
                }
        }
        err := quick.CheckEqual(ConstantTimeByteEq, byteEq, nil);
        if err != nil {
-               t.Error(err);
+               t.Error(err)
        }
 }
 
 func eq(a, b int32) int {
        if a == b {
-               return 1;
+               return 1
        }
        return 0;
 }
@@ -71,27 +71,27 @@ func eq(a, b int32) int {
 func TestConstantTimeEq(t *testing.T) {
        err := quick.CheckEqual(ConstantTimeEq, eq, nil);
        if err != nil {
-               t.Error(err);
+               t.Error(err)
        }
 }
 
 func copy(v int, x, y []byte) []byte {
        if len(x) > len(y) {
-               x = x[0:len(y)];
+               x = x[0:len(y)]
        } else {
-               y = y[0:len(x)];
+               y = y[0:len(x)]
        }
        if v == 1 {
-               bytes.Copy(x, y);
+               bytes.Copy(x, y)
        }
        return x;
 }
 
 func constantTimeCopyWrapper(v int, x, y []byte) []byte {
        if len(x) > len(y) {
-               x = x[0:len(y)];
+               x = x[0:len(y)]
        } else {
-               y = y[0:len(x)];
+               y = y[0:len(x)]
        }
        v &= 1;
        ConstantTimeCopy(v, x, y);
@@ -101,6 +101,6 @@ func constantTimeCopyWrapper(v int, x, y []byte) []byte {
 func TestConstantTimeCopy(t *testing.T) {
        err := quick.CheckEqual(constantTimeCopyWrapper, copy, nil);
        if err != nil {
-               t.Error(err);
+               t.Error(err)
        }
 }
index 36ad640cd61e463ae651dc4950b2728cfc571a48..d0ea5f6e24ccbd6f1bc1d62fd8fab6ea39fb5c00 100644 (file)
@@ -92,12 +92,12 @@ type encryptor interface {
 func mutualVersion(theirMajor, theirMinor uint8) (major, minor uint8, ok bool) {
        // We don't deal with peers < TLS 1.0 (aka version 3.1).
        if theirMajor < 3 || theirMajor == 3 && theirMinor < 1 {
-               return 0, 0, false;
+               return 0, 0, false
        }
        major = 3;
        minor = 2;
        if theirMinor < minor {
-               minor = theirMinor;
+               minor = theirMinor
        }
        ok = true;
        return;
index f2d88d8db9afac227e07a8f9c33fb3a7ec35d545..0eb91fe742929c5bd4216c277c66c4ad287241d3 100644 (file)
@@ -19,7 +19,7 @@ type clientHelloMsg struct {
 
 func (m *clientHelloMsg) marshal() []byte {
        if m.raw != nil {
-               return m.raw;
+               return m.raw
        }
 
        length := 2 + 32 + 1 + len(m.sessionId) + 2 + len(m.cipherSuites)*2 + 1 + len(m.compressionMethods);
@@ -50,7 +50,7 @@ func (m *clientHelloMsg) marshal() []byte {
 
 func (m *clientHelloMsg) unmarshal(data []byte) bool {
        if len(data) < 39 {
-               return false;
+               return false
        }
        m.raw = data;
        m.major = data[4];
@@ -58,31 +58,31 @@ func (m *clientHelloMsg) unmarshal(data []byte) bool {
        m.random = data[6:38];
        sessionIdLen := int(data[38]);
        if sessionIdLen > 32 || len(data) < 39 + sessionIdLen {
-               return false;
+               return false
        }
        m.sessionId = data[39 : 39 + sessionIdLen];
        data = data[39 + sessionIdLen : len(data)];
        if len(data) < 2 {
-               return false;
+               return false
        }
        // cipherSuiteLen is the number of bytes of cipher suite numbers. Since
        // they are uint16s, the number must be even.
        cipherSuiteLen := int(data[0])<<8 | int(data[1]);
        if cipherSuiteLen % 2 == 1 || len(data) < 2 + cipherSuiteLen {
-               return false;
+               return false
        }
        numCipherSuites := cipherSuiteLen / 2;
        m.cipherSuites = make([]uint16, numCipherSuites);
        for i := 0; i < numCipherSuites; i++ {
-               m.cipherSuites[i] = uint16(data[2 + 2*i])<<8 | uint16(data[3 + 2*i]);
+               m.cipherSuites[i] = uint16(data[2 + 2*i])<<8 | uint16(data[3 + 2*i])
        }
        data = data[2 + cipherSuiteLen : len(data)];
        if len(data) < 2 {
-               return false;
+               return false
        }
        compressionMethodsLen := int(data[0]);
        if len(data) < 1 + compressionMethodsLen {
-               return false;
+               return false
        }
        m.compressionMethods = data[1 : 1 + compressionMethodsLen];
 
@@ -101,7 +101,7 @@ type serverHelloMsg struct {
 
 func (m *serverHelloMsg) marshal() []byte {
        if m.raw != nil {
-               return m.raw;
+               return m.raw
        }
 
        length := 38+len(m.sessionId);
@@ -131,12 +131,12 @@ type certificateMsg struct {
 
 func (m *certificateMsg) marshal() (x []byte) {
        if m.raw != nil {
-               return m.raw;
+               return m.raw
        }
 
        var i int;
        for _, slice := range m.certificates {
-               i += len(slice);
+               i += len(slice)
        }
 
        length := 3 + 3*len(m.certificates) + i;
@@ -179,7 +179,7 @@ type clientKeyExchangeMsg struct {
 
 func (m *clientKeyExchangeMsg) marshal() []byte {
        if m.raw != nil {
-               return m.raw;
+               return m.raw
        }
        length := len(m.ciphertext)+2;
        x := make([]byte, length+4);
@@ -198,11 +198,11 @@ func (m *clientKeyExchangeMsg) marshal() []byte {
 func (m *clientKeyExchangeMsg) unmarshal(data []byte) bool {
        m.raw = data;
        if len(data) < 7 {
-               return false;
+               return false
        }
        cipherTextLen := int(data[4])<<8 | int(data[5]);
        if len(data) != 6 + cipherTextLen {
-               return false;
+               return false
        }
        m.ciphertext = data[6:len(data)];
        return true;
@@ -215,7 +215,7 @@ type finishedMsg struct {
 
 func (m *finishedMsg) marshal() (x []byte) {
        if m.raw != nil {
-               return m.raw;
+               return m.raw
        }
 
        x = make([]byte, 16);
@@ -229,7 +229,7 @@ func (m *finishedMsg) marshal() (x []byte) {
 func (m *finishedMsg) unmarshal(data []byte) bool {
        m.raw = data;
        if len(data) != 4+12 {
-               return false;
+               return false
        }
        m.verifyData = data[4:len(data)];
        return true;
index ff4d741b14bf363f3e21dbcbee4b0879babab56c..0fd3e48596c0126920f426c23ae7cfc007658bae 100644 (file)
@@ -62,7 +62,7 @@ func TestMarshalUnmarshal(t *testing.T) {
 func randomBytes(n int, rand *rand.Rand) []byte {
        r := make([]byte, n);
        for i := 0; i < n; i++ {
-               r[i] = byte(rand.Int31());
+               r[i] = byte(rand.Int31())
        }
        return r;
 }
@@ -75,7 +75,7 @@ func (*clientHelloMsg) Generate(rand *rand.Rand, size int) reflect.Value {
        m.sessionId = randomBytes(rand.Intn(32), rand);
        m.cipherSuites = make([]uint16, rand.Intn(63) + 1);
        for i := 0; i < len(m.cipherSuites); i++ {
-               m.cipherSuites[i] = uint16(rand.Int31());
+               m.cipherSuites[i] = uint16(rand.Int31())
        }
        m.compressionMethods = randomBytes(rand.Intn(63) + 1, rand);
 
index 4e7507e861184c87092cd1b34ec5103db9f1fe2f..91583d2da572a8c19c02780d4331bb61291df2c5 100644 (file)
@@ -17,7 +17,7 @@ type zeroSource struct{}
 
 func (zeroSource) Read(b []byte) (n int, err os.Error) {
        for i := range b {
-               b[i] = 0;
+               b[i] = 0
        }
 
        return len(b), nil;
@@ -56,12 +56,12 @@ func testClientHelloFailure(t *testing.T, clientHello interface{}, expectedAlert
 
        err := script.Perform(0, []*script.Event{send, recvAlert, close1, recvState, close2});
        if err != nil {
-               t.Errorf("Got error: %s", err);
+               t.Errorf("Got error: %s", err)
        }
 }
 
 func TestSimpleError(t *testing.T) {
-       testClientHelloFailure(t, &serverHelloDoneMsg{}, alertUnexpectedMessage);
+       testClientHelloFailure(t, &serverHelloDoneMsg{}, alertUnexpectedMessage)
 }
 
 var badProtocolVersions = []uint8{0, 0, 0, 5, 1, 0, 1, 5, 2, 0, 2, 5, 3, 0}
@@ -91,7 +91,7 @@ func TestNoCompressionOverlap(t *testing.T) {
 func matchServerHello(v interface{}) bool {
        serverHello, ok := v.(*serverHelloMsg);
        if !ok {
-               return false;
+               return false
        }
        return serverHello.major == 3 &&
                serverHello.minor == 2 &&
@@ -111,7 +111,7 @@ func TestAlertForwarding(t *testing.T) {
 
        err := script.Perform(0, []*script.Event{sendAlert, recvAlert, closeWriter, closeControl});
        if err != nil {
-               t.Errorf("Got error: %s", err);
+               t.Errorf("Got error: %s", err)
        }
 }
 
@@ -124,14 +124,14 @@ func TestClose(t *testing.T) {
 
        err := script.Perform(0, []*script.Event{close, closed1, closed2});
        if err != nil {
-               t.Errorf("Got error: %s", err);
+               t.Errorf("Got error: %s", err)
        }
 }
 
 func matchCertificate(v interface{}) bool {
        cert, ok := v.(*certificateMsg);
        if !ok {
-               return false;
+               return false
        }
        return len(cert.certificates) == 1 &&
                bytes.Compare(cert.certificates[0], testCertificate) == 0;
@@ -150,7 +150,7 @@ func matchDone(v interface{}) bool {
 func matchFinished(v interface{}) bool {
        finished, ok := v.(*finishedMsg);
        if !ok {
-               return false;
+               return false
        }
        return bytes.Compare(finished.verifyData, fromHex("29122ae11453e631487b02ed")) == 0;
 }
@@ -187,7 +187,7 @@ func TestFullHandshake(t *testing.T) {
 
        err := script.Perform(0, []*script.Event{sendHello, setVersion, recvHello, recvCert, recvDone, sendCKX, sendCCS, recvNCS, sendFinished, setCipher, recvConnectionState, recvFinished});
        if err != nil {
-               t.Errorf("Got error: %s", err);
+               t.Errorf("Got error: %s", err)
        }
 }
 
index fb2ae658edb81df555da56b38a1e7cb41c4ce8e0..f8f3aa452abdfffc8f4ee122f10cdbf376b9e3c5 100644 (file)
@@ -35,7 +35,7 @@ func pHash(result, secret, seed []byte, hash hash.Hash) {
                b := h.Sum();
                todo := len(b);
                if j+todo > len(result) {
-                       todo = len(result)-j;
+                       todo = len(result)-j
                }
                bytes.Copy(result[j : j+todo], b);
                j += todo;
@@ -61,7 +61,7 @@ func pRF11(result, secret, label, seed []byte) {
        pHash(result2, s2, labelAndSeed, hashSHA1);
 
        for i, b := range result2 {
-               result[i] ^= b;
+               result[i] ^= b
        }
 }
 
@@ -109,7 +109,7 @@ type finishedHash struct {
 }
 
 func newFinishedHash() finishedHash {
-       return finishedHash{md5.New(), sha1.New(), md5.New(), sha1.New()};
+       return finishedHash{md5.New(), sha1.New(), md5.New(), sha1.New()}
 }
 
 func (h finishedHash) Write(msg []byte) (n int, err os.Error) {
index dc7d3cca71f6a1bf15bf8d43d992a020641dbf39..0d4a4db35e4f4937d84543a88581a2078ae52b8c 100644 (file)
@@ -28,7 +28,7 @@ func TestSplitPreMasterSecret(t *testing.T) {
                s1 := hex.EncodeToString(out1);
                s2 := hex.EncodeToString(out2);
                if s1 != test.out1 || s2 != test.out2 {
-                       t.Errorf("#%d: got: (%s, %s) want: (%s, %s)", i, s1, s2, test.out1, test.out2);
+                       t.Errorf("#%d: got: (%s, %s) want: (%s, %s)", i, s1, s2, test.out1, test.out2)
                }
        }
 }
@@ -58,7 +58,7 @@ func TestKeysFromPreMasterSecret(t *testing.T) {
                        serverMACString != test.serverMAC ||
                        clientKeyString != test.clientKey ||
                        serverKeyString != test.serverKey {
-                       t.Errorf("#%d: got: (%s, %s, %s, %s, %s) want: (%s, %s, %s, %s %s)", i, masterString, clientMACString, serverMACString, clientKeyString, serverMACString, test.masterSecret, test.clientMAC, test.serverMAC, test.clientKey, test.serverKey);
+                       t.Errorf("#%d: got: (%s, %s, %s, %s, %s) want: (%s, %s, %s, %s %s)", i, masterString, clientMACString, serverMACString, clientKeyString, serverMACString, test.masterSecret, test.clientMAC, test.serverMAC, test.clientKey, test.serverKey)
                }
        }
 }
index 1cd6879af94ce98b54d08be3075747860bdca694..9a20ab68be5dc3829e3cf4812cd05acbe194486c 100644 (file)
@@ -73,13 +73,13 @@ type recordProcessor struct {
 func drainRequestChannel(requestChan <-chan interface{}, c ConnectionState) {
        for v := range requestChan {
                if closed(requestChan) {
-                       return;
+                       return
                }
                switch r := v.(type) {
                case getConnectionState:
-                       r.reply <- c;
+                       r.reply <- c
                case waitConnectionState:
-                       r.reply <- c;
+                       r.reply <- c
                }
        }
 }
@@ -104,11 +104,11 @@ func (p *recordProcessor) loop(appDataChan chan<- []byte, requestChan <-chan int
                        p.appDataSend = nil;
                        p.recordRead = p.recordChan;
                case c := <-controlChan:
-                       p.processControlMsg(c);
+                       p.processControlMsg(c)
                case r := <-requestChan:
-                       p.processRequestMsg(r);
+                       p.processRequestMsg(r)
                case r := <-p.recordRead:
-                       p.processRecord(r);
+                       p.processRecord(r)
                }
        }
 
@@ -121,7 +121,7 @@ func (p *recordProcessor) loop(appDataChan chan<- []byte, requestChan <-chan int
 
        close(handshakeChan);
        if len(p.appData) > 0 {
-               appDataChan <- p.appData;
+               appDataChan <- p.appData
        }
        close(appDataChan);
 }
@@ -134,10 +134,10 @@ func (p *recordProcessor) processRequestMsg(requestMsg interface{}) {
 
        switch r := requestMsg.(type) {
        case getConnectionState:
-               r.reply <- p.connState;
+               r.reply <- p.connState
        case waitConnectionState:
                if p.connState.HandshakeComplete {
-                       r.reply <- p.connState;
+                       r.reply <- p.connState
                }
                p.waitQueue.PushBack(r.reply);
        }
@@ -156,7 +156,7 @@ func (p *recordProcessor) processControlMsg(msg interface{}) {
 
 func (p *recordProcessor) wakeWaiters() {
        for i := p.waitQueue.Front(); i != nil; i = i.Next() {
-               i.Value.(chan<- ConnectionState) <- p.connState;
+               i.Value.(chan<- ConnectionState) <- p.connState
        }
        p.waitQueue.Init();
 }
@@ -188,7 +188,7 @@ func (p *recordProcessor) processRecord(r *record) {
 
        switch r.contentType {
        case recordTypeHandshake:
-               p.processHandshakeRecord(r.payload[0 : len(r.payload) - p.mac.Size()]);
+               p.processHandshakeRecord(r.payload[0 : len(r.payload) - p.mac.Size()])
        case recordTypeChangeCipherSpec:
                if len(r.payload) != 1 || r.payload[0] != 1 {
                        p.error(alertUnexpectedMessage);
@@ -221,7 +221,7 @@ func (p *recordProcessor) processRecord(r *record) {
 
 func (p *recordProcessor) processHandshakeRecord(data []byte) {
        if p.handshakeBuf == nil {
-               p.handshakeBuf = data;
+               p.handshakeBuf = data
        } else {
                if len(p.handshakeBuf) > maxHandshakeMsg {
                        p.error(alertInternalError);
@@ -238,7 +238,7 @@ func (p *recordProcessor) processHandshakeRecord(data []byte) {
                        int(p.handshakeBuf[2])<<8 |
                        int(p.handshakeBuf[3]);
                if handshakeLen + 4 > len(p.handshakeBuf) {
-                       break;
+                       break
                }
 
                bytes := p.handshakeBuf[0 : handshakeLen + 4];
@@ -249,7 +249,7 @@ func (p *recordProcessor) processHandshakeRecord(data []byte) {
                        // forwarding application data.
                        m := new(finishedMsg);
                        if !m.unmarshal(bytes) {
-                               p.error(alertUnexpectedMessage);
+                               p.error(alertUnexpectedMessage)
                        }
                        p.handshakeChan <- m;
                        var ok bool;
@@ -283,11 +283,11 @@ func parseHandshakeMsg(data []byte) (interface{}, bool) {
 
        switch data[0] {
        case typeClientHello:
-               m = new(clientHelloMsg);
+               m = new(clientHelloMsg)
        case typeClientKeyExchange:
-               m = new(clientKeyExchangeMsg);
+               m = new(clientKeyExchangeMsg)
        default:
-               return nil, false;
+               return nil, false
        }
 
        ok := m.unmarshal(data);
index 30e2126dcf9f6662cc819bf53fdea13414d45716..1d019e30ded957a7c9a11289a3e94ba68ff47294 100644 (file)
@@ -40,7 +40,7 @@ func TestNullConnectionState(t *testing.T) {
 
        err := script.Perform(0, []*script.Event{sendReq, getReply});
        if err != nil {
-               t.Errorf("Got error: %s", err);
+               t.Errorf("Got error: %s", err)
        }
 }
 
@@ -61,7 +61,7 @@ func TestWaitConnectionState(t *testing.T) {
 
        err := script.Perform(0, []*script.Event{sendReq, sendReq2, getReply2, sendState, getReply});
        if err != nil {
-               t.Errorf("Got error: %s", err);
+               t.Errorf("Got error: %s", err)
        }
 }
 
@@ -79,7 +79,7 @@ func TestHandshakeAssembly(t *testing.T) {
 
        err := script.Perform(0, []*script.Event{send1, send2, send3, recvMsg});
        if err != nil {
-               t.Errorf("Got error: %s", err);
+               t.Errorf("Got error: %s", err)
        }
 }
 
@@ -95,7 +95,7 @@ func TestEarlyApplicationData(t *testing.T) {
 
        err := script.Perform(0, []*script.Event{send, recv});
        if err != nil {
-               t.Errorf("Got error: %s", err);
+               t.Errorf("Got error: %s", err)
        }
 }
 
@@ -114,7 +114,7 @@ func TestApplicationData(t *testing.T) {
 
        err := script.Perform(0, []*script.Event{send1, recv1, send2, send3, recv2});
        if err != nil {
-               t.Errorf("Got error: %s", err);
+               t.Errorf("Got error: %s", err)
        }
 }
 
@@ -132,6 +132,6 @@ func TestInvalidChangeCipherSpec(t *testing.T) {
 
        err := script.Perform(0, []*script.Event{send1, recv1, send2, close, close2});
        if err != nil {
-               t.Errorf("Got error: %s", err);
+               t.Errorf("Got error: %s", err)
        }
 }
index 27b045536176680e21fa22ea7ff1982a64b765dc..877cfc797d7a50c0b4d0faf7ae5aad9c90f25f83 100644 (file)
@@ -23,18 +23,18 @@ func recordReader(c chan<- *record, source io.Reader) {
                var header [5]byte;
                n, _ := buf.Read(header[0:len(header)]);
                if n != 5 {
-                       return;
+                       return
                }
 
                recordLength := int(header[3])<<8 | int(header[4]);
                if recordLength > maxTLSCiphertext {
-                       return;
+                       return
                }
 
                payload := make([]byte, recordLength);
                n, _ = buf.Read(payload);
                if n != recordLength {
-                       return;
+                       return
                }
 
                c <- &record{recordType(header[0]), header[1], header[2], payload};
index 7bd943c72356b319f15321d61326fbf9f78655ff..ce1a8e6b4cf78e4c13a80f3655238fe5e2eb0363 100644 (file)
@@ -12,10 +12,10 @@ import (
 
 func matchRecord(r1, r2 *record) bool {
        if (r1 == nil) != (r2 == nil) {
-               return false;
+               return false
        }
        if r1 == nil {
-               return true;
+               return true
        }
        return r1.contentType == r2.contentType &&
                r1.major == r2.major &&
@@ -63,11 +63,11 @@ func matchRecordReaderOutput(t *testing.T, i int, test recordReaderTest, c <-cha
                        break;
                }
                if !matchRecord(r1, r2) {
-                       t.Errorf("#%d (%d) got:%#v want:%#v", i, j, r2, r1);
+                       t.Errorf("#%d (%d) got:%#v want:%#v", i, j, r2, r1)
                }
        }
        <-c;
        if !closed(c) {
-               t.Errorf("#%d: channel didn't close", i);
+               t.Errorf("#%d: channel didn't close", i)
        }
 }
index 38135c9799f8aa0a00b2d9773994669f678c58fb..7fcc603977cbaa592fe53910d56c9e7fbd17794d 100644 (file)
@@ -53,7 +53,7 @@ func (w *recordWriter) loop(writer io.Writer, appChan <-chan []byte, controlChan
        for !w.shutdown {
                msg := <-controlChan;
                if _, ok := msg.(writerEnableApplicationData); ok {
-                       break;
+                       break
                }
                w.processControlMessage(msg);
        }
@@ -67,9 +67,9 @@ func (w *recordWriter) loop(writer io.Writer, appChan <-chan []byte, controlChan
 
                select {
                case controlMsg := <-controlChan:
-                       w.processControlMessage(controlMsg);
+                       w.processControlMessage(controlMsg)
                case appMsg := <-appChan:
-                       w.processAppMessage(appMsg);
+                       w.processAppMessage(appMsg)
                }
        }
 
@@ -77,13 +77,13 @@ func (w *recordWriter) loop(writer io.Writer, appChan <-chan []byte, controlChan
                go func() {
                        for _ = range appChan {
                        }
-               }();
+               }()
        }
        if !closed(controlChan) {
                go func() {
                        for _ = range controlChan {
                        }
-               }();
+               }()
        }
 }
 
@@ -142,12 +142,12 @@ func (w *recordWriter) processControlMessage(controlMsg interface{}) {
                w.major = msg.major;
                w.minor = msg.minor;
        case alert:
-               w.writeRecord(&record{recordTypeAlert, w.major, w.minor, []byte{byte(msg.level), byte(msg.error)}});
+               w.writeRecord(&record{recordTypeAlert, w.major, w.minor, []byte{byte(msg.level), byte(msg.error)}})
        case handshakeMessage:
                // TODO(agl): marshal may return a slice too large for a single record.
-               w.writeRecord(&record{recordTypeHandshake, w.major, w.minor, msg.marshal()});
+               w.writeRecord(&record{recordTypeHandshake, w.major, w.minor, msg.marshal()})
        default:
-               fmt.Printf("processControlMessage: unknown %#v\n", msg);
+               fmt.Printf("processControlMessage: unknown %#v\n", msg)
        }
 }
 
@@ -162,7 +162,7 @@ func (w *recordWriter) processAppMessage(appMsg []byte) {
        for done < len(appMsg) {
                todo := len(appMsg);
                if todo > maxTLSPlaintext {
-                       todo = maxTLSPlaintext;
+                       todo = maxTLSPlaintext
                }
                w.writeRecord(&record{recordTypeApplicationData, w.major, w.minor, appMsg[done : done+todo]});
                done += todo;
index c20e24e55c6fa2bf56f9d3a0e751dc62280cddd3..20b1139e0d78ac354a59e7a0d28ca40a1d593b7b 100644 (file)
@@ -32,7 +32,7 @@ func timeout(c chan<- bool, nsecs int64) {
 func (tls *Conn) Read(p []byte) (int, os.Error) {
        if len(tls.readBuf) == 0 {
                if tls.eof {
-                       return 0, os.EOF;
+                       return 0, os.EOF
                }
 
                var timeoutChan chan bool;
@@ -43,15 +43,15 @@ func (tls *Conn) Read(p []byte) (int, os.Error) {
 
                select {
                case b := <-tls.readChan:
-                       tls.readBuf = b;
+                       tls.readBuf = b
                case <-timeoutChan:
-                       return 0, os.EAGAIN;
+                       return 0, os.EAGAIN
                }
 
                // TLS distinguishes between orderly closes and truncations. An
                // orderly close is represented by a zero length slice.
                if closed(tls.readChan) {
-                       return 0, io.ErrUnexpectedEOF;
+                       return 0, io.ErrUnexpectedEOF
                }
                if len(tls.readBuf) == 0 {
                        tls.eof = true;
@@ -66,7 +66,7 @@ func (tls *Conn) Read(p []byte) (int, os.Error) {
 
 func (tls *Conn) Write(p []byte) (int, os.Error) {
        if tls.eof || closed(tls.readChan) {
-               return 0, os.EOF;
+               return 0, os.EOF
        }
 
        var timeoutChan chan bool;
@@ -78,7 +78,7 @@ func (tls *Conn) Write(p []byte) (int, os.Error) {
        select {
        case tls.writeChan <- p:
        case <-timeoutChan:
-               return 0, os.EAGAIN;
+               return 0, os.EAGAIN
        }
 
        return len(p), nil;
@@ -148,7 +148,7 @@ type Listener struct {
 func (l Listener) Accept() (c net.Conn, err os.Error) {
        c, err = l.listener.Accept();
        if err != nil {
-               return;
+               return
        }
 
        c = Server(c, l.config);
index 87829ec8e27261a4bc8e2a723d7453ddf455f580..572b4e63948c03441e8023b718858b534a18e7ad 100644 (file)
@@ -26,7 +26,7 @@ type pkcs1PrivateKey struct {
 
 // rawValueIsInteger returns true iff the given ASN.1 RawValue is an INTEGER type.
 func rawValueIsInteger(raw *asn1.RawValue) bool {
-       return raw.Class == 0 && raw.Tag == 2 && raw.IsCompound == false;
+       return raw.Class == 0 && raw.Tag == 2 && raw.IsCompound == false
 }
 
 // ParsePKCS1PrivateKey returns an RSA private key from its ASN.1 PKCS#1 DER encoded form.
@@ -34,7 +34,7 @@ func ParsePKCS1PrivateKey(der []byte) (key *rsa.PrivateKey, err os.Error) {
        var priv pkcs1PrivateKey;
        err = asn1.Unmarshal(&priv, der);
        if err != nil {
-               return;
+               return
        }
 
        if !rawValueIsInteger(&priv.N) ||
@@ -57,7 +57,7 @@ func ParsePKCS1PrivateKey(der []byte) (key *rsa.PrivateKey, err os.Error) {
 
        err = key.Validate();
        if err != nil {
-               return nil, err;
+               return nil, err
        }
        return;
 }
index 4b2a5ec8a2d89d097bde2d9c8f52ddadd4a2e00d..2c94d35ee7bea289eb4bdc0d0b9672391d673ca0 100644 (file)
@@ -17,10 +17,10 @@ func TestParsePKCS1PrivateKey(t *testing.T) {
        block, _ := pem.Decode(strings.Bytes(pemPrivateKey));
        priv, err := ParsePKCS1PrivateKey(block.Bytes);
        if err != nil {
-               t.Errorf("Failed to parse private key: %s", err);
+               t.Errorf("Failed to parse private key: %s", err)
        }
        if !reflect.DeepEqual(priv, rsaPrivateKey) {
-               t.Errorf("got:%+v want:%+v", priv, rsaPrivateKey);
+               t.Errorf("got:%+v want:%+v", priv, rsaPrivateKey)
        }
 }
 
index 87576e65cef6e8942bd6ba1d21dd3c284cd712d3..2838c098fda24b8bd4633907cc99fdb433f37ee6 100644 (file)
@@ -24,7 +24,7 @@ type buf struct {
 }
 
 func makeBuf(d *Data, name string, off Offset, data []byte, addrsize int) buf {
-       return buf{d, d.order, name, off, data, addrsize, nil};
+       return buf{d, d.order, name, off, data, addrsize, nil}
 }
 
 func (b *buf) uint8() uint8 {
@@ -67,7 +67,7 @@ func (b *buf) string() string {
 func (b *buf) uint16() uint16 {
        a := b.bytes(2);
        if a == nil {
-               return 0;
+               return 0
        }
        return b.order.Uint16(a);
 }
@@ -75,7 +75,7 @@ func (b *buf) uint16() uint16 {
 func (b *buf) uint32() uint32 {
        a := b.bytes(4);
        if a == nil {
-               return 0;
+               return 0
        }
        return b.order.Uint32(a);
 }
@@ -83,7 +83,7 @@ func (b *buf) uint32() uint32 {
 func (b *buf) uint64() uint64 {
        a := b.bytes(8);
        if a == nil {
-               return 0;
+               return 0
        }
        return b.order.Uint64(a);
 }
@@ -115,7 +115,7 @@ func (b *buf) int() int64 {
        ux, bits := b.varint();
        x := int64(ux);
        if x&(1<<(bits-1)) != 0 {
-               x |= -1 << bits;
+               x |= -1 << bits
        }
        return x;
 }
@@ -124,13 +124,13 @@ func (b *buf) int() int64 {
 func (b *buf) addr() uint64 {
        switch b.addrsize {
        case 1:
-               return uint64(b.uint8());
+               return uint64(b.uint8())
        case 2:
-               return uint64(b.uint16());
+               return uint64(b.uint16())
        case 4:
-               return uint64(b.uint32());
+               return uint64(b.uint32())
        case 8:
-               return uint64(b.uint64());
+               return uint64(b.uint64())
        }
        b.error("unknown address size");
        return 0;
@@ -150,5 +150,5 @@ type DecodeError struct {
 }
 
 func (e DecodeError) String() string {
-       return "decoding dwarf section " + e.Name + " at offset 0x" + strconv.Itob64(int64(e.Offset), 16) + ": " + e.Error;
+       return "decoding dwarf section " + e.Name + " at offset 0x" + strconv.Itob64(int64(e.Offset), 16) + ": " + e.Error
 }
index 0b626c4b5685b263068de304c2f81f044dd23179..808a80c8a4aaef8c0208e29c403fb765abf26384 100644 (file)
@@ -165,7 +165,7 @@ func (a Attr) String() string {
        if int(a) < len(attrNames) {
                s := attrNames[a];
                if s != "" {
-                       return s;
+                       return s
                }
        }
        return strconv.Itoa(int(a));
@@ -175,7 +175,7 @@ func (a Attr) GoString() string {
        if int(a) < len(attrNames) {
                s := attrNames[a];
                if s != "" {
-                       return "dwarf.Attr" + s;
+                       return "dwarf.Attr" + s
                }
        }
        return "dwarf.Attr(" + strconv.Itoa64(int64(a)) + ")";
@@ -334,7 +334,7 @@ func (t Tag) String() string {
        if int(t) < len(tagNames) {
                s := tagNames[t];
                if s != "" {
-                       return s;
+                       return s
                }
        }
        return strconv.Itoa(int(t));
@@ -344,7 +344,7 @@ func (t Tag) GoString() string {
        if int(t) < len(tagNames) {
                s := tagNames[t];
                if s != "" {
-                       return "dwarf.Tag" + s;
+                       return "dwarf.Tag" + s
                }
        }
        return "dwarf.Tag(" + strconv.Itoa64(int64(t)) + ")";
index 97e58af4027abcf3a9d4c4c0941da58d973c8a76..9b2727b26d95bcfc7bb82d71e833dec6652845d2 100644 (file)
@@ -31,14 +31,14 @@ type abbrevTable map[uint32]abbrev
 // in the .debug_abbrev section.
 func (d *Data) parseAbbrev(off uint32) (abbrevTable, os.Error) {
        if m, ok := d.abbrevCache[off]; ok {
-               return m, nil;
+               return m, nil
        }
 
        data := d.abbrev;
        if off > uint32(len(data)) {
-               data = nil;
+               data = nil
        } else {
-               data = data[off:len(data)];
+               data = data[off:len(data)]
        }
        b := makeBuf(d, "abbrev", 0, data, 0);
 
@@ -49,7 +49,7 @@ func (d *Data) parseAbbrev(off uint32) (abbrevTable, os.Error) {
                // Table ends with id == 0.
                id := uint32(b.uint());
                if id == 0 {
-                       break;
+                       break
                }
 
                // Walk over attributes, counting.
@@ -61,12 +61,12 @@ func (d *Data) parseAbbrev(off uint32) (abbrevTable, os.Error) {
                        tag := b1.uint();
                        fmt := b1.uint();
                        if tag == 0 && fmt == 0 {
-                               break;
+                               break
                        }
                        n++;
                }
                if b1.err != nil {
-                       return nil, b1.err;
+                       return nil, b1.err
                }
 
                // Walk over attributes again, this time writing them down.
@@ -84,7 +84,7 @@ func (d *Data) parseAbbrev(off uint32) (abbrevTable, os.Error) {
                m[id] = a;
        }
        if b.err != nil {
-               return nil, b.err;
+               return nil, b.err
        }
        d.abbrevCache[off] = m;
        return m, nil;
@@ -114,7 +114,7 @@ type Field struct {
 func (e *Entry) Val(a Attr) interface{} {
        for _, f := range e.Field {
                if f.Attr == a {
-                       return f.Val;
+                       return f.Val
                }
        }
        return nil;
@@ -130,7 +130,7 @@ func (b *buf) entry(atab abbrevTable, ubase Offset) *Entry {
        off := b.off;
        id := uint32(b.uint());
        if id == 0 {
-               return &Entry{};
+               return &Entry{}
        }
        a, ok := atab[id];
        if !ok {
@@ -147,66 +147,66 @@ func (b *buf) entry(atab abbrevTable, ubase Offset) *Entry {
                e.Field[i].Attr = a.field[i].attr;
                fmt := a.field[i].fmt;
                if fmt == formIndirect {
-                       fmt = format(b.uint());
+                       fmt = format(b.uint())
                }
                var val interface{}
                switch fmt {
                default:
-                       b.error("unknown entry attr format");
+                       b.error("unknown entry attr format")
 
                // address
                case formAddr:
-                       val = b.addr();
+                       val = b.addr()
 
                // block
                case formDwarfBlock1:
-                       val = b.bytes(int(b.uint8()));
+                       val = b.bytes(int(b.uint8()))
                case formDwarfBlock2:
-                       val = b.bytes(int(b.uint16()));
+                       val = b.bytes(int(b.uint16()))
                case formDwarfBlock4:
-                       val = b.bytes(int(b.uint32()));
+                       val = b.bytes(int(b.uint32()))
                case formDwarfBlock:
-                       val = b.bytes(int(b.uint()));
+                       val = b.bytes(int(b.uint()))
 
                // constant
                case formData1:
-                       val = int64(b.uint8());
+                       val = int64(b.uint8())
                case formData2:
-                       val = int64(b.uint16());
+                       val = int64(b.uint16())
                case formData4:
-                       val = int64(b.uint32());
+                       val = int64(b.uint32())
                case formData8:
-                       val = int64(b.uint64());
+                       val = int64(b.uint64())
                case formSdata:
-                       val = int64(b.int());
+                       val = int64(b.int())
                case formUdata:
-                       val = int64(b.uint());
+                       val = int64(b.uint())
 
                // flag
                case formFlag:
-                       val = b.uint8() == 1;
+                       val = b.uint8() == 1
 
                // reference to other entry
                case formRefAddr:
-                       val = Offset(b.addr());
+                       val = Offset(b.addr())
                case formRef1:
-                       val = Offset(b.uint8())+ubase;
+                       val = Offset(b.uint8())+ubase
                case formRef2:
-                       val = Offset(b.uint16())+ubase;
+                       val = Offset(b.uint16())+ubase
                case formRef4:
-                       val = Offset(b.uint32())+ubase;
+                       val = Offset(b.uint32())+ubase
                case formRef8:
-                       val = Offset(b.uint64())+ubase;
+                       val = Offset(b.uint64())+ubase
                case formRefUdata:
-                       val = Offset(b.uint())+ubase;
+                       val = Offset(b.uint())+ubase
 
                // string
                case formString:
-                       val = b.string();
+                       val = b.string()
                case formStrp:
                        off := b.uint32();      // offset into .debug_str
                        if b.err != nil {
-                               return nil;
+                               return nil
                        }
                        b1 := makeBuf(b.dwarf, "str", 0, b.dwarf.str, 0);
                        b1.skip(int(off));
@@ -219,7 +219,7 @@ func (b *buf) entry(atab abbrevTable, ubase Offset) *Entry {
                e.Field[i].Val = val;
        }
        if b.err != nil {
-               return nil;
+               return nil
        }
        return e;
 }
@@ -254,7 +254,7 @@ func (r *Reader) Seek(off Offset) {
        r.lastChildren = false;
        if off == 0 {
                if len(d.unit) == 0 {
-                       return;
+                       return
                }
                u := &d.unit[0];
                r.unit = 0;
@@ -291,11 +291,11 @@ func (r *Reader) maybeNextUnit() {
 // offset cannot be decoded as a valid Entry.
 func (r *Reader) Next() (*Entry, os.Error) {
        if r.err != nil {
-               return nil, r.err;
+               return nil, r.err
        }
        r.maybeNextUnit();
        if len(r.b.data) == 0 {
-               return nil, nil;
+               return nil, nil
        }
        u := &r.d.unit[r.unit];
        e := r.b.entry(u.atable, u.base);
@@ -306,10 +306,10 @@ func (r *Reader) Next() (*Entry, os.Error) {
        if e != nil {
                r.lastChildren = e.Children;
                if r.lastChildren {
-                       r.lastSibling, _ = e.Val(AttrSibling).(Offset);
+                       r.lastSibling, _ = e.Val(AttrSibling).(Offset)
                }
        } else {
-               r.lastChildren = false;
+               r.lastChildren = false
        }
        return e, nil;
 }
@@ -319,7 +319,7 @@ func (r *Reader) Next() (*Entry, os.Error) {
 // children or Next has not been called, SkipChildren is a no-op.
 func (r *Reader) SkipChildren() {
        if r.err != nil || !r.lastChildren {
-               return;
+               return
        }
 
        // If the last entry had a sibling attribute,
@@ -334,10 +334,10 @@ func (r *Reader) SkipChildren() {
        for {
                e, err := r.Next();
                if err != nil || e == nil || e.Tag == 0 {
-                       break;
+                       break
                }
                if e.Children {
-                       r.SkipChildren();
+                       r.SkipChildren()
                }
        }
 }
index 1b50beaa4dca070f653b8496005de7b09f11a783..a5cb1a103415abd181352e06e5cb356e54ae4751 100644 (file)
@@ -57,23 +57,23 @@ func New(abbrev, aranges, frame, info, line, pubnames, ranges, str []byte) (*Dat
        // Sniff .debug_info to figure out byte order.
        // bytes 4:6 are the version, a tiny 16-bit number (1, 2, 3).
        if len(d.info) < 6 {
-               return nil, DecodeError{"info", Offset(len(d.info)), "too short"};
+               return nil, DecodeError{"info", Offset(len(d.info)), "too short"}
        }
        x, y := d.info[4], d.info[5];
        switch {
        case x == 0 && y == 0:
-               return nil, DecodeError{"info", 4, "unsupported version 0"};
+               return nil, DecodeError{"info", 4, "unsupported version 0"}
        case x == 0:
-               d.order = binary.BigEndian;
+               d.order = binary.BigEndian
        case y == 0:
-               d.order = binary.LittleEndian;
+               d.order = binary.LittleEndian
        default:
-               return nil, DecodeError{"info", 4, "cannot determine byte order"};
+               return nil, DecodeError{"info", 4, "cannot determine byte order"}
        }
 
        u, err := d.parseUnits();
        if err != nil {
-               return nil, err;
+               return nil, err
        }
        d.unit = u;
        return d, nil;
index 77d24f5d27373076d3b3e18ca93d79637f4b2bc1..2cac2e4fb3f61d24ab41dc368c0d875982e6b684 100644 (file)
@@ -46,7 +46,7 @@ func (b *BasicType) Basic() *BasicType        { return b }
 
 func (t *BasicType) String() string {
        if t.Name != "" {
-               return t.Name;
+               return t.Name
        }
        return "?";
 }
@@ -113,7 +113,7 @@ type ArrayType struct {
 }
 
 func (t *ArrayType) String() string {
-       return "[" + strconv.Itoa64(t.Count) + "]" + t.Type.String();
+       return "[" + strconv.Itoa64(t.Count) + "]" + t.Type.String()
 }
 
 func (t *ArrayType) Size() int64       { return t.Count * t.Type.Size() }
@@ -154,7 +154,7 @@ type StructField struct {
 
 func (t *StructType) String() string {
        if t.StructName != "" {
-               return t.Kind + " " + t.StructName;
+               return t.Kind + " " + t.StructName
        }
        return t.Defn();
 }
@@ -162,7 +162,7 @@ func (t *StructType) String() string {
 func (t *StructType) Defn() string {
        s := t.Kind;
        if t.StructName != "" {
-               s += " " + t.StructName;
+               s += " " + t.StructName
        }
        if t.Incomplete {
                s += " /*incomplete*/";
@@ -171,7 +171,7 @@ func (t *StructType) Defn() string {
        s += " {";
        for i, f := range t.Field {
                if i > 0 {
-                       s += "; ";
+                       s += "; "
                }
                s += f.Name + " " + f.Type.String();
                s += "@" + strconv.Itoa64(f.ByteOffset);
@@ -202,12 +202,12 @@ type EnumValue struct {
 func (t *EnumType) String() string {
        s := "enum";
        if t.EnumName != "" {
-               s += " " + t.EnumName;
+               s += " " + t.EnumName
        }
        s += " {";
        for i, v := range t.Val {
                if i > 0 {
-                       s += "; ";
+                       s += "; "
                }
                s += v.Name + "=" + strconv.Itoa64(v.Val);
        }
@@ -226,13 +226,13 @@ func (t *FuncType) String() string {
        s := "func(";
        for i, t := range t.ParamType {
                if i > 0 {
-                       s += ", ";
+                       s += ", "
                }
                s += t.String();
        }
        s += ")";
        if t.ReturnType != nil {
-               s += " " + t.ReturnType.String();
+               s += " " + t.ReturnType.String()
        }
        return s;
 }
@@ -256,17 +256,17 @@ func (t *TypedefType) Size() int64        { return t.Type.Size() }
 
 func (d *Data) Type(off Offset) (Type, os.Error) {
        if t, ok := d.typeCache[off]; ok {
-               return t, nil;
+               return t, nil
        }
 
        r := d.Reader();
        r.Seek(off);
        e, err := r.Next();
        if err != nil {
-               return nil, err;
+               return nil, err
        }
        if e == nil || e.Offset != off {
-               return nil, DecodeError{"info", off, "no type at offset"};
+               return nil, DecodeError{"info", off, "no type at offset"}
        }
 
        // Parse type from Entry.
@@ -277,7 +277,7 @@ func (d *Data) Type(off Offset) (Type, os.Error) {
        // Get next child; set err if error happens.
        next := func() *Entry {
                if !e.Children {
-                       return nil;
+                       return nil
                }
                kid, err1 := r.Next();
                if err1 != nil {
@@ -289,7 +289,7 @@ func (d *Data) Type(off Offset) (Type, os.Error) {
                        return nil;
                }
                if kid.Tag == 0 {
-                       return nil;
+                       return nil
                }
                return kid;
        };
@@ -300,11 +300,11 @@ func (d *Data) Type(off Offset) (Type, os.Error) {
                toff, ok := e.Val(AttrType).(Offset);
                if !ok {
                        // It appears that no Type means "void".
-                       return new(VoidType);
+                       return new(VoidType)
                }
                var t Type;
                if t, err = d.Type(toff); err != nil {
-                       return nil;
+                       return nil
                }
                return t;
        };
@@ -323,7 +323,7 @@ func (d *Data) Type(off Offset) (Type, os.Error) {
                typ = t;
                d.typeCache[off] = t;
                if t.Type = typeOf(e); err != nil {
-                       goto Error;
+                       goto Error
                }
                t.StrideBitSize, _ = e.Val(AttrStrideSize).(int64);
 
@@ -336,14 +336,14 @@ func (d *Data) Type(off Offset) (Type, os.Error) {
                        case TagSubrangeType:
                                max, ok := kid.Val(AttrUpperBound).(int64);
                                if !ok {
-                                       max = -2;       // Count == -1, as in x[].
+                                       max = -2        // Count == -1, as in x[].
                                }
                                if ndim == 0 {
-                                       t.Count = max+1;
+                                       t.Count = max+1
                                } else {
                                        // Multidimensional array.
                                        // Create new array type underneath this one.
-                                       t.Type = &ArrayType{Type: t.Type, Count: max+1};
+                                       t.Type = &ArrayType{Type: t.Type, Count: max+1}
                                }
                                ndim++;
                        case TagEnumerationType:
@@ -376,21 +376,21 @@ func (d *Data) Type(off Offset) (Type, os.Error) {
                        goto Error;
 
                case encAddress:
-                       typ = new(AddrType);
+                       typ = new(AddrType)
                case encBoolean:
-                       typ = new(BoolType);
+                       typ = new(BoolType)
                case encComplexFloat:
-                       typ = new(ComplexType);
+                       typ = new(ComplexType)
                case encFloat:
-                       typ = new(FloatType);
+                       typ = new(FloatType)
                case encSigned:
-                       typ = new(IntType);
+                       typ = new(IntType)
                case encUnsigned:
-                       typ = new(UintType);
+                       typ = new(UintType)
                case encSignedChar:
-                       typ = new(CharType);
+                       typ = new(CharType)
                case encUnsignedChar:
-                       typ = new(UcharType);
+                       typ = new(UcharType)
                }
                d.typeCache[off] = typ;
                t := typ.(interface {
@@ -420,11 +420,11 @@ func (d *Data) Type(off Offset) (Type, os.Error) {
                d.typeCache[off] = t;
                switch e.Tag {
                case TagClassType:
-                       t.Kind = "class";
+                       t.Kind = "class"
                case TagStructType:
-                       t.Kind = "struct";
+                       t.Kind = "struct"
                case TagUnionType:
-                       t.Kind = "union";
+                       t.Kind = "union"
                }
                t.StructName, _ = e.Val(AttrName).(string);
                t.Incomplete = e.Val(AttrDeclaration) != nil;
@@ -433,7 +433,7 @@ func (d *Data) Type(off Offset) (Type, os.Error) {
                        if kid.Tag == TagMember {
                                f := new(StructField);
                                if f.Type = typeOf(kid); err != nil {
-                                       goto Error;
+                                       goto Error
                                }
                                if loc, ok := kid.Val(AttrDataMemberLoc).([]byte); ok {
                                        b := makeBuf(d, "location", 0, loc, d.addrsize);
@@ -455,7 +455,7 @@ func (d *Data) Type(off Offset) (Type, os.Error) {
                                if n >= cap(t.Field) {
                                        fld := make([]*StructField, n, n*2);
                                        for i, f := range t.Field {
-                                               fld[i] = f;
+                                               fld[i] = f
                                        }
                                        t.Field = fld;
                                }
@@ -472,15 +472,15 @@ func (d *Data) Type(off Offset) (Type, os.Error) {
                typ = t;
                d.typeCache[off] = t;
                if t.Type = typeOf(e); err != nil {
-                       goto Error;
+                       goto Error
                }
                switch e.Tag {
                case TagConstType:
-                       t.Qual = "const";
+                       t.Qual = "const"
                case TagRestrictType:
-                       t.Qual = "restrict";
+                       t.Qual = "restrict"
                case TagVolatileType:
-                       t.Qual = "volatile";
+                       t.Qual = "volatile"
                }
 
        case TagEnumerationType:
@@ -506,7 +506,7 @@ func (d *Data) Type(off Offset) (Type, os.Error) {
                                if n >= cap(t.Val) {
                                        val := make([]*EnumValue, n, n*2);
                                        for i, f := range t.Val {
-                                               val[i] = f;
+                                               val[i] = f
                                        }
                                        t.Val = val;
                                }
@@ -543,26 +543,26 @@ func (d *Data) Type(off Offset) (Type, os.Error) {
                typ = t;
                d.typeCache[off] = t;
                if t.ReturnType = typeOf(e); err != nil {
-                       goto Error;
+                       goto Error
                }
                t.ParamType = make([]Type, 0, 8);
                for kid := next(); kid != nil; kid = next() {
                        var tkid Type;
                        switch kid.Tag {
                        default:
-                               continue;
+                               continue
                        case TagFormalParameter:
                                if tkid = typeOf(kid); err != nil {
-                                       goto Error;
+                                       goto Error
                                }
                        case TagUnspecifiedParameters:
-                               tkid = &DotDotDotType{};
+                               tkid = &DotDotDotType{}
                        }
                        n := len(t.ParamType);
                        if n >= cap(t.ParamType) {
                                param := make([]Type, n, n*2);
                                for i, t := range t.ParamType {
-                                       param[i] = t;
+                                       param[i] = t
                                }
                                t.ParamType = param;
                        }
@@ -583,12 +583,12 @@ func (d *Data) Type(off Offset) (Type, os.Error) {
        }
 
        if err != nil {
-               goto Error;
+               goto Error
        }
 
        b, ok := e.Val(AttrByteSize).(int64);
        if !ok {
-               b = -1;
+               b = -1
        }
        typ.Common().ByteSize = b;
 
index dcecbe2c3e2ee83fb2231bd1997083e2a67da4f0..629f0fb1665d02b05f98ef0bfe1349104483a851 100644 (file)
@@ -32,12 +32,12 @@ var typedefTests = map[string]string{
 func elfData(t *testing.T, name string) *Data {
        f, err := elf.Open(name);
        if err != nil {
-               t.Fatal(err);
+               t.Fatal(err)
        }
 
        d, err := f.DWARF();
        if err != nil {
-               t.Fatal(err);
+               t.Fatal(err)
        }
        return d;
 }
@@ -45,12 +45,12 @@ func elfData(t *testing.T, name string) *Data {
 func machoData(t *testing.T, name string) *Data {
        f, err := macho.Open(name);
        if err != nil {
-               t.Fatal(err);
+               t.Fatal(err)
        }
 
        d, err := f.DWARF();
        if err != nil {
-               t.Fatal(err);
+               t.Fatal(err)
        }
        return d;
 }
@@ -59,7 +59,7 @@ func machoData(t *testing.T, name string) *Data {
 func TestTypedefsELF(t *testing.T)     { testTypedefs(t, elfData(t, "testdata/typedef.elf")) }
 
 func TestTypedefsMachO(t *testing.T) {
-       testTypedefs(t, machoData(t, "testdata/typedef.macho"));
+       testTypedefs(t, machoData(t, "testdata/typedef.macho"))
 }
 
 func testTypedefs(t *testing.T, d *Data) {
@@ -68,42 +68,42 @@ func testTypedefs(t *testing.T, d *Data) {
        for {
                e, err := r.Next();
                if err != nil {
-                       t.Fatal("r.Next:", err);
+                       t.Fatal("r.Next:", err)
                }
                if e == nil {
-                       break;
+                       break
                }
                if e.Tag == TagTypedef {
                        typ, err := d.Type(e.Offset);
                        if err != nil {
-                               t.Fatal("d.Type:", err);
+                               t.Fatal("d.Type:", err)
                        }
                        t1 := typ.(*TypedefType);
                        var typstr string;
                        if ts, ok := t1.Type.(*StructType); ok {
-                               typstr = ts.Defn();
+                               typstr = ts.Defn()
                        } else {
-                               typstr = t1.Type.String();
+                               typstr = t1.Type.String()
                        }
 
                        if want, ok := typedefTests[t1.Name]; ok {
                                if _, ok := seen[t1.Name]; ok {
-                                       t.Errorf("multiple definitions for %s", t1.Name);
+                                       t.Errorf("multiple definitions for %s", t1.Name)
                                }
                                seen[t1.Name] = true;
                                if typstr != want {
-                                       t.Errorf("%s:\n\thave %s\n\twant %s", t1.Name, typstr, want);
+                                       t.Errorf("%s:\n\thave %s\n\twant %s", t1.Name, typstr, want)
                                }
                        }
                }
                if e.Tag != TagCompileUnit {
-                       r.SkipChildren();
+                       r.SkipChildren()
                }
        }
 
        for k := range typedefTests {
                if _, ok := seen[k]; !ok {
-                       t.Errorf("missing %s", k);
+                       t.Errorf("missing %s", k)
                }
        }
 }
index d4bcf5889d8dec6e4cfd7e8e8c825cf52f0bac07..582fd0cf27313370bba57985fe7b945b39305efa 100644 (file)
@@ -29,7 +29,7 @@ func (d *Data) parseUnits() ([]unit, os.Error) {
                nunit++;
        }
        if b.err != nil {
-               return nil, b.err;
+               return nil, b.err
        }
 
        // Again, this time writing them down.
@@ -46,7 +46,7 @@ func (d *Data) parseUnits() ([]unit, os.Error) {
                atable, err := d.parseAbbrev(b.uint32());
                if err != nil {
                        if b.err == nil {
-                               b.err = err;
+                               b.err = err
                        }
                        break;
                }
@@ -56,7 +56,7 @@ func (d *Data) parseUnits() ([]unit, os.Error) {
                u.data = b.bytes(int(n-(2+4+1)));
        }
        if b.err != nil {
-               return nil, b.err;
+               return nil, b.err
        }
        return units, nil;
 }
index 42a240efd7cc1966b9c841761a37e6b30d4b7bf9..d0f75355ecf3b06877ac686f01a217b5e4dc92a4 100644 (file)
@@ -1482,7 +1482,7 @@ func stringName(i uint32, names []intName, goSyntax bool) string {
        for _, n := range names {
                if n.i == i {
                        if goSyntax {
-                               return "elf." + n.s;
+                               return "elf." + n.s
                        }
                        return n.s;
                }
@@ -1495,7 +1495,7 @@ func stringName(i uint32, names []intName, goSyntax bool) string {
                if n.i < i {
                        s := n.s;
                        if goSyntax {
-                               s = "elf."+s;
+                               s = "elf."+s
                        }
                        return s + "+" + strconv.Uitoa64(uint64(i - n.i));
                }
@@ -1509,20 +1509,20 @@ func flagName(i uint32, names []intName, goSyntax bool) string {
        for _, n := range names {
                if n.i & i == n.i {
                        if len(s) > 0 {
-                               s += "+";
+                               s += "+"
                        }
                        if goSyntax {
-                               s += "elf.";
+                               s += "elf."
                        }
                        s += n.s;
                        i -= n.i;
                }
        }
        if len(s) == 0 {
-               return "0x" + strconv.Uitob64(uint64(i), 16);
+               return "0x" + strconv.Uitob64(uint64(i), 16)
        }
        if i != 0 {
-               s += "+0x" + strconv.Uitob64(uint64(i), 16);
+               s += "+0x" + strconv.Uitob64(uint64(i), 16)
        }
        return s;
 }
index c48e6d95908d4ae3372d8656f94a55ea426be4a6..50827d2bc369f2845f73f5053584e88a55202fef 100644 (file)
@@ -43,7 +43,7 @@ func TestNames(t *testing.T) {
        for i, tt := range nameTests {
                s := fmt.Sprint(tt.val);
                if s != tt.str {
-                       t.Errorf("#%d: want %q have %q", i, s, tt.str);
+                       t.Errorf("#%d: want %q have %q", i, s, tt.str)
                }
        }
 }
index c51f9bd16dea010c2ebc0176966a1dbadd77f451..3d15f29cec6582b10a1937576ae924d333f7e2ed 100644 (file)
@@ -127,7 +127,7 @@ type FormatError struct {
 func (e *FormatError) String() string {
        msg := e.msg;
        if e.val != nil {
-               msg += fmt.Sprintf(" '%v' ", e.val);
+               msg += fmt.Sprintf(" '%v' ", e.val)
        }
        msg += fmt.Sprintf("in record at byte %#x", e.off);
        return msg;
@@ -137,7 +137,7 @@ func (e *FormatError) String() string {
 func Open(name string) (*File, os.Error) {
        f, err := os.Open(name, os.O_RDONLY, 0);
        if err != nil {
-               return nil, err;
+               return nil, err
        }
        ff, err := NewFile(f);
        if err != nil {
@@ -167,10 +167,10 @@ func NewFile(r io.ReaderAt) (*File, os.Error) {
        // Read and decode ELF identifier
        var ident [16]uint8;
        if _, err := r.ReadAt(&ident, 0); err != nil {
-               return nil, err;
+               return nil, err
        }
        if ident[0] != '\x7f' || ident[1] != 'E' || ident[2] != 'L' || ident[3] != 'F' {
-               return nil, &FormatError{0, "bad magic number", ident[0:4]};
+               return nil, &FormatError{0, "bad magic number", ident[0:4]}
        }
 
        f := new(File);
@@ -180,22 +180,22 @@ func NewFile(r io.ReaderAt) (*File, os.Error) {
        case ELFCLASS64:
                // ok
        default:
-               return nil, &FormatError{0, "unknown ELF class", f.Class};
+               return nil, &FormatError{0, "unknown ELF class", f.Class}
        }
 
        f.Data = Data(ident[EI_DATA]);
        switch f.Data {
        case ELFDATA2LSB:
-               f.ByteOrder = binary.LittleEndian;
+               f.ByteOrder = binary.LittleEndian
        case ELFDATA2MSB:
-               f.ByteOrder = binary.BigEndian;
+               f.ByteOrder = binary.BigEndian
        default:
-               return nil, &FormatError{0, "unknown ELF data encoding", f.Data};
+               return nil, &FormatError{0, "unknown ELF data encoding", f.Data}
        }
 
        f.Version = Version(ident[EI_VERSION]);
        if f.Version != EV_CURRENT {
-               return nil, &FormatError{0, "unknown ELF version", f.Version};
+               return nil, &FormatError{0, "unknown ELF version", f.Version}
        }
 
        f.OSABI = OSABI(ident[EI_OSABI]);
@@ -210,12 +210,12 @@ func NewFile(r io.ReaderAt) (*File, os.Error) {
                hdr := new(Header32);
                sr.Seek(0, 0);
                if err := binary.Read(sr, f.ByteOrder, hdr); err != nil {
-                       return nil, err;
+                       return nil, err
                }
                f.Type = Type(hdr.Type);
                f.Machine = Machine(hdr.Machine);
                if v := Version(hdr.Version); v != f.Version {
-                       return nil, &FormatError{0, "mismatched ELF version", v};
+                       return nil, &FormatError{0, "mismatched ELF version", v}
                }
                shoff = int64(hdr.Shoff);
                shentsize = int(hdr.Shentsize);
@@ -225,12 +225,12 @@ func NewFile(r io.ReaderAt) (*File, os.Error) {
                hdr := new(Header64);
                sr.Seek(0, 0);
                if err := binary.Read(sr, f.ByteOrder, hdr); err != nil {
-                       return nil, err;
+                       return nil, err
                }
                f.Type = Type(hdr.Type);
                f.Machine = Machine(hdr.Machine);
                if v := Version(hdr.Version); v != f.Version {
-                       return nil, &FormatError{0, "mismatched ELF version", v};
+                       return nil, &FormatError{0, "mismatched ELF version", v}
                }
                shoff = int64(hdr.Shoff);
                shentsize = int(hdr.Shentsize);
@@ -238,7 +238,7 @@ func NewFile(r io.ReaderAt) (*File, os.Error) {
                shstrndx = int(hdr.Shstrndx);
        }
        if shstrndx < 0 || shstrndx >= shnum {
-               return nil, &FormatError{0, "invalid ELF shstrndx", shstrndx};
+               return nil, &FormatError{0, "invalid ELF shstrndx", shstrndx}
        }
 
        // Read program headers
@@ -255,7 +255,7 @@ func NewFile(r io.ReaderAt) (*File, os.Error) {
                case ELFCLASS32:
                        sh := new(Section32);
                        if err := binary.Read(sr, f.ByteOrder, sh); err != nil {
-                               return nil, err;
+                               return nil, err
                        }
                        names[i] = sh.Name;
                        s.SectionHeader = SectionHeader{
@@ -272,7 +272,7 @@ func NewFile(r io.ReaderAt) (*File, os.Error) {
                case ELFCLASS64:
                        sh := new(Section64);
                        if err := binary.Read(sr, f.ByteOrder, sh); err != nil {
-                               return nil, err;
+                               return nil, err
                        }
                        names[i] = sh.Name;
                        s.SectionHeader = SectionHeader{
@@ -296,13 +296,13 @@ func NewFile(r io.ReaderAt) (*File, os.Error) {
        s := f.Sections[shstrndx];
        shstrtab := make([]byte, s.Size);
        if _, err := r.ReadAt(shstrtab, int64(s.Offset)); err != nil {
-               return nil, err;
+               return nil, err
        }
        for i, s := range f.Sections {
                var ok bool;
                s.Name, ok = getString(shstrtab, int(names[i]));
                if !ok {
-                       return nil, &FormatError{shoff+int64(i * shentsize), "bad section name index", names[i]};
+                       return nil, &FormatError{shoff+int64(i * shentsize), "bad section name index", names[i]}
                }
        }
 
@@ -312,7 +312,7 @@ func NewFile(r io.ReaderAt) (*File, os.Error) {
 func (f *File) getSymbols() ([]Symbol, os.Error) {
        switch f.Class {
        case ELFCLASS64:
-               return f.getSymbols64();
+               return f.getSymbols64()
        }
 
        return nil, os.ErrorString("not implemented");
@@ -329,16 +329,16 @@ func (f *File) getSymbols64() ([]Symbol, os.Error) {
        }
 
        if symtabSection == nil {
-               return nil, os.ErrorString("no symbol section");
+               return nil, os.ErrorString("no symbol section")
        }
 
        data, err := symtabSection.Data();
        if err != nil {
-               return nil, os.ErrorString("cannot load symbol section");
+               return nil, os.ErrorString("cannot load symbol section")
        }
        symtab := bytes.NewBuffer(data);
        if symtab.Len() % Sym64Size != 0 {
-               return nil, os.ErrorString("length of symbol section is not a multiple of Sym64Size");
+               return nil, os.ErrorString("length of symbol section is not a multiple of Sym64Size")
        }
 
        // The first entry is all zeros.
@@ -366,12 +366,12 @@ func (f *File) getSymbols64() ([]Symbol, os.Error) {
 // getString extracts a string from an ELF string table.
 func getString(section []byte, start int) (string, bool) {
        if start < 0 || start >= len(section) {
-               return "", false;
+               return "", false
        }
 
        for end := start; end < len(section); end++ {
                if section[end] == 0 {
-                       return string(section[start:end]), true;
+                       return string(section[start:end]), true
                }
        }
        return "", false;
@@ -382,7 +382,7 @@ func getString(section []byte, start int) (string, bool) {
 func (f *File) Section(name string) *Section {
        for _, s := range f.Sections {
                if s.Name == name {
-                       return s;
+                       return s
                }
        }
        return nil;
@@ -392,7 +392,7 @@ func (f *File) Section(name string) *Section {
 // in RELA format.
 func (f *File) applyRelocations(dst []byte, rels []byte) os.Error {
        if f.Class == ELFCLASS64 && f.Machine == EM_X86_64 {
-               return f.applyRelocationsAMD64(dst, rels);
+               return f.applyRelocationsAMD64(dst, rels)
        }
 
        return os.ErrorString("not implemented");
@@ -400,12 +400,12 @@ func (f *File) applyRelocations(dst []byte, rels []byte) os.Error {
 
 func (f *File) applyRelocationsAMD64(dst []byte, rels []byte) os.Error {
        if len(rels) % Sym64Size != 0 {
-               return os.ErrorString("length of relocation section is not a multiple of Sym64Size");
+               return os.ErrorString("length of relocation section is not a multiple of Sym64Size")
        }
 
        symbols, err := f.getSymbols();
        if err != nil {
-               return err;
+               return err
        }
 
        b := bytes.NewBuffer(rels);
@@ -417,23 +417,23 @@ func (f *File) applyRelocationsAMD64(dst []byte, rels []byte) os.Error {
                t := R_X86_64(rela.Info & 0xffff);
 
                if symNo >= uint64(len(symbols)) {
-                       continue;
+                       continue
                }
                sym := &symbols[symNo];
                if SymType(sym.Info & 0xf) != STT_SECTION {
                        // We don't handle non-section relocations for now.
-                       continue;
+                       continue
                }
 
                switch t {
                case R_X86_64_64:
                        if rela.Off + 8 >= uint64(len(dst)) || rela.Addend < 0 {
-                               continue;
+                               continue
                        }
                        f.ByteOrder.PutUint64(dst[rela.Off : rela.Off + 8], uint64(rela.Addend));
                case R_X86_64_32:
                        if rela.Off + 4 >= uint64(len(dst)) || rela.Addend < 0 {
-                               continue;
+                               continue
                        }
                        f.ByteOrder.PutUint32(dst[rela.Off : rela.Off + 4], uint32(rela.Addend));
                }
@@ -452,11 +452,11 @@ func (f *File) DWARF() (*dwarf.Data, os.Error) {
                name = ".debug_" + name;
                s := f.Section(name);
                if s == nil {
-                       continue;
+                       continue
                }
                b, err := s.Data();
                if err != nil && uint64(len(b)) < s.Size {
-                       return nil, err;
+                       return nil, err
                }
                dat[i] = b;
        }
@@ -467,11 +467,11 @@ func (f *File) DWARF() (*dwarf.Data, os.Error) {
        if rela != nil && rela.Type == SHT_RELA && f.Machine == EM_X86_64 {
                data, err := rela.Data();
                if err != nil {
-                       return nil, err;
+                       return nil, err
                }
                err = f.applyRelocations(dat[1], data);
                if err != nil {
-                       return nil, err;
+                       return nil, err
                }
        }
 
index 04c924d12406ea9c3681129b569620ed38c2776c..9cd15fbd3d3b6a9ab86bcfe897ab19836ed4a377 100644 (file)
@@ -114,17 +114,17 @@ func TestOpen(t *testing.T) {
                }
                for i, s := range f.Sections {
                        if i >= len(tt.sections) {
-                               break;
+                               break
                        }
                        sh := &tt.sections[i];
                        if !reflect.DeepEqual(&s.SectionHeader, sh) {
-                               t.Errorf("open %s, section %d:\n\thave %#v\n\twant %#v\n", tt.file, i, &s.SectionHeader, sh);
+                               t.Errorf("open %s, section %d:\n\thave %#v\n\twant %#v\n", tt.file, i, &s.SectionHeader, sh)
                        }
                }
                tn := len(tt.sections);
                fn := len(f.Sections);
                if tn != fn {
-                       t.Errorf("open %s: len(Sections) = %d, want %d", tt.file, fn, tn);
+                       t.Errorf("open %s: len(Sections) = %d, want %d", tt.file, fn, tn)
                }
        }
 }
index 8008ada83c52d9476c0a08630d8e811eb743766f..cfda6297861304de5d9212fed5eb05e5ac1c462d 100644 (file)
@@ -42,9 +42,9 @@ func (t *LineTable) parse(targetPC uint64, targetLine int) (b []byte, pc uint64,
                        b = b[4:len(b)];
                        line += int(val);
                case code <= 64:
-                       line += int(code);
+                       line += int(code)
                case code <= 128:
-                       line -= int(code-64);
+                       line -= int(code-64)
                default:
                        pc += quantum*uint64(code-128);
                        continue;
@@ -67,7 +67,7 @@ func (t *LineTable) PCToLine(pc uint64) int {
 func (t *LineTable) LineToPC(line int, maxpc uint64) uint64 {
        _, pc, line1 := t.parse(maxpc, line);
        if line1 != line {
-               return 0;
+               return 0
        }
        // Subtract quantum from PC to account for post-line increment
        return pc-quantum;
@@ -78,5 +78,5 @@ func (t *LineTable) LineToPC(line int, maxpc uint64) uint64 {
 // Text must be the start address of the
 // corresponding text segment.
 func NewLineTable(data []byte, text uint64) *LineTable {
-       return &LineTable{data, text, 0};
+       return &LineTable{data, text, 0}
 }
index 6b70ba1638b6b20795418a36374eb1b2be6df598..79a87f4a2e8b3e91207e791470b4362d26917bc9 100644 (file)
@@ -13,7 +13,7 @@ import (
 
 func dotest() bool {
        // For now, only works on ELF platforms.
-       return syscall.OS == "linux" && os.Getenv("GOARCH") == "amd64";
+       return syscall.OS == "linux" && os.Getenv("GOARCH") == "amd64"
 }
 
 func getTable(t *testing.T) *Table {
@@ -26,7 +26,7 @@ func crack(file string, t *testing.T) (*elf.File, *Table) {
        // Open self
        f, err := elf.Open(file);
        if err != nil {
-               t.Fatal(err);
+               t.Fatal(err)
        }
        return parse(file, f, t);
 }
@@ -57,7 +57,7 @@ var goarch = os.Getenv("O")
 
 func TestLineFromAline(t *testing.T) {
        if !dotest() {
-               return;
+               return
        }
 
        tab := getTable(t);
@@ -65,7 +65,7 @@ func TestLineFromAline(t *testing.T) {
        // Find the sym package
        pkg := tab.LookupFunc("gosym.TestLineFromAline").Obj;
        if pkg == nil {
-               t.Fatalf("nil pkg");
+               t.Fatalf("nil pkg")
        }
 
        // Walk every absolute line and ensure that we hit every
@@ -77,11 +77,11 @@ func TestLineFromAline(t *testing.T) {
                // Check for end of object
                if path == "" {
                        if final == -1 {
-                               final = i-1;
+                               final = i-1
                        }
                        continue;
                } else if final != -1 {
-                       t.Fatalf("reached end of package at absolute line %d, but absolute line %d mapped to %s:%d", final, i, path, line);
+                       t.Fatalf("reached end of package at absolute line %d, but absolute line %d mapped to %s:%d", final, i, path, line)
                }
                // It's okay to see files multiple times (e.g., sys.a)
                if line == 1 {
@@ -91,20 +91,20 @@ func TestLineFromAline(t *testing.T) {
                // Check that the is the next line in path
                ll, ok := lastline[path];
                if !ok {
-                       t.Errorf("file %s starts on line %d", path, line);
+                       t.Errorf("file %s starts on line %d", path, line)
                } else if line != ll+1 {
-                       t.Errorf("expected next line of file %s to be %d, got %d", path, ll+1, line);
+                       t.Errorf("expected next line of file %s to be %d, got %d", path, ll+1, line)
                }
                lastline[path] = line;
        }
        if final == -1 {
-               t.Errorf("never reached end of object");
+               t.Errorf("never reached end of object")
        }
 }
 
 func TestLineAline(t *testing.T) {
        if !dotest() {
-               return;
+               return
        }
 
        tab := getTable(t);
@@ -117,27 +117,27 @@ func TestLineAline(t *testing.T) {
                for i := 0; i < 1000; i++ {
                        path, line := o.lineFromAline(i);
                        if path == "" {
-                               break;
+                               break
                        }
 
                        // cgo files are full of 'Z' symbols, which we don't handle
                        if len(path) > 4 && path[len(path)-4 : len(path)] == ".cgo" {
-                               continue;
+                               continue
                        }
 
                        if minline, ok := found[path]; path != "" && ok {
                                if minline >= line {
                                        // We've already covered this file
-                                       continue;
+                                       continue
                                }
                        }
                        found[path] = line;
 
                        a, err := o.alineFromLine(path, line);
                        if err != nil {
-                               t.Errorf("absolute line %d in object %s maps to %s:%d, but mapping that back gives error %s", i, o.Paths[0].Name, path, line, err);
+                               t.Errorf("absolute line %d in object %s maps to %s:%d, but mapping that back gives error %s", i, o.Paths[0].Name, path, line, err)
                        } else if a != i {
-                               t.Errorf("absolute line %d in object %s maps to %s:%d, which maps back to absolute line %d\n", i, o.Paths[0].Name, path, line, a);
+                               t.Errorf("absolute line %d in object %s maps to %s:%d, which maps back to absolute line %d\n", i, o.Paths[0].Name, path, line, a)
                        }
                }
        }
@@ -148,14 +148,14 @@ func TestLineAline(t *testing.T) {
 // gotest: fi
 func TestPCLine(t *testing.T) {
        if !dotest() {
-               return;
+               return
        }
 
        f, tab := crack("_test/pclinetest", t);
        text := f.Section(".text");
        textdat, err := text.Data();
        if err != nil {
-               t.Fatalf("reading .text: %v", err);
+               t.Fatalf("reading .text: %v", err)
        }
 
        // Test PCToLine
@@ -166,9 +166,9 @@ func TestPCLine(t *testing.T) {
                off := pc - text.Addr;  // TODO(rsc): should not need off; bug in 8g
                wantLine += int(textdat[off]);
                if fn == nil {
-                       t.Errorf("failed to get line of PC %#x", pc);
+                       t.Errorf("failed to get line of PC %#x", pc)
                } else if len(file) < 12 || file[len(file)-12 : len(file)] != "pclinetest.s" || line != wantLine || fn != sym {
-                       t.Errorf("expected %s:%d (%s) at PC %#x, got %s:%d (%s)", "pclinetest.s", wantLine, sym.Name, pc, file, line, fn.Name);
+                       t.Errorf("expected %s:%d (%s) at PC %#x, got %s:%d (%s)", "pclinetest.s", wantLine, sym.Name, pc, file, line, fn.Name)
                }
        }
 
@@ -187,19 +187,19 @@ func TestPCLine(t *testing.T) {
                        continue;
                }
                if lookupline == -1 {
-                       lookupline = line;
+                       lookupline = line
                }
                for ; lookupline <= line; lookupline++ {
                        pc2, fn2, err := tab.LineToPC(file, lookupline);
                        if lookupline != line {
                                // Should be nothing on this line
                                if err == nil {
-                                       t.Errorf("expected no PC at line %d, got %#x (%s)", lookupline, pc2, fn2.Name);
+                                       t.Errorf("expected no PC at line %d, got %#x (%s)", lookupline, pc2, fn2.Name)
                                }
                        } else if err != nil {
-                               t.Errorf("failed to get PC of line %d: %s", lookupline, err);
+                               t.Errorf("failed to get PC of line %d: %s", lookupline, err)
                        } else if pc != pc2 {
-                               t.Errorf("expected PC %#x (%s) at line %d, got PC %#x (%s)", pc, fn.Name, line, pc2, fn2.Name);
+                               t.Errorf("expected PC %#x (%s) at line %d, got PC %#x (%s)", pc, fn.Name, line, pc2, fn2.Name)
                        }
                }
                off = pc + 1 - text.Addr;
index cb9b1f4eb1517474399eaebb2bbe8de9271b3362..ba20c7f385f3f1bcdb264503be16f714e0390540 100644 (file)
@@ -41,7 +41,7 @@ func (s *Sym) Static() bool   { return s.Type >= 'a' }
 // or the empty string if there is none.
 func (s *Sym) PackageName() string {
        if i := strings.Index(s.Name, "."); i != -1 {
-               return s.Name[0:i];
+               return s.Name[0:i]
        }
        return "";
 }
@@ -52,7 +52,7 @@ func (s *Sym) ReceiverName() string {
        l := strings.Index(s.Name, ".");
        r := strings.LastIndex(s.Name, ".");
        if l == -1 || r == -1 || l == r {
-               return "";
+               return ""
        }
        return s.Name[l+1 : r];
 }
@@ -60,7 +60,7 @@ func (s *Sym) ReceiverName() string {
 // BaseName returns the symbol name without the package or receiver name.
 func (s *Sym) BaseName() string {
        if i := strings.LastIndex(s.Name, "."); i != -1 {
-               return s.Name[i+1 : len(s.Name)];
+               return s.Name[i+1 : len(s.Name)]
        }
        return s.Name;
 }
@@ -112,7 +112,7 @@ func walksymtab(data []byte, fn func(sym) os.Error) os.Error {
                s.value = binary.BigEndian.Uint32(p[0:4]);
                typ := p[4];
                if typ&0x80 == 0 {
-                       return &DecodingError{len(data)-len(p)+4, "bad symbol type", typ};
+                       return &DecodingError{len(data)-len(p)+4, "bad symbol type", typ}
                }
                typ &^= 0x80;
                s.typ = typ;
@@ -136,7 +136,7 @@ func walksymtab(data []byte, fn func(sym) os.Error) os.Error {
                        }
                }
                if i+nnul+4 > len(p) {
-                       return &DecodingError{len(data), "unexpected EOF", nil};
+                       return &DecodingError{len(data), "unexpected EOF", nil}
                }
                s.name = p[0:i];
                i += nnul;
@@ -156,7 +156,7 @@ func NewTable(symtab []byte, pcln *LineTable) (*Table, os.Error) {
                return nil;
        });
        if err != nil {
-               return nil, err;
+               return nil, err
        }
 
        var t Table;
@@ -188,31 +188,31 @@ func NewTable(symtab []byte, pcln *LineTable) (*Table, os.Error) {
                        ts.Name = string(s.name[0:w]);
                case 'z', 'Z':
                        if lasttyp != 'z' && lasttyp != 'Z' {
-                               nz++;
+                               nz++
                        }
                        for i := 0; i < len(s.name); i += 2 {
                                eltIdx := binary.BigEndian.Uint16(s.name[i : i+2]);
                                elt, ok := fname[eltIdx];
                                if !ok {
-                                       return &DecodingError{-1, "bad filename code", eltIdx};
+                                       return &DecodingError{-1, "bad filename code", eltIdx}
                                }
                                if n := len(ts.Name); n > 0 && ts.Name[n-1] != '/' {
-                                       ts.Name += "/";
+                                       ts.Name += "/"
                                }
                                ts.Name += elt;
                        }
                }
                switch s.typ {
                case 'T', 't', 'L', 'l':
-                       nf++;
+                       nf++
                case 'f':
-                       fname[uint16(s.value)] = ts.Name;
+                       fname[uint16(s.value)] = ts.Name
                }
                lasttyp = s.typ;
                return nil;
        });
        if err != nil {
-               return nil, err;
+               return nil, err
        }
 
        t.Funcs = make([]Func, 0, nf);
@@ -229,7 +229,7 @@ func NewTable(symtab []byte, pcln *LineTable) (*Table, os.Error) {
                case 'Z', 'z':  // path symbol
                        // Finish the current object
                        if obj != nil {
-                               obj.Funcs = t.Funcs[lastf:len(t.Funcs)];
+                               obj.Funcs = t.Funcs[lastf:len(t.Funcs)]
                        }
                        lastf = len(t.Funcs);
 
@@ -242,7 +242,7 @@ func NewTable(symtab []byte, pcln *LineTable) (*Table, os.Error) {
                        var end int;
                        for end = i+1; end < len(t.Syms); end++ {
                                if c := t.Syms[end].Type; c != 'Z' && c != 'z' {
-                                       break;
+                                       break
                                }
                        }
                        obj.Paths = t.Syms[i:end];
@@ -253,10 +253,10 @@ func NewTable(symtab []byte, pcln *LineTable) (*Table, os.Error) {
                        for j := range obj.Paths {
                                s := &obj.Paths[j];
                                if s.Name == "" {
-                                       depth--;
+                                       depth--
                                } else {
                                        if depth == 0 {
-                                               t.Files[s.Name] = obj;
+                                               t.Files[s.Name] = obj
                                        }
                                        depth++;
                                }
@@ -264,10 +264,10 @@ func NewTable(symtab []byte, pcln *LineTable) (*Table, os.Error) {
 
                case 'T', 't', 'L', 'l':        // text symbol
                        if n := len(t.Funcs); n > 0 {
-                               t.Funcs[n-1].End = sym.Value;
+                               t.Funcs[n-1].End = sym.Value
                        }
                        if sym.Name == "etext" {
-                               continue;
+                               continue
                        }
 
                        // Count parameter and local (auto) syms
@@ -277,11 +277,11 @@ func NewTable(symtab []byte, pcln *LineTable) (*Table, os.Error) {
                        for end = i+1; end < len(t.Syms); end++ {
                                switch t.Syms[end].Type {
                                case 'T', 't', 'L', 'l', 'Z', 'z':
-                                       break countloop;
+                                       break countloop
                                case 'p':
-                                       np++;
+                                       np++
                                case 'a':
-                                       na++;
+                                       na++
                                }
                        }
 
@@ -303,7 +303,7 @@ func NewTable(symtab []byte, pcln *LineTable) (*Table, os.Error) {
                                s := &t.Syms[j];
                                switch s.Type {
                                case 'm':
-                                       fn.FrameSize = int(s.Value);
+                                       fn.FrameSize = int(s.Value)
                                case 'p':
                                        n := len(fn.Params);
                                        fn.Params = fn.Params[0 : n+1];
@@ -318,7 +318,7 @@ func NewTable(symtab []byte, pcln *LineTable) (*Table, os.Error) {
                }
        }
        if obj != nil {
-               obj.Funcs = t.Funcs[lastf:len(t.Funcs)];
+               obj.Funcs = t.Funcs[lastf:len(t.Funcs)]
        }
        return &t, nil;
 }
@@ -332,11 +332,11 @@ func (t *Table) PCToFunc(pc uint64) *Func {
                fn := &funcs[m];
                switch {
                case pc < fn.Entry:
-                       funcs = funcs[0:m];
+                       funcs = funcs[0:m]
                case fn.Entry <= pc && pc < fn.End:
-                       return fn;
+                       return fn
                default:
-                       funcs = funcs[m+1 : len(funcs)];
+                       funcs = funcs[m+1 : len(funcs)]
                }
        }
        return nil;
@@ -346,7 +346,7 @@ func (t *Table) PCToFunc(pc uint64) *Func {
 // If there is no information, it returns fn == nil.
 func (t *Table) PCToLine(pc uint64) (file string, line int, fn *Func) {
        if fn = t.PCToFunc(pc); fn == nil {
-               return;
+               return
        }
        file, line = fn.Obj.lineFromAline(fn.LineTable.PCToLine(pc));
        return;
@@ -358,17 +358,17 @@ func (t *Table) PCToLine(pc uint64) (file string, line int, fn *Func) {
 func (t *Table) LineToPC(file string, line int) (pc uint64, fn *Func, err os.Error) {
        obj, ok := t.Files[file];
        if !ok {
-               return 0, nil, UnknownFileError(file);
+               return 0, nil, UnknownFileError(file)
        }
        abs, err := obj.alineFromLine(file, line);
        if err != nil {
-               return;
+               return
        }
        for i := range obj.Funcs {
                f := &obj.Funcs[i];
                pc := f.LineTable.LineToPC(abs, f.End);
                if pc != 0 {
-                       return pc, f, nil;
+                       return pc, f, nil
                }
        }
        return 0, nil, &UnknownLineError{file, line};
@@ -383,7 +383,7 @@ func (t *Table) LookupSym(name string) *Sym {
                switch s.Type {
                case 'T', 't', 'L', 'l', 'D', 'd', 'B', 'b':
                        if s.Name == name {
-                               return s;
+                               return s
                        }
                }
        }
@@ -396,7 +396,7 @@ func (t *Table) LookupFunc(name string) *Func {
        for i := range t.Funcs {
                f := &t.Funcs[i];
                if f.Sym.Name == name {
-                       return f;
+                       return f
                }
        }
        return nil;
@@ -411,7 +411,7 @@ func (t *Table) SymByAddr(addr uint64) *Sym {
                switch s.Type {
                case 'T', 't', 'L', 'l', 'D', 'd', 'B', 'b':
                        if s.Value == addr {
-                               return s;
+                               return s
                        }
                }
        }
@@ -440,41 +440,41 @@ pathloop:
                val := int(s.Value);
                switch {
                case val > aline:
-                       break pathloop;
+                       break pathloop
 
                case val == 1:
                        // Start a new stack
-                       tos = &stackEnt{s.Name, val, 0, noPath};
+                       tos = &stackEnt{s.Name, val, 0, noPath}
 
                case s.Name == "":
                        // Pop
                        if tos == noPath {
-                               return "<malformed symbol table>", 0;
+                               return "<malformed symbol table>", 0
                        }
                        tos.prev.offset += val - tos.start;
                        tos = tos.prev;
 
                default:
                        // Push
-                       tos = &stackEnt{s.Name, val, 0, tos};
+                       tos = &stackEnt{s.Name, val, 0, tos}
                }
        }
 
        if tos == noPath {
-               return "", 0;
+               return "", 0
        }
        return tos.path, aline - tos.start - tos.offset + 1;
 }
 
 func (o *Obj) alineFromLine(path string, line int) (int, os.Error) {
        if line < 1 {
-               return 0, &UnknownLineError{path, line};
+               return 0, &UnknownLineError{path, line}
        }
 
        for i, s := range o.Paths {
                // Find this path
                if s.Name != path {
-                       continue;
+                       continue
                }
 
                // Find this line at this stack level
@@ -486,19 +486,19 @@ func (o *Obj) alineFromLine(path string, line int) (int, os.Error) {
                        val := int(s.Value);
                        switch {
                        case depth == 1 && val >= line:
-                               return line-1, nil;
+                               return line-1, nil
 
                        case s.Name == "":
                                depth--;
                                if depth == 0 {
-                                       break pathloop;
+                                       break pathloop
                                } else if depth == 1 {
-                                       line += val-incstart;
+                                       line += val-incstart
                                }
 
                        default:
                                if depth == 1 {
-                                       incstart = val;
+                                       incstart = val
                                }
                                depth++;
                        }
@@ -527,7 +527,7 @@ type UnknownLineError struct {
 }
 
 func (e *UnknownLineError) String() string {
-       return "no code at " + e.File + ":" + strconv.Itoa(e.Line);
+       return "no code at " + e.File + ":" + strconv.Itoa(e.Line)
 }
 
 // DecodingError represents an error during the decoding of
@@ -541,7 +541,7 @@ type DecodingError struct {
 func (e *DecodingError) String() string {
        msg := e.msg;
        if e.val != nil {
-               msg += fmt.Sprintf(" '%v'", e.val);
+               msg += fmt.Sprintf(" '%v'", e.val)
        }
        msg += fmt.Sprintf(" at byte %#x", e.off);
        return msg;
index 52ba94fd74f236dbe84be12e279b836ecfa40482..48687849a2ac642dc9ddaf7a9428de5d1f7a46ac 100644 (file)
@@ -126,7 +126,7 @@ type FormatError struct {
 func (e *FormatError) String() string {
        msg := e.msg;
        if e.val != nil {
-               msg += fmt.Sprintf(" '%v' ", e.val);
+               msg += fmt.Sprintf(" '%v' ", e.val)
        }
        msg += fmt.Sprintf("in record at byte %#x", e.off);
        return msg;
@@ -136,7 +136,7 @@ func (e *FormatError) String() string {
 func Open(name string) (*File, os.Error) {
        f, err := os.Open(name, os.O_RDONLY, 0);
        if err != nil {
-               return nil, err;
+               return nil, err
        }
        ff, err := NewFile(f);
        if err != nil {
@@ -169,7 +169,7 @@ func NewFile(r io.ReaderAt) (*File, os.Error) {
        // Magic32 and Magic64 differ only in the bottom bit.
        var ident [4]uint8;
        if _, err := r.ReadAt(&ident, 0); err != nil {
-               return nil, err;
+               return nil, err
        }
        be := binary.BigEndian.Uint32(&ident);
        le := binary.LittleEndian.Uint32(&ident);
@@ -184,28 +184,28 @@ func NewFile(r io.ReaderAt) (*File, os.Error) {
 
        // Read entire file header.
        if err := binary.Read(sr, f.ByteOrder, &f.FileHeader); err != nil {
-               return nil, err;
+               return nil, err
        }
 
        // Then load commands.
        offset := int64(fileHeaderSize32);
        if f.Magic == Magic64 {
-               offset = fileHeaderSize64;
+               offset = fileHeaderSize64
        }
        dat := make([]byte, f.Cmdsz);
        if _, err := r.ReadAt(dat, offset); err != nil {
-               return nil, err;
+               return nil, err
        }
        f.Loads = make([]Load, f.Ncmd);
        bo := f.ByteOrder;
        for i := range f.Loads {
                // Each load command begins with uint32 command and length.
                if len(dat) < 8 {
-                       return nil, &FormatError{offset, "command block too small", nil};
+                       return nil, &FormatError{offset, "command block too small", nil}
                }
                cmd, siz := LoadCmd(bo.Uint32(dat[0:4])), bo.Uint32(dat[4:8]);
                if siz < 8 || siz > uint32(len(dat)) {
-                       return nil, &FormatError{offset, "invalid command block size", nil};
+                       return nil, &FormatError{offset, "invalid command block size", nil}
                }
                var cmddat []byte;
                cmddat, dat = dat[0:siz], dat[siz:len(dat)];
@@ -213,13 +213,13 @@ func NewFile(r io.ReaderAt) (*File, os.Error) {
                var s *Segment;
                switch cmd {
                default:
-                       f.Loads[i] = LoadBytes(cmddat);
+                       f.Loads[i] = LoadBytes(cmddat)
 
                case LoadCmdSegment:
                        var seg32 Segment32;
                        b := bytes.NewBuffer(cmddat);
                        if err := binary.Read(b, bo, &seg32); err != nil {
-                               return nil, err;
+                               return nil, err
                        }
                        s = new(Segment);
                        s.LoadBytes = cmddat;
@@ -238,7 +238,7 @@ func NewFile(r io.ReaderAt) (*File, os.Error) {
                        for i := 0; i < int(s.Nsect); i++ {
                                var sh32 Section32;
                                if err := binary.Read(b, bo, &sh32); err != nil {
-                                       return nil, err;
+                                       return nil, err
                                }
                                sh := new(Section);
                                sh.Name = cstring(&sh32.Name);
@@ -257,7 +257,7 @@ func NewFile(r io.ReaderAt) (*File, os.Error) {
                        var seg64 Segment64;
                        b := bytes.NewBuffer(cmddat);
                        if err := binary.Read(b, bo, &seg64); err != nil {
-                               return nil, err;
+                               return nil, err
                        }
                        s = new(Segment);
                        s.LoadBytes = cmddat;
@@ -276,7 +276,7 @@ func NewFile(r io.ReaderAt) (*File, os.Error) {
                        for i := 0; i < int(s.Nsect); i++ {
                                var sh64 Section64;
                                if err := binary.Read(b, bo, &sh64); err != nil {
-                                       return nil, err;
+                                       return nil, err
                                }
                                sh := new(Section);
                                sh.Name = cstring(&sh64.Name);
@@ -305,7 +305,7 @@ func (f *File) pushSection(sh *Section, r io.ReaderAt) {
                m := (n+1)*2;
                new := make([]*Section, n, m);
                for i, sh := range f.Sections {
-                       new[i] = sh;
+                       new[i] = sh
                }
                f.Sections = new;
        }
@@ -326,7 +326,7 @@ func cstring(b []byte) string {
 func (f *File) Segment(name string) *Segment {
        for _, l := range f.Loads {
                if s, ok := l.(*Segment); ok && s.Name == name {
-                       return s;
+                       return s
                }
        }
        return nil;
@@ -337,7 +337,7 @@ func (f *File) Segment(name string) *Segment {
 func (f *File) Section(name string) *Section {
        for _, s := range f.Sections {
                if s.Name == name {
-                       return s;
+                       return s
                }
        }
        return nil;
@@ -354,11 +354,11 @@ func (f *File) DWARF() (*dwarf.Data, os.Error) {
                name = "__debug_" + name;
                s := f.Section(name);
                if s == nil {
-                       return nil, os.NewError("missing Mach-O section " + name);
+                       return nil, os.NewError("missing Mach-O section " + name)
                }
                b, err := s.Data();
                if err != nil && uint64(len(b)) < s.Size {
-                       return nil, err;
+                       return nil, err
                }
                dat[i] = b;
        }
index fe0b3ff12cdcd67fefdc8035bf1fdc889dcdd4ed..e1d75da15fbf476943fd4f431c9fa25cf9b01f69 100644 (file)
@@ -113,13 +113,13 @@ func TestOpen(t *testing.T) {
                }
                for i, l := range f.Loads {
                        if i >= len(tt.segments) {
-                               break;
+                               break
                        }
                        sh := tt.segments[i];
                        s, ok := l.(*Segment);
                        if sh == nil {
                                if ok {
-                                       t.Errorf("open %s, section %d: skipping %#v\n", tt.file, i, &s.SegmentHeader);
+                                       t.Errorf("open %s, section %d: skipping %#v\n", tt.file, i, &s.SegmentHeader)
                                }
                                continue;
                        }
@@ -130,29 +130,29 @@ func TestOpen(t *testing.T) {
                        have := &s.SegmentHeader;
                        want := sh;
                        if !reflect.DeepEqual(have, want) {
-                               t.Errorf("open %s, segment %d:\n\thave %#v\n\twant %#v\n", tt.file, i, have, want);
+                               t.Errorf("open %s, segment %d:\n\thave %#v\n\twant %#v\n", tt.file, i, have, want)
                        }
                }
                tn := len(tt.segments);
                fn := len(f.Loads);
                if tn != fn {
-                       t.Errorf("open %s: len(Loads) = %d, want %d", tt.file, fn, tn);
+                       t.Errorf("open %s: len(Loads) = %d, want %d", tt.file, fn, tn)
                }
 
                for i, sh := range f.Sections {
                        if i >= len(tt.sections) {
-                               break;
+                               break
                        }
                        have := &sh.SectionHeader;
                        want := tt.sections[i];
                        if !reflect.DeepEqual(have, want) {
-                               t.Errorf("open %s, section %d:\n\thave %#v\n\twant %#v\n", tt.file, i, have, want);
+                               t.Errorf("open %s, section %d:\n\thave %#v\n\twant %#v\n", tt.file, i, have, want)
                        }
                }
                tn = len(tt.sections);
                fn = len(f.Sections);
                if tn != fn {
-                       t.Errorf("open %s: len(Sections) = %d, want %d", tt.file, fn, tn);
+                       t.Errorf("open %s: len(Sections) = %d, want %d", tt.file, fn, tn)
                }
 
        }
index d8fbba376bc1d290d0e478168107b0a159a547fc..fc4924b2f4bce50bf855d9e13450812a98641fe9 100644 (file)
@@ -197,7 +197,7 @@ func stringName(i uint32, names []intName, goSyntax bool) string {
        for _, n := range names {
                if n.i == i {
                        if goSyntax {
-                               return "macho." + n.s;
+                               return "macho." + n.s
                        }
                        return n.s;
                }
@@ -210,20 +210,20 @@ func flagName(i uint32, names []intName, goSyntax bool) string {
        for _, n := range names {
                if n.i & i == n.i {
                        if len(s) > 0 {
-                               s += "+";
+                               s += "+"
                        }
                        if goSyntax {
-                               s += "macho.";
+                               s += "macho."
                        }
                        s += n.s;
                        i -= n.i;
                }
        }
        if len(s) == 0 {
-               return "0x" + strconv.Uitob64(uint64(i), 16);
+               return "0x" + strconv.Uitob64(uint64(i), 16)
        }
        if i != 0 {
-               s += "+0x" + strconv.Uitob64(uint64(i), 16);
+               s += "+0x" + strconv.Uitob64(uint64(i), 16)
        }
        return s;
 }
index 0719ebef3ec83e6a7c6c944931613b578d18de12..7f8e778c6f9beabf204b2417d5188e7d4787eb3f 100644 (file)
@@ -161,7 +161,7 @@ type Breakpoint Word
 func (c Breakpoint) PC() Word  { return Word(c) }
 
 func (c Breakpoint) String() string {
-       return "breakpoint at 0x" + strconv.Uitob64(uint64(c.PC()), 16);
+       return "breakpoint at 0x" + strconv.Uitob64(uint64(c.PC()), 16)
 }
 
 // Signal is a stop cause resulting from a thread receiving a signal.
@@ -212,11 +212,11 @@ func (c *ThreadExit) String() string {
        res := "thread exited ";
        switch {
        case c.Exited():
-               res += "with status " + strconv.Itoa(c.ExitStatus());
+               res += "with status " + strconv.Itoa(c.ExitStatus())
        case c.Signaled():
-               res += "from signal " + c.StopSignal();
+               res += "from signal " + c.StopSignal()
        default:
-               res += "from unknown cause";
+               res += "from unknown cause"
        }
        return res;
 }
index 2c7b4231f574115730ce5e7ab0632b0dbb6781ad..7caf3a21a4f9147872f16da8194295b3bfc3a518 100644 (file)
@@ -9,9 +9,9 @@ import "os"
 // Process tracing is not supported on OS X yet.
 
 func Attach(pid int) (Process, os.Error) {
-       return nil, os.NewError("debug/proc not implemented on OS X");
+       return nil, os.NewError("debug/proc not implemented on OS X")
 }
 
 func ForkExec(argv0 string, argv []string, envv []string, dir string, fd []*os.File) (Process, os.Error) {
-       return Attach(0);
+       return Attach(0)
 }
index ac469ecad0a30397672c86d323bafbca55686616..be42022d6b304c0ae0306092c7b12ec7e004c5a2 100644 (file)
@@ -77,11 +77,11 @@ const (
 )
 
 func (ts threadState) isRunning() bool {
-       return ts == running || ts == singleStepping || ts == stopping;
+       return ts == running || ts == singleStepping || ts == stopping
 }
 
 func (ts threadState) isStopped() bool {
-       return ts == stopped || ts == stoppedBreakpoint || ts == stoppedSignal || ts == stoppedThreadCreate || ts == stoppedExiting;
+       return ts == stopped || ts == stoppedBreakpoint || ts == stoppedSignal || ts == stoppedThreadCreate || ts == stoppedExiting
 }
 
 func (ts threadState) isZombie() bool  { return ts == exiting }
@@ -104,7 +104,7 @@ type breakpoint struct {
 
 func (bp *breakpoint) String() string {
        if bp == nil {
-               return "<nil>";
+               return "<nil>"
        }
        return fmt.Sprintf("%#x", bp.pc);
 }
@@ -189,13 +189,13 @@ type badState struct {
 }
 
 func (e *badState) String() string {
-       return fmt.Sprintf("Thread %d %s from state %v", e.thread.tid, e.message, e.state);
+       return fmt.Sprintf("Thread %d %s from state %v", e.thread.tid, e.message, e.state)
 }
 
 type breakpointExistsError Word
 
 func (e breakpointExistsError) String() string {
-       return fmt.Sprintf("breakpoint already exists at PC %#x", e);
+       return fmt.Sprintf("breakpoint already exists at PC %#x", e)
 }
 
 type noBreakpointError Word
@@ -209,7 +209,7 @@ type newThreadError struct {
 }
 
 func (e *newThreadError) String() string {
-       return fmt.Sprintf("newThread wait wanted pid %v and signal %v, got %v and %v", e.Pid, e.StopSignal(), e.wantPid, e.wantSig);
+       return fmt.Sprintf("newThread wait wanted pid %v and signal %v, got %v and %v", e.Pid, e.StopSignal(), e.wantPid, e.wantSig)
 }
 
 type ProcessExited struct{}
@@ -223,7 +223,7 @@ func (p ProcessExited) String() string      { return "process exited" }
 func (t *thread) ptracePeekText(addr uintptr, out []byte) (int, os.Error) {
        c, err := syscall.PtracePeekText(t.tid, addr, out);
        if traceMem {
-               fmt.Printf("peek(%#x) => %v, %v\n", addr, out, err);
+               fmt.Printf("peek(%#x) => %v, %v\n", addr, out, err)
        }
        return c, os.NewSyscallError("ptrace(PEEKTEXT)", err);
 }
@@ -231,7 +231,7 @@ func (t *thread) ptracePeekText(addr uintptr, out []byte) (int, os.Error) {
 func (t *thread) ptracePokeText(addr uintptr, out []byte) (int, os.Error) {
        c, err := syscall.PtracePokeText(t.tid, addr, out);
        if traceMem {
-               fmt.Printf("poke(%#x, %v) => %v\n", addr, out, err);
+               fmt.Printf("poke(%#x, %v) => %v\n", addr, out, err)
        }
        return c, os.NewSyscallError("ptrace(POKETEXT)", err);
 }
@@ -284,7 +284,7 @@ var logLock sync.Mutex
 
 func (t *thread) logTrace(format string, args ...) {
        if !trace {
-               return;
+               return
        }
        logLock.Lock();
        defer logLock.Unlock();
@@ -293,7 +293,7 @@ func (t *thread) logTrace(format string, args ...) {
                var regs syscall.PtraceRegs;
                err := t.ptraceGetRegs(&regs);
                if err == nil {
-                       fmt.Fprintf(os.Stderr, "@%x", regs.PC());
+                       fmt.Fprintf(os.Stderr, "@%x", regs.PC())
                }
        }
        fmt.Fprint(os.Stderr, ": ");
@@ -311,7 +311,7 @@ func (t *thread) warn(format string, args ...) {
 
 func (p *process) logTrace(format string, args ...) {
        if !trace {
-               return;
+               return
        }
        logLock.Lock();
        defer logLock.Unlock();
@@ -331,7 +331,7 @@ func (p *process) logTrace(format string, args ...) {
 func (p *process) someStoppedThread() *thread {
        for _, t := range p.threads {
                if t.state.isStopped() {
-                       return t;
+                       return t
                }
        }
        return nil;
@@ -344,7 +344,7 @@ func (p *process) someStoppedThread() *thread {
 func (p *process) someRunningThread() *thread {
        for _, t := range p.threads {
                if t.state.isRunning() {
-                       return t;
+                       return t
                }
        }
        return nil;
@@ -362,7 +362,7 @@ func (p *process) installBreakpoints() os.Error {
        main := p.someStoppedThread();
        for _, b := range p.breakpoints {
                if b.olddata != nil {
-                       continue;
+                       continue
                }
 
                b.olddata = make([]byte, len(bpinst386));
@@ -380,7 +380,7 @@ func (p *process) installBreakpoints() os.Error {
                n++;
        }
        if n > 0 {
-               p.logTrace("installed %d/%d breakpoints", n, len(p.breakpoints));
+               p.logTrace("installed %d/%d breakpoints", n, len(p.breakpoints))
        }
 
        return nil;
@@ -391,24 +391,24 @@ func (p *process) installBreakpoints() os.Error {
 // Must be called from the monitor thread.
 func (p *process) uninstallBreakpoints() os.Error {
        if len(p.threads) == 0 {
-               return nil;
+               return nil
        }
        n := 0;
        main := p.someStoppedThread();
        for _, b := range p.breakpoints {
                if b.olddata == nil {
-                       continue;
+                       continue
                }
 
                _, err := main.ptracePokeText(uintptr(b.pc), b.olddata);
                if err != nil {
-                       return err;
+                       return err
                }
                b.olddata = nil;
                n++;
        }
        if n > 0 {
-               p.logTrace("uninstalled %d/%d breakpoints", n, len(p.breakpoints));
+               p.logTrace("uninstalled %d/%d breakpoints", n, len(p.breakpoints))
        }
 
        return nil;
@@ -430,14 +430,14 @@ func (t *thread) wait() {
                t.logTrace("beginning wait");
                ev.Waitmsg, ev.err = os.Wait(t.tid, syscall.WALL);
                if ev.err == nil && ev.Pid != t.tid {
-                       panic("Wait returned pid ", ev.Pid, " wanted ", t.tid);
+                       panic("Wait returned pid ", ev.Pid, " wanted ", t.tid)
                }
                if ev.StopSignal() == syscall.SIGSTOP && t.ignoreNextSigstop {
                        // Spurious SIGSTOP.  See Thread.Stop().
                        t.ignoreNextSigstop = false;
                        err := t.ptraceCont();
                        if err == nil {
-                               continue;
+                               continue
                        }
                        // If we failed to continue, just let
                        // the stop go through so we can
@@ -445,7 +445,7 @@ func (t *thread) wait() {
                }
                if !<-t.proc.ready {
                        // The monitor exited
-                       break;
+                       break
                }
                t.proc.debugEvents <- &ev;
                break;
@@ -463,13 +463,13 @@ func (t *thread) setState(new threadState) {
 
        if !old.isRunning() && (new.isRunning() || new.isZombie()) {
                // Start waiting on this thread
-               go t.wait();
+               go t.wait()
        }
 
        // Invoke state change handlers
        handlers := t.proc.transitionHandlers;
        if handlers.Len() == 0 {
-               return;
+               return
        }
 
        t.proc.transitionHandlers = vector.New(0);
@@ -494,7 +494,7 @@ func (p *process) stopAsync() os.Error {
                if t.state == running {
                        err := t.sendSigstop();
                        if err != nil {
-                               return err;
+                               return err
                        }
                        t.setState(stopping);
                }
@@ -511,7 +511,7 @@ func (ev *debugEvent) doTrap() (threadState, os.Error) {
        t := ev.t;
 
        if t.state == singleStepping {
-               return stopped, nil;
+               return stopped, nil
        }
 
        // Hit a breakpoint.  Linux leaves the program counter after
@@ -520,7 +520,7 @@ func (ev *debugEvent) doTrap() (threadState, os.Error) {
        var regs syscall.PtraceRegs;
        err := t.ptraceGetRegs(&regs);
        if err != nil {
-               return stopped, err;
+               return stopped, err
        }
 
        b, ok := t.proc.breakpoints[uintptr(regs.PC())-uintptr(len(bpinst386))];
@@ -529,7 +529,7 @@ func (ev *debugEvent) doTrap() (threadState, os.Error) {
                // the program.  Leave the IP where it is so we don't
                // re-execute the breakpoint instruction.  Expose the
                // fact that we stopped with a SIGTRAP.
-               return stoppedSignal, nil;
+               return stoppedSignal, nil
        }
 
        t.breakpoint = b;
@@ -538,7 +538,7 @@ func (ev *debugEvent) doTrap() (threadState, os.Error) {
        regs.SetPC(uint64(b.pc));
        err = t.ptraceSetRegs(&regs);
        if err != nil {
-               return stopped, err;
+               return stopped, err
        }
        return stoppedBreakpoint, nil;
 }
@@ -552,12 +552,12 @@ func (ev *debugEvent) doPtraceClone() (threadState, os.Error) {
        // Get the TID of the new thread
        tid, err := t.ptraceGetEventMsg();
        if err != nil {
-               return stopped, err;
+               return stopped, err
        }
 
        nt, err := t.proc.newThread(int(tid), syscall.SIGSTOP, true);
        if err != nil {
-               return stopped, err;
+               return stopped, err
        }
 
        // Remember the thread
@@ -576,15 +576,15 @@ func (ev *debugEvent) doPtraceExit() (threadState, os.Error) {
        // Get exit status
        exitStatus, err := t.ptraceGetEventMsg();
        if err != nil {
-               return stopped, err;
+               return stopped, err
        }
        ws := syscall.WaitStatus(exitStatus);
        t.logTrace("exited with %v", ws);
        switch {
        case ws.Exited():
-               t.exitStatus = ws.ExitStatus();
+               t.exitStatus = ws.ExitStatus()
        case ws.Signaled():
-               t.signal = ws.Signal();
+               t.signal = ws.Signal()
        }
 
        // We still need to continue this thread and wait on this
@@ -597,7 +597,7 @@ func (ev *debugEvent) doPtraceExit() (threadState, os.Error) {
 // any running threads.
 func (ev *debugEvent) process() os.Error {
        if ev.err != nil {
-               return ev.err;
+               return ev.err
        }
 
        t := ev.t;
@@ -617,16 +617,16 @@ func (ev *debugEvent) process() os.Error {
                        switch cause := ev.TrapCause(); cause {
                        case 0:
                                // Breakpoint or single stepping
-                               state, err = ev.doTrap();
+                               state, err = ev.doTrap()
 
                        case syscall.PTRACE_EVENT_CLONE:
-                               state, err = ev.doPtraceClone();
+                               state, err = ev.doPtraceClone()
 
                        case syscall.PTRACE_EVENT_EXIT:
-                               state, err = ev.doPtraceExit();
+                               state, err = ev.doPtraceExit()
 
                        default:
-                               t.warn("Unknown trap cause %d", cause);
+                               t.warn("Unknown trap cause %d", cause)
                        }
 
                        if err != nil {
@@ -651,7 +651,7 @@ func (ev *debugEvent) process() os.Error {
                t.signal = ev.Signal();
 
        default:
-               panic(fmt.Sprintf("Unexpected wait status %v", ev.Waitmsg));
+               panic(fmt.Sprintf("Unexpected wait status %v", ev.Waitmsg))
        }
 
        // If we sent a SIGSTOP to the thread (indicated by state
@@ -660,7 +660,7 @@ func (ev *debugEvent) process() os.Error {
        // SIGSTOP we sent is now queued up, so we should ignore the
        // next one we get.
        if t.state == stopping && ev.StopSignal() != syscall.SIGSTOP {
-               t.ignoreNextSigstop = true;
+               t.ignoreNextSigstop = true
        }
 
        // TODO(austin) If we're in state stopping and get a SIGSTOP,
@@ -670,7 +670,7 @@ func (ev *debugEvent) process() os.Error {
 
        if t.proc.someRunningThread() == nil {
                // Nothing is running, uninstall breakpoints
-               return t.proc.uninstallBreakpoints();
+               return t.proc.uninstallBreakpoints()
        }
        // Stop any other running threads
        return t.proc.stopAsync();
@@ -689,9 +689,9 @@ func (t *thread) onStop(handle func(), onErr func(os.Error)) {
        h := &transitionHandler{nil, onErr};
        h.handle = func(st *thread, old, new threadState) {
                if t == st && old.isRunning() && !new.isRunning() {
-                       handle();
+                       handle()
                } else {
-                       t.proc.transitionHandlers.Push(h);
+                       t.proc.transitionHandlers.Push(h)
                }
        };
        t.proc.transitionHandlers.Push(h);
@@ -717,13 +717,13 @@ func (p *process) monitor() {
                p.ready <- true;
                select {
                case event := <-p.debugEvents:
-                       err = event.process();
+                       err = event.process()
 
                case req := <-p.debugReqs:
-                       req.res <- req.f();
+                       req.res <- req.f()
 
                case err = <-p.stopReq:
-                       break;
+                       break
                }
 
                if len(p.threads) == 0 {
@@ -732,7 +732,7 @@ func (p *process) monitor() {
                                err = ProcessExited{};
                        }
                } else {
-                       hadThreads = true;
+                       hadThreads = true
                }
        }
 
@@ -754,7 +754,7 @@ func (p *process) monitor() {
 // Must NOT be called from the monitor thread.
 func (p *process) do(f func() os.Error) os.Error {
        if !<-p.ready {
-               return p.err;
+               return p.err
        }
        req := &debugReq{f, make(chan os.Error)};
        p.debugReqs <- req;
@@ -765,10 +765,10 @@ func (p *process) do(f func() os.Error) os.Error {
 // is already stopped, does nothing.
 func (p *process) stopMonitor(err os.Error) {
        if err == nil {
-               panic("cannot stop the monitor with no error");
+               panic("cannot stop the monitor with no error")
        }
        if <-p.ready {
-               p.stopReq <- err;
+               p.stopReq <- err
        }
 }
 
@@ -781,21 +781,21 @@ func (t *thread) Regs() (Regs, os.Error) {
 
        err := t.proc.do(func() os.Error {
                if !t.state.isStopped() {
-                       return &badState{t, "cannot get registers", t.state};
+                       return &badState{t, "cannot get registers", t.state}
                }
                return t.ptraceGetRegs(&regs);
        });
        if err != nil {
-               return nil, err;
+               return nil, err
        }
 
        setter := func(r *syscall.PtraceRegs) os.Error {
                return t.proc.do(func() os.Error {
                        if !t.state.isStopped() {
-                               return &badState{t, "cannot get registers", t.state};
+                               return &badState{t, "cannot get registers", t.state}
                        }
                        return t.ptraceSetRegs(r);
-               });
+               })
        };
        return newRegs(&regs, setter), nil;
 }
@@ -805,7 +805,7 @@ func (t *thread) Peek(addr Word, out []byte) (int, os.Error) {
 
        err := t.proc.do(func() os.Error {
                if !t.state.isStopped() {
-                       return &badState{t, "cannot peek text", t.state};
+                       return &badState{t, "cannot peek text", t.state}
                }
 
                var err os.Error;
@@ -821,7 +821,7 @@ func (t *thread) Poke(addr Word, out []byte) (int, os.Error) {
 
        err := t.proc.do(func() os.Error {
                if !t.state.isStopped() {
-                       return &badState{t, "cannot poke text", t.state};
+                       return &badState{t, "cannot poke text", t.state}
                }
 
                var err os.Error;
@@ -839,7 +839,7 @@ func (t *thread) Poke(addr Word, out []byte) (int, os.Error) {
 // sends that error on the channel.
 func (t *thread) stepAsync(ready chan os.Error) os.Error {
        if err := t.ptraceStep(); err != nil {
-               return err;
+               return err
        }
        t.setState(singleStepping);
        t.onStop(func() { ready <- nil },
@@ -855,12 +855,12 @@ func (t *thread) Step() os.Error {
 
        err := t.proc.do(func() os.Error {
                if !t.state.isStopped() {
-                       return &badState{t, "cannot single step", t.state};
+                       return &badState{t, "cannot single step", t.state}
                }
                return t.stepAsync(ready);
        });
        if err != nil {
-               return err;
+               return err
        }
 
        err = <-ready;
@@ -882,7 +882,7 @@ var sigNames = [...]string{
 // the signal number is invalid, returns "<invalid>".
 func sigName(signal int) string {
        if signal < 0 || signal >= len(sigNames) {
-               return "<invalid>";
+               return "<invalid>"
        }
        return sigNames[signal];
 }
@@ -892,31 +892,31 @@ func (t *thread) Stopped() (Cause, os.Error) {
        err := t.proc.do(func() os.Error {
                switch t.state {
                case stopped:
-                       c = Stopped{};
+                       c = Stopped{}
 
                case stoppedBreakpoint:
-                       c = Breakpoint(t.breakpoint.pc);
+                       c = Breakpoint(t.breakpoint.pc)
 
                case stoppedSignal:
-                       c = Signal(sigName(t.signal));
+                       c = Signal(sigName(t.signal))
 
                case stoppedThreadCreate:
-                       c = &ThreadCreate{t.newThread};
+                       c = &ThreadCreate{t.newThread}
 
                case stoppedExiting, exiting, exited:
                        if t.signal == -1 {
-                               c = &ThreadExit{t.exitStatus, ""};
+                               c = &ThreadExit{t.exitStatus, ""}
                        } else {
-                               c = &ThreadExit{t.exitStatus, sigName(t.signal)};
+                               c = &ThreadExit{t.exitStatus, sigName(t.signal)}
                        }
 
                default:
-                       return &badState{t, "cannot get stop cause", t.state};
+                       return &badState{t, "cannot get stop cause", t.state}
                }
                return nil;
        });
        if err != nil {
-               return nil, err;
+               return nil, err
        }
 
        return c, nil;
@@ -932,7 +932,7 @@ func (p *process) Threads() []Thread {
                        // Exclude zombie threads.
                        st := t.state;
                        if st == exiting || st == exited || st == detached {
-                               continue;
+                               continue
                        }
 
                        res[i] = t;
@@ -947,27 +947,27 @@ func (p *process) Threads() []Thread {
 func (p *process) AddBreakpoint(pc Word) os.Error {
        return p.do(func() os.Error {
                if t := p.someRunningThread(); t != nil {
-                       return &badState{t, "cannot add breakpoint", t.state};
+                       return &badState{t, "cannot add breakpoint", t.state}
                }
                if _, ok := p.breakpoints[uintptr(pc)]; ok {
-                       return breakpointExistsError(pc);
+                       return breakpointExistsError(pc)
                }
                p.breakpoints[uintptr(pc)] = &breakpoint{pc: uintptr(pc)};
                return nil;
-       });
+       })
 }
 
 func (p *process) RemoveBreakpoint(pc Word) os.Error {
        return p.do(func() os.Error {
                if t := p.someRunningThread(); t != nil {
-                       return &badState{t, "cannot remove breakpoint", t.state};
+                       return &badState{t, "cannot remove breakpoint", t.state}
                }
                if _, ok := p.breakpoints[uintptr(pc)]; !ok {
-                       return noBreakpointError(pc);
+                       return noBreakpointError(pc)
                }
                p.breakpoints[uintptr(pc)] = nil, false;
                return nil;
-       });
+       })
 }
 
 func (p *process) Continue() os.Error {
@@ -984,7 +984,7 @@ func (p *process) Continue() os.Error {
 
                for _, t := range p.threads {
                        if !t.state.isStopped() {
-                               continue;
+                               continue
                        }
 
                        // We use the breakpoint map directly here
@@ -995,12 +995,12 @@ func (p *process) Continue() os.Error {
                        var regs syscall.PtraceRegs;
                        err := t.ptraceGetRegs(&regs);
                        if err != nil {
-                               return err;
+                               return err
                        }
                        if b, ok := p.breakpoints[uintptr(regs.PC())]; ok {
                                t.logTrace("stepping over breakpoint %v", b);
                                if err := t.stepAsync(ready); err != nil {
-                                       return err;
+                                       return err
                                }
                                count++;
                        }
@@ -1025,14 +1025,14 @@ func (p *process) Continue() os.Error {
        // Continue all threads
        err = p.do(func() os.Error {
                if err := p.installBreakpoints(); err != nil {
-                       return err;
+                       return err
                }
 
                for _, t := range p.threads {
                        var err os.Error;
                        switch {
                        case !t.state.isStopped():
-                               continue;
+                               continue
 
                        case t.state == stoppedSignal && t.signal != syscall.SIGSTOP && t.signal != syscall.SIGTRAP:
                                t.logTrace("continuing with signal %d", t.signal);
@@ -1043,12 +1043,12 @@ func (p *process) Continue() os.Error {
                                err = t.ptraceCont();
                        }
                        if err != nil {
-                               return err;
+                               return err
                        }
                        if t.state == stoppedExiting {
-                               t.setState(exiting);
+                               t.setState(exiting)
                        } else {
-                               t.setState(running);
+                               t.setState(running)
                        }
                }
                return nil;
@@ -1091,7 +1091,7 @@ func (p *process) WaitStop() os.Error {
                return nil;
        });
        if err != nil {
-               return err;
+               return err
        }
 
        return <-ready;
@@ -1100,7 +1100,7 @@ func (p *process) WaitStop() os.Error {
 func (p *process) Stop() os.Error {
        err := p.do(func() os.Error { return p.stopAsync() });
        if err != nil {
-               return err;
+               return err
        }
 
        return p.WaitStop();
@@ -1108,19 +1108,19 @@ func (p *process) Stop() os.Error {
 
 func (p *process) Detach() os.Error {
        if err := p.Stop(); err != nil {
-               return err;
+               return err
        }
 
        err := p.do(func() os.Error {
                if err := p.uninstallBreakpoints(); err != nil {
-                       return err;
+                       return err
                }
 
                for pid, t := range p.threads {
                        if t.state.isStopped() {
                                // We can't detach from zombies.
                                if err := t.ptraceDetach(); err != nil {
-                                       return err;
+                                       return err
                                }
                        }
                        t.setState(detached);
@@ -1144,16 +1144,16 @@ func (p *process) newThread(tid int, signal int, cloned bool) (*thread, os.Error
        // TODO(austin) Thread might already be stopped if we're attaching.
        w, err := os.Wait(tid, syscall.WALL);
        if err != nil {
-               return nil, err;
+               return nil, err
        }
        if w.Pid != tid || w.StopSignal() != signal {
-               return nil, &newThreadError{w, tid, signal};
+               return nil, &newThreadError{w, tid, signal}
        }
 
        if !cloned {
                err = t.ptraceSetOptions(syscall.PTRACE_O_TRACECLONE | syscall.PTRACE_O_TRACEEXIT);
                if err != nil {
-                       return nil, err;
+                       return nil, err
                }
        }
 
@@ -1171,7 +1171,7 @@ func (p *process) attachThread(tid int) (*thread, os.Error) {
        err := p.do(func() os.Error {
                errno := syscall.PtraceAttach(tid);
                if errno != 0 {
-                       return os.NewSyscallError("ptrace(ATTACH)", errno);
+                       return os.NewSyscallError("ptrace(ATTACH)", errno)
                }
 
                var err os.Error;
@@ -1186,7 +1186,7 @@ func (p *process) attachAllThreads() os.Error {
        taskPath := "/proc/" + strconv.Itoa(p.pid) + "/task";
        taskDir, err := os.Open(taskPath, os.O_RDONLY, 0);
        if err != nil {
-               return err;
+               return err
        }
        defer taskDir.Close();
 
@@ -1199,16 +1199,16 @@ func (p *process) attachAllThreads() os.Error {
 
                tids, err := taskDir.Readdirnames(-1);
                if err != nil {
-                       return err;
+                       return err
                }
 
                for _, tidStr := range tids {
                        tid, err := strconv.Atoi(tidStr);
                        if err != nil {
-                               return err;
+                               return err
                        }
                        if _, ok := p.threads[tid]; ok {
-                               continue;
+                               continue
                        }
 
                        _, err = p.attachThread(tid);
@@ -1290,9 +1290,9 @@ func ForkExec(argv0 string, argv []string, envv []string, dir string, fd []*os.F
        intfd := make([]int, len(fd));
        for i, f := range fd {
                if f == nil {
-                       intfd[i] = -1;
+                       intfd[i] = -1
                } else {
-                       intfd[i] = f.Fd();
+                       intfd[i] = f.Fd()
                }
        }
 
@@ -1300,7 +1300,7 @@ func ForkExec(argv0 string, argv []string, envv []string, dir string, fd []*os.F
        err := p.do(func() os.Error {
                pid, errno := syscall.PtraceForkExec(argv0, argv, envv, dir, intfd);
                if errno != 0 {
-                       return &os.PathError{"fork/exec", argv0, os.Errno(errno)};
+                       return &os.PathError{"fork/exec", argv0, os.Errno(errno)}
                }
                p.pid = pid;
 
index 6942209a6b47c2f4ec28933ca4c10c77a5781768..c4f6067393a5bd361f5abb2f31a33641817293c7 100644 (file)
@@ -12,9 +12,9 @@ import (
 // Process tracing is not supported on Native Client.
 
 func Attach(pid int) (Process, os.Error) {
-       return nil, os.NewSyscallError("ptrace", syscall.ENACL);
+       return nil, os.NewSyscallError("ptrace", syscall.ENACL)
 }
 
 func ForkExec(argv0 string, argv []string, envv []string, dir string, fd []*os.File) (Process, os.Error) {
-       return nil, os.NewSyscallError("fork/exec", syscall.ENACL);
+       return nil, os.NewSyscallError("fork/exec", syscall.ENACL)
 }
index a665cd4d14dcce79042ae0d1ae1166c5599723e5..abeb45f4b83d9c75a6bf109ac8a38ceb86a57e5e 100644 (file)
@@ -43,7 +43,7 @@ func (r *_386Regs) SetPC(val Word) os.Error {
 
 func (r *_386Regs) Link() Word {
        // TODO(austin)
-       panic("No link register");
+       panic("No link register")
 }
 
 func (r *_386Regs) SetLink(val Word) os.Error  { panic("No link register") }
@@ -60,37 +60,37 @@ func (r *_386Regs) Names() []string { return &names }
 func (r *_386Regs) Get(i int) Word {
        switch i {
        case 0:
-               return Word(uint32(r.Eax));
+               return Word(uint32(r.Eax))
        case 1:
-               return Word(uint32(r.Ebx));
+               return Word(uint32(r.Ebx))
        case 2:
-               return Word(uint32(r.Ecx));
+               return Word(uint32(r.Ecx))
        case 3:
-               return Word(uint32(r.Edx));
+               return Word(uint32(r.Edx))
        case 4:
-               return Word(uint32(r.Esi));
+               return Word(uint32(r.Esi))
        case 5:
-               return Word(uint32(r.Edi));
+               return Word(uint32(r.Edi))
        case 6:
-               return Word(uint32(r.Ebp));
+               return Word(uint32(r.Ebp))
        case 7:
-               return Word(uint32(r.Esp));
+               return Word(uint32(r.Esp))
        case 8:
-               return Word(uint32(r.Eip));
+               return Word(uint32(r.Eip))
        case 9:
-               return Word(uint32(r.Eflags));
+               return Word(uint32(r.Eflags))
        case 10:
-               return Word(r.Cs);
+               return Word(r.Cs)
        case 11:
-               return Word(r.Ss);
+               return Word(r.Ss)
        case 12:
-               return Word(r.Ds);
+               return Word(r.Ds)
        case 13:
-               return Word(r.Es);
+               return Word(r.Es)
        case 14:
-               return Word(r.Fs);
+               return Word(r.Fs)
        case 15:
-               return Word(r.Gs);
+               return Word(r.Gs)
        }
        panic("invalid register index ", strconv.Itoa(i));
 }
@@ -98,39 +98,39 @@ func (r *_386Regs) Get(i int) Word {
 func (r *_386Regs) Set(i int, val Word) os.Error {
        switch i {
        case 0:
-               r.Eax = int32(val);
+               r.Eax = int32(val)
        case 1:
-               r.Ebx = int32(val);
+               r.Ebx = int32(val)
        case 2:
-               r.Ecx = int32(val);
+               r.Ecx = int32(val)
        case 3:
-               r.Edx = int32(val);
+               r.Edx = int32(val)
        case 4:
-               r.Esi = int32(val);
+               r.Esi = int32(val)
        case 5:
-               r.Edi = int32(val);
+               r.Edi = int32(val)
        case 6:
-               r.Ebp = int32(val);
+               r.Ebp = int32(val)
        case 7:
-               r.Esp = int32(val);
+               r.Esp = int32(val)
        case 8:
-               r.Eip = int32(val);
+               r.Eip = int32(val)
        case 9:
-               r.Eflags = int32(val);
+               r.Eflags = int32(val)
        case 10:
-               r.Cs = uint16(val);
+               r.Cs = uint16(val)
        case 11:
-               r.Ss = uint16(val);
+               r.Ss = uint16(val)
        case 12:
-               r.Ds = uint16(val);
+               r.Ds = uint16(val)
        case 13:
-               r.Es = uint16(val);
+               r.Es = uint16(val)
        case 14:
-               r.Fs = uint16(val);
+               r.Fs = uint16(val)
        case 15:
-               r.Gs = uint16(val);
+               r.Gs = uint16(val)
        default:
-               panic("invalid register index ", strconv.Itoa(i));
+               panic("invalid register index ", strconv.Itoa(i))
        }
        return r.setter(&r.PtraceRegs);
 }
index 64559dc9e14c9a5ce0b433b4b2051e7f7a4317fc..63083a948ffbd03d148eb2d188f28254ded03be2 100644 (file)
@@ -57,11 +57,11 @@ func (r *amd64Regs) SetPC(val Word) os.Error {
 
 func (r *amd64Regs) Link() Word {
        // TODO(austin)
-       panic("No link register");
+       panic("No link register")
 }
 
 func (r *amd64Regs) SetLink(val Word) os.Error {
-       panic("No link register");
+       panic("No link register")
 }
 
 func (r *amd64Regs) SP() Word  { return Word(r.Rsp) }
@@ -76,53 +76,53 @@ func (r *amd64Regs) Names() []string        { return &names }
 func (r *amd64Regs) Get(i int) Word {
        switch i {
        case 0:
-               return Word(r.Rax);
+               return Word(r.Rax)
        case 1:
-               return Word(r.Rbx);
+               return Word(r.Rbx)
        case 2:
-               return Word(r.Rcx);
+               return Word(r.Rcx)
        case 3:
-               return Word(r.Rdx);
+               return Word(r.Rdx)
        case 4:
-               return Word(r.Rsi);
+               return Word(r.Rsi)
        case 5:
-               return Word(r.Rdi);
+               return Word(r.Rdi)
        case 6:
-               return Word(r.Rbp);
+               return Word(r.Rbp)
        case 7:
-               return Word(r.Rsp);
+               return Word(r.Rsp)
        case 8:
-               return Word(r.R8);
+               return Word(r.R8)
        case 9:
-               return Word(r.R9);
+               return Word(r.R9)
        case 10:
-               return Word(r.R10);
+               return Word(r.R10)
        case 11:
-               return Word(r.R11);
+               return Word(r.R11)
        case 12:
-               return Word(r.R12);
+               return Word(r.R12)
        case 13:
-               return Word(r.R13);
+               return Word(r.R13)
        case 14:
-               return Word(r.R14);
+               return Word(r.R14)
        case 15:
-               return Word(r.R15);
+               return Word(r.R15)
        case 16:
-               return Word(r.Rip);
+               return Word(r.Rip)
        case 17:
-               return Word(r.Eflags);
+               return Word(r.Eflags)
        case 18:
-               return Word(r.Cs);
+               return Word(r.Cs)
        case 19:
-               return Word(r.Ss);
+               return Word(r.Ss)
        case 20:
-               return Word(r.Ds);
+               return Word(r.Ds)
        case 21:
-               return Word(r.Es);
+               return Word(r.Es)
        case 22:
-               return Word(r.Fs);
+               return Word(r.Fs)
        case 23:
-               return Word(r.Gs);
+               return Word(r.Gs)
        }
        panic("invalid register index ", strconv.Itoa(i));
 }
@@ -130,55 +130,55 @@ func (r *amd64Regs) Get(i int) Word {
 func (r *amd64Regs) Set(i int, val Word) os.Error {
        switch i {
        case 0:
-               r.Rax = uint64(val);
+               r.Rax = uint64(val)
        case 1:
-               r.Rbx = uint64(val);
+               r.Rbx = uint64(val)
        case 2:
-               r.Rcx = uint64(val);
+               r.Rcx = uint64(val)
        case 3:
-               r.Rdx = uint64(val);
+               r.Rdx = uint64(val)
        case 4:
-               r.Rsi = uint64(val);
+               r.Rsi = uint64(val)
        case 5:
-               r.Rdi = uint64(val);
+               r.Rdi = uint64(val)
        case 6:
-               r.Rbp = uint64(val);
+               r.Rbp = uint64(val)
        case 7:
-               r.Rsp = uint64(val);
+               r.Rsp = uint64(val)
        case 8:
-               r.R8 = uint64(val);
+               r.R8 = uint64(val)
        case 9:
-               r.R9 = uint64(val);
+               r.R9 = uint64(val)
        case 10:
-               r.R10 = uint64(val);
+               r.R10 = uint64(val)
        case 11:
-               r.R11 = uint64(val);
+               r.R11 = uint64(val)
        case 12:
-               r.R12 = uint64(val);
+               r.R12 = uint64(val)
        case 13:
-               r.R13 = uint64(val);
+               r.R13 = uint64(val)
        case 14:
-               r.R14 = uint64(val);
+               r.R14 = uint64(val)
        case 15:
-               r.R15 = uint64(val);
+               r.R15 = uint64(val)
        case 16:
-               r.Rip = uint64(val);
+               r.Rip = uint64(val)
        case 17:
-               r.Eflags = uint64(val);
+               r.Eflags = uint64(val)
        case 18:
-               r.Cs = uint64(val);
+               r.Cs = uint64(val)
        case 19:
-               r.Ss = uint64(val);
+               r.Ss = uint64(val)
        case 20:
-               r.Ds = uint64(val);
+               r.Ds = uint64(val)
        case 21:
-               r.Es = uint64(val);
+               r.Es = uint64(val)
        case 22:
-               r.Fs = uint64(val);
+               r.Fs = uint64(val)
        case 23:
-               r.Gs = uint64(val);
+               r.Gs = uint64(val)
        default:
-               panic("invalid register index ", strconv.Itoa(i));
+               panic("invalid register index ", strconv.Itoa(i))
        }
        return r.setter(&r.PtraceRegs);
 }
index ed2834f697642aa33d6e843aeff50569ebb33eb3..e58ab388bd91b7e0e928db17193338cc8530889d 100644 (file)
@@ -30,7 +30,7 @@ func (r *armRegs) Names() []string    { return nil }
 func (r *armRegs) Get(i int) Word      { return Word(0) }
 
 func (r *armRegs) Set(i int, val Word) os.Error {
-       return nil;
+       return nil
 }
 
 func newRegs(regs *syscall.PtraceRegs, setter func(*syscall.PtraceRegs) os.Error) Regs {
index fdbb4b1ea9b653c6c5388ac205d9821b3ef88e0d..0df330181d505671149a00c55f4c7f99f28e763e 100644 (file)
@@ -97,12 +97,12 @@ type (
 
 
 func (x Alternative) Pos() token.Position {
-       return x[0].Pos();      // the parser always generates non-empty Alternative
+       return x[0].Pos()       // the parser always generates non-empty Alternative
 }
 
 
 func (x Sequence) Pos() token.Position {
-       return x[0].Pos();      // the parser always generates non-empty Sequences
+       return x[0].Pos()       // the parser always generates non-empty Sequences
 }
 
 
@@ -155,24 +155,24 @@ func (v *verifier) verifyExpr(expr Expression, lexical bool) {
                // empty expression
        case Alternative:
                for _, e := range x {
-                       v.verifyExpr(e, lexical);
+                       v.verifyExpr(e, lexical)
                }
        case Sequence:
                for _, e := range x {
-                       v.verifyExpr(e, lexical);
+                       v.verifyExpr(e, lexical)
                }
        case *Name:
                // a production with this name must exist;
                // add it to the worklist if not yet processed
                if prod, found := v.grammar[x.String]; found {
-                       v.push(prod);
+                       v.push(prod)
                } else {
-                       v.Error(x.Pos(), "missing production " + x.String);
+                       v.Error(x.Pos(), "missing production " + x.String)
                }
                // within a lexical production references
                // to non-lexical productions are invalid
                if lexical && !isLexical(x.String) {
-                       v.Error(x.Pos(), "reference to non-lexical production " + x.String);
+                       v.Error(x.Pos(), "reference to non-lexical production " + x.String)
                }
        case *Token:
                // nothing to do for now
@@ -180,16 +180,16 @@ func (v *verifier) verifyExpr(expr Expression, lexical bool) {
                i := v.verifyChar(x.Begin);
                j := v.verifyChar(x.End);
                if i >= j {
-                       v.Error(x.Pos(), "decreasing character range");
+                       v.Error(x.Pos(), "decreasing character range")
                }
        case *Group:
-               v.verifyExpr(x.Body, lexical);
+               v.verifyExpr(x.Body, lexical)
        case *Option:
-               v.verifyExpr(x.Body, lexical);
+               v.verifyExpr(x.Body, lexical)
        case *Repetition:
-               v.verifyExpr(x.Body, lexical);
+               v.verifyExpr(x.Body, lexical)
        default:
-               panic("unreachable");
+               panic("unreachable")
        }
 }
 
@@ -220,7 +220,7 @@ func (v *verifier) verify(grammar Grammar, start string) {
        if len(v.reached) < len(v.grammar) {
                for name, prod := range v.grammar {
                        if _, found := v.reached[name]; !found {
-                               v.Error(prod.Pos(), name + " is unreachable");
+                               v.Error(prod.Pos(), name + " is unreachable")
                        }
                }
        }
index 498be622c0b27a295676c9a09bd233e6066e5a26..3eda8d9a3c92154e3d306a83e3ad84a515dff518 100644 (file)
@@ -43,17 +43,17 @@ var grammars = []string{
 func check(t *testing.T, filename string, src []byte) {
        grammar, err := Parse(filename, src);
        if err != nil {
-               t.Errorf("Parse(%s) failed: %v", src, err);
+               t.Errorf("Parse(%s) failed: %v", src, err)
        }
        if err = Verify(grammar, "Program"); err != nil {
-               t.Errorf("Verify(%s) failed: %v", src, err);
+               t.Errorf("Verify(%s) failed: %v", src, err)
        }
 }
 
 
 func TestGrammars(t *testing.T) {
        for _, src := range grammars {
-               check(t, "", strings.Bytes(src));
+               check(t, "", strings.Bytes(src))
        }
 }
 
@@ -67,7 +67,7 @@ func TestFiles(t *testing.T) {
        for _, filename := range files {
                src, err := io.ReadFile(filename);
                if err != nil {
-                       t.Fatal(err);
+                       t.Fatal(err)
                }
                check(t, filename, src);
        }
index 325673caf7e7e05c0179a8ff16f6c797061c850f..8c7b0b1410d0c4bcf7320737347f856bbf6e62dc 100644 (file)
@@ -27,7 +27,7 @@ func (p *parser) next() {
        if p.tok.IsKeyword() {
                // TODO Should keyword mapping always happen outside scanner?
                //      Or should there be a flag to scanner to enable keyword mapping?
-               p.tok = token.IDENT;
+               p.tok = token.IDENT
        }
 }
 
@@ -39,7 +39,7 @@ func (p *parser) errorExpected(pos token.Position, msg string) {
                // make the error message more specific
                msg += ", found '" + p.tok.String() + "'";
                if p.tok.IsLiteral() {
-                       msg += " "+string(p.lit);
+                       msg += " "+string(p.lit)
                }
        }
        p.Error(pos, msg);
@@ -49,7 +49,7 @@ func (p *parser) errorExpected(pos token.Position, msg string) {
 func (p *parser) expect(tok token.Token) token.Position {
        pos := p.pos;
        if p.tok != tok {
-               p.errorExpected(pos, "'" + tok.String() + "'");
+               p.errorExpected(pos, "'" + tok.String() + "'")
        }
        p.next();       // make progress in any case
        return pos;
@@ -74,7 +74,7 @@ func (p *parser) parseToken() *Token {
                // has already been reported.
                p.next();
        } else {
-               p.expect(token.STRING);
+               p.expect(token.STRING)
        }
        return &Token{pos, value};
 }
@@ -85,7 +85,7 @@ func (p *parser) parseTerm() (x Expression) {
 
        switch p.tok {
        case token.IDENT:
-               x = p.parseIdentifier();
+               x = p.parseIdentifier()
 
        case token.STRING:
                tok := p.parseToken();
@@ -120,21 +120,21 @@ func (p *parser) parseSequence() Expression {
        list.Init(0);
 
        for x := p.parseTerm(); x != nil; x = p.parseTerm() {
-               list.Push(x);
+               list.Push(x)
        }
 
        // no need for a sequence if list.Len() < 2
        switch list.Len() {
        case 0:
-               return nil;
+               return nil
        case 1:
-               return list.At(0).(Expression);
+               return list.At(0).(Expression)
        }
 
        // convert list into a sequence
        seq := make(Sequence, list.Len());
        for i := 0; i < list.Len(); i++ {
-               seq[i] = list.At(i).(Expression);
+               seq[i] = list.At(i).(Expression)
        }
        return seq;
 }
@@ -147,10 +147,10 @@ func (p *parser) parseExpression() Expression {
        for {
                x := p.parseSequence();
                if x != nil {
-                       list.Push(x);
+                       list.Push(x)
                }
                if p.tok != token.OR {
-                       break;
+                       break
                }
                p.next();
        }
@@ -158,15 +158,15 @@ func (p *parser) parseExpression() Expression {
        // no need for an Alternative node if list.Len() < 2
        switch list.Len() {
        case 0:
-               return nil;
+               return nil
        case 1:
-               return list.At(0).(Expression);
+               return list.At(0).(Expression)
        }
 
        // convert list into an Alternative node
        alt := make(Alternative, list.Len());
        for i := 0; i < list.Len(); i++ {
-               alt[i] = list.At(i).(Expression);
+               alt[i] = list.At(i).(Expression)
        }
        return alt;
 }
@@ -192,9 +192,9 @@ func (p *parser) parse(filename string, src []byte) Grammar {
                prod := p.parseProduction();
                name := prod.Name.String;
                if _, found := grammar[name]; !found {
-                       grammar[name] = prod;
+                       grammar[name] = prod
                } else {
-                       p.Error(prod.Pos(), name + " declared already");
+                       p.Error(prod.Pos(), name + " declared already")
                }
        }
 
index a1d9f7a7ae216588ad63751aa21bee06e31d8ffe..819b263d07641b0e2ed8f9f3c4e8a84fef91ed32 100644 (file)
@@ -28,7 +28,7 @@ import (
 // Encode does not add these.
 func Encode(dst, src []byte) int {
        if len(src) == 0 {
-               return 0;
+               return 0
        }
 
        n := 0;
@@ -52,7 +52,7 @@ func Encode(dst, src []byte) int {
                        v |= uint32(src[1])<<16;
                        fallthrough;
                case 1:
-                       v |= uint32(src[0])<<24;
+                       v |= uint32(src[0])<<24
                }
 
                // Special case: zero (!!!!!) shortens to z.
@@ -75,7 +75,7 @@ func Encode(dst, src []byte) int {
                        m -= 4-len(src);
                        src = nil;
                } else {
-                       src = src[4:len(src)];
+                       src = src[4:len(src)]
                }
                dst = dst[m:len(dst)];
                n += m;
@@ -103,7 +103,7 @@ type encoder struct {
 
 func (e *encoder) Write(p []byte) (n int, err os.Error) {
        if e.err != nil {
-               return 0, e.err;
+               return 0, e.err
        }
 
        // Leading fringe.
@@ -116,11 +116,11 @@ func (e *encoder) Write(p []byte) (n int, err os.Error) {
                n += i;
                p = p[i:len(p)];
                if e.nbuf < 4 {
-                       return;
+                       return
                }
                nout := Encode(&e.out, &e.buf);
                if _, e.err = e.w.Write(e.out[0:nout]); e.err != nil {
-                       return n, e.err;
+                       return n, e.err
                }
                e.nbuf = 0;
        }
@@ -129,13 +129,13 @@ func (e *encoder) Write(p []byte) (n int, err os.Error) {
        for len(p) >= 4 {
                nn := len(e.out)/5*4;
                if nn > len(p) {
-                       nn = len(p);
+                       nn = len(p)
                }
                nn -= nn%4;
                if nn > 0 {
                        nout := Encode(&e.out, p[0:nn]);
                        if _, e.err = e.w.Write(e.out[0:nout]); e.err != nil {
-                               return n, e.err;
+                               return n, e.err
                        }
                }
                n += nn;
@@ -144,7 +144,7 @@ func (e *encoder) Write(p []byte) (n int, err os.Error) {
 
        // Trailing fringe.
        for i := 0; i < len(p); i++ {
-               e.buf[i] = p[i];
+               e.buf[i] = p[i]
        }
        e.nbuf = len(p);
        n += len(p);
@@ -170,7 +170,7 @@ func (e *encoder) Close() os.Error {
 type CorruptInputError int64
 
 func (e CorruptInputError) String() string {
-       return "illegal ascii85 data at input byte" + strconv.Itoa64(int64(e));
+       return "illegal ascii85 data at input byte" + strconv.Itoa64(int64(e))
 }
 
 // Decode decodes src into dst, returning both the number
@@ -192,11 +192,11 @@ func Decode(dst, src []byte, flush bool) (ndst, nsrc int, err os.Error) {
        var nb int;
        for i, b := range src {
                if len(dst)-ndst < 4 {
-                       return;
+                       return
                }
                switch {
                case b <= ' ':
-                       continue;
+                       continue
                case b == 'z' && nb == 0:
                        nb = 5;
                        v = 0;
@@ -204,7 +204,7 @@ func Decode(dst, src []byte, flush bool) (ndst, nsrc int, err os.Error) {
                        v = v*85 + uint32(b-'!');
                        nb++;
                default:
-                       return 0, 0, CorruptInputError(i);
+                       return 0, 0, CorruptInputError(i)
                }
                if nb == 5 {
                        nsrc = i+1;
@@ -225,13 +225,13 @@ func Decode(dst, src []byte, flush bool) (ndst, nsrc int, err os.Error) {
                        // the extra byte provides enough bits to cover
                        // the inefficiency of the encoding for the block.
                        if nb == 1 {
-                               return 0, 0, CorruptInputError(len(src));
+                               return 0, 0, CorruptInputError(len(src))
                        }
                        for i := nb; i < 5; i++ {
                                // The short encoding truncated the output value.
                                // We have to assume the worst case values (digit 84)
                                // in order to ensure that the top bits are correct.
-                               v = v*85 + 84;
+                               v = v*85 + 84
                        }
                        for i := 0; i < nb-1; i++ {
                                dst[ndst] = byte(v>>24);
@@ -259,10 +259,10 @@ type decoder struct {
 
 func (d *decoder) Read(p []byte) (n int, err os.Error) {
        if len(p) == 0 {
-               return 0, nil;
+               return 0, nil
        }
        if d.err != nil {
-               return 0, d.err;
+               return 0, d.err
        }
 
        for {
@@ -286,7 +286,7 @@ func (d *decoder) Read(p []byte) (n int, err os.Error) {
 
                // Out of input, out of decoded output.  Check errors.
                if d.err != nil {
-                       return 0, d.err;
+                       return 0, d.err
                }
                if d.readErr != nil {
                        d.err = d.readErr;
index fa31a895192a21aa6f656b75d2871cf0d8e8c61b..36cc019d0dda7aabfcac72d5516af6804709f29d 100644 (file)
@@ -85,7 +85,7 @@ func TestEncoderBuffering(t *testing.T) {
                for pos := 0; pos < len(input); pos += bs {
                        end := pos+bs;
                        if end > len(input) {
-                               end = len(input);
+                               end = len(input)
                        }
                        n, err := encoder.Write(input[pos:end]);
                        testEqual(t, "Write(%q) gave error %v, want %v", input[pos:end], err, os.Error(nil));
@@ -113,12 +113,12 @@ func TestDecoder(t *testing.T) {
                decoder := NewDecoder(bytes.NewBufferString(p.encoded));
                dbuf, err := io.ReadAll(decoder);
                if err != nil {
-                       t.Fatal("Read failed", err);
+                       t.Fatal("Read failed", err)
                }
                testEqual(t, "Read from %q = length %v, want %v", p.encoded, len(dbuf), len(p.decoded));
                testEqual(t, "Decoding of %q = %q, want %q", p.encoded, string(dbuf), p.decoded);
                if err != nil {
-                       testEqual(t, "Read from %q = %v, want %v", p.encoded, err, os.EOF);
+                       testEqual(t, "Read from %q = %v, want %v", p.encoded, err, os.EOF)
                }
        }
 }
@@ -152,9 +152,9 @@ func TestDecodeCorrupt(t *testing.T) {
                _, _, err := Decode(dbuf, strings.Bytes(e.e), true);
                switch err := err.(type) {
                case CorruptInputError:
-                       testEqual(t, "Corruption in %q at offset %v, want %v", e.e, int(err), e.p);
+                       testEqual(t, "Corruption in %q at offset %v, want %v", e.e, int(err), e.p)
                default:
-                       t.Error("Decoder failed to detect corruption in", e);
+                       t.Error("Decoder failed to detect corruption in", e)
                }
        }
 }
@@ -164,28 +164,28 @@ func TestBig(t *testing.T) {
        raw := make([]byte, n);
        const alpha = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
        for i := 0; i < n; i++ {
-               raw[i] = alpha[i%len(alpha)];
+               raw[i] = alpha[i%len(alpha)]
        }
        encoded := new(bytes.Buffer);
        w := NewEncoder(encoded);
        nn, err := w.Write(raw);
        if nn != n || err != nil {
-               t.Fatalf("Encoder.Write(raw) = %d, %v want %d, nil", nn, err, n);
+               t.Fatalf("Encoder.Write(raw) = %d, %v want %d, nil", nn, err, n)
        }
        err = w.Close();
        if err != nil {
-               t.Fatalf("Encoder.Close() = %v want nil", err);
+               t.Fatalf("Encoder.Close() = %v want nil", err)
        }
        decoded, err := io.ReadAll(NewDecoder(encoded));
        if err != nil {
-               t.Fatalf("io.ReadAll(NewDecoder(...)): %v", err);
+               t.Fatalf("io.ReadAll(NewDecoder(...)): %v", err)
        }
 
        if !bytes.Equal(raw, decoded) {
                var i int;
                for i = 0; i < len(decoded) && i < len(raw); i++ {
                        if decoded[i] != raw[i] {
-                               break;
+                               break
                        }
                }
                t.Errorf("Decode(Encode(%d-byte string)) failed at offset %d", n, i);
index 33010aa1b149d650d6c3a7515d622f98b36ed320..83521ad45ced47e27771ecc998092b6fa9c6bd31 100644 (file)
@@ -35,10 +35,10 @@ func NewEncoding(encoder string) *Encoding {
        e := new(Encoding);
        e.encode = encoder;
        for i := 0; i < len(e.decodeMap); i++ {
-               e.decodeMap[i] = 0xFF;
+               e.decodeMap[i] = 0xFF
        }
        for i := 0; i < len(encoder); i++ {
-               e.decodeMap[encoder[i]] = byte(i);
+               e.decodeMap[encoder[i]] = byte(i)
        }
        return e;
 }
@@ -63,7 +63,7 @@ var URLEncoding = NewEncoding(encodeURL)
 // of a large data stream.  Use NewEncoder() instead.
 func (enc *Encoding) Encode(dst, src []byte) {
        if len(src) == 0 {
-               return;
+               return
        }
 
        for len(src) > 0 {
@@ -90,14 +90,14 @@ func (enc *Encoding) Encode(dst, src []byte) {
 
                // Encode 6-bit blocks using the base64 alphabet
                for j := 0; j < 4; j++ {
-                       dst[j] = enc.encode[dst[j]];
+                       dst[j] = enc.encode[dst[j]]
                }
 
                // Pad the final quantum
                if len(src) < 3 {
                        dst[3] = '=';
                        if len(src) < 2 {
-                               dst[2] = '=';
+                               dst[2] = '='
                        }
                        break;
                }
@@ -118,7 +118,7 @@ type encoder struct {
 
 func (e *encoder) Write(p []byte) (n int, err os.Error) {
        if e.err != nil {
-               return 0, e.err;
+               return 0, e.err
        }
 
        // Leading fringe.
@@ -131,11 +131,11 @@ func (e *encoder) Write(p []byte) (n int, err os.Error) {
                n += i;
                p = p[i:len(p)];
                if e.nbuf < 3 {
-                       return;
+                       return
                }
                e.enc.Encode(&e.out, &e.buf);
                if _, e.err = e.w.Write(e.out[0:4]); e.err != nil {
-                       return n, e.err;
+                       return n, e.err
                }
                e.nbuf = 0;
        }
@@ -144,13 +144,13 @@ func (e *encoder) Write(p []byte) (n int, err os.Error) {
        for len(p) >= 3 {
                nn := len(e.out)/4*3;
                if nn > len(p) {
-                       nn = len(p);
+                       nn = len(p)
                }
                nn -= nn%3;
                if nn > 0 {
                        e.enc.Encode(&e.out, p[0:nn]);
                        if _, e.err = e.w.Write(e.out[0 : nn/3*4]); e.err != nil {
-                               return n, e.err;
+                               return n, e.err
                        }
                }
                n += nn;
@@ -159,7 +159,7 @@ func (e *encoder) Write(p []byte) (n int, err os.Error) {
 
        // Trailing fringe.
        for i := 0; i < len(p); i++ {
-               e.buf[i] = p[i];
+               e.buf[i] = p[i]
        }
        e.nbuf = len(p);
        n += len(p);
@@ -184,7 +184,7 @@ func (e *encoder) Close() os.Error {
 // writing, the caller must Close the returned encoder to flush any
 // partially written blocks.
 func NewEncoder(enc *Encoding, w io.Writer) io.WriteCloser {
-       return &encoder{enc: enc, w: w};
+       return &encoder{enc: enc, w: w}
 }
 
 // EncodedLen returns the length in bytes of the base64 encoding
@@ -198,7 +198,7 @@ func (enc *Encoding) EncodedLen(n int) int  { return (n+2)/3*4 }
 type CorruptInputError int64
 
 func (e CorruptInputError) String() string {
-       return "illegal base64 data at input byte" + strconv.Itoa64(int64(e));
+       return "illegal base64 data at input byte" + strconv.Itoa64(int64(e))
 }
 
 // decode is like Decode but returns an additional 'end' value, which
@@ -218,7 +218,7 @@ func (enc *Encoding) decode(dst, src []byte) (n int, end bool, err os.Error) {
                                // We've reached the end and there's
                                // padding
                                if src[i*4 + 3] != '=' {
-                                       return n, false, CorruptInputError(i*4 + 2);
+                                       return n, false, CorruptInputError(i*4 + 2)
                                }
                                dlen = j;
                                end = true;
@@ -226,7 +226,7 @@ func (enc *Encoding) decode(dst, src []byte) (n int, end bool, err os.Error) {
                        }
                        dbuf[j] = enc.decodeMap[in];
                        if dbuf[j] == 0xFF {
-                               return n, false, CorruptInputError(i*4 + j);
+                               return n, false, CorruptInputError(i*4 + j)
                        }
                }
 
@@ -240,7 +240,7 @@ func (enc *Encoding) decode(dst, src []byte) (n int, end bool, err os.Error) {
                        dst[i*3 + 1] = dbuf[1]<<4 | dbuf[2]>>2;
                        fallthrough;
                case 2:
-                       dst[i*3 + 0] = dbuf[0]<<2 | dbuf[1]>>4;
+                       dst[i*3 + 0] = dbuf[0]<<2 | dbuf[1]>>4
                }
                n += dlen-1;
        }
@@ -254,7 +254,7 @@ func (enc *Encoding) decode(dst, src []byte) (n int, end bool, err os.Error) {
 // number of bytes successfully written and CorruptInputError.
 func (enc *Encoding) Decode(dst, src []byte) (n int, err os.Error) {
        if len(src)%4 != 0 {
-               return 0, CorruptInputError(len(src)/4*4);
+               return 0, CorruptInputError(len(src)/4*4)
        }
 
        n, _, err = enc.decode(dst, src);
@@ -274,7 +274,7 @@ type decoder struct {
 
 func (d *decoder) Read(p []byte) (n int, err os.Error) {
        if d.err != nil {
-               return 0, d.err;
+               return 0, d.err
        }
 
        // Use leftover decoded output from last read.
@@ -287,15 +287,15 @@ func (d *decoder) Read(p []byte) (n int, err os.Error) {
        // Read a chunk.
        nn := len(p)/3*4;
        if nn < 4 {
-               nn = 4;
+               nn = 4
        }
        if nn > len(d.buf) {
-               nn = len(d.buf);
+               nn = len(d.buf)
        }
        nn, d.err = io.ReadAtLeast(d.r, d.buf[d.nbuf : nn], 4 - d.nbuf);
        d.nbuf += nn;
        if d.nbuf < 4 {
-               return 0, d.err;
+               return 0, d.err
        }
 
        // Decode chunk into p, or d.out and then p if p is too small.
@@ -307,22 +307,22 @@ func (d *decoder) Read(p []byte) (n int, err os.Error) {
                n = bytes.Copy(p, d.out);
                d.out = d.out[n:len(d.out)];
        } else {
-               n, d.end, d.err = d.enc.decode(p, d.buf[0:nr]);
+               n, d.end, d.err = d.enc.decode(p, d.buf[0:nr])
        }
        d.nbuf -= nr;
        for i := 0; i < d.nbuf; i++ {
-               d.buf[i] = d.buf[i+nr];
+               d.buf[i] = d.buf[i+nr]
        }
 
        if d.err == nil {
-               d.err = err;
+               d.err = err
        }
        return n, d.err;
 }
 
 // NewDecoder constructs a new base64 stream decoder.
 func NewDecoder(enc *Encoding, r io.Reader) io.Reader {
-       return &decoder{enc: enc, r: r};
+       return &decoder{enc: enc, r: r}
 }
 
 // DecodeLen returns the maximum length in bytes of the decoded data
index 8cd7e875fe6dcb7cb01b8762477e578764e6bc05..2eb658bacbc3c89a5fc05744954cb2c1bed76340 100644 (file)
@@ -85,7 +85,7 @@ func TestEncoderBuffering(t *testing.T) {
                for pos := 0; pos < len(input); pos += bs {
                        end := pos+bs;
                        if end > len(input) {
-                               end = len(input);
+                               end = len(input)
                        }
                        n, err := encoder.Write(input[pos:end]);
                        testEqual(t, "Write(%q) gave error %v, want %v", input[pos:end], err, os.Error(nil));
@@ -104,7 +104,7 @@ func TestDecode(t *testing.T) {
                testEqual(t, "Decode(%q) = error %v, want %v", p.encoded, err, os.Error(nil));
                testEqual(t, "Decode(%q) = length %v, want %v", p.encoded, count, len(p.decoded));
                if len(p.encoded) > 0 {
-                       testEqual(t, "Decode(%q) = end %v, want %v", p.encoded, end, (p.encoded[len(p.encoded)-1] == '='));
+                       testEqual(t, "Decode(%q) = end %v, want %v", p.encoded, end, (p.encoded[len(p.encoded)-1] == '='))
                }
                testEqual(t, "Decode(%q) = %q, want %q", p.encoded, string(dbuf[0:count]), p.decoded);
        }
@@ -116,12 +116,12 @@ func TestDecoder(t *testing.T) {
                dbuf := make([]byte, StdEncoding.DecodedLen(len(p.encoded)));
                count, err := decoder.Read(dbuf);
                if err != nil && err != os.EOF {
-                       t.Fatal("Read failed", err);
+                       t.Fatal("Read failed", err)
                }
                testEqual(t, "Read from %q = length %v, want %v", p.encoded, count, len(p.decoded));
                testEqual(t, "Decoding of %q = %q, want %q", p.encoded, string(dbuf[0:count]), p.decoded);
                if err != os.EOF {
-                       count, err = decoder.Read(dbuf);
+                       count, err = decoder.Read(dbuf)
                }
                testEqual(t, "Read from %q = %v, want %v", p.encoded, err, os.EOF);
        }
@@ -160,9 +160,9 @@ func TestDecodeCorrupt(t *testing.T) {
                _, err := StdEncoding.Decode(dbuf, strings.Bytes(e.e));
                switch err := err.(type) {
                case CorruptInputError:
-                       testEqual(t, "Corruption in %q at offset %v, want %v", e.e, int(err), e.p);
+                       testEqual(t, "Corruption in %q at offset %v, want %v", e.e, int(err), e.p)
                default:
-                       t.Error("Decoder failed to detect corruption in", e);
+                       t.Error("Decoder failed to detect corruption in", e)
                }
        }
 }
@@ -172,28 +172,28 @@ func TestBig(t *testing.T) {
        raw := make([]byte, n);
        const alpha = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
        for i := 0; i < n; i++ {
-               raw[i] = alpha[i%len(alpha)];
+               raw[i] = alpha[i%len(alpha)]
        }
        encoded := new(bytes.Buffer);
        w := NewEncoder(StdEncoding, encoded);
        nn, err := w.Write(raw);
        if nn != n || err != nil {
-               t.Fatalf("Encoder.Write(raw) = %d, %v want %d, nil", nn, err, n);
+               t.Fatalf("Encoder.Write(raw) = %d, %v want %d, nil", nn, err, n)
        }
        err = w.Close();
        if err != nil {
-               t.Fatalf("Encoder.Close() = %v want nil", err);
+               t.Fatalf("Encoder.Close() = %v want nil", err)
        }
        decoded, err := io.ReadAll(NewDecoder(StdEncoding, encoded));
        if err != nil {
-               t.Fatalf("io.ReadAll(NewDecoder(...)): %v", err);
+               t.Fatalf("io.ReadAll(NewDecoder(...)): %v", err)
        }
 
        if !bytes.Equal(raw, decoded) {
                var i int;
                for i = 0; i < len(decoded) && i < len(raw); i++ {
                        if decoded[i] != raw[i] {
-                               break;
+                               break
                        }
                }
                t.Errorf("Decode(Encode(%d-byte string)) failed at offset %d", n, i);
index 6907fa02cdafc9af3f716db7eea36cc93ff83c7c..62d42a6b8cde69e03beabfdb147d0ace741bacbb 100644 (file)
@@ -42,7 +42,7 @@ func (littleEndian) PutUint16(b []byte, v uint16) {
 }
 
 func (littleEndian) Uint32(b []byte) uint32 {
-       return uint32(b[0]) | uint32(b[1])<<8 | uint32(b[2])<<16 | uint32(b[3])<<24;
+       return uint32(b[0]) | uint32(b[1])<<8 | uint32(b[2])<<16 | uint32(b[3])<<24
 }
 
 func (littleEndian) PutUint32(b []byte, v uint32) {
@@ -54,7 +54,7 @@ func (littleEndian) PutUint32(b []byte, v uint32) {
 
 func (littleEndian) Uint64(b []byte) uint64 {
        return uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 |
-               uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56;
+               uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56
 }
 
 func (littleEndian) PutUint64(b []byte, v uint64) {
@@ -82,7 +82,7 @@ func (bigEndian) PutUint16(b []byte, v uint16) {
 }
 
 func (bigEndian) Uint32(b []byte) uint32 {
-       return uint32(b[3]) | uint32(b[2])<<8 | uint32(b[1])<<16 | uint32(b[0])<<24;
+       return uint32(b[3]) | uint32(b[2])<<8 | uint32(b[1])<<16 | uint32(b[0])<<24
 }
 
 func (bigEndian) PutUint32(b []byte, v uint32) {
@@ -94,7 +94,7 @@ func (bigEndian) PutUint32(b []byte, v uint32) {
 
 func (bigEndian) Uint64(b []byte) uint64 {
        return uint64(b[7]) | uint64(b[6])<<8 | uint64(b[5])<<16 | uint64(b[4])<<24 |
-               uint64(b[3])<<32 | uint64(b[2])<<40 | uint64(b[1])<<48 | uint64(b[0])<<56;
+               uint64(b[3])<<32 | uint64(b[2])<<40 | uint64(b[1])<<48 | uint64(b[0])<<56
 }
 
 func (bigEndian) PutUint64(b []byte, v uint64) {
@@ -123,11 +123,11 @@ func Read(r io.Reader, order ByteOrder, data interface{}) os.Error {
        v := reflect.NewValue(data).(*reflect.PtrValue).Elem();
        size := sizeof(v.Type());
        if size < 0 {
-               return os.NewError("binary.Read: invalid type " + v.Type().String());
+               return os.NewError("binary.Read: invalid type " + v.Type().String())
        }
        d := &decoder{order: order, buf: make([]byte, size)};
        if _, err := io.ReadFull(r, d.buf); err != nil {
-               return err;
+               return err
        }
        d.value(v);
        return nil;
@@ -138,7 +138,7 @@ func sizeof(t reflect.Type) int {
        case *reflect.ArrayType:
                n := sizeof(t.Elem());
                if n < 0 {
-                       return -1;
+                       return -1
                }
                return t.Len() * n;
 
@@ -147,32 +147,32 @@ func sizeof(t reflect.Type) int {
                for i, n := 0, t.NumField(); i < n; i++ {
                        s := sizeof(t.Field(i).Type);
                        if s < 0 {
-                               return -1;
+                               return -1
                        }
                        sum += s;
                }
                return sum;
 
        case *reflect.Uint8Type:
-               return 1;
+               return 1
        case *reflect.Uint16Type:
-               return 2;
+               return 2
        case *reflect.Uint32Type:
-               return 4;
+               return 4
        case *reflect.Uint64Type:
-               return 8;
+               return 8
        case *reflect.Int8Type:
-               return 1;
+               return 1
        case *reflect.Int16Type:
-               return 2;
+               return 2
        case *reflect.Int32Type:
-               return 4;
+               return 4
        case *reflect.Int64Type:
-               return 8;
+               return 8
        case *reflect.Float32Type:
-               return 4;
+               return 4
        case *reflect.Float64Type:
-               return 8;
+               return 8
        }
        return -1;
 }
@@ -219,33 +219,33 @@ func (d *decoder) value(v reflect.Value) {
        case *reflect.ArrayValue:
                l := v.Len();
                for i := 0; i < l; i++ {
-                       d.value(v.Elem(i));
+                       d.value(v.Elem(i))
                }
        case *reflect.StructValue:
                l := v.NumField();
                for i := 0; i < l; i++ {
-                       d.value(v.Field(i));
+                       d.value(v.Field(i))
                }
 
        case *reflect.Uint8Value:
-               v.Set(d.uint8());
+               v.Set(d.uint8())
        case *reflect.Uint16Value:
-               v.Set(d.uint16());
+               v.Set(d.uint16())
        case *reflect.Uint32Value:
-               v.Set(d.uint32());
+               v.Set(d.uint32())
        case *reflect.Uint64Value:
-               v.Set(d.uint64());
+               v.Set(d.uint64())
        case *reflect.Int8Value:
-               v.Set(d.int8());
+               v.Set(d.int8())
        case *reflect.Int16Value:
-               v.Set(d.int16());
+               v.Set(d.int16())
        case *reflect.Int32Value:
-               v.Set(d.int32());
+               v.Set(d.int32())
        case *reflect.Int64Value:
-               v.Set(d.int64());
+               v.Set(d.int64())
        case *reflect.Float32Value:
-               v.Set(math.Float32frombits(d.uint32()));
+               v.Set(math.Float32frombits(d.uint32()))
        case *reflect.Float64Value:
-               v.Set(math.Float64frombits(d.uint64()));
+               v.Set(math.Float64frombits(d.uint64()))
        }
 }
index a04684b72bf8cfa9700a10f4979ff8ab467f1790..078a13a5305be2191bbf94624fe6b89bad0d8ab6 100644 (file)
@@ -72,15 +72,15 @@ func TestRead(t *testing.T) {
                goto little;
        }
        if !reflect.DeepEqual(sb, s) {
-               t.Errorf("Read big-endian:\n\thave %+v\n\twant %+v", sb, s);
+               t.Errorf("Read big-endian:\n\thave %+v\n\twant %+v", sb, s)
        }
 
 little:
        err = Read(bytes.NewBuffer(little), LittleEndian, &sl);
        if err != nil {
-               t.Errorf("Read little-endian: %v", err);
+               t.Errorf("Read little-endian: %v", err)
        }
        if !reflect.DeepEqual(sl, s) {
-               t.Errorf("Read big-endian:\n\thave %+v\n\twant %+v", sl, s);
+               t.Errorf("Read big-endian:\n\thave %+v\n\twant %+v", sl, s)
        }
 }
index e49251fb3a70bc78e53ce7b9224755965df54559..d9c72e83c1ba1ddb10cfc1dff6d29e289f1ae516 100644 (file)
@@ -16,7 +16,7 @@ import (
 type CorruptInputError int64
 
 func (e CorruptInputError) String() string {
-       return "illegal git85 data at input byte" + strconv.Itoa64(int64(e));
+       return "illegal git85 data at input byte" + strconv.Itoa64(int64(e))
 }
 
 const encode = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz!#$%&()*+-;<=>?@^_`{|}~"
@@ -53,18 +53,18 @@ func Encode(dst, src []byte) int {
        for len(src) > 0 {
                n := len(src);
                if n > 52 {
-                       n = 52;
+                       n = 52
                }
                if n <= 27 {
-                       dst[ndst] = byte('A'+n-1);
+                       dst[ndst] = byte('A'+n-1)
                } else {
-                       dst[ndst] = byte('a'+n-26-1);
+                       dst[ndst] = byte('a'+n-26-1)
                }
                ndst++;
                for i := 0; i < n; i += 4 {
                        var v uint32;
                        for j := 0; j < 4 && i+j < n; j++ {
-                               v |= uint32(src[i+j])<<uint(24 - j*8);
+                               v |= uint32(src[i+j])<<uint(24 - j*8)
                        }
                        for j := 4; j >= 0; j-- {
                                dst[ndst+j] = encode[v%85];
@@ -82,7 +82,7 @@ func Encode(dst, src []byte) int {
 // EncodedLen returns the length of an encoding of n source bytes.
 func EncodedLen(n int) int {
        if n == 0 {
-               return 0;
+               return 0
        }
        // 5 bytes per 4 bytes of input, rounded up.
        // 2 extra bytes for each line of 52 src bytes, rounded up.
@@ -103,18 +103,18 @@ func Decode(dst, src []byte) (n int, err os.Error) {
                var l int;
                switch ch := int(src[nsrc]); {
                case 'A' <= ch && ch <= 'Z':
-                       l = ch-'A'+1;
+                       l = ch-'A'+1
                case 'a' <= ch && ch <= 'z':
-                       l = ch-'a'+26+1;
+                       l = ch-'a'+26+1
                default:
-                       return ndst, CorruptInputError(nsrc);
+                       return ndst, CorruptInputError(nsrc)
                }
                if nsrc+1+l > len(src) {
-                       return ndst, CorruptInputError(nsrc);
+                       return ndst, CorruptInputError(nsrc)
                }
                el := (l+3)/4*5;        // encoded len
                if nsrc+1+el+1 > len(src) || src[nsrc+1+el] != '\n' {
-                       return ndst, CorruptInputError(nsrc);
+                       return ndst, CorruptInputError(nsrc)
                }
                line := src[nsrc+1 : nsrc+1+el];
                for i := 0; i < el; i += 5 {
@@ -122,7 +122,7 @@ func Decode(dst, src []byte) (n int, err os.Error) {
                        for j := 0; j < 5; j++ {
                                ch := decode[line[i+j]];
                                if ch == 0 {
-                                       return ndst, CorruptInputError(nsrc+1+i+j);
+                                       return ndst, CorruptInputError(nsrc+1+i+j)
                                }
                                v = v*85 + uint32(ch-1);
                        }
@@ -135,7 +135,7 @@ func Decode(dst, src []byte) (n int, err os.Error) {
                // Last fragment may have run too far (but there was room in dst).
                // Back up.
                if l%4 != 0 {
-                       ndst -= 4 - l%4;
+                       ndst -= 4 - l%4
                }
                nsrc += 1+el+1;
        }
@@ -162,7 +162,7 @@ type encoder struct {
 
 func (e *encoder) Write(p []byte) (n int, err os.Error) {
        if e.err != nil {
-               return 0, e.err;
+               return 0, e.err
        }
 
        // Leading fringe.
@@ -175,11 +175,11 @@ func (e *encoder) Write(p []byte) (n int, err os.Error) {
                n += i;
                p = p[i:len(p)];
                if e.nbuf < 52 {
-                       return;
+                       return
                }
                nout := Encode(&e.out, &e.buf);
                if _, e.err = e.w.Write(e.out[0:nout]); e.err != nil {
-                       return n, e.err;
+                       return n, e.err
                }
                e.nbuf = 0;
        }
@@ -188,12 +188,12 @@ func (e *encoder) Write(p []byte) (n int, err os.Error) {
        for len(p) >= 52 {
                nn := len(e.out)/(1 + 52/4*5 + 1)*52;
                if nn > len(p) {
-                       nn = len(p)/52*52;
+                       nn = len(p)/52*52
                }
                if nn > 0 {
                        nout := Encode(&e.out, p[0:nn]);
                        if _, e.err = e.w.Write(e.out[0:nout]); e.err != nil {
-                               return n, e.err;
+                               return n, e.err
                        }
                }
                n += nn;
@@ -202,7 +202,7 @@ func (e *encoder) Write(p []byte) (n int, err os.Error) {
 
        // Trailing fringe.
        for i := 0; i < len(p); i++ {
-               e.buf[i] = p[i];
+               e.buf[i] = p[i]
        }
        e.nbuf = len(p);
        n += len(p);
@@ -235,7 +235,7 @@ type decoder struct {
 
 func (d *decoder) Read(p []byte) (n int, err os.Error) {
        if len(p) == 0 {
-               return 0, nil;
+               return 0, nil
        }
 
        for {
@@ -248,7 +248,7 @@ func (d *decoder) Read(p []byte) (n int, err os.Error) {
 
                // Out of decoded output.  Check errors.
                if d.err != nil {
-                       return 0, d.err;
+                       return 0, d.err
                }
                if d.readErr != nil {
                        d.err = d.readErr;
@@ -263,11 +263,11 @@ func (d *decoder) Read(p []byte) (n int, err os.Error) {
                // Send complete lines to Decode.
                nl := bytes.LastIndex(d.buf[0 : d.nbuf], newline);
                if nl < 0 {
-                       continue;
+                       continue
                }
                nn, d.err = Decode(&d.outbuf, d.buf[0 : nl+1]);
                if e, ok := d.err.(CorruptInputError); ok {
-                       d.err = CorruptInputError(int64(e) + d.off);
+                       d.err = CorruptInputError(int64(e) + d.off)
                }
                d.out = d.outbuf[0:nn];
                d.nbuf = bytes.Copy(&d.buf, d.buf[nl+1 : d.nbuf]);
index fbe675e8113c6189e6a87bc12e5d4a7b2725ab47..d956ed4ae9224092cb6fe38ed042f43a6ad3851b 100644 (file)
@@ -32,13 +32,13 @@ func TestGitTable(t *testing.T) {
        var saw [256]bool;
        for i, c := range encode {
                if decode[c] != uint8(i+1) {
-                       t.Errorf("decode['%c'] = %d, want %d", c, decode[c], i+1);
+                       t.Errorf("decode['%c'] = %d, want %d", c, decode[c], i+1)
                }
                saw[c] = true;
        }
        for i, b := range saw {
                if !b && decode[i] != 0 {
-                       t.Errorf("decode[%d] = %d, want 0", i, decode[i]);
+                       t.Errorf("decode[%d] = %d, want 0", i, decode[i])
                }
        }
 }
@@ -67,7 +67,7 @@ func TestEncode(t *testing.T) {
                buf := make([]byte, EncodedLen(len(p.decoded)));
                n := Encode(buf, strings.Bytes(p.decoded));
                if n != len(buf) {
-                       t.Errorf("EncodedLen does not agree with Encode");
+                       t.Errorf("EncodedLen does not agree with Encode")
                }
                buf = buf[0:n];
                testEqual(t, "Encode(%q) = %q, want %q", p.decoded, string(buf), p.encoded);
@@ -92,7 +92,7 @@ func TestEncoderBuffering(t *testing.T) {
                for pos := 0; pos < len(input); pos += bs {
                        end := pos+bs;
                        if end > len(input) {
-                               end = len(input);
+                               end = len(input)
                        }
                        n, err := encoder.Write(input[pos:end]);
                        testEqual(t, "Write(%q) gave error %v, want %v", input[pos:end], err, os.Error(nil));
@@ -119,12 +119,12 @@ func TestDecoder(t *testing.T) {
                decoder := NewDecoder(bytes.NewBufferString(p.encoded));
                dbuf, err := io.ReadAll(decoder);
                if err != nil {
-                       t.Fatal("Read failed", err);
+                       t.Fatal("Read failed", err)
                }
                testEqual(t, "Read from %q = length %v, want %v", p.encoded, len(dbuf), len(p.decoded));
                testEqual(t, "Decoding of %q = %q, want %q", p.encoded, string(dbuf), p.decoded);
                if err != nil {
-                       testEqual(t, "Read from %q = %v, want %v", p.encoded, err, os.EOF);
+                       testEqual(t, "Read from %q = %v, want %v", p.encoded, err, os.EOF)
                }
        }
 }
@@ -158,9 +158,9 @@ func TestDecodeCorrupt(t *testing.T) {
                _, err := Decode(dbuf, strings.Bytes(e.e));
                switch err := err.(type) {
                case CorruptInputError:
-                       testEqual(t, "Corruption in %q at offset %v, want %v", e.e, int(err), e.p);
+                       testEqual(t, "Corruption in %q at offset %v, want %v", e.e, int(err), e.p)
                default:
-                       t.Error("Decoder failed to detect corruption in", e);
+                       t.Error("Decoder failed to detect corruption in", e)
                }
        }
 }
@@ -170,28 +170,28 @@ func TestGitBig(t *testing.T) {
        raw := make([]byte, n);
        const alpha = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
        for i := 0; i < n; i++ {
-               raw[i] = alpha[i%len(alpha)];
+               raw[i] = alpha[i%len(alpha)]
        }
        encoded := new(bytes.Buffer);
        w := NewEncoder(encoded);
        nn, err := w.Write(raw);
        if nn != n || err != nil {
-               t.Fatalf("Encoder.Write(raw) = %d, %v want %d, nil", nn, err, n);
+               t.Fatalf("Encoder.Write(raw) = %d, %v want %d, nil", nn, err, n)
        }
        err = w.Close();
        if err != nil {
-               t.Fatalf("Encoder.Close() = %v want nil", err);
+               t.Fatalf("Encoder.Close() = %v want nil", err)
        }
        decoded, err := io.ReadAll(NewDecoder(encoded));
        if err != nil {
-               t.Fatalf("io.ReadAll(NewDecoder(...)): %v", err);
+               t.Fatalf("io.ReadAll(NewDecoder(...)): %v", err)
        }
 
        if !bytes.Equal(raw, decoded) {
                var i int;
                for i = 0; i < len(decoded) && i < len(raw); i++ {
                        if decoded[i] != raw[i] {
-                               break;
+                               break
                        }
                }
                t.Errorf("Decode(Encode(%d-byte string)) failed at offset %d", n, i);
index ff55dd489a5f45d4ae229fc9ece8a80e1838ad1e..d97723db1f0a86689dddfd555b470f6f03f59c91 100644 (file)
@@ -38,7 +38,7 @@ func (OddLengthInputError) String() string    { return "odd length hex string" }
 type InvalidHexCharError byte
 
 func (e InvalidHexCharError) String() string {
-       return "invalid hex char: " + strconv.Itoa(int(e));
+       return "invalid hex char: " + strconv.Itoa(int(e))
 }
 
 
@@ -51,17 +51,17 @@ func DecodedLen(x int) int  { return x/2 }
 // InvalidHexCharError.
 func Decode(dst, src []byte) (int, os.Error) {
        if len(src)%2 == 1 {
-               return 0, OddLengthInputError{};
+               return 0, OddLengthInputError{}
        }
 
        for i := 0; i < len(src)/2; i++ {
                a, ok := fromHexChar(src[i*2]);
                if !ok {
-                       return 0, InvalidHexCharError(src[i*2]);
+                       return 0, InvalidHexCharError(src[i*2])
                }
                b, ok := fromHexChar(src[i*2 + 1]);
                if !ok {
-                       return 0, InvalidHexCharError(src[i*2 + 1]);
+                       return 0, InvalidHexCharError(src[i*2 + 1])
                }
                dst[i] = (a<<4)|b;
        }
@@ -73,11 +73,11 @@ func Decode(dst, src []byte) (int, os.Error) {
 func fromHexChar(c byte) (byte, bool) {
        switch {
        case 0 <= c && c <= '9':
-               return c-'0', true;
+               return c-'0', true
        case 'a' <= c && c <= 'f':
-               return c-'a'+10, true;
+               return c-'a'+10, true
        case 'A' <= c && c <= 'F':
-               return c-'A'+10, true;
+               return c-'A'+10, true
        }
 
        return 0, false;
@@ -96,7 +96,7 @@ func DecodeString(s string) ([]byte, os.Error) {
        dst := make([]byte, DecodedLen(len(src)));
        _, err := Decode(dst, src);
        if err != nil {
-               return nil, err;
+               return nil, err
        }
        return dst, nil;
 }
index e1dd4c57c276185ff168bf5cbecbf73ce5740464..e409dbd1e52ff21ecb32bf6430a4fb15545e3624 100644 (file)
@@ -41,10 +41,10 @@ func TestEncode(t *testing.T) {
                dst := make([]byte, EncodedLen(len(test.in)));
                n := Encode(dst, test.in);
                if n != len(dst) {
-                       t.Errorf("#%d: bad return value: got: %d want: %d", i, n, len(dst));
+                       t.Errorf("#%d: bad return value: got: %d want: %d", i, n, len(dst))
                }
                if bytes.Compare(dst, test.out) != 0 {
-                       t.Errorf("#%d: got: %#v want: %#v", i, dst, test.out);
+                       t.Errorf("#%d: got: %#v want: %#v", i, dst, test.out)
                }
        }
 }
@@ -87,13 +87,13 @@ func TestDecode(t *testing.T) {
                dst := make([]byte, DecodedLen(len(test.in)));
                n, err := Decode(dst, test.in);
                if err == nil && n != len(dst) {
-                       t.Errorf("#%d: bad return value: got:%d want:%d", i, n, len(dst));
+                       t.Errorf("#%d: bad return value: got:%d want:%d", i, n, len(dst))
                }
                if test.ok != (err == nil) {
-                       t.Errorf("#%d: unexpected err value: %s", i, err);
+                       t.Errorf("#%d: unexpected err value: %s", i, err)
                }
                if err == nil && bytes.Compare(dst, test.out) != 0 {
-                       t.Errorf("#%d: got: %#v want: %#v", i, dst, test.out);
+                       t.Errorf("#%d: got: %#v want: %#v", i, dst, test.out)
                }
        }
 }
@@ -114,7 +114,7 @@ func TestEncodeToString(t *testing.T) {
        for i, test := range encodeStringTests {
                s := EncodeToString(test.in);
                if s != test.out {
-                       t.Errorf("#%d got:%s want:%s", i, s, test.out);
+                       t.Errorf("#%d got:%s want:%s", i, s, test.out)
                }
        }
 }
@@ -138,10 +138,10 @@ func TestDecodeString(t *testing.T) {
        for i, test := range decodeStringTests {
                dst, err := DecodeString(test.in);
                if test.ok != (err == nil) {
-                       t.Errorf("#%d: unexpected err value: %s", i, err);
+                       t.Errorf("#%d: unexpected err value: %s", i, err)
                }
                if err == nil && bytes.Compare(dst, test.out) != 0 {
-                       t.Errorf("#%d: got: %#v want: #%v", i, dst, test.out);
+                       t.Errorf("#%d: got: %#v want: #%v", i, dst, test.out)
                }
        }
 }
index c33c39b759f1c6051f2eab4f3e5d9641430caeba..640673b3e883e473f13d9e0d39e5ba1a84f712b9 100644 (file)
@@ -40,7 +40,7 @@ func getLine(data []byte) (line, rest []byte) {
        } else {
                j = i+1;
                if i > 0 && data[i-1] == '\r' {
-                       i--;
+                       i--
                }
        }
        return data[0:i], data[j:len(data)];
@@ -54,7 +54,7 @@ func removeWhitespace(data []byte) []byte {
 
        for _, b := range data {
                if b == ' ' || b == '\t' || b == '\r' || b == '\n' {
-                       continue;
+                       continue
                }
                result[n] = b;
                n++;
@@ -76,16 +76,16 @@ func Decode(data []byte) (p *Block, rest []byte) {
        // the byte array, we'll accept the start string without it.
        rest = data;
        if bytes.HasPrefix(data, pemStart[1:len(pemStart)]) {
-               rest = rest[len(pemStart)-1 : len(data)];
+               rest = rest[len(pemStart)-1 : len(data)]
        } else if i := bytes.Index(data, pemStart); i >= 0 {
-               rest = rest[i+len(pemStart) : len(data)];
+               rest = rest[i+len(pemStart) : len(data)]
        } else {
-               return nil, data;
+               return nil, data
        }
 
        typeLine, rest := getLine(rest);
        if !bytes.HasSuffix(typeLine, pemEndOfLine) {
-               goto Error;
+               goto Error
        }
        typeLine = typeLine[0 : len(typeLine)-len(pemEndOfLine)];
 
@@ -98,13 +98,13 @@ func Decode(data []byte) (p *Block, rest []byte) {
                // This loop terminates because getLine's second result is
                // always smaller than it's argument.
                if len(rest) == 0 {
-                       return nil, data;
+                       return nil, data
                }
                line, next := getLine(rest);
 
                i := bytes.Index(line, []byte{':'});
                if i == -1 {
-                       break;
+                       break
                }
 
                // TODO(agl): need to cope with values that spread across lines.
@@ -117,14 +117,14 @@ func Decode(data []byte) (p *Block, rest []byte) {
 
        i := bytes.Index(rest, pemEnd);
        if i < 0 {
-               goto Error;
+               goto Error
        }
        base64Data := removeWhitespace(rest[0:i]);
 
        p.Bytes = make([]byte, base64.StdEncoding.DecodedLen(len(base64Data)));
        n, err := base64.StdEncoding.Decode(p.Bytes, base64Data);
        if err != nil {
-               goto Error;
+               goto Error
        }
        p.Bytes = p.Bytes[0:n];
 
@@ -155,7 +155,7 @@ Error:
        // and now will try again, using the second BEGIN line.
        p, rest = Decode(rest);
        if p == nil {
-               rest = data;
+               rest = data
        }
        return;
 }
index dad29ac4c4a525f13c19d1ba037ce738d1103aeb..262dadd373f5a5105a6198819ce8bb7c21c2e4bc 100644 (file)
@@ -29,7 +29,7 @@ func TestGetLine(t *testing.T) {
        for i, test := range getLineTests {
                x, y := getLine(strings.Bytes(test.in));
                if string(x) != test.out1 || string(y) != test.out2 {
-                       t.Errorf("#%d got:%+v,%+v want:%s,%s", i, x, y, test.out1, test.out2);
+                       t.Errorf("#%d got:%+v,%+v want:%s,%s", i, x, y, test.out1, test.out2)
                }
        }
 }
@@ -37,15 +37,15 @@ func TestGetLine(t *testing.T) {
 func TestDecode(t *testing.T) {
        result, remainder := Decode(strings.Bytes(pemData));
        if !reflect.DeepEqual(result, certificate) {
-               t.Errorf("#0 got:%#v want:%#v", result, certificate);
+               t.Errorf("#0 got:%#v want:%#v", result, certificate)
        }
        result, remainder = Decode(remainder);
        if !reflect.DeepEqual(result, privateKey) {
-               t.Errorf("#1 got:%#v want:%#v", result, privateKey);
+               t.Errorf("#1 got:%#v want:%#v", result, privateKey)
        }
        result, _ = Decode(strings.Bytes(pemPrivateKey));
        if !reflect.DeepEqual(result, privateKey2) {
-               t.Errorf("#2 got:%#v want:%#v", result, privateKey2);
+               t.Errorf("#2 got:%#v want:%#v", result, privateKey2)
        }
 }
 
index fc68561223b1eace9cbd38b595ab55bcc10f9bfe..5f5c33c573fdb588e4526fdc5340650ecd570913 100644 (file)
@@ -37,26 +37,26 @@ func modeToFiles(mode, fd int) (*os.File, *os.File, os.Error) {
        case DevNull:
                rw := os.O_WRONLY;
                if fd == 0 {
-                       rw = os.O_RDONLY;
+                       rw = os.O_RDONLY
                }
                f, err := os.Open("/dev/null", rw, 0);
                return f, nil, err;
        case PassThrough:
                switch fd {
                case 0:
-                       return os.Stdin, nil, nil;
+                       return os.Stdin, nil, nil
                case 1:
-                       return os.Stdout, nil, nil;
+                       return os.Stdout, nil, nil
                case 2:
-                       return os.Stderr, nil, nil;
+                       return os.Stderr, nil, nil
                }
        case Pipe:
                r, w, err := os.Pipe();
                if err != nil {
-                       return nil, nil, err;
+                       return nil, nil, err
                }
                if fd == 0 {
-                       return r, w, nil;
+                       return r, w, nil
                }
                return w, r, nil;
        }
@@ -83,51 +83,51 @@ func Run(argv0 string, argv, envv []string, stdin, stdout, stderr int) (p *Cmd,
        var fd [3]*os.File;
 
        if fd[0], p.Stdin, err = modeToFiles(stdin, 0); err != nil {
-               goto Error;
+               goto Error
        }
        if fd[1], p.Stdout, err = modeToFiles(stdout, 1); err != nil {
-               goto Error;
+               goto Error
        }
        if stderr == MergeWithStdout {
-               p.Stderr = p.Stdout;
+               p.Stderr = p.Stdout
        } else if fd[2], p.Stderr, err = modeToFiles(stderr, 2); err != nil {
-               goto Error;
+               goto Error
        }
 
        // Run command.
        p.Pid, err = os.ForkExec(argv0, argv, envv, "", &fd);
        if err != nil {
-               goto Error;
+               goto Error
        }
        if fd[0] != os.Stdin {
-               fd[0].Close();
+               fd[0].Close()
        }
        if fd[1] != os.Stdout {
-               fd[1].Close();
+               fd[1].Close()
        }
        if fd[2] != os.Stderr && fd[2] != fd[1] {
-               fd[2].Close();
+               fd[2].Close()
        }
        return p, nil;
 
 Error:
        if fd[0] != os.Stdin && fd[0] != nil {
-               fd[0].Close();
+               fd[0].Close()
        }
        if fd[1] != os.Stdout && fd[1] != nil {
-               fd[1].Close();
+               fd[1].Close()
        }
        if fd[2] != os.Stderr && fd[2] != nil && fd[2] != fd[1] {
-               fd[2].Close();
+               fd[2].Close()
        }
        if p.Stdin != nil {
-               p.Stdin.Close();
+               p.Stdin.Close()
        }
        if p.Stdout != nil {
-               p.Stdout.Close();
+               p.Stdout.Close()
        }
        if p.Stderr != nil {
-               p.Stderr.Close();
+               p.Stderr.Close()
        }
        return nil, err;
 }
@@ -140,11 +140,11 @@ Error:
 // process events; see package os for details.
 func (p *Cmd) Wait(options int) (*os.Waitmsg, os.Error) {
        if p.Pid <= 0 {
-               return nil, os.ErrorString("exec: invalid use of Cmd.Wait");
+               return nil, os.ErrorString("exec: invalid use of Cmd.Wait")
        }
        w, err := os.Wait(p.Pid, options);
        if w != nil && (w.Exited() || w.Signaled()) {
-               p.Pid = -1;
+               p.Pid = -1
        }
        return w, err;
 }
@@ -159,7 +159,7 @@ func (p *Cmd) Close() os.Error {
                // caller has already waited for pid.
                _, err := p.Wait(0);
                for err == os.EINTR {
-                       _, err = p.Wait(0);
+                       _, err = p.Wait(0)
                }
        }
 
@@ -167,17 +167,17 @@ func (p *Cmd) Close() os.Error {
        var err os.Error;
        if p.Stdin != nil && p.Stdin.Fd() >= 0 {
                if err1 := p.Stdin.Close(); err1 != nil {
-                       err = err1;
+                       err = err1
                }
        }
        if p.Stdout != nil && p.Stdout.Fd() >= 0 {
                if err1 := p.Stdout.Close(); err1 != nil && err != nil {
-                       err = err1;
+                       err = err1
                }
        }
        if p.Stderr != nil && p.Stderr != p.Stdout && p.Stderr.Fd() >= 0 {
                if err1 := p.Stderr.Close(); err1 != nil && err != nil {
-                       err = err1;
+                       err = err1
                }
        }
        return err;
@@ -186,7 +186,7 @@ func (p *Cmd) Close() os.Error {
 func canExec(file string) bool {
        d, err := os.Stat(file);
        if err != nil {
-               return false;
+               return false
        }
        return d.IsRegular() && d.Permission() & 0111 != 0;
 }
@@ -203,7 +203,7 @@ func LookPath(file string) (string, os.Error) {
 
        if strings.Index(file, "/") >= 0 {
                if canExec(file) {
-                       return file, nil;
+                       return file, nil
                }
                return "", os.ENOENT;
        }
@@ -211,10 +211,10 @@ func LookPath(file string) (string, os.Error) {
        for _, dir := range strings.Split(pathenv, ":", 0) {
                if dir == "" {
                        // Unix shell semantics: path element "" means "."
-                       dir = ".";
+                       dir = "."
                }
                if canExec(dir+"/"+file) {
-                       return dir+"/"+file, nil;
+                       return dir+"/"+file, nil
                }
        }
        return "", os.ENOENT;
index d5585029eb2ccbc819c08cd74ce09a74c37885bc..af86b55a028d40e9540ad079879c70a4df6d22e0 100644 (file)
@@ -13,19 +13,19 @@ func TestRunCat(t *testing.T) {
        cmd, err := Run("/bin/cat", []string{"cat"}, nil,
                Pipe, Pipe, DevNull);
        if err != nil {
-               t.Fatalf("opencmd /bin/cat: %v", err);
+               t.Fatalf("opencmd /bin/cat: %v", err)
        }
        io.WriteString(cmd.Stdin, "hello, world\n");
        cmd.Stdin.Close();
        buf, err := io.ReadAll(cmd.Stdout);
        if err != nil {
-               t.Fatalf("reading from /bin/cat: %v", err);
+               t.Fatalf("reading from /bin/cat: %v", err)
        }
        if string(buf) != "hello, world\n" {
-               t.Fatalf("reading from /bin/cat: got %q", buf);
+               t.Fatalf("reading from /bin/cat: got %q", buf)
        }
        if err = cmd.Close(); err != nil {
-               t.Fatalf("closing /bin/cat: %v", err);
+               t.Fatalf("closing /bin/cat: %v", err)
        }
 }
 
@@ -33,16 +33,16 @@ func TestRunEcho(t *testing.T) {
        cmd, err := Run("/bin/echo", []string{"echo", "hello", "world"}, nil,
                DevNull, Pipe, DevNull);
        if err != nil {
-               t.Fatalf("opencmd /bin/echo: %v", err);
+               t.Fatalf("opencmd /bin/echo: %v", err)
        }
        buf, err := io.ReadAll(cmd.Stdout);
        if err != nil {
-               t.Fatalf("reading from /bin/echo: %v", err);
+               t.Fatalf("reading from /bin/echo: %v", err)
        }
        if string(buf) != "hello world\n" {
-               t.Fatalf("reading from /bin/echo: got %q", buf);
+               t.Fatalf("reading from /bin/echo: got %q", buf)
        }
        if err = cmd.Close(); err != nil {
-               t.Fatalf("closing /bin/echo: %v", err);
+               t.Fatalf("closing /bin/echo: %v", err)
        }
 }
index fbe8c5f0a4ae648423361184f2642addcefb9f02..9064ac7678a992ef140144f2b5b5f09ae1bd27f8 100644 (file)
@@ -23,18 +23,18 @@ func main() {
        runtime.LockOSThread();
 
        if srpc.Enabled() {
-               go srpc.ServeRuntime();
+               go srpc.ServeRuntime()
        }
 
        args := os.Args;
        p := pieces4;
        if len(args) > 1 && args[1] == "-5" {
-               p = pieces5;
+               p = pieces5
        }
        dx, dy := 500, 500;
        w, err := av.Init(av.SubsystemVideo | av.SubsystemAudio, dx, dy);
        if err != nil {
-               log.Exit(err);
+               log.Exit(err)
        }
 
        sndc = make(chan []uint16, 10);
@@ -49,7 +49,7 @@ func audioServer() {
 
        n, err := av.AudioStream(nil);
        if err != nil {
-               log.Exit(err);
+               log.Exit(err)
        }
        for {
                b := <-sndc;
@@ -58,13 +58,13 @@ func audioServer() {
                        a, b = b[0 : n/2], b[n/2 : len(b)];
                        n, err = av.AudioStream(a);
                        if err != nil {
-                               log.Exit(err);
+                               log.Exit(err)
                        }
                        println(n, len(b)*2);
                }
                a := make([]uint16, n/2);
                for i := range b {
-                       a[i] = b[i];
+                       a[i] = b[i]
                }
                n, err = av.AudioStream(a);
        }
index 3b7c1a4b394ea3ebf91b9711b058bf2b5f79922f..e8cf48d7831e66e08e9f712cff1927c5fbc3ff02 100644 (file)
@@ -160,17 +160,17 @@ var txpix = [NCOL]draw.Color{
 func movemouse() int {
        //mouse.draw.Point = draw.Pt(rboard.Min.X + rboard.Dx()/2, rboard.Min.Y + rboard.Dy()/2);
        //moveto(mousectl, mouse.Xy);
-       return mouse.X;
+       return mouse.X
 }
 
 func warp(p draw.Point, x int) int {
        if !suspended && piece != nil {
                x = pos.X + piece.sz.X * pcsz / 2;
                if p.Y < rboard.Min.Y {
-                       p.Y = rboard.Min.Y;
+                       p.Y = rboard.Min.Y
                }
                if p.Y >= rboard.Max.Y {
-                       p.Y = rboard.Max.Y - 1;
+                       p.Y = rboard.Max.Y - 1
                }
                //moveto(mousectl, draw.Pt(x, p.Y));
        }
@@ -181,14 +181,14 @@ func initPieces() {
        for i := range pieces {
                p := &pieces[i];
                if p.rot == 3 {
-                       p.right = &pieces[i-3];
+                       p.right = &pieces[i-3]
                } else {
-                       p.right = &pieces[i+1];
+                       p.right = &pieces[i+1]
                }
                if p.rot == 0 {
-                       p.left = &pieces[i+3];
+                       p.left = &pieces[i+3]
                } else {
-                       p.left = &pieces[i-1];
+                       p.left = &pieces[i-1]
                }
        }
 }
@@ -204,7 +204,7 @@ func collide(pt draw.Point, p *Piece) bool {
                        continue;
                }
                if board[pt.Y][pt.X] != 0 {
-                       return true;
+                       return true
                }
        }
        return false;
@@ -218,7 +218,7 @@ func collider(pt, pmax draw.Point) bool {
        for i := pi; i < pi+n && i < NX; i++ {
                for j := pj; j < pj+m && j < NY; j++ {
                        if board[j][i] != 0 {
-                               return true;
+                               return true
                        }
                }
        }
@@ -232,7 +232,7 @@ func setpiece(p *Piece) {
        br2 = br;
        piece = p;
        if p == nil {
-               return;
+               return
        }
        var op draw.Point;
        var r draw.Rectangle;
@@ -252,10 +252,10 @@ func setpiece(p *Piece) {
                        draw.Draw(bbmask, r, bbmask, nil, op);
                }
                if br.Max.X < r.Max.X {
-                       br.Max.X = r.Max.X;
+                       br.Max.X = r.Max.X
                }
                if br.Max.Y < r.Max.Y {
-                       br.Max.Y = r.Max.Y;
+                       br.Max.Y = r.Max.Y
                }
        }
        br.Max = br.Max.Sub(bbr.Min);
@@ -273,14 +273,14 @@ func setpiece(p *Piece) {
 func drawpiece() {
        draw.Draw(screen, br.Add(pos), bb, bbmask, bbr.Min);
        if suspended {
-               draw.Draw(screen, br.Add(pos), draw.White, whitemask, draw.ZP);
+               draw.Draw(screen, br.Add(pos), draw.White, whitemask, draw.ZP)
        }
 }
 
 func undrawpiece() {
        var mask image.Image;
        if collider(pos, br.Max) {
-               mask = bbmask;
+               mask = bbmask
        }
        draw.Draw(screen, br.Add(pos), draw.White, mask, bbr.Min);
 }
@@ -300,7 +300,7 @@ func canfit(p *Piece) bool {
        if j >= 4 {
                j = p.sz.X;
                if j < p.sz.Y {
-                       j = p.sz.Y;
+                       j = p.sz.Y
                }
                j = 2*j - 1;
        }
@@ -321,7 +321,7 @@ func canfit(p *Piece) bool {
 }
 
 func score(p int) {
-       points += p;
+       points += p
        //      snprint(buf, sizeof(buf), "%.6ld", points);
        //      draw.Draw(screen, draw.Rpt(pscore, pscore.Add(scoresz)), draw.White, nil, draw.ZP);
        //      string(screen, pscore, draw.Black, draw.ZP, font, buf);
@@ -343,13 +343,13 @@ func drawboard() {
        for i := 0; i < NY; i++ {
                for j := 0; j < NX; j++ {
                        if board[i][j] != 0 {
-                               drawsq(screen, draw.Pt(rboard.Min.X + j*pcsz, rboard.Min.Y + i*pcsz), int(board[i][j]-16));
+                               drawsq(screen, draw.Pt(rboard.Min.X + j*pcsz, rboard.Min.Y + i*pcsz), int(board[i][j]-16))
                        }
                }
        }
        score(0);
        if suspended {
-               draw.Draw(screen, screenr, draw.White, whitemask, draw.ZP);
+               draw.Draw(screen, screenr, draw.White, whitemask, draw.ZP)
        }
 }
 
@@ -360,7 +360,7 @@ func choosepiece() {
                pos = rboard.Min;
                pos.X += rand.Intn(NX) * pcsz;
                if !collide(draw.Pt(pos.X, pos.Y + pcsz - DY), piece) {
-                       break;
+                       break
                }
        }
        drawpiece();
@@ -370,10 +370,10 @@ func choosepiece() {
 func movepiece() bool {
        var mask image.Image;
        if collide(draw.Pt(pos.X, pos.Y + pcsz), piece) {
-               return false;
+               return false
        }
        if collider(pos, br2.Max) {
-               mask = bb2mask;
+               mask = bb2mask
        }
        draw.Draw(screen, br2.Add(pos), bb2, mask, bb2r.Min);
        pos.Y += DY;
@@ -391,7 +391,7 @@ func suspend(s bool) {
                }
        */
        if !suspended {
-               drawpiece();
+               drawpiece()
        }
        drawboard();
        display.FlushImage();
@@ -403,18 +403,18 @@ func pause(t int) {
                select {
                case s := <-suspc:
                        if !suspended && s {
-                               suspend(true);
+                               suspend(true)
                        } else if suspended && !s {
                                suspend(false);
                                lastmx = warp(mouse.Point, lastmx);
                        }
                case <-timerc:
                        if suspended {
-                               break;
+                               break
                        }
                        t -= tsleep;
                        if t < 0 {
-                               return;
+                               return
                        }
                case <-resizec:
                        //redraw(true);
@@ -437,7 +437,7 @@ func horiz() bool {
                }
        }
        if h == 0 {
-               return false;
+               return false
        }
        r := rboard;
        newscreen = false;
@@ -471,7 +471,7 @@ func horiz() bool {
                r.Max.Y = rboard.Min.Y + pcsz;
                draw.Draw(screen, r, draw.White, nil, draw.ZP);
                for k := lev[j]-1; k >= 0; k-- {
-                       board[k+1] = board[k];
+                       board[k+1] = board[k]
                }
                board[0] = [NX]byte{};
        }
@@ -526,7 +526,7 @@ func drop(f bool) bool {
        fusst = 0;
        rest();
        if pos.Y == rboard.Min.Y && !horiz() {
-               return true;
+               return true
        }
        horiz();
        setpiece(nil);
@@ -551,7 +551,7 @@ func play() {
                                break;
                        }
                        if lastmx < 0 {
-                               lastmx = mouse.X;
+                               lastmx = mouse.X
                        }
                        if mouse.X > lastmx+DMOUSE {
                                mright();
@@ -562,21 +562,21 @@ func play() {
                                lastmx = mouse.X;
                        }
                        if mouse.Buttons &^ om.Buttons & 1 == 1 {
-                               rleft();
+                               rleft()
                        }
                        if mouse.Buttons &^ om.Buttons & 2 == 2 {
                                if drop(true) {
-                                       return;
+                                       return
                                }
                        }
                        if mouse.Buttons &^ om.Buttons & 4 == 4 {
-                               rright();
+                               rright()
                        }
                        om = mouse;
 
                case s := <-suspc:
                        if !suspended && s {
-                               suspend(true);
+                               suspend(true)
                        } else if suspended && !s {
                                suspend(false);
                                lastmx = warp(mouse.Point, lastmx);
@@ -587,26 +587,26 @@ func play() {
 
                case r := <-kbdc:
                        if suspended {
-                               break;
+                               break
                        }
                        switch r {
                        case 'f', ';':
-                               mright();
+                               mright()
                        case 'a', 'j':
-                               mleft();
+                               mleft()
                        case 'd', 'l':
-                               rright();
+                               rright()
                        case 's', 'k':
-                               rleft();
+                               rleft()
                        case ' ':
                                if drop(true) {
-                                       return;
+                                       return
                                }
                        }
 
                case <-timerc:
                        if suspended {
-                               break;
+                               break
                        }
                        dt -= tsleep;
                        if dt < 0 {
@@ -619,12 +619,12 @@ func play() {
                                dt = 52-dt;
                                for ; i > 0; i-- {
                                        if movepiece() {
-                                               continue;
+                                               continue
                                        }
                                        fusst++;
                                        if fusst == 40 {
                                                if drop(false) {
-                                                       return;
+                                                       return
                                                }
                                                break;
                                        }
@@ -642,11 +642,11 @@ func suspproc() {
        for {
                select {
                case mouse = <-mc:
-                       mousec <- mouse;
+                       mousec <- mouse
                case r := <-kc:
                        switch r {
                        case 'q', 'Q', 0x04, 0x7F:
-                               os.Exit(0);
+                               os.Exit(0)
                        default:
                                if s {
                                        s = false;
@@ -658,7 +658,7 @@ func suspproc() {
                                        s = true;
                                        suspc <- s;
                                default:
-                                       kbdc <- r;
+                                       kbdc <- r
                                }
                        }
                }
@@ -676,16 +676,16 @@ func redraw(new bool) {
        dy := r.Max.Y - r.Min.Y - 2*32;
        DY = dx/NX;
        if DY > dy/NY {
-               DY = dy/NY;
+               DY = dy/NY
        }
        DY /= 8;
        if DY > 4 {
-               DY = 4;
+               DY = 4
        }
        pcsz = DY*8;
        DMOUSE = pcsz/3;
        if pcsz < 8 {
-               log.Exitf("screen too small: %d", pcsz);
+               log.Exitf("screen too small: %d", pcsz)
        }
        rboard = screenr;
        rboard.Min.X += (dx - pcsz*NX)/2;
@@ -707,7 +707,7 @@ func redraw(new bool) {
        drawboard();
        setpiece(piece);
        if piece != nil {
-               drawpiece();
+               drawpiece()
        }
        lastmx = movemouse();
        newscreen = true;
index 28c9e74496bf3efa379df6704f51e421949ed989..b6f596429d7f239da9630fd07650f4a9939864ba 100644 (file)
@@ -319,12 +319,12 @@ func newState(fmt Format, env Environment, errors chan os.Error) *State {
 
        // if we have a default rule, cache it's expression for fast access
        if x, found := fmt["default"]; found {
-               s.default_ = x;
+               s.default_ = x
        }
 
        // if we have a global separator rule, cache it's expression for fast access
        if x, found := fmt["/"]; found {
-               s.separator = x;
+               s.separator = x
        }
 
        return s;
@@ -383,7 +383,7 @@ type checkpoint struct {
 func (s *State) save() checkpoint {
        saved := checkpoint{nil, s.hasOutput, s.output.Len(), s.linePos};
        if s.env != nil {
-               saved.env = s.env.Copy();
+               saved.env = s.env.Copy()
        }
        return saved;
 }
@@ -410,32 +410,32 @@ func (s *State) error(msg string) {
 func typename(typ reflect.Type) string {
        switch typ.(type) {
        case *reflect.ArrayType:
-               return "array";
+               return "array"
        case *reflect.SliceType:
-               return "array";
+               return "array"
        case *reflect.ChanType:
-               return "chan";
+               return "chan"
        case *reflect.DotDotDotType:
-               return "ellipsis";
+               return "ellipsis"
        case *reflect.FuncType:
-               return "func";
+               return "func"
        case *reflect.InterfaceType:
-               return "interface";
+               return "interface"
        case *reflect.MapType:
-               return "map";
+               return "map"
        case *reflect.PtrType:
-               return "ptr";
+               return "ptr"
        }
        return typ.String();
 }
 
 func (s *State) getFormat(name string) expr {
        if fexpr, found := s.fmt[name]; found {
-               return fexpr;
+               return fexpr
        }
 
        if s.default_ != nil {
-               return s.default_;
+               return s.default_
        }
 
        s.error(fmt.Sprintf("no format rule for type: '%s'", name));
@@ -452,7 +452,7 @@ func (s *State) eval(fexpr expr, value reflect.Value, index int) bool {
        // an empty format expression always evaluates
        // to a non-nil (but empty) []byte
        if fexpr == nil {
-               return true;
+               return true
        }
 
        switch t := fexpr.(type) {
@@ -462,7 +462,7 @@ func (s *State) eval(fexpr expr, value reflect.Value, index int) bool {
                mark := s.save();
                for _, x := range t {
                        if s.eval(x, value, index) {
-                               return true;
+                               return true
                        }
                        s.restore(mark);
                }
@@ -489,7 +489,7 @@ func (s *State) eval(fexpr expr, value reflect.Value, index int) bool {
                                s.separator = nil;      // and disable it (avoid recursion)
                                mark := s.save();
                                if !s.eval(sep, value, index) {
-                                       s.restore(mark);
+                                       s.restore(mark)
                                }
                                s.separator = sep;      // enable it again
                        }
@@ -501,14 +501,14 @@ func (s *State) eval(fexpr expr, value reflect.Value, index int) bool {
                                // segment contains a %-format at the beginning
                                if lit[1] == '%' {
                                        // "%%" is printed as a single "%"
-                                       s.Write(lit[1:len(lit)]);
+                                       s.Write(lit[1:len(lit)])
                                } else {
                                        // use s instead of s.output to get indentation right
-                                       fmt.Fprintf(s, string(lit), value.Interface());
+                                       fmt.Fprintf(s, string(lit), value.Interface())
                                }
                        } else {
                                // segment contains no %-formats
-                               s.Write(lit);
+                               s.Write(lit)
                        }
                }
                return true;    // a literal never evaluates to nil
@@ -524,39 +524,39 @@ func (s *State) eval(fexpr expr, value reflect.Value, index int) bool {
                        switch v := value.(type) {
                        case *reflect.ArrayValue:
                                if v.Len() <= index {
-                                       return false;
+                                       return false
                                }
                                value = v.Elem(index);
 
                        case *reflect.SliceValue:
                                if v.IsNil() || v.Len() <= index {
-                                       return false;
+                                       return false
                                }
                                value = v.Elem(index);
 
                        case *reflect.MapValue:
-                               s.error("reflection support for maps incomplete");
+                               s.error("reflection support for maps incomplete")
 
                        case *reflect.PtrValue:
                                if v.IsNil() {
-                                       return false;
+                                       return false
                                }
                                value = v.Elem();
 
                        case *reflect.InterfaceValue:
                                if v.IsNil() {
-                                       return false;
+                                       return false
                                }
                                value = v.Elem();
 
                        case *reflect.ChanValue:
-                               s.error("reflection support for chans incomplete");
+                               s.error("reflection support for chans incomplete")
 
                        case *reflect.FuncValue:
-                               s.error("reflection support for funcs incomplete");
+                               s.error("reflection support for funcs incomplete")
 
                        default:
-                               s.error(fmt.Sprintf("error: * does not apply to `%s`", value.Type()));
+                               s.error(fmt.Sprintf("error: * does not apply to `%s`", value.Type()))
                        }
 
                default:
@@ -566,7 +566,7 @@ func (s *State) eval(fexpr expr, value reflect.Value, index int) bool {
                                field = sval.FieldByName(t.fieldName);
                                if field == nil {
                                        // TODO consider just returning false in this case
-                                       s.error(fmt.Sprintf("error: no field `%s` in `%s`", t.fieldName, value.Type()));
+                                       s.error(fmt.Sprintf("error: no field `%s` in `%s`", t.fieldName, value.Type()))
                                }
                        }
                        value = field;
@@ -576,7 +576,7 @@ func (s *State) eval(fexpr expr, value reflect.Value, index int) bool {
                ruleName := t.ruleName;
                if ruleName == "" {
                        // no alternate rule name, value type determines rule
-                       ruleName = typename(value.Type());
+                       ruleName = typename(value.Type())
                }
                fexpr = s.getFormat(ruleName);
 
@@ -617,7 +617,7 @@ func (s *State) eval(fexpr expr, value reflect.Value, index int) bool {
                // buffer unless the result is nil
                mark := s.save();
                if !s.eval(t.body, value, 0) {  // TODO is 0 index correct?
-                       s.restore(mark);
+                       s.restore(mark)
                }
                return true;    // an option never evaluates to nil
 
@@ -631,7 +631,7 @@ func (s *State) eval(fexpr expr, value reflect.Value, index int) bool {
                                // nil result from separator is ignored
                                mark := s.save();
                                if !s.eval(t.separator, value, i) {
-                                       s.restore(mark);
+                                       s.restore(mark)
                                }
                        }
                        if !s.eval(t.body, value, i) {
@@ -665,7 +665,7 @@ func (s *State) eval(fexpr expr, value reflect.Value, index int) bool {
 //
 func (f Format) Eval(env Environment, args ...) ([]byte, os.Error) {
        if f == nil {
-               return nil, os.NewError("format is nil");
+               return nil, os.NewError("format is nil")
        }
 
        errors := make(chan os.Error);
@@ -677,7 +677,7 @@ func (f Format) Eval(env Environment, args ...) ([]byte, os.Error) {
                        fld := value.Field(i);
                        mark := s.save();
                        if !s.eval(s.getFormat(typename(fld.Type())), fld, 0) { // TODO is 0 index correct?
-                               s.restore(mark);
+                               s.restore(mark)
                        }
                }
                errors <- nil;  // no errors
@@ -699,7 +699,7 @@ func (f Format) Fprint(w io.Writer, env Environment, args ...) (int, os.Error) {
        data, err := f.Eval(env, args);
        if err != nil {
                // TODO should we print partial result in case of error?
-               return 0, err;
+               return 0, err
        }
        return w.Write(data);
 }
@@ -710,7 +710,7 @@ func (f Format) Fprint(w io.Writer, env Environment, args ...) (int, os.Error) {
 // number of bytes written and an os.Error, if any.
 //
 func (f Format) Print(args ...) (int, os.Error) {
-       return f.Fprint(os.Stdout, nil, args);
+       return f.Fprint(os.Stdout, nil, args)
 }
 
 
@@ -723,7 +723,7 @@ func (f Format) Sprint(args ...) string {
        var buf bytes.Buffer;
        _, err := f.Fprint(&buf, nil, args);
        if err != nil {
-               fmt.Fprintf(&buf, "--- Sprint(%s) failed: %v", fmt.Sprint(args), err);
+               fmt.Fprintf(&buf, "--- Sprint(%s) failed: %v", fmt.Sprint(args), err)
        }
        return buf.String();
 }
index c43cca2b7f997d5043446ab97235bfcb7db01643..b4e5ed8d281bfd6503dbe0448217f51fd065e2d9 100644 (file)
@@ -23,13 +23,13 @@ func parse(t *testing.T, form string, fmap FormatterMap) Format {
 
 func verify(t *testing.T, f Format, expected string, args ...) {
        if f == nil {
-               return; // allow other tests to run
+               return  // allow other tests to run
        }
        result := f.Sprint(args);
        if result != expected {
                t.Errorf(
                        "result  : `%s`\nexpected: `%s`\n\n",
-                       result, expected);
+                       result, expected)
        }
 }
 
@@ -44,13 +44,13 @@ func formatter(s *State, value interface{}, rule_name string) bool {
                return true;
        case "int":
                if value.(int) & 1 == 0 {
-                       fmt.Fprint(s, "even ");
+                       fmt.Fprint(s, "even ")
                } else {
-                       fmt.Fprint(s, "odd ");
+                       fmt.Fprint(s, "odd ")
                }
                return true;
        case "nil":
-               return false;
+               return false
        case "testing.T":
                s.Write(strings.Bytes("testing.T"));
                return true;
@@ -96,13 +96,13 @@ func TestCustomFormatters(t *testing.T) {
 func check(t *testing.T, form, expected string, args ...) {
        f := parse(t, form, nil);
        if f == nil {
-               return; // allow other tests to run
+               return  // allow other tests to run
        }
        result := f.Sprint(args);
        if result != expected {
                t.Errorf(
                        "format  : %s\nresult  : `%s`\nexpected: `%s`\n\n",
-                       form, result, expected);
+                       form, result, expected)
        }
 }
 
index c7d754fe7d100efb4ce05aa040d1a2aeea783229..e3d5b6134663bb433f7d4fa18766b672b48851fd 100644 (file)
@@ -34,7 +34,7 @@ func (p *parser) next() {
        case token.CHAN, token.FUNC, token.INTERFACE, token.MAP, token.STRUCT:
                // Go keywords for composite types are type names
                // returned by reflect. Accept them as identifiers.
-               p.tok = token.IDENT;    // p.lit is already set correctly
+               p.tok = token.IDENT     // p.lit is already set correctly
        }
 }
 
@@ -55,7 +55,7 @@ func (p *parser) errorExpected(pos token.Position, msg string) {
                // make the error message more specific
                msg += ", found '" + p.tok.String() + "'";
                if p.tok.IsLiteral() {
-                       msg += " "+string(p.lit);
+                       msg += " "+string(p.lit)
                }
        }
        p.Error(pos, msg);
@@ -65,7 +65,7 @@ func (p *parser) errorExpected(pos token.Position, msg string) {
 func (p *parser) expect(tok token.Token) token.Position {
        pos := p.pos;
        if p.tok != tok {
-               p.errorExpected(pos, "'" + tok.String() + "'");
+               p.errorExpected(pos, "'" + tok.String() + "'")
        }
        p.next();       // make progress in any case
        return pos;
@@ -85,9 +85,9 @@ func (p *parser) parseTypeName() (string, bool) {
        if p.tok == token.PERIOD {
                // got a package name, lookup package
                if importPath, found := p.packs[name]; found {
-                       name = importPath;
+                       name = importPath
                } else {
-                       p.Error(pos, "package not declared: " + name);
+                       p.Error(pos, "package not declared: " + name)
                }
                p.next();
                name, isIdent = name + "." + p.parseIdentifier(), false;
@@ -105,7 +105,7 @@ func (p *parser) parseRuleName() (string, bool) {
        name, isIdent := "", false;
        switch p.tok {
        case token.IDENT:
-               name, isIdent = p.parseTypeName();
+               name, isIdent = p.parseTypeName()
        case token.DEFAULT:
                name = "default";
                p.next();
@@ -130,7 +130,7 @@ func (p *parser) parseString() string {
                p.next();
                return s;
        } else {
-               p.expect(token.STRING);
+               p.expect(token.STRING)
        }
        return s;
 }
@@ -164,7 +164,7 @@ func (p *parser) parseLiteral() literal {
        // convert list into a literal
        lit := make(literal, list.Len());
        for i := 0; i < list.Len(); i++ {
-               lit[i] = list.At(i).([]byte);
+               lit[i] = list.At(i).([]byte)
        }
 
        return lit;
@@ -176,7 +176,7 @@ func (p *parser) parseField() expr {
        switch p.tok {
        case token.ILLEGAL:
                if string(p.lit) != "@" {
-                       return nil;
+                       return nil
                }
                fname = "@";
                p.next();
@@ -184,9 +184,9 @@ func (p *parser) parseField() expr {
                fname = "*";
                p.next();
        case token.IDENT:
-               fname = p.parseIdentifier();
+               fname = p.parseIdentifier()
        default:
-               return nil;
+               return nil
        }
 
        var ruleName string;
@@ -202,7 +202,7 @@ func (p *parser) parseField() expr {
 func (p *parser) parseOperand() (x expr) {
        switch p.tok {
        case token.STRING:
-               x = p.parseLiteral();
+               x = p.parseLiteral()
 
        case token.LPAREN:
                p.next();
@@ -230,7 +230,7 @@ func (p *parser) parseOperand() (x expr) {
                p.expect(token.RBRACE);
 
        default:
-               x = p.parseField();     // may be nil
+               x = p.parseField()      // may be nil
        }
 
        return x;
@@ -242,21 +242,21 @@ func (p *parser) parseSequence() expr {
        list.Init(0);
 
        for x := p.parseOperand(); x != nil; x = p.parseOperand() {
-               list.Push(x);
+               list.Push(x)
        }
 
        // no need for a sequence if list.Len() < 2
        switch list.Len() {
        case 0:
-               return nil;
+               return nil
        case 1:
-               return list.At(0).(expr);
+               return list.At(0).(expr)
        }
 
        // convert list into a sequence
        seq := make(sequence, list.Len());
        for i := 0; i < list.Len(); i++ {
-               seq[i] = list.At(i).(expr);
+               seq[i] = list.At(i).(expr)
        }
        return seq;
 }
@@ -269,10 +269,10 @@ func (p *parser) parseExpression() expr {
        for {
                x := p.parseSequence();
                if x != nil {
-                       list.Push(x);
+                       list.Push(x)
                }
                if p.tok != token.OR {
-                       break;
+                       break
                }
                p.next();
        }
@@ -280,15 +280,15 @@ func (p *parser) parseExpression() expr {
        // no need for an alternatives if list.Len() < 2
        switch list.Len() {
        case 0:
-               return nil;
+               return nil
        case 1:
-               return list.At(0).(expr);
+               return list.At(0).(expr)
        }
 
        // convert list into a alternatives
        alt := make(alternatives, list.Len());
        for i := 0; i < list.Len(); i++ {
-               alt[i] = list.At(i).(expr);
+               alt[i] = list.At(i).(expr)
        }
        return alt;
 }
@@ -306,11 +306,11 @@ func (p *parser) parseFormat() {
 
                        // add package declaration
                        if !isIdent {
-                               p.Error(pos, "illegal package name: " + name);
+                               p.Error(pos, "illegal package name: " + name)
                        } else if _, found := p.packs[name]; !found {
-                               p.packs[name] = importPath;
+                               p.packs[name] = importPath
                        } else {
-                               p.Error(pos, "package already declared: " + name);
+                               p.Error(pos, "package already declared: " + name)
                        }
 
                case token.ASSIGN:
@@ -320,9 +320,9 @@ func (p *parser) parseFormat() {
 
                        // add rule
                        if _, found := p.rules[name]; !found {
-                               p.rules[name] = x;
+                               p.rules[name] = x
                        } else {
-                               p.Error(pos, "format rule already declared: " + name);
+                               p.Error(pos, "format rule already declared: " + name)
                        }
 
                default:
@@ -331,9 +331,9 @@ func (p *parser) parseFormat() {
                }
 
                if p.tok == token.SEMICOLON {
-                       p.next();
+                       p.next()
                } else {
-                       break;
+                       break
                }
        }
        p.expect(token.EOF);
@@ -346,7 +346,7 @@ func remap(p *parser, name string) string {
                packageName, suffix := name[0:i], name[i:len(name)];
                // lookup package
                if importPath, found := p.packs[packageName]; found {
-                       name = importPath + suffix;
+                       name = importPath + suffix
                } else {
                        var invalidPos token.Position;
                        p.Error(invalidPos, "package not declared: " + packageName);
@@ -371,7 +371,7 @@ func Parse(filename string, src []byte, fmap FormatterMap) (Format, os.Error) {
        for name, form := range fmap {
                name = remap(&p, name);
                if _, found := p.rules[name]; !found {
-                       p.rules[name] = &custom{name, form};
+                       p.rules[name] = &custom{name, form}
                } else {
                        var invalidPos token.Position;
                        p.Error(invalidPos, "formatter already declared: " + name);
index 314754ea90b268d45aa525493a23c373112d1d2c..59830bba5a91b854bc58e1e2220f15e362a01ec5 100644 (file)
@@ -46,7 +46,7 @@ func (p Point) Eq(q Point) bool       { return p.X == q.X && p.Y == q.Y }
 
 // Inset returns the rectangle r inset by n: Rect(r.Min.X+n, r.Min.Y+n, r.Max.X-n, r.Max.Y-n).
 func (r Rectangle) Inset(n int) Rectangle {
-       return Rectangle{Point{r.Min.X + n, r.Min.Y + n}, Point{r.Max.X - n, r.Max.Y - n}};
+       return Rectangle{Point{r.Min.X + n, r.Min.Y + n}, Point{r.Max.X - n, r.Max.Y - n}}
 }
 
 // Add returns the rectangle r translated by p: Rpt(r.Min.Add(p), r.Max.Add(p)).
@@ -59,10 +59,10 @@ func (r Rectangle) Sub(p Point) Rectangle   { return Rectangle{r.Min.Sub(p), r.Max
 // has Min.X <= Max.X and Min.Y <= Max.Y.
 func (r Rectangle) Canon() Rectangle {
        if r.Max.X < r.Min.X {
-               r.Max.X = r.Min.X;
+               r.Max.X = r.Min.X
        }
        if r.Max.Y < r.Min.Y {
-               r.Max.Y = r.Min.Y;
+               r.Max.Y = r.Min.Y
        }
        return r;
 }
@@ -70,7 +70,7 @@ func (r Rectangle) Canon() Rectangle {
 // Overlaps returns true if r and r1 cross; that is, it returns true if they share any point.
 func (r Rectangle) Overlaps(r1 Rectangle) bool {
        return r.Min.X < r1.Max.X && r1.Min.X < r.Max.X &&
-               r.Min.Y < r1.Max.Y && r1.Min.Y < r.Max.Y;
+               r.Min.Y < r1.Max.Y && r1.Min.Y < r.Max.Y
 }
 
 // Empty retruns true if r contains no points.
@@ -79,10 +79,10 @@ func (r Rectangle) Empty() bool     { return r.Max.X <= r.Min.X || r.Max.Y <= r.Min.
 // InRect returns true if all the points in r are also in r1.
 func (r Rectangle) In(r1 Rectangle) bool {
        if r.Empty() {
-               return true;
+               return true
        }
        if r1.Empty() {
-               return false;
+               return false
        }
        return r1.Min.X <= r.Min.X && r.Max.X <= r1.Max.X &&
                r1.Min.Y <= r.Min.Y && r.Max.Y <= r1.Max.Y;
@@ -91,22 +91,22 @@ func (r Rectangle) In(r1 Rectangle) bool {
 // Combine returns the smallest rectangle containing all points from r and from r1.
 func (r Rectangle) Combine(r1 Rectangle) Rectangle {
        if r.Empty() {
-               return r1;
+               return r1
        }
        if r1.Empty() {
-               return r;
+               return r
        }
        if r.Min.X > r1.Min.X {
-               r.Min.X = r1.Min.X;
+               r.Min.X = r1.Min.X
        }
        if r.Min.Y > r1.Min.Y {
-               r.Min.Y = r1.Min.Y;
+               r.Min.Y = r1.Min.Y
        }
        if r.Max.X < r1.Max.X {
-               r.Max.X = r1.Max.X;
+               r.Max.X = r1.Max.X
        }
        if r.Max.Y < r1.Max.Y {
-               r.Max.Y = r1.Max.Y;
+               r.Max.Y = r1.Max.Y
        }
        return r;
 }
@@ -114,22 +114,22 @@ func (r Rectangle) Combine(r1 Rectangle) Rectangle {
 // Clip returns the largest rectangle containing only points shared by r and r1.
 func (r Rectangle) Clip(r1 Rectangle) Rectangle {
        if r.Empty() {
-               return r;
+               return r
        }
        if r1.Empty() {
-               return r1;
+               return r1
        }
        if r.Min.X < r1.Min.X {
-               r.Min.X = r1.Min.X;
+               r.Min.X = r1.Min.X
        }
        if r.Min.Y < r1.Min.Y {
-               r.Min.Y = r1.Min.Y;
+               r.Min.Y = r1.Min.Y
        }
        if r.Max.X > r1.Max.X {
-               r.Max.X = r1.Max.X;
+               r.Max.X = r1.Max.X
        }
        if r.Max.Y > r1.Max.Y {
-               r.Max.Y = r1.Max.Y;
+               r.Max.Y = r1.Max.Y
        }
        return r;
 }
index 310f70e30d892d39733baa104ddf3c151ec1fac1..0d94800de1e807bacb9b9b0f1c8112770043be25 100644 (file)
@@ -66,28 +66,28 @@ func (c Color) RGBA() (r, g, b, a uint32) {
 func (c Color) SetAlpha(a uint8) Color {
        r, g, b, oa := c>>24, (c>>16)&0xFF, (c>>8)&0xFF, c&0xFF;
        if oa == 0 {
-               return 0;
+               return 0
        }
        r = r*Color(a)/oa;
        if r < 0 {
-               r = 0;
+               r = 0
        }
        if r > 0xFF {
-               r = 0xFF;
+               r = 0xFF
        }
        g = g*Color(a)/oa;
        if g < 0 {
-               g = 0;
+               g = 0
        }
        if g > 0xFF {
-               g = 0xFF;
+               g = 0xFF
        }
        b = b*Color(a)/oa;
        if b < 0 {
-               b = 0;
+               b = 0
        }
        if b > 0xFF {
-               b = 0xFF;
+               b = 0xFF
        }
        return r<<24 | g<<16 | b<<8 | Color(a);
 }
@@ -100,7 +100,7 @@ func (c Color) At(x, y int) image.Color     { return c }
 
 func toColor(color image.Color) image.Color {
        if c, ok := color.(Color); ok {
-               return c;
+               return c
        }
        r, g, b, a := color.RGBA();
        return Color(r>>24<<24 | g>>24<<16 | b>>24<<8 | a>>24);
index 0f5f9bb468b0720dbe11e12a698fee86ca374a31..284211aa2ad5da05d4ff9b415577b14c10977e88 100644 (file)
@@ -30,19 +30,19 @@ func Draw(dst Image, r Rectangle, src, mask image.Image, pt Point) {
        dx, dy := src.Width(), src.Height();
        if mask != nil {
                if dx > mask.Width() {
-                       dx = mask.Width();
+                       dx = mask.Width()
                }
                if dy > mask.Width() {
-                       dy = mask.Width();
+                       dy = mask.Width()
                }
        }
        dx -= pt.X;
        dy -= pt.Y;
        if r.Dx() > dx {
-               r.Max.X = r.Min.X + dx;
+               r.Max.X = r.Min.X + dx
        }
        if r.Dy() > dy {
-               r.Max.Y = r.Min.Y + dy;
+               r.Max.Y = r.Min.Y + dy
        }
 
        x0, x1, dx := r.Min.X, r.Max.X, 1;
@@ -67,9 +67,9 @@ func Draw(dst Image, r Rectangle, src, mask image.Image, pt Point) {
                        _, _, _, ma := mask.At(sx, sy).RGBA();
                        switch ma {
                        case 0:
-                               continue;
+                               continue
                        case 0xFFFFFFFF:
-                               dst.Set(x, y, src.At(sx, sy));
+                               dst.Set(x, y, src.At(sx, sy))
                        default:
                                dr, dg, db, da := dst.At(x, y).RGBA();
                                dr >>= 16;
@@ -89,7 +89,7 @@ func Draw(dst Image, r Rectangle, src, mask image.Image, pt Point) {
                                db = (db*(M-a) + sb*ma)/M;
                                da = (da*(M-a) + sa*ma)/M;
                                if out == nil {
-                                       out = new(image.RGBA64Color);
+                                       out = new(image.RGBA64Color)
                                }
                                out.R = uint16(dr);
                                out.G = uint16(dg);
index 6cac2175ac195ccb649399f89a2bda4e8b1029d5..fd16d7eaab865bc57b951f0e21f3e445809b5a15 100644 (file)
@@ -14,7 +14,7 @@ import (
 // causing the innermost Try to return err.
 func (t *Thread) Abort(err os.Error) {
        if t.abort == nil {
-               panicln("abort:", err.String());
+               panicln("abort:", err.String())
        }
        t.abort <- err;
        runtime.Goexit();
@@ -49,7 +49,7 @@ type IndexError struct {
 
 func (e IndexError) String() string {
        if e.Idx < 0 {
-               return fmt.Sprintf("negative index: %d", e.Idx);
+               return fmt.Sprintf("negative index: %d", e.Idx)
        }
        return fmt.Sprintf("index %d exceeds length %d", e.Idx, e.Len);
 }
@@ -59,7 +59,7 @@ type SliceError struct {
 }
 
 func (e SliceError) String() string {
-       return fmt.Sprintf("slice [%d:%d]; cap %d", e.Lo, e.Hi, e.Cap);
+       return fmt.Sprintf("slice [%d:%d]; cap %d", e.Lo, e.Hi, e.Cap)
 }
 
 type KeyError struct {
@@ -73,7 +73,7 @@ type NegativeLengthError struct {
 }
 
 func (e NegativeLengthError) String() string {
-       return fmt.Sprintf("negative length: %d", e.Len);
+       return fmt.Sprintf("negative length: %d", e.Len)
 }
 
 type NegativeCapacityError struct {
@@ -81,5 +81,5 @@ type NegativeCapacityError struct {
 }
 
 func (e NegativeCapacityError) String() string {
-       return fmt.Sprintf("negative capacity: %d", e.Len);
+       return fmt.Sprintf("negative capacity: %d", e.Len)
 }
index d10aade9edf40b3d5fef8b5c1a7159878fabffc4..1118ddd0890c7d2f2bb2fcdeb2f19c88149d17a0 100644 (file)
@@ -23,7 +23,7 @@ var (
 // interpreter Type.
 func TypeFromNative(t reflect.Type) Type {
        if et, ok := evalTypes[t]; ok {
-               return et;
+               return et
        }
 
        var nt *NamedType;
@@ -36,42 +36,42 @@ func TypeFromNative(t reflect.Type) Type {
        var et Type;
        switch t := t.(type) {
        case *reflect.BoolType:
-               et = BoolType;
+               et = BoolType
        case *reflect.Float32Type:
-               et = Float32Type;
+               et = Float32Type
        case *reflect.Float64Type:
-               et = Float64Type;
+               et = Float64Type
        case *reflect.FloatType:
-               et = FloatType;
+               et = FloatType
        case *reflect.Int16Type:
-               et = Int16Type;
+               et = Int16Type
        case *reflect.Int32Type:
-               et = Int32Type;
+               et = Int32Type
        case *reflect.Int64Type:
-               et = Int64Type;
+               et = Int64Type
        case *reflect.Int8Type:
-               et = Int8Type;
+               et = Int8Type
        case *reflect.IntType:
-               et = IntType;
+               et = IntType
        case *reflect.StringType:
-               et = StringType;
+               et = StringType
        case *reflect.Uint16Type:
-               et = Uint16Type;
+               et = Uint16Type
        case *reflect.Uint32Type:
-               et = Uint32Type;
+               et = Uint32Type
        case *reflect.Uint64Type:
-               et = Uint64Type;
+               et = Uint64Type
        case *reflect.Uint8Type:
-               et = Uint8Type;
+               et = Uint8Type
        case *reflect.UintType:
-               et = UintType;
+               et = UintType
        case *reflect.UintptrType:
-               et = UintptrType;
+               et = UintptrType
 
        case *reflect.ArrayType:
-               et = NewArrayType(int64(t.Len()), TypeFromNative(t.Elem()));
+               et = NewArrayType(int64(t.Len()), TypeFromNative(t.Elem()))
        case *reflect.ChanType:
-               log.Crashf("%T not implemented", t);
+               log.Crashf("%T not implemented", t)
        case *reflect.FuncType:
                nin := t.NumIn();
                // Variadic functions have DotDotDotType at the end
@@ -84,21 +84,21 @@ func TypeFromNative(t reflect.Type) Type {
                }
                in := make([]Type, nin);
                for i := range in {
-                       in[i] = TypeFromNative(t.In(i));
+                       in[i] = TypeFromNative(t.In(i))
                }
                out := make([]Type, t.NumOut());
                for i := range out {
-                       out[i] = TypeFromNative(t.Out(i));
+                       out[i] = TypeFromNative(t.Out(i))
                }
                et = NewFuncType(in, varidic, out);
        case *reflect.InterfaceType:
-               log.Crashf("%T not implemented", t);
+               log.Crashf("%T not implemented", t)
        case *reflect.MapType:
-               log.Crashf("%T not implemented", t);
+               log.Crashf("%T not implemented", t)
        case *reflect.PtrType:
-               et = NewPtrType(TypeFromNative(t.Elem()));
+               et = NewPtrType(TypeFromNative(t.Elem()))
        case *reflect.SliceType:
-               et = NewSliceType(TypeFromNative(t.Elem()));
+               et = NewSliceType(TypeFromNative(t.Elem()))
        case *reflect.StructType:
                n := t.NumField();
                fields := make([]StructField, n);
@@ -111,9 +111,9 @@ func TypeFromNative(t reflect.Type) Type {
                }
                et = NewStructType(fields);
        case *reflect.UnsafePointerType:
-               log.Crashf("%T not implemented", t);
+               log.Crashf("%T not implemented", t)
        default:
-               log.Crashf("unexpected reflect.Type: %T", t);
+               log.Crashf("unexpected reflect.Type: %T", t)
        }
 
        if nt != nil {
@@ -147,7 +147,7 @@ func (f *nativeFunc) NewFrame() *Frame {
 }
 
 func (f *nativeFunc) Call(t *Thread) {
-       f.fn(t, t.f.Vars[0 : f.in], t.f.Vars[f.in : f.in + f.out]);
+       f.fn(t, t.f.Vars[0 : f.in], t.f.Vars[f.in : f.in + f.out])
 }
 
 // FuncFromNative creates an interpreter function from a native
@@ -155,7 +155,7 @@ func (f *nativeFunc) Call(t *Thread) {
 // interpreter Value's.  While somewhat inconvenient, this avoids
 // value marshalling.
 func FuncFromNative(fn func(*Thread, []Value, []Value), t *FuncType) FuncValue {
-       return &funcV{&nativeFunc{fn, len(t.In), len(t.Out)}};
+       return &funcV{&nativeFunc{fn, len(t.In), len(t.Out)}}
 }
 
 // FuncFromNativeTyped is like FuncFromNative, but constructs the
index 307c5048683abd0c53498b95d33858dd9a38f67b..354ac01984e57f8dd53f7ae0ad322f3c2759517a 100644 (file)
@@ -45,7 +45,7 @@ func (a test) run(t *testing.T, name string) {
        for _, j := range a {
                src := j.code;
                if noisy {
-                       println("code:", src);
+                       println("code:", src)
                }
 
                code, err := w.Compile(src);
@@ -83,7 +83,7 @@ func (a test) run(t *testing.T, name string) {
                }
 
                if !j.noval && !reflect.DeepEqual(val, j.val) {
-                       t.Errorf("%s: Run %s = %T(%v) want %T(%v)", name, src, val, val, j.val, j.val);
+                       t.Errorf("%s: Run %s = %T(%v) want %T(%v)", name, src, val, val, j.val, j.val)
                }
        }
 }
@@ -91,7 +91,7 @@ func (a test) run(t *testing.T, name string) {
 func match(t *testing.T, err os.Error, pat string) bool {
        ok, errstr := testing.MatchString(pat, err.String());
        if errstr != "" {
-               t.Fatalf("compile regexp %s: %v", pat, errstr);
+               t.Fatalf("compile regexp %s: %v", pat, errstr)
        }
        return ok;
 }
@@ -109,7 +109,7 @@ func RErr(expr string, rterr string) test   { return test([]job{job{code: expr, rt
 
 // Expression value
 func Val(expr string, val interface{}) test {
-       return test([]job{job{code: expr, val: toValue(val)}});
+       return test([]job{job{code: expr, val: toValue(val)}})
 }
 
 // Statement runs without error
@@ -119,7 +119,7 @@ func Run(stmts string) test { return test([]job{job{code: stmts, noval: true}})
 // TODO(rsc): Should be possible with Run but the parser
 // won't let us do both top-level and non-top-level statements.
 func Run2(stmt1, stmt2 string) test {
-       return test([]job{job{code: stmt1, noval: true}, job{code: stmt2, noval: true}});
+       return test([]job{job{code: stmt1, noval: true}, job{code: stmt2, noval: true}})
 }
 
 // Statement runs and test one expression's value
@@ -127,7 +127,7 @@ func Val1(stmts string, expr1 string, val1 interface{}) test {
        return test([]job{
                job{code: stmts, noval: true},
                job{code: expr1, val: toValue(val1)},
-       });
+       })
 }
 
 // Statement runs and test two expressions' values
@@ -136,7 +136,7 @@ func Val2(stmts string, expr1 string, val1 interface{}, expr2 string, val2 inter
                job{code: stmts, noval: true},
                job{code: expr1, val: toValue(val1)},
                job{code: expr2, val: toValue(val2)},
-       });
+       })
 }
 
 /*
@@ -167,33 +167,33 @@ func toValue(val interface{}) Value {
                r := intV(val);
                return &r;
        case *bignum.Integer:
-               return &idealIntV{val};
+               return &idealIntV{val}
        case float:
                r := floatV(val);
                return &r;
        case *bignum.Rational:
-               return &idealFloatV{val};
+               return &idealFloatV{val}
        case string:
                r := stringV(val);
                return &r;
        case vstruct:
                elems := make([]Value, len(val));
                for i, e := range val {
-                       elems[i] = toValue(e);
+                       elems[i] = toValue(e)
                }
                r := structV(elems);
                return &r;
        case varray:
                elems := make([]Value, len(val));
                for i, e := range val {
-                       elems[i] = toValue(e);
+                       elems[i] = toValue(e)
                }
                r := arrayV(elems);
                return &r;
        case vslice:
-               return &sliceV{Slice{toValue(val.arr).(ArrayValue), int64(val.len), int64(val.cap)}};
+               return &sliceV{Slice{toValue(val.arr).(ArrayValue), int64(val.len), int64(val.cap)}}
        case Func:
-               return &funcV{val};
+               return &funcV{val}
        }
        log.Crashf("toValue(%T) not implemented", val);
        panic();
index af6259a78d2bd79e414e80e8b14605a4167c14bd..d149c284a6fdb97ae27dce01b66d944ed5b89766 100644 (file)
@@ -55,19 +55,19 @@ type exprInfo struct {
 }
 
 func (a *exprInfo) newExpr(t Type, desc string) *expr {
-       return &expr{exprInfo: a, t: t, desc: desc};
+       return &expr{exprInfo: a, t: t, desc: desc}
 }
 
 func (a *exprInfo) diag(format string, args ...) {
-       a.diagAt(&a.pos, format, args);
+       a.diagAt(&a.pos, format, args)
 }
 
 func (a *exprInfo) diagOpType(op token.Token, vt Type) {
-       a.diag("illegal operand type for '%v' operator\n\t%v", op, vt);
+       a.diag("illegal operand type for '%v' operator\n\t%v", op, vt)
 }
 
 func (a *exprInfo) diagOpTypes(op token.Token, lt Type, rt Type) {
-       a.diag("illegal operand types for '%v' operator\n\t%v\n\t%v", op, lt, rt);
+       a.diag("illegal operand types for '%v' operator\n\t%v\n\t%v", op, lt, rt)
 }
 
 /*
@@ -81,7 +81,7 @@ func (a *exprInfo) diagOpTypes(op token.Token, lt Type, rt Type) {
 // TODO(austin) Rename to resolveIdeal or something?
 func (a *expr) convertTo(t Type) *expr {
        if !a.t.isIdeal() {
-               log.Crashf("attempted to convert from %v, expected ideal", a.t);
+               log.Crashf("attempted to convert from %v, expected ideal", a.t)
        }
 
        var rat *bignum.Rational;
@@ -103,7 +103,7 @@ func (a *expr) convertTo(t Type) *expr {
                i := a.asIdealInt()();
                rat = bignum.MakeRat(i, bignum.Nat(1));
        default:
-               log.Crashf("unexpected ideal type %v", a.t);
+               log.Crashf("unexpected ideal type %v", a.t)
        }
 
        // Check bounds
@@ -140,9 +140,9 @@ func (a *expr) convertTo(t Type) *expr {
                v := float64(n.Value())/float64(d.Value());
                res.eval = func(*Thread) float64 { return v };
        case *idealFloatType:
-               res.eval = func() *bignum.Rational { return rat };
+               res.eval = func() *bignum.Rational { return rat }
        default:
-               log.Crashf("cannot convert to type %T", t);
+               log.Crashf("cannot convert to type %T", t)
        }
 
        return res;
@@ -163,7 +163,7 @@ func (a *expr) convertToInt(max int64, negErr string, errOp string) *expr {
                }
                bound := max;
                if negErr == "slice" {
-                       bound++;
+                       bound++
                }
                if max != -1 && val.Cmp(bignum.Int(bound)) >= 0 {
                        a.diag("index %s exceeds length %d", val, max);
@@ -180,7 +180,7 @@ func (a *expr) convertToInt(max int64, negErr string, errOp string) *expr {
 
        case *intType:
                // Good as is
-               return a;
+               return a
        }
 
        a.diag("illegal operand type for %s\n\t%v", errOp, a.t);
@@ -195,7 +195,7 @@ func (a *expr) derefArray() *expr {
                if _, ok := pt.Elem.lit().(*ArrayType); ok {
                        deref := a.compileStarExpr(a);
                        if deref == nil {
-                               log.Crashf("failed to dereference *array");
+                               log.Crashf("failed to dereference *array")
                        }
                        return deref;
                }
@@ -309,7 +309,7 @@ func (a *assignCompiler) compile(b *block, lt Type) (func(Value, *Thread)) {
 
        // Create unary MultiType for single LHS
        if !isMT {
-               lmt = NewMultiType([]Type{lt});
+               lmt = NewMultiType([]Type{lt})
        }
 
        // Check that the assignment count matches
@@ -321,7 +321,7 @@ func (a *assignCompiler) compile(b *block, lt Type) (func(Value, *Thread)) {
                if rcount > lcount {
                        msg = "too many";
                        if lcount > 0 {
-                               pos = a.rs[lcount-1].pos;
+                               pos = a.rs[lcount-1].pos
                        }
                }
                a.diagAt(&pos, "%s %ss for %s\n\t%s\n\t%s", msg, a.errPosName, a.errOp, lt, rmt);
@@ -340,7 +340,7 @@ func (a *assignCompiler) compile(b *block, lt Type) (func(Value, *Thread)) {
                temp := b.DefineTemp(a.rmt);
                tempIdx := temp.Index;
                if tempIdx < 0 {
-                       panicln("tempidx", tempIdx);
+                       panicln("tempidx", tempIdx)
                }
                if a.isMapUnpack {
                        rf := a.rs[0].evalMapValue;
@@ -363,7 +363,7 @@ func (a *assignCompiler) compile(b *block, lt Type) (func(Value, *Thread)) {
                a.rs = make([]*expr, len(a.rmt.Elems));
                for i, t := range a.rmt.Elems {
                        if t.isIdeal() {
-                               log.Crashf("Right side of unpack contains ideal: %s", rmt);
+                               log.Crashf("Right side of unpack contains ideal: %s", rmt)
                        }
                        a.rs[i] = orig.newExpr(t, orig.desc);
                        index := i;
@@ -411,34 +411,34 @@ func (a *assignCompiler) compile(b *block, lt Type) (func(Value, *Thread)) {
 
                if !lt.compat(rt, false) {
                        if len(a.rs) == 1 {
-                               a.rs[0].diag("illegal operand types for %s\n\t%v\n\t%v", a.errOp, lt, rt);
+                               a.rs[0].diag("illegal operand types for %s\n\t%v\n\t%v", a.errOp, lt, rt)
                        } else {
-                               a.rs[i].diag("illegal operand types in %s %d of %s\n\t%v\n\t%v", a.errPosName, i+1, a.errOp, lt, rt);
+                               a.rs[i].diag("illegal operand types in %s %d of %s\n\t%v\n\t%v", a.errPosName, i+1, a.errOp, lt, rt)
                        }
                        bad = true;
                }
        }
        if bad {
-               return nil;
+               return nil
        }
 
        // Compile
        if !isMT {
                // Case 1
-               return genAssign(lt, a.rs[0]);
+               return genAssign(lt, a.rs[0])
        }
        // Case 2 or 3
        as := make([]func(lv Value, t *Thread), len(a.rs));
        for i, r := range a.rs {
-               as[i] = genAssign(lmt.Elems[i], r);
+               as[i] = genAssign(lmt.Elems[i], r)
        }
        return func(lv Value, t *Thread) {
                if effect != nil {
-                       effect(t);
+                       effect(t)
                }
                lmv := lv.(multiV);
                for i, a := range as {
-                       a(lmv[i], t);
+                       a(lmv[i], t)
                }
        };
 }
@@ -449,7 +449,7 @@ func (a *assignCompiler) compile(b *block, lt Type) (func(Value, *Thread)) {
 func (a *compiler) compileAssign(pos token.Position, b *block, lt Type, rs []*expr, errOp, errPosName string) (func(Value, *Thread)) {
        ac, ok := a.checkAssign(pos, rs, errOp, errPosName);
        if !ok {
-               return nil;
+               return nil
        }
        return ac.compile(b, lt);
 }
@@ -481,30 +481,30 @@ func (a *exprCompiler) compile(x ast.Expr, callCtx bool) *expr {
        case *ast.BasicLit:
                switch x.Kind {
                case token.INT:
-                       return ei.compileIntLit(string(x.Value));
+                       return ei.compileIntLit(string(x.Value))
                case token.FLOAT:
-                       return ei.compileFloatLit(string(x.Value));
+                       return ei.compileFloatLit(string(x.Value))
                case token.CHAR:
-                       return ei.compileCharLit(string(x.Value));
+                       return ei.compileCharLit(string(x.Value))
                case token.STRING:
-                       return ei.compileStringLit(string(x.Value));
+                       return ei.compileStringLit(string(x.Value))
                default:
-                       log.Crashf("unexpected basic literal type %v", x.Kind);
+                       log.Crashf("unexpected basic literal type %v", x.Kind)
                }
 
        case *ast.CompositeLit:
-               goto notimpl;
+               goto notimpl
 
        case *ast.FuncLit:
                decl := ei.compileFuncType(a.block, x.Type);
                if decl == nil {
                        // TODO(austin) Try compiling the body,
                        // perhaps with dummy argument definitions
-                       return nil;
+                       return nil
                }
                fn := ei.compileFunc(a.block, decl, x.Body);
                if fn == nil {
-                       return nil;
+                       return nil
                }
                if a.constant {
                        a.diagAt(x, "function literal used in constant expression");
@@ -515,22 +515,22 @@ func (a *exprCompiler) compile(x ast.Expr, callCtx bool) *expr {
        // Types
        case *ast.ArrayType:
                // TODO(austin) Use a multi-type case
-               goto typeexpr;
+               goto typeexpr
 
        case *ast.ChanType:
-               goto typeexpr;
+               goto typeexpr
 
        case *ast.Ellipsis:
-               goto typeexpr;
+               goto typeexpr
 
        case *ast.FuncType:
-               goto typeexpr;
+               goto typeexpr
 
        case *ast.InterfaceType:
-               goto typeexpr;
+               goto typeexpr
 
        case *ast.MapType:
-               goto typeexpr;
+               goto typeexpr
 
        // Remaining expressions
        case *ast.BadExpr:
@@ -541,7 +541,7 @@ func (a *exprCompiler) compile(x ast.Expr, callCtx bool) *expr {
        case *ast.BinaryExpr:
                l, r := a.compile(x.X, false), a.compile(x.Y, false);
                if l == nil || r == nil {
-                       return nil;
+                       return nil
                }
                return ei.compileBinaryExpr(x.Op, l, r);
 
@@ -554,14 +554,14 @@ func (a *exprCompiler) compile(x ast.Expr, callCtx bool) *expr {
                                argei := &exprInfo{a.compiler, arg.Pos()};
                                args[i] = argei.exprFromType(a.compileType(a.block, arg));
                        } else {
-                               args[i] = a.compile(arg, false);
+                               args[i] = a.compile(arg, false)
                        }
                        if args[i] == nil {
-                               bad = true;
+                               bad = true
                        }
                }
                if bad || l == nil {
-                       return nil;
+                       return nil
                }
                if a.constant {
                        a.diagAt(x, "function call in constant context");
@@ -572,13 +572,13 @@ func (a *exprCompiler) compile(x ast.Expr, callCtx bool) *expr {
                        a.diagAt(x, "type conversions not implemented");
                        return nil;
                } else if ft, ok := l.t.(*FuncType); ok && ft.builtin != "" {
-                       return ei.compileBuiltinCallExpr(a.block, ft, args);
+                       return ei.compileBuiltinCallExpr(a.block, ft, args)
                } else {
-                       return ei.compileCallExpr(a.block, l, args);
+                       return ei.compileCallExpr(a.block, l, args)
                }
 
        case *ast.Ident:
-               return ei.compileIdent(a.block, a.constant, callCtx, x.Value);
+               return ei.compileIdent(a.block, a.constant, callCtx, x.Value)
 
        case *ast.IndexExpr:
                if x.End != nil {
@@ -586,26 +586,26 @@ func (a *exprCompiler) compile(x ast.Expr, callCtx bool) *expr {
                        lo := a.compile(x.Index, false);
                        hi := a.compile(x.End, false);
                        if arr == nil || lo == nil || hi == nil {
-                               return nil;
+                               return nil
                        }
                        return ei.compileSliceExpr(arr, lo, hi);
                }
                l, r := a.compile(x.X, false), a.compile(x.Index, false);
                if l == nil || r == nil {
-                       return nil;
+                       return nil
                }
                return ei.compileIndexExpr(l, r);
 
        case *ast.KeyValueExpr:
-               goto notimpl;
+               goto notimpl
 
        case *ast.ParenExpr:
-               return a.compile(x.X, callCtx);
+               return a.compile(x.X, callCtx)
 
        case *ast.SelectorExpr:
                v := a.compile(x.X, false);
                if v == nil {
-                       return nil;
+                       return nil
                }
                return ei.compileSelectorExpr(v, x.Sel.Value);
 
@@ -614,11 +614,11 @@ func (a *exprCompiler) compile(x ast.Expr, callCtx bool) *expr {
                // a pointer type (and thus a type conversion)
                v := a.compile(x.X, callCtx);
                if v == nil {
-                       return nil;
+                       return nil
                }
                if v.valType != nil {
                        // Turns out this was a pointer type, not a dereference
-                       return ei.exprFromType(NewPtrType(v.valType));
+                       return ei.exprFromType(NewPtrType(v.valType))
                }
                return ei.compileStarExpr(v);
 
@@ -628,24 +628,24 @@ func (a *exprCompiler) compile(x ast.Expr, callCtx bool) *expr {
                for i, s := range x.Strings {
                        strings[i] = a.compile(s, false);
                        if strings[i] == nil {
-                               bad = true;
+                               bad = true
                        }
                }
                if bad {
-                       return nil;
+                       return nil
                }
                return ei.compileStringList(strings);
 
        case *ast.StructType:
-               goto notimpl;
+               goto notimpl
 
        case *ast.TypeAssertExpr:
-               goto notimpl;
+               goto notimpl
 
        case *ast.UnaryExpr:
                v := a.compile(x.X, false);
                if v == nil {
-                       return nil;
+                       return nil
                }
                return ei.compileUnaryExpr(x.Op, v);
        }
@@ -666,7 +666,7 @@ notimpl:
 
 func (a *exprInfo) exprFromType(t Type) *expr {
        if t == nil {
-               return nil;
+               return nil
        }
        expr := a.newExpr(nil, "type");
        expr.valType = t;
@@ -692,7 +692,7 @@ func (a *exprInfo) compileIdent(b *block, constant bool, callCtx bool, name stri
                        // Otherwise, we leave the evaluators empty
                        // because this is handled specially
                } else {
-                       expr.genConstant(def.Value);
+                       expr.genConstant(def.Value)
                }
                return expr;
        case *Variable:
@@ -701,12 +701,12 @@ func (a *exprInfo) compileIdent(b *block, constant bool, callCtx bool, name stri
                        return nil;
                }
                if bl.global {
-                       return a.compileGlobalVariable(def);
+                       return a.compileGlobalVariable(def)
                }
                return a.compileVariable(level, def);
        case Type:
                if callCtx {
-                       return a.exprFromType(def);
+                       return a.exprFromType(def)
                }
                a.diag("type %v used as expression", name);
                return nil;
@@ -733,7 +733,7 @@ func (a *exprInfo) compileGlobalVariable(v *Variable) *expr {
                return nil;
        }
        if v.Init == nil {
-               v.Init = v.Type.Zero();
+               v.Init = v.Type.Zero()
        }
        expr := a.newExpr(v.Type, "variable");
        val := v.Init;
@@ -770,7 +770,7 @@ func (a *exprInfo) compileCharLit(lit string) *expr {
 func (a *exprInfo) compileFloatLit(lit string) *expr {
        f, _, n := bignum.RatFromString(lit, 0);
        if n != len(lit) {
-               log.Crashf("malformed float literal %s at %v passed parser", lit, a.pos);
+               log.Crashf("malformed float literal %s at %v passed parser", lit, a.pos)
        }
        expr := a.newExpr(IdealFloatType, "float literal");
        expr.eval = func() *bignum.Rational { return f };
@@ -799,7 +799,7 @@ func (a *exprInfo) compileStringLit(lit string) *expr {
 func (a *exprInfo) compileStringList(list []*expr) *expr {
        ss := make([]string, len(list));
        for i, s := range list {
-               ss[i] = s.asString()(nil);
+               ss[i] = s.asString()(nil)
        }
        return a.compileString(strings.Join(ss, ""));
 }
@@ -825,10 +825,10 @@ func (a *exprInfo) compileSelectorExpr(v *expr, name string) *expr {
                        amberr = "";
 
                case depth == bestDepth:
-                       ambig = true;
+                       ambig = true
 
                default:
-                       log.Crashf("Marked field at depth %d, but already found one at depth %d", depth, bestDepth);
+                       log.Crashf("Marked field at depth %d, but already found one at depth %d", depth, bestDepth)
                }
                amberr += "\n\t"+pathName[1:len(pathName)];
        };
@@ -849,12 +849,12 @@ func (a *exprInfo) compileSelectorExpr(v *expr, name string) *expr {
        find = func(t Type, depth int, pathName string) (func(*expr) *expr) {
                // Don't bother looking if we've found something shallower
                if bestDepth != -1 && bestDepth < depth {
-                       return nil;
+                       return nil
                }
 
                // Don't check the same type twice and avoid loops
                if _, ok := visited[t]; ok {
-                       return nil;
+                       return nil
                }
                visited[t] = true;
 
@@ -888,11 +888,11 @@ func (a *exprInfo) compileSelectorExpr(v *expr, name string) *expr {
                                case f.Anonymous:
                                        sub = find(f.Type, depth+1, pathName + "." + f.Name);
                                        if sub == nil {
-                                               continue;
+                                               continue
                                        }
 
                                default:
-                                       continue;
+                                       continue
                                }
 
                                // We found something.  Create a
@@ -901,7 +901,7 @@ func (a *exprInfo) compileSelectorExpr(v *expr, name string) *expr {
                                index := i;
                                builder = func(parent *expr) *expr {
                                        if deref {
-                                               parent = a.compileStarExpr(parent);
+                                               parent = a.compileStarExpr(parent)
                                        }
                                        expr := a.newExpr(ft, "selector expression");
                                        pf := parent.asStruct();
@@ -941,10 +941,10 @@ func (a *exprInfo) compileSliceExpr(arr, lo, hi *expr) *expr {
                maxIndex = lt.Len;
 
        case *SliceType:
-               at = lt;
+               at = lt
 
        case *stringType:
-               at = lt;
+               at = lt
 
        default:
                a.diag("cannot slice %v", arr.t);
@@ -958,7 +958,7 @@ func (a *exprInfo) compileSliceExpr(arr, lo, hi *expr) *expr {
        lo = lo.convertToInt(maxIndex, "slice", "slice");
        hi = hi.convertToInt(maxIndex, "slice", "slice");
        if lo == nil || hi == nil {
-               return nil;
+               return nil
        }
 
        expr := a.newExpr(at, "slice expression");
@@ -973,7 +973,7 @@ func (a *exprInfo) compileSliceExpr(arr, lo, hi *expr) *expr {
                expr.eval = func(t *Thread) Slice {
                        arr, lo, hi := arrf(t), lof(t), hif(t);
                        if lo > hi || hi > bound || lo < 0 {
-                               t.Abort(SliceError{lo, hi, bound});
+                               t.Abort(SliceError{lo, hi, bound})
                        }
                        return Slice{arr.Sub(lo, bound-lo), hi-lo, bound-lo};
                };
@@ -983,7 +983,7 @@ func (a *exprInfo) compileSliceExpr(arr, lo, hi *expr) *expr {
                expr.eval = func(t *Thread) Slice {
                        arr, lo, hi := arrf(t), lof(t), hif(t);
                        if lo > hi || hi > arr.Cap || lo < 0 {
-                               t.Abort(SliceError{lo, hi, arr.Cap});
+                               t.Abort(SliceError{lo, hi, arr.Cap})
                        }
                        return Slice{arr.Base.Sub(lo, arr.Cap - lo), hi-lo, arr.Cap - lo};
                };
@@ -996,13 +996,13 @@ func (a *exprInfo) compileSliceExpr(arr, lo, hi *expr) *expr {
                expr.eval = func(t *Thread) string {
                        arr, lo, hi := arrf(t), lof(t), hif(t);
                        if lo > hi || hi > int64(len(arr)) || lo < 0 {
-                               t.Abort(SliceError{lo, hi, int64(len(arr))});
+                               t.Abort(SliceError{lo, hi, int64(len(arr))})
                        }
                        return arr[lo:hi];
                };
 
        default:
-               log.Crashf("unexpected left operand type %T", arr.t.lit());
+               log.Crashf("unexpected left operand type %T", arr.t.lit())
        }
 
        return expr;
@@ -1035,7 +1035,7 @@ func (a *exprInfo) compileIndexExpr(l, r *expr) *expr {
                if r.t.isIdeal() {
                        r = r.convertTo(lt.Key);
                        if r == nil {
-                               return nil;
+                               return nil
                        }
                }
                if !lt.Key.compat(r.t, false) {
@@ -1055,7 +1055,7 @@ func (a *exprInfo) compileIndexExpr(l, r *expr) *expr {
                // believe that's wrong.
                r = r.convertToInt(maxIndex, "index", "index");
                if r == nil {
-                       return nil;
+                       return nil
                }
        }
 
@@ -1070,7 +1070,7 @@ func (a *exprInfo) compileIndexExpr(l, r *expr) *expr {
                expr.genValue(func(t *Thread) Value {
                        l, r := lf(t), rf(t);
                        if r < 0 || r >= bound {
-                               t.Abort(IndexError{r, bound});
+                               t.Abort(IndexError{r, bound})
                        }
                        return l.Elem(t, r);
                });
@@ -1081,10 +1081,10 @@ func (a *exprInfo) compileIndexExpr(l, r *expr) *expr {
                expr.genValue(func(t *Thread) Value {
                        l, r := lf(t), rf(t);
                        if l.Base == nil {
-                               t.Abort(NilPointerError{});
+                               t.Abort(NilPointerError{})
                        }
                        if r < 0 || r >= l.Len {
-                               t.Abort(IndexError{r, l.Len});
+                               t.Abort(IndexError{r, l.Len})
                        }
                        return l.Base.Elem(t, r);
                });
@@ -1097,7 +1097,7 @@ func (a *exprInfo) compileIndexExpr(l, r *expr) *expr {
                expr.eval = func(t *Thread) uint64 {
                        l, r := lf(t), rf(t);
                        if r < 0 || r >= int64(len(l)) {
-                               t.Abort(IndexError{r, int64(len(l))});
+                               t.Abort(IndexError{r, int64(len(l))})
                        }
                        return uint64(l[r]);
                };
@@ -1109,11 +1109,11 @@ func (a *exprInfo) compileIndexExpr(l, r *expr) *expr {
                        m := lf(t);
                        k := rf(t);
                        if m == nil {
-                               t.Abort(NilPointerError{});
+                               t.Abort(NilPointerError{})
                        }
                        e := m.Elem(t, k);
                        if e == nil {
-                               t.Abort(KeyError{k});
+                               t.Abort(KeyError{k})
                        }
                        return e;
                });
@@ -1122,11 +1122,11 @@ func (a *exprInfo) compileIndexExpr(l, r *expr) *expr {
                expr.evalAddr = nil;
                expr.evalMapValue = func(t *Thread) (Map, interface{}) {
                        // TODO(austin) Key check?  nil check?
-                       return lf(t), rf(t);
+                       return lf(t), rf(t)
                };
 
        default:
-               log.Crashf("unexpected left operand type %T", l.t.lit());
+               log.Crashf("unexpected left operand type %T", l.t.lit())
        }
 
        return expr;
@@ -1157,28 +1157,28 @@ func (a *exprInfo) compileCallExpr(b *block, l *expr, as []*expr) *expr {
        nin := len(lt.In);
        assign := a.compileAssign(a.pos, b, NewMultiType(lt.In), as, "function call", "argument");
        if assign == nil {
-               return nil;
+               return nil
        }
 
        var t Type;
        nout := len(lt.Out);
        switch nout {
        case 0:
-               t = EmptyType;
+               t = EmptyType
        case 1:
-               t = lt.Out[0];
+               t = lt.Out[0]
        default:
-               t = NewMultiType(lt.Out);
+               t = NewMultiType(lt.Out)
        }
        expr := a.newExpr(t, "function call");
 
        // Gather argument and out types to initialize frame variables
        vts := make([]Type, nin+nout);
        for i, t := range lt.In {
-               vts[i] = t;
+               vts[i] = t
        }
        for i, t := range lt.Out {
-               vts[i+nin] = t;
+               vts[i+nin] = t
        }
 
        // Compile
@@ -1187,7 +1187,7 @@ func (a *exprInfo) compileCallExpr(b *block, l *expr, as []*expr) *expr {
                fun := lf(t);
                fr := fun.NewFrame();
                for i, t := range vts {
-                       fr.Vars[i] = t.Zero();
+                       fr.Vars[i] = t.Zero()
                }
                assign(multiV(fr.Vars[0:nin]), t);
                oldf := t.f;
@@ -1216,7 +1216,7 @@ func (a *exprInfo) compileBuiltinCallExpr(b *block, ft *FuncType, as []*expr) *e
        switch ft {
        case capType:
                if !checkCount(1, 1) {
-                       return nil;
+                       return nil
                }
                arg := as[0].derefArray();
                expr := a.newExpr(IntType, "function call");
@@ -1241,7 +1241,7 @@ func (a *exprInfo) compileBuiltinCallExpr(b *block, ft *FuncType, as []*expr) *e
 
        case lenType:
                if !checkCount(1, 1) {
-                       return nil;
+                       return nil
                }
                arg := as[0].derefArray();
                expr := a.newExpr(IntType, "function call");
@@ -1267,7 +1267,7 @@ func (a *exprInfo) compileBuiltinCallExpr(b *block, ft *FuncType, as []*expr) *e
                                // uninitialized map?
                                m := vf(t);
                                if m == nil {
-                                       return 0;
+                                       return 0
                                }
                                return m.Len(t);
                        };
@@ -1282,7 +1282,7 @@ func (a *exprInfo) compileBuiltinCallExpr(b *block, ft *FuncType, as []*expr) *e
 
        case makeType:
                if !checkCount(1, 3) {
-                       return nil;
+                       return nil
                }
                // XXX(Spec) What are the types of the
                // arguments?  Do they have to be ints?  6g
@@ -1292,14 +1292,14 @@ func (a *exprInfo) compileBuiltinCallExpr(b *block, ft *FuncType, as []*expr) *e
                if len(as) > 1 {
                        lenexpr = as[1].convertToInt(-1, "length", "make function");
                        if lenexpr == nil {
-                               return nil;
+                               return nil
                        }
                        lenf = lenexpr.asInt();
                }
                if len(as) > 2 {
                        capexpr = as[2].convertToInt(-1, "capacity", "make function");
                        if capexpr == nil {
-                               return nil;
+                               return nil
                        }
                        capf = capexpr.asInt();
                }
@@ -1312,7 +1312,7 @@ func (a *exprInfo) compileBuiltinCallExpr(b *block, ft *FuncType, as []*expr) *e
                        // parameters specifying the length and
                        // optionally the capacity.
                        if !checkCount(2, 3) {
-                               return nil;
+                               return nil
                        }
                        et := t.Elem;
                        expr := a.newExpr(t, "function call");
@@ -1321,24 +1321,24 @@ func (a *exprInfo) compileBuiltinCallExpr(b *block, ft *FuncType, as []*expr) *e
                                // XXX(Spec) What if len or cap is
                                // negative?  The runtime panics.
                                if l < 0 {
-                                       t.Abort(NegativeLengthError{l});
+                                       t.Abort(NegativeLengthError{l})
                                }
                                c := l;
                                if capf != nil {
                                        c = capf(t);
                                        if c < 0 {
-                                               t.Abort(NegativeCapacityError{c});
+                                               t.Abort(NegativeCapacityError{c})
                                        }
                                        // XXX(Spec) What happens if
                                        // len > cap?  The runtime
                                        // sets cap to len.
                                        if l > c {
-                                               c = l;
+                                               c = l
                                        }
                                }
                                base := arrayV(make([]Value, c));
                                for i := int64(0); i < c; i++ {
-                                       base[i] = et.Zero();
+                                       base[i] = et.Zero()
                                }
                                return Slice{&base, l, c};
                        };
@@ -1350,12 +1350,12 @@ func (a *exprInfo) compileBuiltinCallExpr(b *block, ft *FuncType, as []*expr) *e
                        // type and an optional capacity hint as
                        // arguments.
                        if !checkCount(1, 2) {
-                               return nil;
+                               return nil
                        }
                        expr := a.newExpr(t, "function call");
                        expr.eval = func(t *Thread) Map {
                                if lenf == nil {
-                                       return make(evalMap);
+                                       return make(evalMap)
                                }
                                l := lenf(t);
                                return make(evalMap, l);
@@ -1375,7 +1375,7 @@ func (a *exprInfo) compileBuiltinCallExpr(b *block, ft *FuncType, as []*expr) *e
 
        case newType:
                if !checkCount(1, 1) {
-                       return nil;
+                       return nil
                }
 
                t := as[0].valType;
@@ -1386,14 +1386,14 @@ func (a *exprInfo) compileBuiltinCallExpr(b *block, ft *FuncType, as []*expr) *e
        case panicType, paniclnType, printType, printlnType:
                evals := make([]func(*Thread) interface{}, len(as));
                for i, x := range as {
-                       evals[i] = x.asInterface();
+                       evals[i] = x.asInterface()
                }
                spaces := ft == paniclnType || ft == printlnType;
                newline := ft != printType;
                printer := func(t *Thread) {
                        for i, eval := range evals {
                                if i > 0 && spaces {
-                                       print(" ");
+                                       print(" ")
                                }
                                v := eval(t);
                                type stringer interface {
@@ -1401,23 +1401,23 @@ func (a *exprInfo) compileBuiltinCallExpr(b *block, ft *FuncType, as []*expr) *e
                                }
                                switch v1 := v.(type) {
                                case bool:
-                                       print(v1);
+                                       print(v1)
                                case uint64:
-                                       print(v1);
+                                       print(v1)
                                case int64:
-                                       print(v1);
+                                       print(v1)
                                case float64:
-                                       print(v1);
+                                       print(v1)
                                case string:
-                                       print(v1);
+                                       print(v1)
                                case stringer:
-                                       print(v1.String());
+                                       print(v1.String())
                                default:
-                                       print("???");
+                                       print("???")
                                }
                        }
                        if newline {
-                               print("\n");
+                               print("\n")
                        }
                };
                expr := a.newExpr(EmptyType, "print");
@@ -1426,7 +1426,7 @@ func (a *exprInfo) compileBuiltinCallExpr(b *block, ft *FuncType, as []*expr) *e
                        expr.exec = func(t *Thread) {
                                printer(t);
                                t.Abort(os.NewError("panic"));
-                       };
+                       }
                }
                return expr;
        }
@@ -1443,7 +1443,7 @@ func (a *exprInfo) compileStarExpr(v *expr) *expr {
                expr.genValue(func(t *Thread) Value {
                        v := vf(t);
                        if v == nil {
-                               t.Abort(NilPointerError{});
+                               t.Abort(NilPointerError{})
                        }
                        return v;
                });
@@ -1498,10 +1498,10 @@ func (a *exprInfo) compileUnaryExpr(op token.Token, v *expr) *expr {
                t = NewPtrType(v.t);
 
        case token.ARROW:
-               log.Crashf("Unary op %v not implemented", op);
+               log.Crashf("Unary op %v not implemented", op)
 
        default:
-               log.Crashf("unknown unary operator %v", op);
+               log.Crashf("unknown unary operator %v", op)
        }
 
        desc, ok := unaryOpDescs[op];
@@ -1519,20 +1519,20 @@ func (a *exprInfo) compileUnaryExpr(op token.Token, v *expr) *expr {
                expr.desc = desc;
 
        case token.SUB:
-               expr.genUnaryOpNeg(v);
+               expr.genUnaryOpNeg(v)
 
        case token.NOT:
-               expr.genUnaryOpNot(v);
+               expr.genUnaryOpNot(v)
 
        case token.XOR:
-               expr.genUnaryOpXor(v);
+               expr.genUnaryOpXor(v)
 
        case token.AND:
                vf := v.evalAddr;
                expr.eval = func(t *Thread) Value { return vf(t) };
 
        default:
-               log.Crashf("Compilation of unary op %v not implemented", op);
+               log.Crashf("Compilation of unary op %v not implemented", op)
        }
 
        return expr;
@@ -1564,12 +1564,12 @@ func (a *exprInfo) compileBinaryExpr(op token.Token, l, r *expr) *expr {
                // number, the ideal number is converted to match the
                // type of the other operand.
                if (l.t.isInteger() || l.t.isFloat()) && !l.t.isIdeal() && r.t.isIdeal() {
-                       r = r.convertTo(l.t);
+                       r = r.convertTo(l.t)
                } else if (r.t.isInteger() || r.t.isFloat()) && !r.t.isIdeal() && l.t.isIdeal() {
-                       l = l.convertTo(r.t);
+                       l = l.convertTo(r.t)
                }
                if l == nil || r == nil {
-                       return nil;
+                       return nil
                }
 
                // Except in shift expressions, if both operands are
@@ -1577,12 +1577,12 @@ func (a *exprInfo) compileBinaryExpr(op token.Token, l, r *expr) *expr {
                // is converted to ideal float.
                if l.t.isIdeal() && r.t.isIdeal() {
                        if l.t.isInteger() && r.t.isFloat() {
-                               l = l.convertTo(r.t);
+                               l = l.convertTo(r.t)
                        } else if l.t.isFloat() && r.t.isInteger() {
-                               r = r.convertTo(l.t);
+                               r = r.convertTo(l.t)
                        }
                        if l == nil || r == nil {
-                               return nil;
+                               return nil
                        }
                }
        }
@@ -1594,7 +1594,7 @@ func (a *exprInfo) compileBinaryExpr(op token.Token, l, r *expr) *expr {
        floats := func() bool { return l.t.isFloat() && r.t.isFloat() };
        strings := func() bool {
                // TODO(austin) Deal with named types
-               return l.t == StringType && r.t == StringType;
+               return l.t == StringType && r.t == StringType
        };
        booleans := func() bool { return l.t.isBoolean() && r.t.isBoolean() };
 
@@ -1642,13 +1642,13 @@ func (a *exprInfo) compileBinaryExpr(op token.Token, l, r *expr) *expr {
                if r.t.isIdeal() {
                        r2 := r.convertTo(UintType);
                        if r2 == nil {
-                               return nil;
+                               return nil
                        }
 
                        // If the left operand is not ideal, convert
                        // the right to not ideal.
                        if !l.t.isIdeal() {
-                               r = r2;
+                               r = r2
                        }
 
                        // If both are ideal, but the right side isn't
@@ -1656,7 +1656,7 @@ func (a *exprInfo) compileBinaryExpr(op token.Token, l, r *expr) *expr {
                        if l.t.isIdeal() && !r.t.isInteger() {
                                r = r.convertTo(IdealIntType);
                                if r == nil {
-                                       log.Crashf("conversion to uintType succeeded, but conversion to idealIntType failed");
+                                       log.Crashf("conversion to uintType succeeded, but conversion to idealIntType failed")
                                }
                        }
                } else if _, ok := r.t.lit().(*uintType); !ok {
@@ -1672,7 +1672,7 @@ func (a *exprInfo) compileBinaryExpr(op token.Token, l, r *expr) *expr {
 
                        l = l.convertTo(IntType);
                        if l == nil {
-                               return nil;
+                               return nil
                        }
                }
 
@@ -1685,7 +1685,7 @@ func (a *exprInfo) compileBinaryExpr(op token.Token, l, r *expr) *expr {
 
        case token.LOR, token.LAND:
                if !booleans() {
-                       return nil;
+                       return nil
                }
                // XXX(Spec) There's no mention of *which* boolean
                // type the logical operators return.  From poking at
@@ -1767,7 +1767,7 @@ func (a *exprInfo) compileBinaryExpr(op token.Token, l, r *expr) *expr {
                t = BoolType;
 
        default:
-               log.Crashf("unknown binary operator %v", op);
+               log.Crashf("unknown binary operator %v", op)
        }
 
        desc, ok := binOpDescs[op];
@@ -1792,31 +1792,31 @@ func (a *exprInfo) compileBinaryExpr(op token.Token, l, r *expr) *expr {
        expr := a.newExpr(t, desc);
        switch op {
        case token.ADD:
-               expr.genBinOpAdd(l, r);
+               expr.genBinOpAdd(l, r)
 
        case token.SUB:
-               expr.genBinOpSub(l, r);
+               expr.genBinOpSub(l, r)
 
        case token.MUL:
-               expr.genBinOpMul(l, r);
+               expr.genBinOpMul(l, r)
 
        case token.QUO:
-               expr.genBinOpQuo(l, r);
+               expr.genBinOpQuo(l, r)
 
        case token.REM:
-               expr.genBinOpRem(l, r);
+               expr.genBinOpRem(l, r)
 
        case token.AND:
-               expr.genBinOpAnd(l, r);
+               expr.genBinOpAnd(l, r)
 
        case token.OR:
-               expr.genBinOpOr(l, r);
+               expr.genBinOpOr(l, r)
 
        case token.XOR:
-               expr.genBinOpXor(l, r);
+               expr.genBinOpXor(l, r)
 
        case token.AND_NOT:
-               expr.genBinOpAndNot(l, r);
+               expr.genBinOpAndNot(l, r)
 
        case token.SHL:
                if l.t.isIdeal() {
@@ -1831,7 +1831,7 @@ func (a *exprInfo) compileBinaryExpr(op token.Token, l, r *expr) *expr {
                        val := lv.Shl(uint(rv.Value()));
                        expr.eval = func() *bignum.Integer { return val };
                } else {
-                       expr.genBinOpShl(l, r);
+                       expr.genBinOpShl(l, r)
                }
 
        case token.SHR:
@@ -1841,35 +1841,35 @@ func (a *exprInfo) compileBinaryExpr(op token.Token, l, r *expr) *expr {
                        val := lv.Shr(uint(rv.Value()));
                        expr.eval = func() *bignum.Integer { return val };
                } else {
-                       expr.genBinOpShr(l, r);
+                       expr.genBinOpShr(l, r)
                }
 
        case token.LSS:
-               expr.genBinOpLss(l, r);
+               expr.genBinOpLss(l, r)
 
        case token.GTR:
-               expr.genBinOpGtr(l, r);
+               expr.genBinOpGtr(l, r)
 
        case token.LEQ:
-               expr.genBinOpLeq(l, r);
+               expr.genBinOpLeq(l, r)
 
        case token.GEQ:
-               expr.genBinOpGeq(l, r);
+               expr.genBinOpGeq(l, r)
 
        case token.EQL:
-               expr.genBinOpEql(l, r);
+               expr.genBinOpEql(l, r)
 
        case token.NEQ:
-               expr.genBinOpNeq(l, r);
+               expr.genBinOpNeq(l, r)
 
        case token.LAND:
-               expr.genBinOpLogAnd(l, r);
+               expr.genBinOpLogAnd(l, r)
 
        case token.LOR:
-               expr.genBinOpLogOr(l, r);
+               expr.genBinOpLogOr(l, r)
 
        default:
-               log.Crashf("Compilation of binary op %v not implemented", op);
+               log.Crashf("Compilation of binary op %v not implemented", op)
        }
 
        return expr;
@@ -1880,14 +1880,14 @@ func (a *exprInfo) compileBinaryExpr(op token.Token, l, r *expr) *expr {
 func (a *compiler) compileArrayLen(b *block, expr ast.Expr) (int64, bool) {
        lenExpr := a.compileExpr(b, true, expr);
        if lenExpr == nil {
-               return 0, false;
+               return 0, false
        }
 
        // XXX(Spec) Are ideal floats with no fractional part okay?
        if lenExpr.t.isIdeal() {
                lenExpr = lenExpr.convertTo(IntType);
                if lenExpr == nil {
-                       return 0, false;
+                       return 0, false
                }
        }
 
@@ -1898,9 +1898,9 @@ func (a *compiler) compileArrayLen(b *block, expr ast.Expr) (int64, bool) {
 
        switch lenExpr.t.lit().(type) {
        case *intType:
-               return lenExpr.asInt()(nil), true;
+               return lenExpr.asInt()(nil), true
        case *uintType:
-               return int64(lenExpr.asUint()(nil)), true;
+               return int64(lenExpr.asUint()(nil)), true
        }
        log.Crashf("unexpected integer type %T", lenExpr.t);
        return 0, false;
@@ -1911,7 +1911,7 @@ func (a *compiler) compileExpr(b *block, constant bool, expr ast.Expr) *expr {
        nerr := a.numError();
        e := ec.compile(expr, false);
        if e == nil && nerr == a.numError() {
-               log.Crashf("expression compilation failed without reporting errors");
+               log.Crashf("expression compilation failed without reporting errors")
        }
        return e;
 }
@@ -1928,13 +1928,13 @@ func (a *expr) extractEffect(b *block, errOp string) (func(*Thread), *expr) {
        // Create "&a" if a is addressable
        rhs := a;
        if a.evalAddr != nil {
-               rhs = a.compileUnaryExpr(token.AND, rhs);
+               rhs = a.compileUnaryExpr(token.AND, rhs)
        }
 
        // Create temp
        ac, ok := a.checkAssign(a.pos, []*expr{rhs}, errOp, "");
        if !ok {
-               return nil, nil;
+               return nil, nil
        }
        if len(ac.rmt.Elems) != 1 {
                a.diag("multi-valued expression not allowed in %s", errOp);
@@ -1945,11 +1945,11 @@ func (a *expr) extractEffect(b *block, errOp string) (func(*Thread), *expr) {
                // It's too bad we have to duplicate this rule.
                switch {
                case tempType.isInteger():
-                       tempType = IntType;
+                       tempType = IntType
                case tempType.isFloat():
-                       tempType = FloatType;
+                       tempType = FloatType
                default:
-                       log.Crashf("unexpected ideal type %v", tempType);
+                       log.Crashf("unexpected ideal type %v", tempType)
                }
        }
        temp := b.DefineTemp(tempType);
@@ -1958,7 +1958,7 @@ func (a *expr) extractEffect(b *block, errOp string) (func(*Thread), *expr) {
        // Create "temp := rhs"
        assign := ac.compile(b, tempType);
        if assign == nil {
-               log.Crashf("compileAssign type check failed");
+               log.Crashf("compileAssign type check failed")
        }
 
        effect := func(t *Thread) {
@@ -1970,12 +1970,12 @@ func (a *expr) extractEffect(b *block, errOp string) (func(*Thread), *expr) {
        // Generate "temp" or "*temp"
        getTemp := a.compileVariable(0, temp);
        if a.evalAddr == nil {
-               return effect, getTemp;
+               return effect, getTemp
        }
 
        deref := a.compileStarExpr(getTemp);
        if deref == nil {
-               return nil, nil;
+               return nil, nil
        }
        return effect, deref;
 }
index c77c99934fafcb65f4cbb621b6be9d45200dd578..c4960abbcb676862622c80314205021d72ae08f5 100644 (file)
@@ -14,67 +14,67 @@ import (
  */
 func (a *expr) asBool() (func(*Thread) bool)   { return a.eval.(func(*Thread) bool) }
 func (a *expr) asUint() (func(*Thread) uint64) {
-       return a.eval.(func(*Thread) uint64);
+       return a.eval.(func(*Thread) uint64)
 }
 func (a *expr) asInt() (func(*Thread) int64)   { return a.eval.(func(*Thread) int64) }
 func (a *expr) asIdealInt() (func() *bignum.Integer) {
-       return a.eval.(func() *bignum.Integer);
+       return a.eval.(func() *bignum.Integer)
 }
 func (a *expr) asFloat() (func(*Thread) float64) {
-       return a.eval.(func(*Thread) float64);
+       return a.eval.(func(*Thread) float64)
 }
 func (a *expr) asIdealFloat() (func() *bignum.Rational) {
-       return a.eval.(func() *bignum.Rational);
+       return a.eval.(func() *bignum.Rational)
 }
 func (a *expr) asString() (func(*Thread) string) {
-       return a.eval.(func(*Thread) string);
+       return a.eval.(func(*Thread) string)
 }
 func (a *expr) asArray() (func(*Thread) ArrayValue) {
-       return a.eval.(func(*Thread) ArrayValue);
+       return a.eval.(func(*Thread) ArrayValue)
 }
 func (a *expr) asStruct() (func(*Thread) StructValue) {
-       return a.eval.(func(*Thread) StructValue);
+       return a.eval.(func(*Thread) StructValue)
 }
 func (a *expr) asPtr() (func(*Thread) Value)   { return a.eval.(func(*Thread) Value) }
 func (a *expr) asFunc() (func(*Thread) Func)   { return a.eval.(func(*Thread) Func) }
 func (a *expr) asSlice() (func(*Thread) Slice) {
-       return a.eval.(func(*Thread) Slice);
+       return a.eval.(func(*Thread) Slice)
 }
 func (a *expr) asMap() (func(*Thread) Map)     { return a.eval.(func(*Thread) Map) }
 func (a *expr) asMulti() (func(*Thread) []Value) {
-       return a.eval.(func(*Thread) []Value);
+       return a.eval.(func(*Thread) []Value)
 }
 
 func (a *expr) asInterface() (func(*Thread) interface{}) {
        switch sf := a.eval.(type) {
        case func(t *Thread) bool:
-               return func(t *Thread) interface{} { return sf(t) };
+               return func(t *Thread) interface{} { return sf(t) }
        case func(t *Thread) uint64:
-               return func(t *Thread) interface{} { return sf(t) };
+               return func(t *Thread) interface{} { return sf(t) }
        case func(t *Thread) int64:
-               return func(t *Thread) interface{} { return sf(t) };
+               return func(t *Thread) interface{} { return sf(t) }
        case func() *bignum.Integer:
-               return func(*Thread) interface{} { return sf() };
+               return func(*Thread) interface{} { return sf() }
        case func(t *Thread) float64:
-               return func(t *Thread) interface{} { return sf(t) };
+               return func(t *Thread) interface{} { return sf(t) }
        case func() *bignum.Rational:
-               return func(*Thread) interface{} { return sf() };
+               return func(*Thread) interface{} { return sf() }
        case func(t *Thread) string:
-               return func(t *Thread) interface{} { return sf(t) };
+               return func(t *Thread) interface{} { return sf(t) }
        case func(t *Thread) ArrayValue:
-               return func(t *Thread) interface{} { return sf(t) };
+               return func(t *Thread) interface{} { return sf(t) }
        case func(t *Thread) StructValue:
-               return func(t *Thread) interface{} { return sf(t) };
+               return func(t *Thread) interface{} { return sf(t) }
        case func(t *Thread) Value:
-               return func(t *Thread) interface{} { return sf(t) };
+               return func(t *Thread) interface{} { return sf(t) }
        case func(t *Thread) Func:
-               return func(t *Thread) interface{} { return sf(t) };
+               return func(t *Thread) interface{} { return sf(t) }
        case func(t *Thread) Slice:
-               return func(t *Thread) interface{} { return sf(t) };
+               return func(t *Thread) interface{} { return sf(t) }
        case func(t *Thread) Map:
-               return func(t *Thread) interface{} { return sf(t) };
+               return func(t *Thread) interface{} { return sf(t) }
        default:
-               log.Crashf("unexpected expression node type %T at %v", a.eval, a.pos);
+               log.Crashf("unexpected expression node type %T at %v", a.eval, a.pos)
        }
        panic();
 }
@@ -86,35 +86,35 @@ func (a *expr) asInterface() (func(*Thread) interface{}) {
 func (a *expr) genConstant(v Value) {
        switch a.t.lit().(type) {
        case *boolType:
-               a.eval = func(t *Thread) bool { return v.(BoolValue).Get(t) };
+               a.eval = func(t *Thread) bool { return v.(BoolValue).Get(t) }
        case *uintType:
-               a.eval = func(t *Thread) uint64 { return v.(UintValue).Get(t) };
+               a.eval = func(t *Thread) uint64 { return v.(UintValue).Get(t) }
        case *intType:
-               a.eval = func(t *Thread) int64 { return v.(IntValue).Get(t) };
+               a.eval = func(t *Thread) int64 { return v.(IntValue).Get(t) }
        case *idealIntType:
                val := v.(IdealIntValue).Get();
                a.eval = func() *bignum.Integer { return val };
        case *floatType:
-               a.eval = func(t *Thread) float64 { return v.(FloatValue).Get(t) };
+               a.eval = func(t *Thread) float64 { return v.(FloatValue).Get(t) }
        case *idealFloatType:
                val := v.(IdealFloatValue).Get();
                a.eval = func() *bignum.Rational { return val };
        case *stringType:
-               a.eval = func(t *Thread) string { return v.(StringValue).Get(t) };
+               a.eval = func(t *Thread) string { return v.(StringValue).Get(t) }
        case *ArrayType:
-               a.eval = func(t *Thread) ArrayValue { return v.(ArrayValue).Get(t) };
+               a.eval = func(t *Thread) ArrayValue { return v.(ArrayValue).Get(t) }
        case *StructType:
-               a.eval = func(t *Thread) StructValue { return v.(StructValue).Get(t) };
+               a.eval = func(t *Thread) StructValue { return v.(StructValue).Get(t) }
        case *PtrType:
-               a.eval = func(t *Thread) Value { return v.(PtrValue).Get(t) };
+               a.eval = func(t *Thread) Value { return v.(PtrValue).Get(t) }
        case *FuncType:
-               a.eval = func(t *Thread) Func { return v.(FuncValue).Get(t) };
+               a.eval = func(t *Thread) Func { return v.(FuncValue).Get(t) }
        case *SliceType:
-               a.eval = func(t *Thread) Slice { return v.(SliceValue).Get(t) };
+               a.eval = func(t *Thread) Slice { return v.(SliceValue).Get(t) }
        case *MapType:
-               a.eval = func(t *Thread) Map { return v.(MapValue).Get(t) };
+               a.eval = func(t *Thread) Map { return v.(MapValue).Get(t) }
        default:
-               log.Crashf("unexpected constant type %v at %v", a.t, a.pos);
+               log.Crashf("unexpected constant type %v at %v", a.t, a.pos)
        }
 }
 
@@ -122,29 +122,29 @@ func (a *expr) genIdentOp(level, index int) {
        a.evalAddr = func(t *Thread) Value { return t.f.Get(level, index) };
        switch a.t.lit().(type) {
        case *boolType:
-               a.eval = func(t *Thread) bool { return t.f.Get(level, index).(BoolValue).Get(t) };
+               a.eval = func(t *Thread) bool { return t.f.Get(level, index).(BoolValue).Get(t) }
        case *uintType:
-               a.eval = func(t *Thread) uint64 { return t.f.Get(level, index).(UintValue).Get(t) };
+               a.eval = func(t *Thread) uint64 { return t.f.Get(level, index).(UintValue).Get(t) }
        case *intType:
-               a.eval = func(t *Thread) int64 { return t.f.Get(level, index).(IntValue).Get(t) };
+               a.eval = func(t *Thread) int64 { return t.f.Get(level, index).(IntValue).Get(t) }
        case *floatType:
-               a.eval = func(t *Thread) float64 { return t.f.Get(level, index).(FloatValue).Get(t) };
+               a.eval = func(t *Thread) float64 { return t.f.Get(level, index).(FloatValue).Get(t) }
        case *stringType:
-               a.eval = func(t *Thread) string { return t.f.Get(level, index).(StringValue).Get(t) };
+               a.eval = func(t *Thread) string { return t.f.Get(level, index).(StringValue).Get(t) }
        case *ArrayType:
-               a.eval = func(t *Thread) ArrayValue { return t.f.Get(level, index).(ArrayValue).Get(t) };
+               a.eval = func(t *Thread) ArrayValue { return t.f.Get(level, index).(ArrayValue).Get(t) }
        case *StructType:
-               a.eval = func(t *Thread) StructValue { return t.f.Get(level, index).(StructValue).Get(t) };
+               a.eval = func(t *Thread) StructValue { return t.f.Get(level, index).(StructValue).Get(t) }
        case *PtrType:
-               a.eval = func(t *Thread) Value { return t.f.Get(level, index).(PtrValue).Get(t) };
+               a.eval = func(t *Thread) Value { return t.f.Get(level, index).(PtrValue).Get(t) }
        case *FuncType:
-               a.eval = func(t *Thread) Func { return t.f.Get(level, index).(FuncValue).Get(t) };
+               a.eval = func(t *Thread) Func { return t.f.Get(level, index).(FuncValue).Get(t) }
        case *SliceType:
-               a.eval = func(t *Thread) Slice { return t.f.Get(level, index).(SliceValue).Get(t) };
+               a.eval = func(t *Thread) Slice { return t.f.Get(level, index).(SliceValue).Get(t) }
        case *MapType:
-               a.eval = func(t *Thread) Map { return t.f.Get(level, index).(MapValue).Get(t) };
+               a.eval = func(t *Thread) Map { return t.f.Get(level, index).(MapValue).Get(t) }
        default:
-               log.Crashf("unexpected identifier type %v at %v", a.t, a.pos);
+               log.Crashf("unexpected identifier type %v at %v", a.t, a.pos)
        }
 }
 
@@ -152,31 +152,31 @@ func (a *expr) genFuncCall(call func(t *Thread) []Value) {
        a.exec = func(t *Thread) { call(t) };
        switch a.t.lit().(type) {
        case *boolType:
-               a.eval = func(t *Thread) bool { return call(t)[0].(BoolValue).Get(t) };
+               a.eval = func(t *Thread) bool { return call(t)[0].(BoolValue).Get(t) }
        case *uintType:
-               a.eval = func(t *Thread) uint64 { return call(t)[0].(UintValue).Get(t) };
+               a.eval = func(t *Thread) uint64 { return call(t)[0].(UintValue).Get(t) }
        case *intType:
-               a.eval = func(t *Thread) int64 { return call(t)[0].(IntValue).Get(t) };
+               a.eval = func(t *Thread) int64 { return call(t)[0].(IntValue).Get(t) }
        case *floatType:
-               a.eval = func(t *Thread) float64 { return call(t)[0].(FloatValue).Get(t) };
+               a.eval = func(t *Thread) float64 { return call(t)[0].(FloatValue).Get(t) }
        case *stringType:
-               a.eval = func(t *Thread) string { return call(t)[0].(StringValue).Get(t) };
+               a.eval = func(t *Thread) string { return call(t)[0].(StringValue).Get(t) }
        case *ArrayType:
-               a.eval = func(t *Thread) ArrayValue { return call(t)[0].(ArrayValue).Get(t) };
+               a.eval = func(t *Thread) ArrayValue { return call(t)[0].(ArrayValue).Get(t) }
        case *StructType:
-               a.eval = func(t *Thread) StructValue { return call(t)[0].(StructValue).Get(t) };
+               a.eval = func(t *Thread) StructValue { return call(t)[0].(StructValue).Get(t) }
        case *PtrType:
-               a.eval = func(t *Thread) Value { return call(t)[0].(PtrValue).Get(t) };
+               a.eval = func(t *Thread) Value { return call(t)[0].(PtrValue).Get(t) }
        case *FuncType:
-               a.eval = func(t *Thread) Func { return call(t)[0].(FuncValue).Get(t) };
+               a.eval = func(t *Thread) Func { return call(t)[0].(FuncValue).Get(t) }
        case *SliceType:
-               a.eval = func(t *Thread) Slice { return call(t)[0].(SliceValue).Get(t) };
+               a.eval = func(t *Thread) Slice { return call(t)[0].(SliceValue).Get(t) }
        case *MapType:
-               a.eval = func(t *Thread) Map { return call(t)[0].(MapValue).Get(t) };
+               a.eval = func(t *Thread) Map { return call(t)[0].(MapValue).Get(t) }
        case *MultiType:
-               a.eval = func(t *Thread) []Value { return call(t) };
+               a.eval = func(t *Thread) []Value { return call(t) }
        default:
-               log.Crashf("unexpected result type %v at %v", a.t, a.pos);
+               log.Crashf("unexpected result type %v at %v", a.t, a.pos)
        }
 }
 
@@ -184,29 +184,29 @@ func (a *expr) genValue(vf func(*Thread) Value) {
        a.evalAddr = vf;
        switch a.t.lit().(type) {
        case *boolType:
-               a.eval = func(t *Thread) bool { return vf(t).(BoolValue).Get(t) };
+               a.eval = func(t *Thread) bool { return vf(t).(BoolValue).Get(t) }
        case *uintType:
-               a.eval = func(t *Thread) uint64 { return vf(t).(UintValue).Get(t) };
+               a.eval = func(t *Thread) uint64 { return vf(t).(UintValue).Get(t) }
        case *intType:
-               a.eval = func(t *Thread) int64 { return vf(t).(IntValue).Get(t) };
+               a.eval = func(t *Thread) int64 { return vf(t).(IntValue).Get(t) }
        case *floatType:
-               a.eval = func(t *Thread) float64 { return vf(t).(FloatValue).Get(t) };
+               a.eval = func(t *Thread) float64 { return vf(t).(FloatValue).Get(t) }
        case *stringType:
-               a.eval = func(t *Thread) string { return vf(t).(StringValue).Get(t) };
+               a.eval = func(t *Thread) string { return vf(t).(StringValue).Get(t) }
        case *ArrayType:
-               a.eval = func(t *Thread) ArrayValue { return vf(t).(ArrayValue).Get(t) };
+               a.eval = func(t *Thread) ArrayValue { return vf(t).(ArrayValue).Get(t) }
        case *StructType:
-               a.eval = func(t *Thread) StructValue { return vf(t).(StructValue).Get(t) };
+               a.eval = func(t *Thread) StructValue { return vf(t).(StructValue).Get(t) }
        case *PtrType:
-               a.eval = func(t *Thread) Value { return vf(t).(PtrValue).Get(t) };
+               a.eval = func(t *Thread) Value { return vf(t).(PtrValue).Get(t) }
        case *FuncType:
-               a.eval = func(t *Thread) Func { return vf(t).(FuncValue).Get(t) };
+               a.eval = func(t *Thread) Func { return vf(t).(FuncValue).Get(t) }
        case *SliceType:
-               a.eval = func(t *Thread) Slice { return vf(t).(SliceValue).Get(t) };
+               a.eval = func(t *Thread) Slice { return vf(t).(SliceValue).Get(t) }
        case *MapType:
-               a.eval = func(t *Thread) Map { return vf(t).(MapValue).Get(t) };
+               a.eval = func(t *Thread) Map { return vf(t).(MapValue).Get(t) }
        default:
-               log.Crashf("unexpected result type %v at %v", a.t, a.pos);
+               log.Crashf("unexpected result type %v at %v", a.t, a.pos)
        }
 }
 
@@ -239,7 +239,7 @@ func (a *expr) genUnaryOpNeg(v *expr) {
                val := v.Neg();
                a.eval = func() *bignum.Rational { return val };
        default:
-               log.Crashf("unexpected type %v at %v", a.t, a.pos);
+               log.Crashf("unexpected type %v at %v", a.t, a.pos)
        }
 }
 
@@ -252,7 +252,7 @@ func (a *expr) genUnaryOpNot(v *expr) {
                        return !v;
                };
        default:
-               log.Crashf("unexpected type %v at %v", a.t, a.pos);
+               log.Crashf("unexpected type %v at %v", a.t, a.pos)
        }
 }
 
@@ -275,7 +275,7 @@ func (a *expr) genUnaryOpXor(v *expr) {
                val := v.Neg().Sub(bignum.Int(1));
                a.eval = func() *bignum.Integer { return val };
        default:
-               log.Crashf("unexpected type %v at %v", a.t, a.pos);
+               log.Crashf("unexpected type %v at %v", a.t, a.pos)
        }
 }
 
@@ -303,37 +303,37 @@ func (a *expr) genBinOpAdd(l, r *expr) {
                                var ret uint64;
                                ret = l+r;
                                return uint64(uint8(ret));
-                       };
+                       }
                case 16:
                        a.eval = func(t *Thread) uint64 {
                                l, r := lf(t), rf(t);
                                var ret uint64;
                                ret = l+r;
                                return uint64(uint16(ret));
-                       };
+                       }
                case 32:
                        a.eval = func(t *Thread) uint64 {
                                l, r := lf(t), rf(t);
                                var ret uint64;
                                ret = l+r;
                                return uint64(uint32(ret));
-                       };
+                       }
                case 64:
                        a.eval = func(t *Thread) uint64 {
                                l, r := lf(t), rf(t);
                                var ret uint64;
                                ret = l+r;
                                return uint64(uint64(ret));
-                       };
+                       }
                case 0:
                        a.eval = func(t *Thread) uint64 {
                                l, r := lf(t), rf(t);
                                var ret uint64;
                                ret = l+r;
                                return uint64(uint(ret));
-                       };
+                       }
                default:
-                       log.Crashf("unexpected size %d in type %v at %v", t.Bits, t, a.pos);
+                       log.Crashf("unexpected size %d in type %v at %v", t.Bits, t, a.pos)
                }
        case *intType:
                lf := l.asInt();
@@ -345,37 +345,37 @@ func (a *expr) genBinOpAdd(l, r *expr) {
                                var ret int64;
                                ret = l+r;
                                return int64(int8(ret));
-                       };
+                       }
                case 16:
                        a.eval = func(t *Thread) int64 {
                                l, r := lf(t), rf(t);
                                var ret int64;
                                ret = l+r;
                                return int64(int16(ret));
-                       };
+                       }
                case 32:
                        a.eval = func(t *Thread) int64 {
                                l, r := lf(t), rf(t);
                                var ret int64;
                                ret = l+r;
                                return int64(int32(ret));
-                       };
+                       }
                case 64:
                        a.eval = func(t *Thread) int64 {
                                l, r := lf(t), rf(t);
                                var ret int64;
                                ret = l+r;
                                return int64(int64(ret));
-                       };
+                       }
                case 0:
                        a.eval = func(t *Thread) int64 {
                                l, r := lf(t), rf(t);
                                var ret int64;
                                ret = l+r;
                                return int64(int(ret));
-                       };
+                       }
                default:
-                       log.Crashf("unexpected size %d in type %v at %v", t.Bits, t, a.pos);
+                       log.Crashf("unexpected size %d in type %v at %v", t.Bits, t, a.pos)
                }
        case *idealIntType:
                l := l.asIdealInt()();
@@ -392,23 +392,23 @@ func (a *expr) genBinOpAdd(l, r *expr) {
                                var ret float64;
                                ret = l+r;
                                return float64(float32(ret));
-                       };
+                       }
                case 64:
                        a.eval = func(t *Thread) float64 {
                                l, r := lf(t), rf(t);
                                var ret float64;
                                ret = l+r;
                                return float64(float64(ret));
-                       };
+                       }
                case 0:
                        a.eval = func(t *Thread) float64 {
                                l, r := lf(t), rf(t);
                                var ret float64;
                                ret = l+r;
                                return float64(float(ret));
-                       };
+                       }
                default:
-                       log.Crashf("unexpected size %d in type %v at %v", t.Bits, t, a.pos);
+                       log.Crashf("unexpected size %d in type %v at %v", t.Bits, t, a.pos)
                }
        case *idealFloatType:
                l := l.asIdealFloat()();
@@ -423,7 +423,7 @@ func (a *expr) genBinOpAdd(l, r *expr) {
                        return l+r;
                };
        default:
-               log.Crashf("unexpected type %v at %v", l.t, a.pos);
+               log.Crashf("unexpected type %v at %v", l.t, a.pos)
        }
 }
 
@@ -439,37 +439,37 @@ func (a *expr) genBinOpSub(l, r *expr) {
                                var ret uint64;
                                ret = l-r;
                                return uint64(uint8(ret));
-                       };
+                       }
                case 16:
                        a.eval = func(t *Thread) uint64 {
                                l, r := lf(t), rf(t);
                                var ret uint64;
                                ret = l-r;
                                return uint64(uint16(ret));
-                       };
+                       }
                case 32:
                        a.eval = func(t *Thread) uint64 {
                                l, r := lf(t), rf(t);
                                var ret uint64;
                                ret = l-r;
                                return uint64(uint32(ret));
-                       };
+                       }
                case 64:
                        a.eval = func(t *Thread) uint64 {
                                l, r := lf(t), rf(t);
                                var ret uint64;
                                ret = l-r;
                                return uint64(uint64(ret));
-                       };
+                       }
                case 0:
                        a.eval = func(t *Thread) uint64 {
                                l, r := lf(t), rf(t);
                                var ret uint64;
                                ret = l-r;
                                return uint64(uint(ret));
-                       };
+                       }
                default:
-                       log.Crashf("unexpected size %d in type %v at %v", t.Bits, t, a.pos);
+                       log.Crashf("unexpected size %d in type %v at %v", t.Bits, t, a.pos)
                }
        case *intType:
                lf := l.asInt();
@@ -481,37 +481,37 @@ func (a *expr) genBinOpSub(l, r *expr) {
                                var ret int64;
                                ret = l-r;
                                return int64(int8(ret));
-                       };
+                       }
                case 16:
                        a.eval = func(t *Thread) int64 {
                                l, r := lf(t), rf(t);
                                var ret int64;
                                ret = l-r;
                                return int64(int16(ret));
-                       };
+                       }
                case 32:
                        a.eval = func(t *Thread) int64 {
                                l, r := lf(t), rf(t);
                                var ret int64;
                                ret = l-r;
                                return int64(int32(ret));
-                       };
+                       }
                case 64:
                        a.eval = func(t *Thread) int64 {
                                l, r := lf(t), rf(t);
                                var ret int64;
                                ret = l-r;
                                return int64(int64(ret));
-                       };
+                       }
                case 0:
                        a.eval = func(t *Thread) int64 {
                                l, r := lf(t), rf(t);
                                var ret int64;
                                ret = l-r;
                                return int64(int(ret));
-                       };
+                       }
                default:
-                       log.Crashf("unexpected size %d in type %v at %v", t.Bits, t, a.pos);
+                       log.Crashf("unexpected size %d in type %v at %v", t.Bits, t, a.pos)
                }
        case *idealIntType:
                l := l.asIdealInt()();
@@ -528,23 +528,23 @@ func (a *expr) genBinOpSub(l, r *expr) {
                                var ret float64;
                                ret = l-r;
                                return float64(float32(ret));
-                       };
+                       }
                case 64:
                        a.eval = func(t *Thread) float64 {
                                l, r := lf(t), rf(t);
                                var ret float64;
                                ret = l-r;
                                return float64(float64(ret));
-                       };
+                       }
                case 0:
                        a.eval = func(t *Thread) float64 {
                                l, r := lf(t), rf(t);
                                var ret float64;
                                ret = l-r;
                                return float64(float(ret));
-                       };
+                       }
                default:
-                       log.Crashf("unexpected size %d in type %v at %v", t.Bits, t, a.pos);
+                       log.Crashf("unexpected size %d in type %v at %v", t.Bits, t, a.pos)
                }
        case *idealFloatType:
                l := l.asIdealFloat()();
@@ -552,7 +552,7 @@ func (a *expr) genBinOpSub(l, r *expr) {
                val := l.Sub(r);
                a.eval = func() *bignum.Rational { return val };
        default:
-               log.Crashf("unexpected type %v at %v", l.t, a.pos);
+               log.Crashf("unexpected type %v at %v", l.t, a.pos)
        }
 }
 
@@ -568,37 +568,37 @@ func (a *expr) genBinOpMul(l, r *expr) {
                                var ret uint64;
                                ret = l*r;
                                return uint64(uint8(ret));
-                       };
+                       }
                case 16:
                        a.eval = func(t *Thread) uint64 {
                                l, r := lf(t), rf(t);
                                var ret uint64;
                                ret = l*r;
                                return uint64(uint16(ret));
-                       };
+                       }
                case 32:
                        a.eval = func(t *Thread) uint64 {
                                l, r := lf(t), rf(t);
                                var ret uint64;
                                ret = l*r;
                                return uint64(uint32(ret));
-                       };
+                       }
                case 64:
                        a.eval = func(t *Thread) uint64 {
                                l, r := lf(t), rf(t);
                                var ret uint64;
                                ret = l*r;
                                return uint64(uint64(ret));
-                       };
+                       }
                case 0:
                        a.eval = func(t *Thread) uint64 {
                                l, r := lf(t), rf(t);
                                var ret uint64;
                                ret = l*r;
                                return uint64(uint(ret));
-                       };
+                       }
                default:
-                       log.Crashf("unexpected size %d in type %v at %v", t.Bits, t, a.pos);
+                       log.Crashf("unexpected size %d in type %v at %v", t.Bits, t, a.pos)
                }
        case *intType:
                lf := l.asInt();
@@ -610,37 +610,37 @@ func (a *expr) genBinOpMul(l, r *expr) {
                                var ret int64;
                                ret = l*r;
                                return int64(int8(ret));
-                       };
+                       }
                case 16:
                        a.eval = func(t *Thread) int64 {
                                l, r := lf(t), rf(t);
                                var ret int64;
                                ret = l*r;
                                return int64(int16(ret));
-                       };
+                       }
                case 32:
                        a.eval = func(t *Thread) int64 {
                                l, r := lf(t), rf(t);
                                var ret int64;
                                ret = l*r;
                                return int64(int32(ret));
-                       };
+                       }
                case 64:
                        a.eval = func(t *Thread) int64 {
                                l, r := lf(t), rf(t);
                                var ret int64;
                                ret = l*r;
                                return int64(int64(ret));
-                       };
+                       }
                case 0:
                        a.eval = func(t *Thread) int64 {
                                l, r := lf(t), rf(t);
                                var ret int64;
                                ret = l*r;
                                return int64(int(ret));
-                       };
+                       }
                default:
-                       log.Crashf("unexpected size %d in type %v at %v", t.Bits, t, a.pos);
+                       log.Crashf("unexpected size %d in type %v at %v", t.Bits, t, a.pos)
                }
        case *idealIntType:
                l := l.asIdealInt()();
@@ -657,23 +657,23 @@ func (a *expr) genBinOpMul(l, r *expr) {
                                var ret float64;
                                ret = l*r;
                                return float64(float32(ret));
-                       };
+                       }
                case 64:
                        a.eval = func(t *Thread) float64 {
                                l, r := lf(t), rf(t);
                                var ret float64;
                                ret = l*r;
                                return float64(float64(ret));
-                       };
+                       }
                case 0:
                        a.eval = func(t *Thread) float64 {
                                l, r := lf(t), rf(t);
                                var ret float64;
                                ret = l*r;
                                return float64(float(ret));
-                       };
+                       }
                default:
-                       log.Crashf("unexpected size %d in type %v at %v", t.Bits, t, a.pos);
+                       log.Crashf("unexpected size %d in type %v at %v", t.Bits, t, a.pos)
                }
        case *idealFloatType:
                l := l.asIdealFloat()();
@@ -681,7 +681,7 @@ func (a *expr) genBinOpMul(l, r *expr) {
                val := l.Mul(r);
                a.eval = func() *bignum.Rational { return val };
        default:
-               log.Crashf("unexpected type %v at %v", l.t, a.pos);
+               log.Crashf("unexpected type %v at %v", l.t, a.pos)
        }
 }
 
@@ -696,53 +696,53 @@ func (a *expr) genBinOpQuo(l, r *expr) {
                                l, r := lf(t), rf(t);
                                var ret uint64;
                                if r == 0 {
-                                       t.Abort(DivByZeroError{});
+                                       t.Abort(DivByZeroError{})
                                }
                                ret = l/r;
                                return uint64(uint8(ret));
-                       };
+                       }
                case 16:
                        a.eval = func(t *Thread) uint64 {
                                l, r := lf(t), rf(t);
                                var ret uint64;
                                if r == 0 {
-                                       t.Abort(DivByZeroError{});
+                                       t.Abort(DivByZeroError{})
                                }
                                ret = l/r;
                                return uint64(uint16(ret));
-                       };
+                       }
                case 32:
                        a.eval = func(t *Thread) uint64 {
                                l, r := lf(t), rf(t);
                                var ret uint64;
                                if r == 0 {
-                                       t.Abort(DivByZeroError{});
+                                       t.Abort(DivByZeroError{})
                                }
                                ret = l/r;
                                return uint64(uint32(ret));
-                       };
+                       }
                case 64:
                        a.eval = func(t *Thread) uint64 {
                                l, r := lf(t), rf(t);
                                var ret uint64;
                                if r == 0 {
-                                       t.Abort(DivByZeroError{});
+                                       t.Abort(DivByZeroError{})
                                }
                                ret = l/r;
                                return uint64(uint64(ret));
-                       };
+                       }
                case 0:
                        a.eval = func(t *Thread) uint64 {
                                l, r := lf(t), rf(t);
                                var ret uint64;
                                if r == 0 {
-                                       t.Abort(DivByZeroError{});
+                                       t.Abort(DivByZeroError{})
                                }
                                ret = l/r;
                                return uint64(uint(ret));
-                       };
+                       }
                default:
-                       log.Crashf("unexpected size %d in type %v at %v", t.Bits, t, a.pos);
+                       log.Crashf("unexpected size %d in type %v at %v", t.Bits, t, a.pos)
                }
        case *intType:
                lf := l.asInt();
@@ -753,53 +753,53 @@ func (a *expr) genBinOpQuo(l, r *expr) {
                                l, r := lf(t), rf(t);
                                var ret int64;
                                if r == 0 {
-                                       t.Abort(DivByZeroError{});
+                                       t.Abort(DivByZeroError{})
                                }
                                ret = l/r;
                                return int64(int8(ret));
-                       };
+                       }
                case 16:
                        a.eval = func(t *Thread) int64 {
                                l, r := lf(t), rf(t);
                                var ret int64;
                                if r == 0 {
-                                       t.Abort(DivByZeroError{});
+                                       t.Abort(DivByZeroError{})
                                }
                                ret = l/r;
                                return int64(int16(ret));
-                       };
+                       }
                case 32:
                        a.eval = func(t *Thread) int64 {
                                l, r := lf(t), rf(t);
                                var ret int64;
                                if r == 0 {
-                                       t.Abort(DivByZeroError{});
+                                       t.Abort(DivByZeroError{})
                                }
                                ret = l/r;
                                return int64(int32(ret));
-                       };
+                       }
                case 64:
                        a.eval = func(t *Thread) int64 {
                                l, r := lf(t), rf(t);
                                var ret int64;
                                if r == 0 {
-                                       t.Abort(DivByZeroError{});
+                                       t.Abort(DivByZeroError{})
                                }
                                ret = l/r;
                                return int64(int64(ret));
-                       };
+                       }
                case 0:
                        a.eval = func(t *Thread) int64 {
                                l, r := lf(t), rf(t);
                                var ret int64;
                                if r == 0 {
-                                       t.Abort(DivByZeroError{});
+                                       t.Abort(DivByZeroError{})
                                }
                                ret = l/r;
                                return int64(int(ret));
-                       };
+                       }
                default:
-                       log.Crashf("unexpected size %d in type %v at %v", t.Bits, t, a.pos);
+                       log.Crashf("unexpected size %d in type %v at %v", t.Bits, t, a.pos)
                }
        case *idealIntType:
                l := l.asIdealInt()();
@@ -815,33 +815,33 @@ func (a *expr) genBinOpQuo(l, r *expr) {
                                l, r := lf(t), rf(t);
                                var ret float64;
                                if r == 0 {
-                                       t.Abort(DivByZeroError{});
+                                       t.Abort(DivByZeroError{})
                                }
                                ret = l/r;
                                return float64(float32(ret));
-                       };
+                       }
                case 64:
                        a.eval = func(t *Thread) float64 {
                                l, r := lf(t), rf(t);
                                var ret float64;
                                if r == 0 {
-                                       t.Abort(DivByZeroError{});
+                                       t.Abort(DivByZeroError{})
                                }
                                ret = l/r;
                                return float64(float64(ret));
-                       };
+                       }
                case 0:
                        a.eval = func(t *Thread) float64 {
                                l, r := lf(t), rf(t);
                                var ret float64;
                                if r == 0 {
-                                       t.Abort(DivByZeroError{});
+                                       t.Abort(DivByZeroError{})
                                }
                                ret = l/r;
                                return float64(float(ret));
-                       };
+                       }
                default:
-                       log.Crashf("unexpected size %d in type %v at %v", t.Bits, t, a.pos);
+                       log.Crashf("unexpected size %d in type %v at %v", t.Bits, t, a.pos)
                }
        case *idealFloatType:
                l := l.asIdealFloat()();
@@ -849,7 +849,7 @@ func (a *expr) genBinOpQuo(l, r *expr) {
                val := l.Quo(r);
                a.eval = func() *bignum.Rational { return val };
        default:
-               log.Crashf("unexpected type %v at %v", l.t, a.pos);
+               log.Crashf("unexpected type %v at %v", l.t, a.pos)
        }
 }
 
@@ -864,53 +864,53 @@ func (a *expr) genBinOpRem(l, r *expr) {
                                l, r := lf(t), rf(t);
                                var ret uint64;
                                if r == 0 {
-                                       t.Abort(DivByZeroError{});
+                                       t.Abort(DivByZeroError{})
                                }
                                ret = l%r;
                                return uint64(uint8(ret));
-                       };
+                       }
                case 16:
                        a.eval = func(t *Thread) uint64 {
                                l, r := lf(t), rf(t);
                                var ret uint64;
                                if r == 0 {
-                                       t.Abort(DivByZeroError{});
+                                       t.Abort(DivByZeroError{})
                                }
                                ret = l%r;
                                return uint64(uint16(ret));
-                       };
+                       }
                case 32:
                        a.eval = func(t *Thread) uint64 {
                                l, r := lf(t), rf(t);
                                var ret uint64;
                                if r == 0 {
-                                       t.Abort(DivByZeroError{});
+                                       t.Abort(DivByZeroError{})
                                }
                                ret = l%r;
                                return uint64(uint32(ret));
-                       };
+                       }
                case 64:
                        a.eval = func(t *Thread) uint64 {
                                l, r := lf(t), rf(t);
                                var ret uint64;
                                if r == 0 {
-                                       t.Abort(DivByZeroError{});
+                                       t.Abort(DivByZeroError{})
                                }
                                ret = l%r;
                                return uint64(uint64(ret));
-                       };
+                       }
                case 0:
                        a.eval = func(t *Thread) uint64 {
                                l, r := lf(t), rf(t);
                                var ret uint64;
                                if r == 0 {
-                                       t.Abort(DivByZeroError{});
+                                       t.Abort(DivByZeroError{})
                                }
                                ret = l%r;
                                return uint64(uint(ret));
-                       };
+                       }
                default:
-                       log.Crashf("unexpected size %d in type %v at %v", t.Bits, t, a.pos);
+                       log.Crashf("unexpected size %d in type %v at %v", t.Bits, t, a.pos)
                }
        case *intType:
                lf := l.asInt();
@@ -921,53 +921,53 @@ func (a *expr) genBinOpRem(l, r *expr) {
                                l, r := lf(t), rf(t);
                                var ret int64;
                                if r == 0 {
-                                       t.Abort(DivByZeroError{});
+                                       t.Abort(DivByZeroError{})
                                }
                                ret = l%r;
                                return int64(int8(ret));
-                       };
+                       }
                case 16:
                        a.eval = func(t *Thread) int64 {
                                l, r := lf(t), rf(t);
                                var ret int64;
                                if r == 0 {
-                                       t.Abort(DivByZeroError{});
+                                       t.Abort(DivByZeroError{})
                                }
                                ret = l%r;
                                return int64(int16(ret));
-                       };
+                       }
                case 32:
                        a.eval = func(t *Thread) int64 {
                                l, r := lf(t), rf(t);
                                var ret int64;
                                if r == 0 {
-                                       t.Abort(DivByZeroError{});
+                                       t.Abort(DivByZeroError{})
                                }
                                ret = l%r;
                                return int64(int32(ret));
-                       };
+                       }
                case 64:
                        a.eval = func(t *Thread) int64 {
                                l, r := lf(t), rf(t);
                                var ret int64;
                                if r == 0 {
-                                       t.Abort(DivByZeroError{});
+                                       t.Abort(DivByZeroError{})
                                }
                                ret = l%r;
                                return int64(int64(ret));
-                       };
+                       }
                case 0:
                        a.eval = func(t *Thread) int64 {
                                l, r := lf(t), rf(t);
                                var ret int64;
                                if r == 0 {
-                                       t.Abort(DivByZeroError{});
+                                       t.Abort(DivByZeroError{})
                                }
                                ret = l%r;
                                return int64(int(ret));
-                       };
+                       }
                default:
-                       log.Crashf("unexpected size %d in type %v at %v", t.Bits, t, a.pos);
+                       log.Crashf("unexpected size %d in type %v at %v", t.Bits, t, a.pos)
                }
        case *idealIntType:
                l := l.asIdealInt()();
@@ -975,7 +975,7 @@ func (a *expr) genBinOpRem(l, r *expr) {
                val := l.Rem(r);
                a.eval = func() *bignum.Integer { return val };
        default:
-               log.Crashf("unexpected type %v at %v", l.t, a.pos);
+               log.Crashf("unexpected type %v at %v", l.t, a.pos)
        }
 }
 
@@ -991,37 +991,37 @@ func (a *expr) genBinOpAnd(l, r *expr) {
                                var ret uint64;
                                ret = l&r;
                                return uint64(uint8(ret));
-                       };
+                       }
                case 16:
                        a.eval = func(t *Thread) uint64 {
                                l, r := lf(t), rf(t);
                                var ret uint64;
                                ret = l&r;
                                return uint64(uint16(ret));
-                       };
+                       }
                case 32:
                        a.eval = func(t *Thread) uint64 {
                                l, r := lf(t), rf(t);
                                var ret uint64;
                                ret = l&r;
                                return uint64(uint32(ret));
-                       };
+                       }
                case 64:
                        a.eval = func(t *Thread) uint64 {
                                l, r := lf(t), rf(t);
                                var ret uint64;
                                ret = l&r;
                                return uint64(uint64(ret));
-                       };
+                       }
                case 0:
                        a.eval = func(t *Thread) uint64 {
                                l, r := lf(t), rf(t);
                                var ret uint64;
                                ret = l&r;
                                return uint64(uint(ret));
-                       };
+                       }
                default:
-                       log.Crashf("unexpected size %d in type %v at %v", t.Bits, t, a.pos);
+                       log.Crashf("unexpected size %d in type %v at %v", t.Bits, t, a.pos)
                }
        case *intType:
                lf := l.asInt();
@@ -1033,37 +1033,37 @@ func (a *expr) genBinOpAnd(l, r *expr) {
                                var ret int64;
                                ret = l&r;
                                return int64(int8(ret));
-                       };
+                       }
                case 16:
                        a.eval = func(t *Thread) int64 {
                                l, r := lf(t), rf(t);
                                var ret int64;
                                ret = l&r;
                                return int64(int16(ret));
-                       };
+                       }
                case 32:
                        a.eval = func(t *Thread) int64 {
                                l, r := lf(t), rf(t);
                                var ret int64;
                                ret = l&r;
                                return int64(int32(ret));
-                       };
+                       }
                case 64:
                        a.eval = func(t *Thread) int64 {
                                l, r := lf(t), rf(t);
                                var ret int64;
                                ret = l&r;
                                return int64(int64(ret));
-                       };
+                       }
                case 0:
                        a.eval = func(t *Thread) int64 {
                                l, r := lf(t), rf(t);
                                var ret int64;
                                ret = l&r;
                                return int64(int(ret));
-                       };
+                       }
                default:
-                       log.Crashf("unexpected size %d in type %v at %v", t.Bits, t, a.pos);
+                       log.Crashf("unexpected size %d in type %v at %v", t.Bits, t, a.pos)
                }
        case *idealIntType:
                l := l.asIdealInt()();
@@ -1071,7 +1071,7 @@ func (a *expr) genBinOpAnd(l, r *expr) {
                val := l.And(r);
                a.eval = func() *bignum.Integer { return val };
        default:
-               log.Crashf("unexpected type %v at %v", l.t, a.pos);
+               log.Crashf("unexpected type %v at %v", l.t, a.pos)
        }
 }
 
@@ -1087,37 +1087,37 @@ func (a *expr) genBinOpOr(l, r *expr) {
                                var ret uint64;
                                ret = l|r;
                                return uint64(uint8(ret));
-                       };
+                       }
                case 16:
                        a.eval = func(t *Thread) uint64 {
                                l, r := lf(t), rf(t);
                                var ret uint64;
                                ret = l|r;
                                return uint64(uint16(ret));
-                       };
+                       }
                case 32:
                        a.eval = func(t *Thread) uint64 {
                                l, r := lf(t), rf(t);
                                var ret uint64;
                                ret = l|r;
                                return uint64(uint32(ret));
-                       };
+                       }
                case 64:
                        a.eval = func(t *Thread) uint64 {
                                l, r := lf(t), rf(t);
                                var ret uint64;
                                ret = l|r;
                                return uint64(uint64(ret));
-                       };
+                       }
                case 0:
                        a.eval = func(t *Thread) uint64 {
                                l, r := lf(t), rf(t);
                                var ret uint64;
                                ret = l|r;
                                return uint64(uint(ret));
-                       };
+                       }
                default:
-                       log.Crashf("unexpected size %d in type %v at %v", t.Bits, t, a.pos);
+                       log.Crashf("unexpected size %d in type %v at %v", t.Bits, t, a.pos)
                }
        case *intType:
                lf := l.asInt();
@@ -1129,37 +1129,37 @@ func (a *expr) genBinOpOr(l, r *expr) {
                                var ret int64;
                                ret = l|r;
                                return int64(int8(ret));
-                       };
+                       }
                case 16:
                        a.eval = func(t *Thread) int64 {
                                l, r := lf(t), rf(t);
                                var ret int64;
                                ret = l|r;
                                return int64(int16(ret));
-                       };
+                       }
                case 32:
                        a.eval = func(t *Thread) int64 {
                                l, r := lf(t), rf(t);
                                var ret int64;
                                ret = l|r;
                                return int64(int32(ret));
-                       };
+                       }
                case 64:
                        a.eval = func(t *Thread) int64 {
                                l, r := lf(t), rf(t);
                                var ret int64;
                                ret = l|r;
                                return int64(int64(ret));
-                       };
+                       }
                case 0:
                        a.eval = func(t *Thread) int64 {
                                l, r := lf(t), rf(t);
                                var ret int64;
                                ret = l|r;
                                return int64(int(ret));
-                       };
+                       }
                default:
-                       log.Crashf("unexpected size %d in type %v at %v", t.Bits, t, a.pos);
+                       log.Crashf("unexpected size %d in type %v at %v", t.Bits, t, a.pos)
                }
        case *idealIntType:
                l := l.asIdealInt()();
@@ -1167,7 +1167,7 @@ func (a *expr) genBinOpOr(l, r *expr) {
                val := l.Or(r);
                a.eval = func() *bignum.Integer { return val };
        default:
-               log.Crashf("unexpected type %v at %v", l.t, a.pos);
+               log.Crashf("unexpected type %v at %v", l.t, a.pos)
        }
 }
 
@@ -1183,37 +1183,37 @@ func (a *expr) genBinOpXor(l, r *expr) {
                                var ret uint64;
                                ret = l^r;
                                return uint64(uint8(ret));
-                       };
+                       }
                case 16:
                        a.eval = func(t *Thread) uint64 {
                                l, r := lf(t), rf(t);
                                var ret uint64;
                                ret = l^r;
                                return uint64(uint16(ret));
-                       };
+                       }
                case 32:
                        a.eval = func(t *Thread) uint64 {
                                l, r := lf(t), rf(t);
                                var ret uint64;
                                ret = l^r;
                                return uint64(uint32(ret));
-                       };
+                       }
                case 64:
                        a.eval = func(t *Thread) uint64 {
                                l, r := lf(t), rf(t);
                                var ret uint64;
                                ret = l^r;
                                return uint64(uint64(ret));
-                       };
+                       }
                case 0:
                        a.eval = func(t *Thread) uint64 {
                                l, r := lf(t), rf(t);
                                var ret uint64;
                                ret = l^r;
                                return uint64(uint(ret));
-                       };
+                       }
                default:
-                       log.Crashf("unexpected size %d in type %v at %v", t.Bits, t, a.pos);
+                       log.Crashf("unexpected size %d in type %v at %v", t.Bits, t, a.pos)
                }
        case *intType:
                lf := l.asInt();
@@ -1225,37 +1225,37 @@ func (a *expr) genBinOpXor(l, r *expr) {
                                var ret int64;
                                ret = l^r;
                                return int64(int8(ret));
-                       };
+                       }
                case 16:
                        a.eval = func(t *Thread) int64 {
                                l, r := lf(t), rf(t);
                                var ret int64;
                                ret = l^r;
                                return int64(int16(ret));
-                       };
+                       }
                case 32:
                        a.eval = func(t *Thread) int64 {
                                l, r := lf(t), rf(t);
                                var ret int64;
                                ret = l^r;
                                return int64(int32(ret));
-                       };
+                       }
                case 64:
                        a.eval = func(t *Thread) int64 {
                                l, r := lf(t), rf(t);
                                var ret int64;
                                ret = l^r;
                                return int64(int64(ret));
-                       };
+                       }
                case 0:
                        a.eval = func(t *Thread) int64 {
                                l, r := lf(t), rf(t);
                                var ret int64;
                                ret = l^r;
                                return int64(int(ret));
-                       };
+                       }
                default:
-                       log.Crashf("unexpected size %d in type %v at %v", t.Bits, t, a.pos);
+                       log.Crashf("unexpected size %d in type %v at %v", t.Bits, t, a.pos)
                }
        case *idealIntType:
                l := l.asIdealInt()();
@@ -1263,7 +1263,7 @@ func (a *expr) genBinOpXor(l, r *expr) {
                val := l.Xor(r);
                a.eval = func() *bignum.Integer { return val };
        default:
-               log.Crashf("unexpected type %v at %v", l.t, a.pos);
+               log.Crashf("unexpected type %v at %v", l.t, a.pos)
        }
 }
 
@@ -1279,37 +1279,37 @@ func (a *expr) genBinOpAndNot(l, r *expr) {
                                var ret uint64;
                                ret = l&^r;
                                return uint64(uint8(ret));
-                       };
+                       }
                case 16:
                        a.eval = func(t *Thread) uint64 {
                                l, r := lf(t), rf(t);
                                var ret uint64;
                                ret = l&^r;
                                return uint64(uint16(ret));
-                       };
+                       }
                case 32:
                        a.eval = func(t *Thread) uint64 {
                                l, r := lf(t), rf(t);
                                var ret uint64;
                                ret = l&^r;
                                return uint64(uint32(ret));
-                       };
+                       }
                case 64:
                        a.eval = func(t *Thread) uint64 {
                                l, r := lf(t), rf(t);
                                var ret uint64;
                                ret = l&^r;
                                return uint64(uint64(ret));
-                       };
+                       }
                case 0:
                        a.eval = func(t *Thread) uint64 {
                                l, r := lf(t), rf(t);
                                var ret uint64;
                                ret = l&^r;
                                return uint64(uint(ret));
-                       };
+                       }
                default:
-                       log.Crashf("unexpected size %d in type %v at %v", t.Bits, t, a.pos);
+                       log.Crashf("unexpected size %d in type %v at %v", t.Bits, t, a.pos)
                }
        case *intType:
                lf := l.asInt();
@@ -1321,37 +1321,37 @@ func (a *expr) genBinOpAndNot(l, r *expr) {
                                var ret int64;
                                ret = l&^r;
                                return int64(int8(ret));
-                       };
+                       }
                case 16:
                        a.eval = func(t *Thread) int64 {
                                l, r := lf(t), rf(t);
                                var ret int64;
                                ret = l&^r;
                                return int64(int16(ret));
-                       };
+                       }
                case 32:
                        a.eval = func(t *Thread) int64 {
                                l, r := lf(t), rf(t);
                                var ret int64;
                                ret = l&^r;
                                return int64(int32(ret));
-                       };
+                       }
                case 64:
                        a.eval = func(t *Thread) int64 {
                                l, r := lf(t), rf(t);
                                var ret int64;
                                ret = l&^r;
                                return int64(int64(ret));
-                       };
+                       }
                case 0:
                        a.eval = func(t *Thread) int64 {
                                l, r := lf(t), rf(t);
                                var ret int64;
                                ret = l&^r;
                                return int64(int(ret));
-                       };
+                       }
                default:
-                       log.Crashf("unexpected size %d in type %v at %v", t.Bits, t, a.pos);
+                       log.Crashf("unexpected size %d in type %v at %v", t.Bits, t, a.pos)
                }
        case *idealIntType:
                l := l.asIdealInt()();
@@ -1359,7 +1359,7 @@ func (a *expr) genBinOpAndNot(l, r *expr) {
                val := l.AndNot(r);
                a.eval = func() *bignum.Integer { return val };
        default:
-               log.Crashf("unexpected type %v at %v", l.t, a.pos);
+               log.Crashf("unexpected type %v at %v", l.t, a.pos)
        }
 }
 
@@ -1375,37 +1375,37 @@ func (a *expr) genBinOpShl(l, r *expr) {
                                var ret uint64;
                                ret = l<<r;
                                return uint64(uint8(ret));
-                       };
+                       }
                case 16:
                        a.eval = func(t *Thread) uint64 {
                                l, r := lf(t), rf(t);
                                var ret uint64;
                                ret = l<<r;
                                return uint64(uint16(ret));
-                       };
+                       }
                case 32:
                        a.eval = func(t *Thread) uint64 {
                                l, r := lf(t), rf(t);
                                var ret uint64;
                                ret = l<<r;
                                return uint64(uint32(ret));
-                       };
+                       }
                case 64:
                        a.eval = func(t *Thread) uint64 {
                                l, r := lf(t), rf(t);
                                var ret uint64;
                                ret = l<<r;
                                return uint64(uint64(ret));
-                       };
+                       }
                case 0:
                        a.eval = func(t *Thread) uint64 {
                                l, r := lf(t), rf(t);
                                var ret uint64;
                                ret = l<<r;
                                return uint64(uint(ret));
-                       };
+                       }
                default:
-                       log.Crashf("unexpected size %d in type %v at %v", t.Bits, t, a.pos);
+                       log.Crashf("unexpected size %d in type %v at %v", t.Bits, t, a.pos)
                }
        case *intType:
                lf := l.asInt();
@@ -1417,40 +1417,40 @@ func (a *expr) genBinOpShl(l, r *expr) {
                                var ret int64;
                                ret = l<<r;
                                return int64(int8(ret));
-                       };
+                       }
                case 16:
                        a.eval = func(t *Thread) int64 {
                                l, r := lf(t), rf(t);
                                var ret int64;
                                ret = l<<r;
                                return int64(int16(ret));
-                       };
+                       }
                case 32:
                        a.eval = func(t *Thread) int64 {
                                l, r := lf(t), rf(t);
                                var ret int64;
                                ret = l<<r;
                                return int64(int32(ret));
-                       };
+                       }
                case 64:
                        a.eval = func(t *Thread) int64 {
                                l, r := lf(t), rf(t);
                                var ret int64;
                                ret = l<<r;
                                return int64(int64(ret));
-                       };
+                       }
                case 0:
                        a.eval = func(t *Thread) int64 {
                                l, r := lf(t), rf(t);
                                var ret int64;
                                ret = l<<r;
                                return int64(int(ret));
-                       };
+                       }
                default:
-                       log.Crashf("unexpected size %d in type %v at %v", t.Bits, t, a.pos);
+                       log.Crashf("unexpected size %d in type %v at %v", t.Bits, t, a.pos)
                }
        default:
-               log.Crashf("unexpected type %v at %v", l.t, a.pos);
+               log.Crashf("unexpected type %v at %v", l.t, a.pos)
        }
 }
 
@@ -1466,37 +1466,37 @@ func (a *expr) genBinOpShr(l, r *expr) {
                                var ret uint64;
                                ret = l>>r;
                                return uint64(uint8(ret));
-                       };
+                       }
                case 16:
                        a.eval = func(t *Thread) uint64 {
                                l, r := lf(t), rf(t);
                                var ret uint64;
                                ret = l>>r;
                                return uint64(uint16(ret));
-                       };
+                       }
                case 32:
                        a.eval = func(t *Thread) uint64 {
                                l, r := lf(t), rf(t);
                                var ret uint64;
                                ret = l>>r;
                                return uint64(uint32(ret));
-                       };
+                       }
                case 64:
                        a.eval = func(t *Thread) uint64 {
                                l, r := lf(t), rf(t);
                                var ret uint64;
                                ret = l>>r;
                                return uint64(uint64(ret));
-                       };
+                       }
                case 0:
                        a.eval = func(t *Thread) uint64 {
                                l, r := lf(t), rf(t);
                                var ret uint64;
                                ret = l>>r;
                                return uint64(uint(ret));
-                       };
+                       }
                default:
-                       log.Crashf("unexpected size %d in type %v at %v", t.Bits, t, a.pos);
+                       log.Crashf("unexpected size %d in type %v at %v", t.Bits, t, a.pos)
                }
        case *intType:
                lf := l.asInt();
@@ -1508,40 +1508,40 @@ func (a *expr) genBinOpShr(l, r *expr) {
                                var ret int64;
                                ret = l>>r;
                                return int64(int8(ret));
-                       };
+                       }
                case 16:
                        a.eval = func(t *Thread) int64 {
                                l, r := lf(t), rf(t);
                                var ret int64;
                                ret = l>>r;
                                return int64(int16(ret));
-                       };
+                       }
                case 32:
                        a.eval = func(t *Thread) int64 {
                                l, r := lf(t), rf(t);
                                var ret int64;
                                ret = l>>r;
                                return int64(int32(ret));
-                       };
+                       }
                case 64:
                        a.eval = func(t *Thread) int64 {
                                l, r := lf(t), rf(t);
                                var ret int64;
                                ret = l>>r;
                                return int64(int64(ret));
-                       };
+                       }
                case 0:
                        a.eval = func(t *Thread) int64 {
                                l, r := lf(t), rf(t);
                                var ret int64;
                                ret = l>>r;
                                return int64(int(ret));
-                       };
+                       }
                default:
-                       log.Crashf("unexpected size %d in type %v at %v", t.Bits, t, a.pos);
+                       log.Crashf("unexpected size %d in type %v at %v", t.Bits, t, a.pos)
                }
        default:
-               log.Crashf("unexpected type %v at %v", l.t, a.pos);
+               log.Crashf("unexpected type %v at %v", l.t, a.pos)
        }
 }
 
@@ -1586,7 +1586,7 @@ func (a *expr) genBinOpLss(l, r *expr) {
                        return l < r;
                };
        default:
-               log.Crashf("unexpected type %v at %v", l.t, a.pos);
+               log.Crashf("unexpected type %v at %v", l.t, a.pos)
        }
 }
 
@@ -1631,7 +1631,7 @@ func (a *expr) genBinOpGtr(l, r *expr) {
                        return l > r;
                };
        default:
-               log.Crashf("unexpected type %v at %v", l.t, a.pos);
+               log.Crashf("unexpected type %v at %v", l.t, a.pos)
        }
 }
 
@@ -1676,7 +1676,7 @@ func (a *expr) genBinOpLeq(l, r *expr) {
                        return l <= r;
                };
        default:
-               log.Crashf("unexpected type %v at %v", l.t, a.pos);
+               log.Crashf("unexpected type %v at %v", l.t, a.pos)
        }
 }
 
@@ -1721,7 +1721,7 @@ func (a *expr) genBinOpGeq(l, r *expr) {
                        return l >= r;
                };
        default:
-               log.Crashf("unexpected type %v at %v", l.t, a.pos);
+               log.Crashf("unexpected type %v at %v", l.t, a.pos)
        }
 }
 
@@ -1794,7 +1794,7 @@ func (a *expr) genBinOpEql(l, r *expr) {
                        return l == r;
                };
        default:
-               log.Crashf("unexpected type %v at %v", l.t, a.pos);
+               log.Crashf("unexpected type %v at %v", l.t, a.pos)
        }
 }
 
@@ -1867,7 +1867,7 @@ func (a *expr) genBinOpNeq(l, r *expr) {
                        return l != r;
                };
        default:
-               log.Crashf("unexpected type %v at %v", l.t, a.pos);
+               log.Crashf("unexpected type %v at %v", l.t, a.pos)
        }
 }
 
@@ -1907,7 +1907,7 @@ func genAssign(lt Type, r *expr) (func(lv Value, t *Thread)) {
                rf := r.asMap();
                return func(lv Value, t *Thread) { lv.(MapValue).Set(t, rf(t)) };
        default:
-               log.Crashf("unexpected left operand type %v at %v", lt, r.pos);
+               log.Crashf("unexpected left operand type %v at %v", lt, r.pos)
        }
        panic();
 }
index 103d2766d774e5f846db2fcbd48e897edfb7e5ab..9927066413b94d2e68582f440b71a5fc0dd6ce47 100644 (file)
@@ -47,7 +47,7 @@ func (b *codeBuf) push(instr func(*Thread)) {
        if n >= cap(b.instrs) {
                a := make(code, n, n*2);
                for i := range b.instrs {
-                       a[i] = b.instrs[i];
+                       a[i] = b.instrs[i]
                }
                b.instrs = a;
        }
@@ -61,7 +61,7 @@ func (b *codeBuf) get() code {
        // Freeze this buffer into an array of exactly the right size
        a := make(code, len(b.instrs));
        for i := range b.instrs {
-               a[i] = b.instrs[i];
+               a[i] = b.instrs[i]
        }
        return code(a);
 }
index 798f3f43ccd913eb289e1a2bbb2a88e75f374a53..df49b21d36c3cac4aeb39042a1c8475b9cd1ba21 100644 (file)
@@ -366,10 +366,10 @@ func main() {
        t.SetDelims("«", "»");
        err := t.Parse(templateStr);
        if err != nil {
-               log.Exit(err);
+               log.Exit(err)
        }
        err = t.Execute(data, os.Stdout);
        if err != nil {
-               log.Exit(err);
+               log.Exit(err)
        }
 }
index a757b6694bd9696808f17ed30c25c21d4f74b61d..769fc07763996af6ab91131be9c7e954cac66dd9 100644 (file)
@@ -34,10 +34,10 @@ func main() {
                if err != nil {
                        if list, ok := err.(scanner.ErrorList); ok {
                                for _, e := range list {
-                                       println(e.String());
+                                       println(e.String())
                                }
                        } else {
-                               println(err.String());
+                               println(err.String())
                        }
                        os.Exit(1);
                }
@@ -72,7 +72,7 @@ func main() {
                print("; ");
                line, err := r.ReadString('\n');
                if err != nil {
-                       break;
+                       break
                }
                code, err := w.Compile(line);
                if err != nil {
@@ -85,7 +85,7 @@ func main() {
                        continue;
                }
                if v != nil {
-                       println(v.String());
+                       println(v.String())
                }
        }
 }
index 43df7cf631ed2591731590d89e3b0e68208d439c..e67135c0c02e3ba41a22bc7d3bac500a514ccf0c 100644 (file)
@@ -74,7 +74,7 @@ type Scope struct {
 
 func (b *block) enterChild() *block {
        if b.inner != nil && b.inner.scope == b.scope {
-               log.Crash("Failed to exit child block before entering another child");
+               log.Crash("Failed to exit child block before entering another child")
        }
        sub := &block{
                outer: b,
@@ -88,14 +88,14 @@ func (b *block) enterChild() *block {
 
 func (b *block) exit() {
        if b.outer == nil {
-               log.Crash("Cannot exit top-level block");
+               log.Crash("Cannot exit top-level block")
        }
        if b.outer.scope == b.scope {
                if b.outer.inner != b {
-                       log.Crash("Already exited block");
+                       log.Crash("Already exited block")
                }
                if b.inner != nil && b.inner.scope == b.scope {
-                       log.Crash("Exit of parent block without exit of child block");
+                       log.Crash("Exit of parent block without exit of child block")
                }
        }
        b.outer.inner = nil;
@@ -103,7 +103,7 @@ func (b *block) exit() {
 
 func (b *block) ChildScope() *Scope {
        if b.inner != nil && b.inner.scope == b.scope {
-               log.Crash("Failed to exit child block before entering a child scope");
+               log.Crash("Failed to exit child block before entering a child scope")
        }
        sub := b.enterChild();
        sub.offset = 0;
@@ -113,7 +113,7 @@ func (b *block) ChildScope() *Scope {
 
 func (b *block) DefineVar(name string, pos token.Position, t Type) (*Variable, Def) {
        if prev, ok := b.defs[name]; ok {
-               return nil, prev;
+               return nil, prev
        }
        v := b.defineSlot(t, false);
        v.Position = pos;
@@ -125,14 +125,14 @@ func (b *block) DefineTemp(t Type) *Variable      { return b.defineSlot(t, true) }
 
 func (b *block) defineSlot(t Type, temp bool) *Variable {
        if b.inner != nil && b.inner.scope == b.scope {
-               log.Crash("Failed to exit child block before defining variable");
+               log.Crash("Failed to exit child block before defining variable")
        }
        index := -1;
        if !b.global || temp {
                index = b.offset + b.numVars;
                b.numVars++;
                if index >= b.scope.maxVars {
-                       b.scope.maxVars = index+1;
+                       b.scope.maxVars = index+1
                }
        }
        v := &Variable{token.Position{}, index, t, nil};
@@ -141,7 +141,7 @@ func (b *block) defineSlot(t Type, temp bool) *Variable {
 
 func (b *block) DefineConst(name string, pos token.Position, t Type, v Value) (*Constant, Def) {
        if prev, ok := b.defs[name]; ok {
-               return nil, prev;
+               return nil, prev
        }
        c := &Constant{pos, t, v};
        b.defs[name] = c;
@@ -150,11 +150,11 @@ func (b *block) DefineConst(name string, pos token.Position, t Type, v Value) (*
 
 func (b *block) DefineType(name string, pos token.Position, t Type) Type {
        if _, ok := b.defs[name]; ok {
-               return nil;
+               return nil
        }
        nt := &NamedType{pos, name, nil, true, make(map[string]Method)};
        if t != nil {
-               nt.Complete(t);
+               nt.Complete(t)
        }
        b.defs[name] = nt;
        return nt;
@@ -163,10 +163,10 @@ func (b *block) DefineType(name string, pos token.Position, t Type) Type {
 func (b *block) Lookup(name string) (bl *block, level int, def Def) {
        for b != nil {
                if d, ok := b.defs[name]; ok {
-                       return b, level, d;
+                       return b, level, d
                }
                if b.outer != nil && b.scope != b.outer.scope {
-                       level++;
+                       level++
                }
                b = b.outer;
        }
@@ -186,7 +186,7 @@ type Frame struct {
 
 func (f *Frame) Get(level int, index int) Value {
        for ; level > 0; level-- {
-               f = f.Outer;
+               f = f.Outer
        }
        return f.Vars[index];
 }
@@ -195,5 +195,5 @@ func (f *Frame) child(numVars int) *Frame {
        // TODO(austin) This is probably rather expensive.  All values
        // require heap allocation and zeroing them when we execute a
        // definition typically requires some computation.
-       return &Frame{f, make([]Value, numVars)};
+       return &Frame{f, make([]Value, numVars)}
 }
index b9dcfe5508afe2e5759bf9c8a5a4c2bccfe83c75..8820826eb0053cc93e1cde73947b177ba4ac0e32 100644 (file)
@@ -28,7 +28,7 @@ type stmtCompiler struct {
 }
 
 func (a *stmtCompiler) diag(format string, args ...) {
-       a.diagAt(&a.pos, format, args);
+       a.diagAt(&a.pos, format, args)
 }
 
 /*
@@ -74,7 +74,7 @@ type flowBuf struct {
 }
 
 func newFlowBuf(cb *codeBuf) *flowBuf {
-       return &flowBuf{cb, make(map[uint]*flowEnt), make(map[*token.Position]*flowBlock), make(map[string]*flowBlock)};
+       return &flowBuf{cb, make(map[uint]*flowEnt), make(map[*token.Position]*flowBlock), make(map[string]*flowBlock)}
 }
 
 // put creates a flow control point for the next PC in the code buffer.
@@ -82,7 +82,7 @@ func newFlowBuf(cb *codeBuf) *flowBuf {
 func (f *flowBuf) put(cond bool, term bool, jumps []*uint) {
        pc := f.cb.nextPC();
        if ent, ok := f.ents[pc]; ok {
-               log.Crashf("Flow entry already exists at PC %d: %+v", pc, ent);
+               log.Crashf("Flow entry already exists at PC %d: %+v", pc, ent)
        }
        f.ents[pc] = &flowEnt{cond, term, jumps, false};
 }
@@ -95,19 +95,19 @@ func (f *flowBuf) putTerm() { f.put(false, true, nil) }
 // PC and, if cond is true, can also continue to the PC following the
 // next PC.
 func (f *flowBuf) put1(cond bool, jumpPC *uint) {
-       f.put(cond, false, []*uint{jumpPC});
+       f.put(cond, false, []*uint{jumpPC})
 }
 
 func newFlowBlock(target string, b *block) *flowBlock {
        // Find the inner-most block containing definitions
        for b.numVars == 0 && b.outer != nil && b.outer.scope == b.scope {
-               b = b.outer;
+               b = b.outer
        }
 
        // Count parents leading to the root of the scope
        n := 0;
        for bp := b; bp.scope == b.scope; bp = bp.outer {
-               n++;
+               n++
        }
 
        // Capture numVars from each block to the root of the scope
@@ -124,12 +124,12 @@ func newFlowBlock(target string, b *block) *flowBlock {
 // putGoto captures the block at a goto statement.  This should be
 // called in addition to putting a flow control point.
 func (f *flowBuf) putGoto(pos token.Position, target string, b *block) {
-       f.gotos[&pos] = newFlowBlock(target, b);
+       f.gotos[&pos] = newFlowBlock(target, b)
 }
 
 // putLabel captures the block at a label.
 func (f *flowBuf) putLabel(name string, b *block) {
-       f.labels[name] = newFlowBlock("", b);
+       f.labels[name] = newFlowBlock("", b)
 }
 
 // reachesEnd returns true if the end of f's code buffer can be
@@ -138,35 +138,35 @@ func (f *flowBuf) putLabel(name string, b *block) {
 func (f *flowBuf) reachesEnd(pc uint) bool {
        endPC := f.cb.nextPC();
        if pc > endPC {
-               log.Crashf("Reached bad PC %d past end PC %d", pc, endPC);
+               log.Crashf("Reached bad PC %d past end PC %d", pc, endPC)
        }
 
        for ; pc < endPC; pc++ {
                ent, ok := f.ents[pc];
                if !ok {
-                       continue;
+                       continue
                }
 
                if ent.visited {
-                       return false;
+                       return false
                }
                ent.visited = true;
 
                if ent.term {
-                       return false;
+                       return false
                }
 
                // If anything can reach the end, we can reach the end
                // from pc.
                for _, j := range ent.jumps {
                        if f.reachesEnd(*j) {
-                               return true;
+                               return true
                        }
                }
                // If the jump was conditional, we can reach the next
                // PC, so try reaching the end from it.
                if ent.cond {
-                       continue;
+                       continue
                }
                return false;
        }
@@ -216,9 +216,9 @@ func (a *stmtCompiler) defineVar(ident *ast.Ident, t Type) *Variable {
                // Pos() in a variable.
                pos := prev.Pos();
                if pos.IsValid() {
-                       a.diagAt(ident, "variable %s redeclared in this block\n\tprevious declaration at %s", ident.Value, &pos);
+                       a.diagAt(ident, "variable %s redeclared in this block\n\tprevious declaration at %s", ident.Value, &pos)
                } else {
-                       a.diagAt(ident, "variable %s redeclared in this block", ident.Value);
+                       a.diagAt(ident, "variable %s redeclared in this block", ident.Value)
                }
                return nil;
        }
@@ -226,7 +226,7 @@ func (a *stmtCompiler) defineVar(ident *ast.Ident, t Type) *Variable {
        // Initialize the variable
        index := v.Index;
        if v.Index >= 0 {
-               a.push(func(v *Thread) { v.f.Vars[index] = t.Zero() });
+               a.push(func(v *Thread) { v.f.Vars[index] = t.Zero() })
        }
        return v;
 }
@@ -239,85 +239,85 @@ func (a *stmtCompiler) defineVar(ident *ast.Ident, t Type) *Variable {
 
 func (a *stmtCompiler) compile(s ast.Stmt) {
        if a.block.inner != nil {
-               log.Crash("Child scope still entered");
+               log.Crash("Child scope still entered")
        }
 
        notimpl := false;
        switch s := s.(type) {
        case *ast.BadStmt:
                // Error already reported by parser.
-               a.silentErrors++;
+               a.silentErrors++
 
        case *ast.DeclStmt:
-               a.compileDeclStmt(s);
+               a.compileDeclStmt(s)
 
        case *ast.EmptyStmt:
                // Do nothing.
 
        case *ast.LabeledStmt:
-               a.compileLabeledStmt(s);
+               a.compileLabeledStmt(s)
 
        case *ast.ExprStmt:
-               a.compileExprStmt(s);
+               a.compileExprStmt(s)
 
        case *ast.IncDecStmt:
-               a.compileIncDecStmt(s);
+               a.compileIncDecStmt(s)
 
        case *ast.AssignStmt:
-               a.compileAssignStmt(s);
+               a.compileAssignStmt(s)
 
        case *ast.GoStmt:
-               notimpl = true;
+               notimpl = true
 
        case *ast.DeferStmt:
-               notimpl = true;
+               notimpl = true
 
        case *ast.ReturnStmt:
-               a.compileReturnStmt(s);
+               a.compileReturnStmt(s)
 
        case *ast.BranchStmt:
-               a.compileBranchStmt(s);
+               a.compileBranchStmt(s)
 
        case *ast.BlockStmt:
-               a.compileBlockStmt(s);
+               a.compileBlockStmt(s)
 
        case *ast.IfStmt:
-               a.compileIfStmt(s);
+               a.compileIfStmt(s)
 
        case *ast.CaseClause:
-               a.diag("case clause outside switch");
+               a.diag("case clause outside switch")
 
        case *ast.SwitchStmt:
-               a.compileSwitchStmt(s);
+               a.compileSwitchStmt(s)
 
        case *ast.TypeCaseClause:
-               notimpl = true;
+               notimpl = true
 
        case *ast.TypeSwitchStmt:
-               notimpl = true;
+               notimpl = true
 
        case *ast.CommClause:
-               notimpl = true;
+               notimpl = true
 
        case *ast.SelectStmt:
-               notimpl = true;
+               notimpl = true
 
        case *ast.ForStmt:
-               a.compileForStmt(s);
+               a.compileForStmt(s)
 
        case *ast.RangeStmt:
-               notimpl = true;
+               notimpl = true
 
        default:
-               log.Crashf("unexpected ast node type %T", s);
+               log.Crashf("unexpected ast node type %T", s)
        }
 
        if notimpl {
-               a.diag("%T statment node not implemented", s);
+               a.diag("%T statment node not implemented", s)
        }
 
        if a.block.inner != nil {
-               log.Crash("Forgot to exit child scope");
+               log.Crash("Forgot to exit child scope")
        }
 }
 
@@ -325,20 +325,20 @@ func (a *stmtCompiler) compileDeclStmt(s *ast.DeclStmt) {
        switch decl := s.Decl.(type) {
        case *ast.BadDecl:
                // Do nothing.  Already reported by parser.
-               a.silentErrors++;
+               a.silentErrors++
 
        case *ast.FuncDecl:
                if !a.block.global {
-                       log.Crash("FuncDecl at statement level");
+                       log.Crash("FuncDecl at statement level")
                }
 
        case *ast.GenDecl:
                if decl.Tok == token.IMPORT && !a.block.global {
-                       log.Crash("import at statement level");
+                       log.Crash("import at statement level")
                }
 
        default:
-               log.Crashf("Unexpected Decl type %T", s.Decl);
+               log.Crashf("Unexpected Decl type %T", s.Decl)
        }
        a.compileDecl(s.Decl);
 }
@@ -350,18 +350,18 @@ func (a *stmtCompiler) compileVarDecl(decl *ast.GenDecl) {
                        // Declaration without assignment
                        if spec.Type == nil {
                                // Parser should have caught
-                               log.Crash("Type and Values nil");
+                               log.Crash("Type and Values nil")
                        }
                        t := a.compileType(a.block, spec.Type);
                        // Define placeholders even if type compile failed
                        for _, n := range spec.Names {
-                               a.defineVar(n, t);
+                               a.defineVar(n, t)
                        }
                } else {
                        // Declaration with assignment
                        lhs := make([]ast.Expr, len(spec.Names));
                        for i, n := range spec.Names {
-                               lhs[i] = n;
+                               lhs[i] = n
                        }
                        a.doAssign(lhs, spec.Values, decl.Tok, spec.Type);
                }
@@ -372,12 +372,12 @@ func (a *stmtCompiler) compileDecl(decl ast.Decl) {
        switch d := decl.(type) {
        case *ast.BadDecl:
                // Do nothing.  Already reported by parser.
-               a.silentErrors++;
+               a.silentErrors++
 
        case *ast.FuncDecl:
                decl := a.compileFuncType(a.block, d.Type);
                if decl == nil {
-                       return;
+                       return
                }
                // Declare and initialize v before compiling func
                // so that body can refer to itself.
@@ -385,14 +385,14 @@ func (a *stmtCompiler) compileDecl(decl ast.Decl) {
                if prev != nil {
                        pos := prev.Pos();
                        if pos.IsValid() {
-                               a.diagAt(d.Name, "identifier %s redeclared in this block\n\tprevious declaration at %s", d.Name.Value, &pos);
+                               a.diagAt(d.Name, "identifier %s redeclared in this block\n\tprevious declaration at %s", d.Name.Value, &pos)
                        } else {
-                               a.diagAt(d.Name, "identifier %s redeclared in this block", d.Name.Value);
+                               a.diagAt(d.Name, "identifier %s redeclared in this block", d.Name.Value)
                        }
                }
                fn := a.compileFunc(a.block, decl, d.Body);
                if c == nil || fn == nil {
-                       return;
+                       return
                }
                var zeroThread Thread;
                c.Value.(FuncValue).Set(nil, fn(&zeroThread));
@@ -400,17 +400,17 @@ func (a *stmtCompiler) compileDecl(decl ast.Decl) {
        case *ast.GenDecl:
                switch d.Tok {
                case token.IMPORT:
-                       log.Crashf("%v not implemented", d.Tok);
+                       log.Crashf("%v not implemented", d.Tok)
                case token.CONST:
-                       log.Crashf("%v not implemented", d.Tok);
+                       log.Crashf("%v not implemented", d.Tok)
                case token.TYPE:
-                       a.compileTypeDecl(a.block, d);
+                       a.compileTypeDecl(a.block, d)
                case token.VAR:
-                       a.compileVarDecl(d);
+                       a.compileVarDecl(d)
                }
 
        default:
-               log.Crashf("Unexpected Decl type %T", decl);
+               log.Crashf("Unexpected Decl type %T", decl)
        }
 }
 
@@ -419,7 +419,7 @@ func (a *stmtCompiler) compileLabeledStmt(s *ast.LabeledStmt) {
        l, ok := a.labels[s.Label.Value];
        if ok {
                if l.resolved.IsValid() {
-                       a.diag("label %s redeclared in this block\n\tprevious declaration at %s", s.Label.Value, &l.resolved);
+                       a.diag("label %s redeclared in this block\n\tprevious declaration at %s", s.Label.Value, &l.resolved)
                }
        } else {
                pc := badPC;
@@ -446,7 +446,7 @@ func (a *stmtCompiler) compileExprStmt(s *ast.ExprStmt) {
 
        e := a.compileExpr(bc.block, false, s.X);
        if e == nil {
-               return;
+               return
        }
 
        if e.exec == nil {
@@ -464,7 +464,7 @@ func (a *stmtCompiler) compileIncDecStmt(s *ast.IncDecStmt) {
 
        l := a.compileExpr(bc.block, false, s.X);
        if l == nil {
-               return;
+               return
        }
 
        if l.evalAddr == nil {
@@ -486,7 +486,7 @@ func (a *stmtCompiler) compileIncDecStmt(s *ast.IncDecStmt) {
                op = token.SUB;
                desc = "decrement statement";
        default:
-               log.Crashf("Unexpected IncDec token %v", s.Tok);
+               log.Crashf("Unexpected IncDec token %v", s.Tok)
        }
 
        effect, l := l.extractEffect(bc.block, desc);
@@ -497,12 +497,12 @@ func (a *stmtCompiler) compileIncDecStmt(s *ast.IncDecStmt) {
 
        binop := l.compileBinaryExpr(op, l, one);
        if binop == nil {
-               return;
+               return
        }
 
        assign := a.compileAssign(s.Pos(), bc.block, l.t, []*expr{binop}, "", "");
        if assign == nil {
-               log.Crashf("compileAssign type check failed");
+               log.Crashf("compileAssign type check failed")
        }
 
        lf := l.evalAddr;
@@ -520,12 +520,12 @@ func (a *stmtCompiler) doAssign(lhs []ast.Expr, rhs []ast.Expr, tok token.Token,
        // made on the left side.
        rs := make([]*expr, len(rhs));
        for i, re := range rhs {
-               rs[i] = a.compileExpr(a.block, false, re);
+               rs[i] = a.compileExpr(a.block, false, re)
        }
 
        errOp := "assignment";
        if tok == token.DEFINE || tok == token.VAR {
-               errOp = "declaration";
+               errOp = "declaration"
        }
        ac, ok := a.checkAssign(a.pos, rs, errOp, "value");
        ac.allowMapForms(len(lhs));
@@ -534,13 +534,13 @@ func (a *stmtCompiler) doAssign(lhs []ast.Expr, rhs []ast.Expr, tok token.Token,
        // able to produce the usual error message because we can't
        // begin to infer the types of the LHS.
        if (tok == token.DEFINE || tok == token.VAR) && len(lhs) > len(ac.rmt.Elems) {
-               a.diag("not enough values for definition");
+               a.diag("not enough values for definition")
        }
 
        // Compile left type if there is one
        var declType Type;
        if declTypeExpr != nil {
-               declType = a.compileType(a.block, declTypeExpr);
+               declType = a.compileType(a.block, declTypeExpr)
        }
 
        // Compile left side
@@ -569,7 +569,7 @@ func (a *stmtCompiler) doAssign(lhs []ast.Expr, rhs []ast.Expr, tok token.Token,
                        nDefs++;
 
                case token.VAR:
-                       ident = le.(*ast.Ident);
+                       ident = le.(*ast.Ident)
                }
 
                // If it's a definition, get or infer its type.
@@ -582,17 +582,17 @@ func (a *stmtCompiler) doAssign(lhs []ast.Expr, rhs []ast.Expr, tok token.Token,
                                // We have a declaration type, use it.
                                // If declType is nil, we gave an
                                // error when we compiled it.
-                               lt = declType;
+                               lt = declType
 
                        case i >= len(ac.rmt.Elems):
                                // Define a placeholder.  We already
                                // gave the "not enough" error above.
-                               lt = nil;
+                               lt = nil
 
                        case ac.rmt.Elems[i] == nil:
                                // We gave the error when we compiled
                                // the RHS.
-                               lt = nil;
+                               lt = nil
 
                        case ac.rmt.Elems[i].isIdeal():
                                // If the type is absent and the
@@ -603,29 +603,29 @@ func (a *stmtCompiler) doAssign(lhs []ast.Expr, rhs []ast.Expr, tok token.Token,
                                // int or float respectively.
                                switch {
                                case ac.rmt.Elems[i].isInteger():
-                                       lt = IntType;
+                                       lt = IntType
                                case ac.rmt.Elems[i].isFloat():
-                                       lt = FloatType;
+                                       lt = FloatType
                                default:
-                                       log.Crashf("unexpected ideal type %v", rs[i].t);
+                                       log.Crashf("unexpected ideal type %v", rs[i].t)
                                }
 
                        default:
-                               lt = ac.rmt.Elems[i];
+                               lt = ac.rmt.Elems[i]
                        }
                }
 
                // If it's a definition, define the identifier
                if ident != nil {
                        if a.defineVar(ident, lt) == nil {
-                               continue;
+                               continue
                        }
                }
 
                // Compile LHS
                ls[i] = a.compileExpr(a.block, false, le);
                if ls[i] == nil {
-                       continue;
+                       continue
                }
 
                if ls[i].evalMapValue != nil {
@@ -667,7 +667,7 @@ func (a *stmtCompiler) doAssign(lhs []ast.Expr, rhs []ast.Expr, tok token.Token,
        // If there have been errors, our arrays are full of nil's so
        // get out of here now.
        if nerr != a.numError() {
-               return;
+               return
        }
 
        // Check for 'a[x] = r, ok'
@@ -680,12 +680,12 @@ func (a *stmtCompiler) doAssign(lhs []ast.Expr, rhs []ast.Expr, tok token.Token,
        var lt Type;
        n := len(lhs);
        if n == 1 {
-               lt = ls[0].t;
+               lt = ls[0].t
        } else {
                lts := make([]Type, len(ls));
                for i, l := range ls {
                        if l != nil {
-                               lts[i] = l.t;
+                               lts[i] = l.t
                        }
                }
                lt = NewMultiType(lts);
@@ -694,7 +694,7 @@ func (a *stmtCompiler) doAssign(lhs []ast.Expr, rhs []ast.Expr, tok token.Token,
        defer bc.exit();
        assign := ac.compile(bc.block, lt);
        if assign == nil {
-               return;
+               return
        }
 
        // Compile
@@ -706,12 +706,12 @@ func (a *stmtCompiler) doAssign(lhs []ast.Expr, rhs []ast.Expr, tok token.Token,
                // Don't need temporaries
                lfs := make([]func(*Thread) Value, n);
                for i, l := range ls {
-                       lfs[i] = l.evalAddr;
+                       lfs[i] = l.evalAddr
                }
                a.push(func(t *Thread) {
                        dest := make([]Value, n);
                        for i, lf := range lfs {
-                               dest[i] = lf(t);
+                               dest[i] = lf(t)
                        }
                        assign(multiV(dest), t);
                });
@@ -720,7 +720,7 @@ func (a *stmtCompiler) doAssign(lhs []ast.Expr, rhs []ast.Expr, tok token.Token,
                lmt := lt.(*MultiType);
                lfs := make([]func(*Thread) Value, n);
                for i, l := range ls {
-                       lfs[i] = l.evalAddr;
+                       lfs[i] = l.evalAddr
                }
                a.push(func(t *Thread) {
                        temp := lmt.Zero().(multiV);
@@ -729,7 +729,7 @@ func (a *stmtCompiler) doAssign(lhs []ast.Expr, rhs []ast.Expr, tok token.Token,
                        for i := 0; i < n; i++ {
                                // TODO(austin) Need to evaluate LHS
                                // before RHS
-                               lfs[i](t).Assign(t, temp[i]);
+                               lfs[i](t).Assign(t, temp[i])
                        }
                });
        }
@@ -763,7 +763,7 @@ func (a *stmtCompiler) doAssignOp(s *ast.AssignStmt) {
        l := a.compileExpr(bc.block, false, s.Lhs[0]);
        r := a.compileExpr(bc.block, false, s.Rhs[0]);
        if l == nil || r == nil {
-               return;
+               return
        }
 
        if l.evalAddr == nil {
@@ -775,12 +775,12 @@ func (a *stmtCompiler) doAssignOp(s *ast.AssignStmt) {
 
        binop := r.compileBinaryExpr(assignOpToOp[s.Tok], l, r);
        if binop == nil {
-               return;
+               return
        }
 
        assign := a.compileAssign(s.Pos(), bc.block, l.t, []*expr{binop}, "assignment", "value");
        if assign == nil {
-               log.Crashf("compileAssign type check failed");
+               log.Crashf("compileAssign type check failed")
        }
 
        lf := l.evalAddr;
@@ -793,10 +793,10 @@ func (a *stmtCompiler) doAssignOp(s *ast.AssignStmt) {
 func (a *stmtCompiler) compileAssignStmt(s *ast.AssignStmt) {
        switch s.Tok {
        case token.ASSIGN, token.DEFINE:
-               a.doAssign(s.Lhs, s.Rhs, s.Tok, nil);
+               a.doAssign(s.Lhs, s.Rhs, s.Tok, nil)
 
        default:
-               a.doAssignOp(s);
+               a.doAssignOp(s)
        }
 }
 
@@ -822,11 +822,11 @@ func (a *stmtCompiler) compileReturnStmt(s *ast.ReturnStmt) {
        for i, re := range s.Results {
                rs[i] = a.compileExpr(bc.block, false, re);
                if rs[i] == nil {
-                       bad = true;
+                       bad = true
                }
        }
        if bad {
-               return;
+               return
        }
 
        // Create assigner
@@ -855,11 +855,11 @@ func (a *stmtCompiler) findLexicalLabel(name *ast.Ident, pred func(*label) bool,
        bc := a.blockCompiler;
        for ; bc != nil; bc = bc.parent {
                if bc.label == nil {
-                       continue;
+                       continue
                }
                l := bc.label;
                if name == nil && pred(l) {
-                       return l;
+                       return l
                }
                if name != nil && l.name == name.Value {
                        if !pred(l) {
@@ -870,9 +870,9 @@ func (a *stmtCompiler) findLexicalLabel(name *ast.Ident, pred func(*label) bool,
                }
        }
        if name == nil {
-               a.diag("%s outside %s", errOp, errCtx);
+               a.diag("%s outside %s", errOp, errCtx)
        } else {
-               a.diag("%s label %s not defined", errOp, name.Value);
+               a.diag("%s label %s not defined", errOp, name.Value)
        }
        return nil;
 }
@@ -884,14 +884,14 @@ func (a *stmtCompiler) compileBranchStmt(s *ast.BranchStmt) {
        case token.BREAK:
                l := a.findLexicalLabel(s.Label, func(l *label) bool { return l.breakPC != nil }, "break", "for loop, switch, or select");
                if l == nil {
-                       return;
+                       return
                }
                pc = l.breakPC;
 
        case token.CONTINUE:
                l := a.findLexicalLabel(s.Label, func(l *label) bool { return l.continuePC != nil }, "continue", "for loop");
                if l == nil {
-                       return;
+                       return
                }
                pc = l.continuePC;
 
@@ -911,7 +911,7 @@ func (a *stmtCompiler) compileBranchStmt(s *ast.BranchStmt) {
                return;
 
        default:
-               log.Crash("Unexpected branch token %v", s.Tok);
+               log.Crash("Unexpected branch token %v", s.Tok)
        }
 
        a.flow.put1(false, pc);
@@ -940,7 +940,7 @@ func (a *stmtCompiler) compileIfStmt(s *ast.IfStmt) {
 
        // Compile init statement, if any
        if s.Init != nil {
-               bc.compileStmt(s.Init);
+               bc.compileStmt(s.Init)
        }
 
        elsePC := badPC;
@@ -954,13 +954,13 @@ func (a *stmtCompiler) compileIfStmt(s *ast.IfStmt) {
                case e == nil:
                        // Error reported by compileExpr
                case !e.t.isBoolean():
-                       e.diag("'if' condition must be boolean\n\t%v", e.t);
+                       e.diag("'if' condition must be boolean\n\t%v", e.t)
                default:
                        eval := e.asBool();
                        a.flow.put1(true, &elsePC);
                        a.push(func(t *Thread) {
                                if !eval(t) {
-                                       t.pc = elsePC;
+                                       t.pc = elsePC
                                }
                        });
                }
@@ -979,7 +979,7 @@ func (a *stmtCompiler) compileIfStmt(s *ast.IfStmt) {
                elsePC = a.nextPC();
                bc.compileStmt(s.Else);
        } else {
-               elsePC = a.nextPC();
+               elsePC = a.nextPC()
        }
        endPC = a.nextPC();
 }
@@ -991,7 +991,7 @@ func (a *stmtCompiler) compileSwitchStmt(s *ast.SwitchStmt) {
 
        // Compile init statement, if any
        if s.Init != nil {
-               bc.compileStmt(s.Init);
+               bc.compileStmt(s.Init)
        }
 
        // Compile condition, if any, and extract its effects
@@ -1017,11 +1017,11 @@ func (a *stmtCompiler) compileSwitchStmt(s *ast.SwitchStmt) {
                }
                if clause.Values == nil {
                        if hasDefault {
-                               a.diagAt(clause, "switch statement contains more than one default case");
+                               a.diagAt(clause, "switch statement contains more than one default case")
                        }
                        hasDefault = true;
                } else {
-                       ncases += len(clause.Values);
+                       ncases += len(clause.Values)
                }
        }
 
@@ -1031,7 +1031,7 @@ func (a *stmtCompiler) compileSwitchStmt(s *ast.SwitchStmt) {
        for _, c := range s.Body.List {
                clause, ok := c.(*ast.CaseClause);
                if !ok {
-                       continue;
+                       continue
                }
                for _, v := range clause.Values {
                        e := condbc.compileExpr(condbc.block, false, v);
@@ -1039,15 +1039,15 @@ func (a *stmtCompiler) compileSwitchStmt(s *ast.SwitchStmt) {
                        case e == nil:
                                // Error reported by compileExpr
                        case cond == nil && !e.t.isBoolean():
-                               a.diagAt(v, "'case' condition must be boolean");
+                               a.diagAt(v, "'case' condition must be boolean")
                        case cond == nil:
-                               cases[i] = e.asBool();
+                               cases[i] = e.asBool()
                        case cond != nil:
                                // Create comparison
                                // TOOD(austin) This produces bad error messages
                                compare := e.compileBinaryExpr(token.EQL, cond, e);
                                if compare != nil {
-                                       cases[i] = compare.asBool();
+                                       cases[i] = compare.asBool()
                                }
                        }
                        i++;
@@ -1075,7 +1075,7 @@ func (a *stmtCompiler) compileSwitchStmt(s *ast.SwitchStmt) {
        for _, c := range s.Body.List {
                clause, ok := c.(*ast.CaseClause);
                if !ok {
-                       continue;
+                       continue
                }
 
                // Save jump PC's
@@ -1087,7 +1087,7 @@ func (a *stmtCompiler) compileSwitchStmt(s *ast.SwitchStmt) {
                        }
                } else {
                        // Default clause
-                       casePCs[ncases] = &pc;
+                       casePCs[ncases] = &pc
                }
 
                // Compile body
@@ -1110,7 +1110,7 @@ func (a *stmtCompiler) compileSwitchStmt(s *ast.SwitchStmt) {
                                }
                                fall = true;
                        } else {
-                               bc.compileStmt(s);
+                               bc.compileStmt(s)
                        }
                }
                // Jump out of switch, unless there was a fallthrough
@@ -1123,7 +1123,7 @@ func (a *stmtCompiler) compileSwitchStmt(s *ast.SwitchStmt) {
        // Get end PC
        endPC = a.nextPC();
        if !hasDefault {
-               casePCs[ncases] = &endPC;
+               casePCs[ncases] = &endPC
        }
 }
 
@@ -1134,7 +1134,7 @@ func (a *stmtCompiler) compileForStmt(s *ast.ForStmt) {
 
        // Compile init statement, if any
        if s.Init != nil {
-               bc.compileStmt(s.Init);
+               bc.compileStmt(s.Init)
        }
 
        bodyPC := badPC;
@@ -1151,9 +1151,9 @@ func (a *stmtCompiler) compileForStmt(s *ast.ForStmt) {
        bodyPC = a.nextPC();
        body := bc.enterChild();
        if a.stmtLabel != nil {
-               body.label = a.stmtLabel;
+               body.label = a.stmtLabel
        } else {
-               body.label = &label{resolved: s.Pos()};
+               body.label = &label{resolved: s.Pos()}
        }
        body.label.desc = "for loop";
        body.label.breakPC = &endPC;
@@ -1166,7 +1166,7 @@ func (a *stmtCompiler) compileForStmt(s *ast.ForStmt) {
        if s.Post != nil {
                // TODO(austin) Does the parser disallow short
                // declarations in s.Post?
-               bc.compileStmt(s.Post);
+               bc.compileStmt(s.Post)
        }
 
        // Compile condition check, if any
@@ -1181,13 +1181,13 @@ func (a *stmtCompiler) compileForStmt(s *ast.ForStmt) {
                case e == nil:
                        // Error reported by compileExpr
                case !e.t.isBoolean():
-                       a.diag("'for' condition must be boolean\n\t%v", e.t);
+                       a.diag("'for' condition must be boolean\n\t%v", e.t)
                default:
                        eval := e.asBool();
                        a.flow.put1(true, &bodyPC);
                        a.push(func(t *Thread) {
                                if eval(t) {
-                                       t.pc = bodyPC;
+                                       t.pc = bodyPC
                                }
                        });
                }
@@ -1207,7 +1207,7 @@ func (a *blockCompiler) compileStmt(s ast.Stmt) {
 
 func (a *blockCompiler) compileStmts(block *ast.BlockStmt) {
        for _, sub := range block.List {
-               a.compileStmt(sub);
+               a.compileStmt(sub)
        }
 }
 
@@ -1235,16 +1235,16 @@ func (a *compiler) compileFunc(b *block, decl *FuncDecl, body *ast.BlockStmt) (f
        defer bodyScope.exit();
        for i, t := range decl.Type.In {
                if decl.InNames[i] != nil {
-                       bodyScope.DefineVar(decl.InNames[i].Value, decl.InNames[i].Pos(), t);
+                       bodyScope.DefineVar(decl.InNames[i].Value, decl.InNames[i].Pos(), t)
                } else {
-                       bodyScope.DefineTemp(t);
+                       bodyScope.DefineTemp(t)
                }
        }
        for i, t := range decl.Type.Out {
                if decl.OutNames[i] != nil {
-                       bodyScope.DefineVar(decl.OutNames[i].Value, decl.OutNames[i].Pos(), t);
+                       bodyScope.DefineVar(decl.OutNames[i].Value, decl.OutNames[i].Pos(), t)
                } else {
-                       bodyScope.DefineTemp(t);
+                       bodyScope.DefineTemp(t)
                }
        }
 
@@ -1268,7 +1268,7 @@ func (a *compiler) compileFunc(b *block, decl *FuncDecl, body *ast.BlockStmt) (f
        bc.compileStmts(body);
        fc.checkLabels();
        if nerr != a.numError() {
-               return nil;
+               return nil
        }
 
        // Check that the body returned if necessary.  We only check
@@ -1290,12 +1290,12 @@ func (a *funcCompiler) checkLabels() {
        nerr := a.numError();
        for _, l := range a.labels {
                if !l.resolved.IsValid() {
-                       a.diagAt(&l.used, "label %s not defined", l.name);
+                       a.diagAt(&l.used, "label %s not defined", l.name)
                }
        }
        if nerr != a.numError() {
                // Don't check scopes if we have unresolved labels
-               return;
+               return
        }
 
        // Executing the "goto" statement must not cause any variables
index 85f96fb19d88715cdeeb7a79222bce6ed5dd8088..f63220a6b87ea94274ae0c973af20e7654634134 100644 (file)
@@ -84,7 +84,7 @@ func hashTypeArray(key []Type) uintptr {
        for _, t := range key {
                hash = hash*33;
                if t == nil {
-                       continue;
+                       continue
                }
                addr := reflect.NewValue(t).(*reflect.PtrValue).Get();
                hash ^= addr;
@@ -97,17 +97,17 @@ func newTypeArrayMap() typeArrayMap { return make(map[uintptr]*typeArrayMapEntry
 func (m typeArrayMap) Get(key []Type) interface{} {
        ent, ok := m[hashTypeArray(key)];
        if !ok {
-               return nil;
+               return nil
        }
 
 nextEnt:
        for ; ent != nil; ent = ent.next {
                if len(key) != len(ent.key) {
-                       continue;
+                       continue
                }
                for i := 0; i < len(key); i++ {
                        if key[i] != ent.key[i] {
-                               continue nextEnt;
+                               continue nextEnt
                        }
                }
                // Found it
@@ -165,7 +165,7 @@ func (boolType) String() string {
        // Use angle brackets as a convention for printing the
        // underlying, unnamed type.  This should only show up in
        // debug output.
-       return "<bool>";
+       return "<bool>"
 }
 
 func (t *boolType) Zero() Value {
@@ -241,9 +241,9 @@ func (t *uintType) maxVal() *bignum.Rational {
        bits := t.Bits;
        if bits == 0 {
                if t.Ptr {
-                       bits = uint(8 * unsafe.Sizeof(uintptr(0)));
+                       bits = uint(8 * unsafe.Sizeof(uintptr(0)))
                } else {
-                       bits = uint(8 * unsafe.Sizeof(uint(0)));
+                       bits = uint(8 * unsafe.Sizeof(uint(0)))
                }
        }
        return bignum.MakeRat(bignum.Int(1).Shl(bits).Add(bignum.Int(-1)), bignum.Nat(1));
@@ -311,7 +311,7 @@ func (t *intType) Zero() Value {
 func (t *intType) minVal() *bignum.Rational {
        bits := t.Bits;
        if bits == 0 {
-               bits = uint(8 * unsafe.Sizeof(int(0)));
+               bits = uint(8 * unsafe.Sizeof(int(0)))
        }
        return bignum.MakeRat(bignum.Int(-1).Shl(bits-1), bignum.Nat(1));
 }
@@ -319,7 +319,7 @@ func (t *intType) minVal() *bignum.Rational {
 func (t *intType) maxVal() *bignum.Rational {
        bits := t.Bits;
        if bits == 0 {
-               bits = uint(8 * unsafe.Sizeof(int(0)));
+               bits = uint(8 * unsafe.Sizeof(int(0)))
        }
        return bignum.MakeRat(bignum.Int(1).Shl(bits-1).Add(bignum.Int(-1)), bignum.Nat(1));
 }
@@ -402,13 +402,13 @@ var minFloat64Val = maxFloat64Val.Neg()
 func (t *floatType) minVal() *bignum.Rational {
        bits := t.Bits;
        if bits == 0 {
-               bits = uint(8 * unsafe.Sizeof(float(0)));
+               bits = uint(8 * unsafe.Sizeof(float(0)))
        }
        switch bits {
        case 32:
-               return minFloat32Val;
+               return minFloat32Val
        case 64:
-               return minFloat64Val;
+               return minFloat64Val
        }
        log.Crashf("unexpected floating point bit count: %d", bits);
        panic();
@@ -417,13 +417,13 @@ func (t *floatType) minVal() *bignum.Rational {
 func (t *floatType) maxVal() *bignum.Rational {
        bits := t.Bits;
        if bits == 0 {
-               bits = uint(8 * unsafe.Sizeof(float(0)));
+               bits = uint(8 * unsafe.Sizeof(float(0)))
        }
        switch bits {
        case 32:
-               return maxFloat32Val;
+               return maxFloat32Val
        case 64:
-               return maxFloat64Val;
+               return maxFloat64Val
        }
        log.Crashf("unexpected floating point bit count: %d", bits);
        panic();
@@ -510,7 +510,7 @@ func NewArrayType(len int64, elem Type) *ArrayType {
 func (t *ArrayType) compat(o Type, conv bool) bool {
        t2, ok := o.lit().(*ArrayType);
        if !ok {
-               return false;
+               return false
        }
        return t.Len == t2.Len && t.Elem.compat(t2.Elem, conv);
 }
@@ -527,7 +527,7 @@ func (t *ArrayType) Zero() Value {
        // arrays.  Or we could do something unsafe.  We'll have this
        // same problem with structs.
        for i := int64(0); i < t.Len; i++ {
-               res[i] = t.Elem.Zero();
+               res[i] = t.Elem.Zero()
        }
        return &res;
 }
@@ -558,11 +558,11 @@ func NewStructType(fields []StructField) *StructType {
        // Start by looking up just the types
        fts := make([]Type, len(fields));
        for i, f := range fields {
-               fts[i] = f.Type;
+               fts[i] = f.Type
        }
        tMapI := structTypes.Get(fts);
        if tMapI == nil {
-               tMapI = structTypes.Put(fts, make(map[string]*StructType));
+               tMapI = structTypes.Put(fts, make(map[string]*StructType))
        }
        tMap := tMapI.(map[string]*StructType);
 
@@ -578,7 +578,7 @@ func NewStructType(fields []StructField) *StructType {
                // else.  We decided that they should be neither
                // identical or compatible.
                if f.Anonymous {
-                       key += "!";
+                       key += "!"
                }
                key += f.Name + " ";
        }
@@ -600,10 +600,10 @@ func NewStructType(fields []StructField) *StructType {
 func (t *StructType) compat(o Type, conv bool) bool {
        t2, ok := o.lit().(*StructType);
        if !ok {
-               return false;
+               return false
        }
        if len(t.Elems) != len(t2.Elems) {
-               return false;
+               return false
        }
        for i, e := range t.Elems {
                e2 := t2.Elems[i];
@@ -612,7 +612,7 @@ func (t *StructType) compat(o Type, conv bool) bool {
                if e.Anonymous != e2.Anonymous ||
                        (!e.Anonymous && e.Name != e2.Name) ||
                        !e.Type.compat(e2.Type, conv) {
-                       return false;
+                       return false
                }
        }
        return true;
@@ -624,10 +624,10 @@ func (t *StructType) String() string {
        s := "struct {";
        for i, f := range t.Elems {
                if i > 0 {
-                       s += "; ";
+                       s += "; "
                }
                if !f.Anonymous {
-                       s += f.Name + " ";
+                       s += f.Name + " "
                }
                s += f.Type.String();
        }
@@ -637,7 +637,7 @@ func (t *StructType) String() string {
 func (t *StructType) Zero() Value {
        res := structV(make([]Value, len(t.Elems)));
        for i, f := range t.Elems {
-               res[i] = f.Type.Zero();
+               res[i] = f.Type.Zero()
        }
        return &res;
 }
@@ -667,7 +667,7 @@ func NewPtrType(elem Type) *PtrType {
 func (t *PtrType) compat(o Type, conv bool) bool {
        t2, ok := o.lit().(*PtrType);
        if !ok {
-               return false;
+               return false
        }
        return t.Elem.compat(t2.Elem, conv);
 }
@@ -716,18 +716,18 @@ var (
 func NewFuncType(in []Type, variadic bool, out []Type) *FuncType {
        inMap := funcTypes;
        if variadic {
-               inMap = variadicFuncTypes;
+               inMap = variadicFuncTypes
        }
 
        outMapI := inMap.Get(in);
        if outMapI == nil {
-               outMapI = inMap.Put(in, newTypeArrayMap());
+               outMapI = inMap.Put(in, newTypeArrayMap())
        }
        outMap := outMapI.(typeArrayMap);
 
        tI := outMap.Get(out);
        if tI != nil {
-               return tI.(*FuncType);
+               return tI.(*FuncType)
        }
 
        t := &FuncType{commonType{}, in, variadic, out, ""};
@@ -738,19 +738,19 @@ func NewFuncType(in []Type, variadic bool, out []Type) *FuncType {
 func (t *FuncType) compat(o Type, conv bool) bool {
        t2, ok := o.lit().(*FuncType);
        if !ok {
-               return false;
+               return false
        }
        if len(t.In) != len(t2.In) || t.Variadic != t2.Variadic || len(t.Out) != len(t2.Out) {
-               return false;
+               return false
        }
        for i := range t.In {
                if !t.In[i].compat(t2.In[i], conv) {
-                       return false;
+                       return false
                }
        }
        for i := range t.Out {
                if !t.Out[i].compat(t2.Out[i], conv) {
-                       return false;
+                       return false
                }
        }
        return true;
@@ -762,16 +762,16 @@ func typeListString(ts []Type, ns []*ast.Ident) string {
        s := "";
        for i, t := range ts {
                if i > 0 {
-                       s += ", ";
+                       s += ", "
                }
                if ns != nil && ns[i] != nil {
-                       s += ns[i].Value + " ";
+                       s += ns[i].Value + " "
                }
                if t == nil {
                        // Some places use nil types to represent errors
-                       s += "<none>";
+                       s += "<none>"
                } else {
-                       s += t.String();
+                       s += t.String()
                }
        }
        return s;
@@ -779,18 +779,18 @@ func typeListString(ts []Type, ns []*ast.Ident) string {
 
 func (t *FuncType) String() string {
        if t.builtin != "" {
-               return "built-in function " + t.builtin;
+               return "built-in function " + t.builtin
        }
        args := typeListString(t.In, nil);
        if t.Variadic {
                if len(args) > 0 {
-                       args += ", ";
+                       args += ", "
                }
                args += "...";
        }
        s := "func("+args+")";
        if len(t.Out) > 0 {
-               s += " (" + typeListString(t.Out, nil) + ")";
+               s += " (" + typeListString(t.Out, nil) + ")"
        }
        return s;
 }
@@ -809,7 +809,7 @@ type FuncDecl struct {
 func (t *FuncDecl) String() string {
        s := "func";
        if t.Name != nil {
-               s += " " + t.Name.Value;
+               s += " " + t.Name.Value
        }
        s += funcTypeString(t.Type, t.InNames, t.OutNames);
        return s;
@@ -820,13 +820,13 @@ func funcTypeString(ft *FuncType, ins []*ast.Ident, outs []*ast.Ident) string {
        s += typeListString(ft.In, ins);
        if ft.Variadic {
                if len(ft.In) > 0 {
-                       s += ", ";
+                       s += ", "
                }
                s += "...";
        }
        s += ")";
        if len(ft.Out) > 0 {
-               s += " (" + typeListString(ft.Out, outs) + ")";
+               s += " (" + typeListString(ft.Out, outs) + ")"
        }
        return s;
 }
@@ -858,13 +858,13 @@ func NewInterfaceType(methods []IMethod, embeds []*InterfaceType) *InterfaceType
        // Count methods of embedded interfaces
        nMethods := len(methods);
        for _, e := range embeds {
-               nMethods += len(e.methods);
+               nMethods += len(e.methods)
        }
 
        // Combine methods
        allMethods := make([]IMethod, nMethods);
        for i, m := range methods {
-               allMethods[i] = m;
+               allMethods[i] = m
        }
        n := len(methods);
        for _, e := range embeds {
@@ -879,17 +879,17 @@ func NewInterfaceType(methods []IMethod, embeds []*InterfaceType) *InterfaceType
 
        mts := make([]Type, len(allMethods));
        for i, m := range methods {
-               mts[i] = m.Type;
+               mts[i] = m.Type
        }
        tMapI := interfaceTypes.Get(mts);
        if tMapI == nil {
-               tMapI = interfaceTypes.Put(mts, make(map[string]*InterfaceType));
+               tMapI = interfaceTypes.Put(mts, make(map[string]*InterfaceType))
        }
        tMap := tMapI.(map[string]*InterfaceType);
 
        key := "";
        for _, m := range allMethods {
-               key += m.Name + " ";
+               key += m.Name + " "
        }
 
        t, ok := tMap[key];
@@ -911,15 +911,15 @@ func (s iMethodSorter) Len() int  { return len(s) }
 func (t *InterfaceType) compat(o Type, conv bool) bool {
        t2, ok := o.lit().(*InterfaceType);
        if !ok {
-               return false;
+               return false
        }
        if len(t.methods) != len(t2.methods) {
-               return false;
+               return false
        }
        for i, e := range t.methods {
                e2 := t2.methods[i];
                if e.Name != e2.Name || !e.Type.compat(e2.Type, conv) {
-                       return false;
+                       return false
                }
        }
        return true;
@@ -933,7 +933,7 @@ func (t *InterfaceType) String() string {
        s := "interface {";
        for i, m := range t.methods {
                if i > 0 {
-                       s += "; ";
+                       s += "; "
                }
                s += m.Name + funcTypeString(m.Type, nil, nil);
        }
@@ -944,13 +944,13 @@ func (t *InterfaceType) String() string {
 // Otherwise, it returns a method of t that o is missing and false.
 func (t *InterfaceType) implementedBy(o Type) (*IMethod, bool) {
        if len(t.methods) == 0 {
-               return nil, true;
+               return nil, true
        }
 
        // The methods of a named interface types are those of the
        // underlying type.
        if it, ok := o.lit().(*InterfaceType); ok {
-               o = it;
+               o = it
        }
 
        // XXX(Spec) Interface types: "A type implements any interface
@@ -963,7 +963,7 @@ func (t *InterfaceType) implementedBy(o Type) (*IMethod, bool) {
                for _, tm := range t.methods {
                        sm, ok := o.methods[tm.Name];
                        if !ok || sm.decl.Type != tm.Type {
-                               return &tm, false;
+                               return &tm, false
                        }
                }
                return nil, true;
@@ -975,18 +975,18 @@ func (t *InterfaceType) implementedBy(o Type) (*IMethod, bool) {
                        switch {
                        case tm.Name == om.Name:
                                if tm.Type != om.Type {
-                                       return tm, false;
+                                       return tm, false
                                }
                                ti++;
                                oi++;
                        case tm.Name > om.Name:
-                               oi++;
+                               oi++
                        default:
-                               return tm, false;
+                               return tm, false
                        }
                }
                if ti < len(t.methods) {
-                       return &t.methods[ti], false;
+                       return &t.methods[ti], false
                }
                return nil, true;
        }
@@ -1021,7 +1021,7 @@ func NewSliceType(elem Type) *SliceType {
 func (t *SliceType) compat(o Type, conv bool) bool {
        t2, ok := o.lit().(*SliceType);
        if !ok {
-               return false;
+               return false
        }
        return t.Elem.compat(t2.Elem, conv);
 }
@@ -1033,7 +1033,7 @@ func (t *SliceType) String() string       { return "[]" + t.Elem.String() }
 func (t *SliceType) Zero() Value {
        // The value of an uninitialized slice is nil. The length and
        // capacity of a nil slice are 0.
-       return &sliceV{Slice{nil, 0, 0}};
+       return &sliceV{Slice{nil, 0, 0}}
 }
 
 /*
@@ -1065,7 +1065,7 @@ func NewMapType(key Type, elem Type) *MapType {
 func (t *MapType) compat(o Type, conv bool) bool {
        t2, ok := o.lit().(*MapType);
        if !ok {
-               return false;
+               return false
        }
        return t.Elem.compat(t2.Elem, conv) && t.Key.compat(t2.Key, conv);
 }
@@ -1076,7 +1076,7 @@ func (t *MapType) String() string { return "map[" + t.Key.String() + "] " + t.El
 
 func (t *MapType) Zero() Value {
        // The value of an uninitialized map is nil.
-       return &mapV{nil};
+       return &mapV{nil}
 }
 
 /*
@@ -1109,17 +1109,17 @@ type NamedType struct {
 // TODO(austin) This is temporarily needed by the debugger's remote
 // type parser.  This should only be possible with block.DefineType.
 func NewNamedType(name string) *NamedType {
-       return &NamedType{token.Position{}, name, nil, true, make(map[string]Method)};
+       return &NamedType{token.Position{}, name, nil, true, make(map[string]Method)}
 }
 
 func (t *NamedType) Complete(def Type) {
        if !t.incomplete {
-               log.Crashf("cannot complete already completed NamedType %+v", *t);
+               log.Crashf("cannot complete already completed NamedType %+v", *t)
        }
        // We strip the name from def because multiple levels of
        // naming are useless.
        if ndef, ok := def.(*NamedType); ok {
-               def = ndef.Def;
+               def = ndef.Def
        }
        t.Def = def;
        t.incomplete = false;
@@ -1132,12 +1132,12 @@ func (t *NamedType) compat(o Type, conv bool) bool {
                        // Two named types are conversion compatible
                        // if their literals are conversion
                        // compatible.
-                       return t.Def.compat(t2.Def, conv);
+                       return t.Def.compat(t2.Def, conv)
                } else {
                        // Two named types are compatible if their
                        // type names originate in the same type
                        // declaration.
-                       return t == t2;
+                       return t == t2
                }
        }
        // A named and an unnamed type are compatible if the
@@ -1175,7 +1175,7 @@ var multiTypes = newTypeArrayMap()
 
 func NewMultiType(elems []Type) *MultiType {
        if t := multiTypes.Get(elems); t != nil {
-               return t.(*MultiType);
+               return t.(*MultiType)
        }
 
        t := &MultiType{commonType{}, elems};
@@ -1186,14 +1186,14 @@ func NewMultiType(elems []Type) *MultiType {
 func (t *MultiType) compat(o Type, conv bool) bool {
        t2, ok := o.lit().(*MultiType);
        if !ok {
-               return false;
+               return false
        }
        if len(t.Elems) != len(t2.Elems) {
-               return false;
+               return false
        }
        for i := range t.Elems {
                if !t.Elems[i].compat(t2.Elems[i], conv) {
-                       return false;
+                       return false
                }
        }
        return true;
@@ -1205,7 +1205,7 @@ func (t *MultiType) lit() Type    { return t }
 
 func (t *MultiType) String() string {
        if len(t.Elems) == 0 {
-               return "<none>";
+               return "<none>"
        }
        return typeListString(t.Elems, nil);
 }
@@ -1213,7 +1213,7 @@ func (t *MultiType) String() string {
 func (t *MultiType) Zero() Value {
        res := make([]Value, len(t.Elems));
        for i, t := range t.Elems {
-               res[i] = t.Zero();
+               res[i] = t.Zero()
        }
        return multiV(res);
 }
index d771adadaaac34e61bca2d988fd15f57f3fa70a5..a2823b40d20ba0ffe784b568d99917cfb55fb770 100644 (file)
@@ -45,11 +45,11 @@ func (a *typeCompiler) compileIdent(x *ast.Ident, allowRec bool) Type {
                }
                if !def.incomplete && def.Def == nil {
                        // Placeholder type from an earlier error
-                       return nil;
+                       return nil
                }
                return def;
        case Type:
-               return def;
+               return def
        }
        log.Crashf("name %s has unknown type %T", x.Value, def);
        return nil;
@@ -62,7 +62,7 @@ func (a *typeCompiler) compileArrayType(x *ast.ArrayType, allowRec bool) Type {
        // Compile length expression
        if x.Len == nil {
                if elem == nil {
-                       return nil;
+                       return nil
                }
                return NewSliceType(elem);
        }
@@ -73,14 +73,14 @@ func (a *typeCompiler) compileArrayType(x *ast.ArrayType, allowRec bool) Type {
        }
        l, ok := a.compileArrayLen(a.block, x.Len);
        if !ok {
-               return nil;
+               return nil
        }
        if l < 0 {
                a.diagAt(x.Len, "array length must be non-negative");
                return nil;
        }
        if elem == nil {
-               return nil;
+               return nil
        }
 
        return NewArrayType(l, elem);
@@ -90,9 +90,9 @@ func countFields(fs []*ast.Field) int {
        n := 0;
        for _, f := range fs {
                if f.Names == nil {
-                       n++;
+                       n++
                } else {
-                       n += len(f.Names);
+                       n += len(f.Names)
                }
        }
        return n;
@@ -109,7 +109,7 @@ func (a *typeCompiler) compileFields(fs []*ast.Field, allowRec bool) ([]Type, []
        for _, f := range fs {
                t := a.compileType(f.Type, allowRec);
                if t == nil {
-                       bad = true;
+                       bad = true
                }
                if f.Names == nil {
                        ns[i] = nil;
@@ -147,10 +147,10 @@ func (a *typeCompiler) compileStructType(x *ast.StructType, allowRec bool) Type
                // Compute field name and check anonymous fields
                var name string;
                if names[i] != nil {
-                       name = names[i].Value;
+                       name = names[i].Value
                } else {
                        if ts[i] == nil {
-                               continue;
+                               continue
                        }
 
                        var nt *NamedType;
@@ -204,7 +204,7 @@ func (a *typeCompiler) compileStructType(x *ast.StructType, allowRec bool) Type
        }
 
        if bad {
-               return nil;
+               return nil
        }
 
        return NewStructType(fields);
@@ -213,7 +213,7 @@ func (a *typeCompiler) compileStructType(x *ast.StructType, allowRec bool) Type
 func (a *typeCompiler) compilePtrType(x *ast.StarExpr) Type {
        elem := a.compileType(x.X, true);
        if elem == nil {
-               return nil;
+               return nil
        }
        return NewPtrType(elem);
 }
@@ -228,7 +228,7 @@ func (a *typeCompiler) compileFuncType(x *ast.FuncType, allowRec bool) *FuncDecl
        out, outNames, _, outBad := a.compileFields(x.Results, allowRec);
 
        if inBad || outBad {
-               return nil;
+               return nil
        }
        return &FuncDecl{NewFuncType(in, false, out), nil, inNames, outNames};
 }
@@ -243,7 +243,7 @@ func (a *typeCompiler) compileInterfaceType(x *ast.InterfaceType, allowRec bool)
        var nm, ne int;
        for i := range ts {
                if ts[i] == nil {
-                       continue;
+                       continue
                }
 
                if names[i] != nil {
@@ -279,7 +279,7 @@ func (a *typeCompiler) compileInterfaceType(x *ast.InterfaceType, allowRec bool)
        }
 
        if bad {
-               return nil;
+               return nil
        }
 
        methods = methods[0:nm];
@@ -292,7 +292,7 @@ func (a *typeCompiler) compileMapType(x *ast.MapType) Type {
        key := a.compileType(x.Key, true);
        val := a.compileType(x.Value, true);
        if key == nil || val == nil {
-               return nil;
+               return nil
        }
        // XXX(Spec) The Map types section explicitly lists all types
        // that can be map keys except for function types.
@@ -318,35 +318,35 @@ func (a *typeCompiler) compileType(x ast.Expr, allowRec bool) Type {
                return nil;
 
        case *ast.Ident:
-               return a.compileIdent(x, allowRec);
+               return a.compileIdent(x, allowRec)
 
        case *ast.ArrayType:
-               return a.compileArrayType(x, allowRec);
+               return a.compileArrayType(x, allowRec)
 
        case *ast.StructType:
-               return a.compileStructType(x, allowRec);
+               return a.compileStructType(x, allowRec)
 
        case *ast.StarExpr:
-               return a.compilePtrType(x);
+               return a.compilePtrType(x)
 
        case *ast.FuncType:
                fd := a.compileFuncType(x, allowRec);
                if fd == nil {
-                       return nil;
+                       return nil
                }
                return fd.Type;
 
        case *ast.InterfaceType:
-               return a.compileInterfaceType(x, allowRec);
+               return a.compileInterfaceType(x, allowRec)
 
        case *ast.MapType:
-               return a.compileMapType(x);
+               return a.compileMapType(x)
 
        case *ast.ChanType:
-               goto notimpl;
+               goto notimpl
 
        case *ast.ParenExpr:
-               return a.compileType(x.X, allowRec);
+               return a.compileType(x.X, allowRec)
 
        case *ast.Ellipsis:
                a.diagAt(x, "illegal use of ellipsis");
@@ -370,7 +370,7 @@ func (a *compiler) compileType(b *block, typ ast.Expr) Type {
        tc := &typeCompiler{a, b, noLateCheck};
        t := tc.compileType(typ, false);
        if !tc.lateCheck() {
-               t = nil;
+               t = nil
        }
        return t;
 }
@@ -382,25 +382,25 @@ func (a *compiler) compileTypeDecl(b *block, decl *ast.GenDecl) bool {
                // Create incomplete type for this type
                nt := b.DefineType(spec.Name.Value, spec.Name.Pos(), nil);
                if nt != nil {
-                       nt.(*NamedType).incomplete = true;
+                       nt.(*NamedType).incomplete = true
                }
                // Compile type
                tc := &typeCompiler{a, b, noLateCheck};
                t := tc.compileType(spec.Type, false);
                if t == nil {
                        // Create a placeholder type
-                       ok = false;
+                       ok = false
                }
                // Fill incomplete type
                if nt != nil {
-                       nt.(*NamedType).Complete(t);
+                       nt.(*NamedType).Complete(t)
                }
                // Perform late type checking with complete type
                if !tc.lateCheck() {
                        ok = false;
                        if nt != nil {
                                // Make the type a placeholder
-                               nt.(*NamedType).Def = nil;
+                               nt.(*NamedType).Def = nil
                        }
                }
        }
@@ -412,7 +412,7 @@ func (a *compiler) compileFuncType(b *block, typ *ast.FuncType) *FuncDecl {
        res := tc.compileFuncType(typ, false);
        if res != nil {
                if !tc.lateCheck() {
-                       res = nil;
+                       res = nil
                }
        }
        return res;
index 9cdf23722144d33fb4105fee89101ca7ea3c406b..bee767d882770b32030aeb703008b51c84a288e5 100644 (file)
@@ -15,7 +15,7 @@ func ratToString(rat *bignum.Rational) string {
        w, frac := n.QuoRem(d);
        out := w.String();
        if frac.IsZero() {
-               return out;
+               return out
        }
 
        r := frac.Abs();
@@ -23,14 +23,14 @@ func ratToString(rat *bignum.Rational) string {
        dec, tail := r.DivMod(dnat);
        // Round last digit
        if tail.Cmp(dnat.Div(bignum.Nat(2))) >= 0 {
-               dec = dec.Add(bignum.Nat(1));
+               dec = dec.Add(bignum.Nat(1))
        }
        // Strip zeros
        ten := bignum.Nat(10);
        for !dec.IsZero() {
                dec2, r2 := dec.DivMod(ten);
                if !r2.IsZero() {
-                       break;
+                       break
                }
                dec = dec2;
        }
index d57920538d4ddcf91a17347c2a05041977db26cb..4956cf33a622802ba230cd584ce7fb8743f06348 100644 (file)
@@ -278,7 +278,7 @@ type idealIntV struct {
 func (v *idealIntV) String() string    { return v.V.String() }
 
 func (v *idealIntV) Assign(t *Thread, o Value) {
-       v.V = o.(IdealIntValue).Get();
+       v.V = o.(IdealIntValue).Get()
 }
 
 func (v *idealIntV) Get() *bignum.Integer      { return v.V }
@@ -328,7 +328,7 @@ type idealFloatV struct {
 func (v *idealFloatV) String() string  { return ratToString(v.V) }
 
 func (v *idealFloatV) Assign(t *Thread, o Value) {
-       v.V = o.(IdealFloatValue).Get();
+       v.V = o.(IdealFloatValue).Get()
 }
 
 func (v *idealFloatV) Get() *bignum.Rational   { return v.V }
@@ -357,7 +357,7 @@ func (v *arrayV) String() string {
        res := "{";
        for i, e := range *v {
                if i > 0 {
-                       res += ", ";
+                       res += ", "
                }
                res += e.String();
        }
@@ -368,14 +368,14 @@ func (v *arrayV) Assign(t *Thread, o Value) {
        oa := o.(ArrayValue);
        l := int64(len(*v));
        for i := int64(0); i < l; i++ {
-               (*v)[i].Assign(t, oa.Elem(t, i));
+               (*v)[i].Assign(t, oa.Elem(t, i))
        }
 }
 
 func (v *arrayV) Get(*Thread) ArrayValue       { return v }
 
 func (v *arrayV) Elem(t *Thread, i int64) Value {
-       return (*v)[i];
+       return (*v)[i]
 }
 
 func (v *arrayV) Sub(i int64, len int64) ArrayValue {
@@ -395,7 +395,7 @@ func (v *structV) String() string {
        res := "{";
        for i, v := range *v {
                if i > 0 {
-                       res += ", ";
+                       res += ", "
                }
                res += v.String();
        }
@@ -406,14 +406,14 @@ func (v *structV) Assign(t *Thread, o Value) {
        oa := o.(StructValue);
        l := len(*v);
        for i := 0; i < l; i++ {
-               (*v)[i].Assign(t, oa.Field(t, i));
+               (*v)[i].Assign(t, oa.Field(t, i))
        }
 }
 
 func (v *structV) Get(*Thread) StructValue     { return v }
 
 func (v *structV) Field(t *Thread, i int) Value {
-       return (*v)[i];
+       return (*v)[i]
 }
 
 /*
@@ -427,7 +427,7 @@ type ptrV struct {
 
 func (v *ptrV) String() string {
        if v.target == nil {
-               return "<nil>";
+               return "<nil>"
        }
        return "&" + v.target.String();
 }
@@ -448,7 +448,7 @@ type funcV struct {
 
 func (v *funcV) String() string {
        // TODO(austin) Rob wants to see the definition
-       return "func {...}";
+       return "func {...}"
 }
 
 func (v *funcV) Assign(t *Thread, o Value)     { v.target = o.(FuncValue).Get(t) }
@@ -467,19 +467,19 @@ type interfaceV struct {
 
 func (v *interfaceV) String() string {
        if v.Type == nil || v.Value == nil {
-               return "<nil>";
+               return "<nil>"
        }
        return v.Value.String();
 }
 
 func (v *interfaceV) Assign(t *Thread, o Value) {
-       v.Interface = o.(InterfaceValue).Get(t);
+       v.Interface = o.(InterfaceValue).Get(t)
 }
 
 func (v *interfaceV) Get(*Thread) Interface    { return v.Interface }
 
 func (v *interfaceV) Set(t *Thread, x Interface) {
-       v.Interface = x;
+       v.Interface = x
 }
 
 /*
@@ -492,7 +492,7 @@ type sliceV struct {
 
 func (v *sliceV) String() string {
        if v.Base == nil {
-               return "<nil>";
+               return "<nil>"
        }
        return v.Base.Sub(0, v.Len).String();
 }
@@ -513,13 +513,13 @@ type mapV struct {
 
 func (v *mapV) String() string {
        if v.target == nil {
-               return "<nil>";
+               return "<nil>"
        }
        res := "map[";
        i := 0;
        v.target.Iter(func(key interface{}, val Value) bool {
                if i > 0 {
-                       res += ", ";
+                       res += ", "
                }
                i++;
                res += fmt.Sprint(key) + ":" + val.String();
@@ -540,23 +540,23 @@ func (m evalMap) Len(t *Thread) int64     { return int64(len(m)) }
 
 func (m evalMap) Elem(t *Thread, key interface{}) Value {
        if v, ok := m[key]; ok {
-               return v;
+               return v
        }
        return nil;
 }
 
 func (m evalMap) SetElem(t *Thread, key interface{}, val Value) {
        if val == nil {
-               m[key] = nil, false;
+               m[key] = nil, false
        } else {
-               m[key] = val;
+               m[key] = val
        }
 }
 
 func (m evalMap) Iter(cb func(key interface{}, val Value) bool) {
        for k, v := range m {
                if !cb(k, v) {
-                       break;
+                       break
                }
        }
 }
@@ -571,7 +571,7 @@ func (v multiV) String() string {
        res := "(";
        for i, v := range v {
                if i > 0 {
-                       res += ", ";
+                       res += ", "
                }
                res += v.String();
        }
@@ -581,7 +581,7 @@ func (v multiV) String() string {
 func (v multiV) Assign(t *Thread, o Value) {
        omv := o.(multiV);
        for i := range v {
-               v[i].Assign(t, omv[i]);
+               v[i].Assign(t, omv[i])
        }
 }
 
index 8218c24f5be98bf9b446d462c6b7449dc7aedc69..e6e6eed419788ea3b5670c9486a6a93affe5d208 100644 (file)
@@ -44,7 +44,7 @@ type stmtCode struct {
 func (w *World) CompileStmtList(stmts []ast.Stmt) (Code, os.Error) {
        if len(stmts) == 1 {
                if s, ok := stmts[0].(*ast.ExprStmt); ok {
-                       return w.CompileExpr(s.X);
+                       return w.CompileExpr(s.X)
                }
        }
        errors := scanner.NewErrorVector();
@@ -64,11 +64,11 @@ func (w *World) CompileStmtList(stmts []ast.Stmt) (Code, os.Error) {
        };
        nerr := cc.numError();
        for _, stmt := range stmts {
-               bc.compileStmt(stmt);
+               bc.compileStmt(stmt)
        }
        fc.checkLabels();
        if nerr != cc.numError() {
-               return nil, errors.GetError(scanner.Sorted);
+               return nil, errors.GetError(scanner.Sorted)
        }
        return &stmtCode{w, fc.get()}, nil;
 }
@@ -76,7 +76,7 @@ func (w *World) CompileStmtList(stmts []ast.Stmt) (Code, os.Error) {
 func (w *World) CompileDeclList(decls []ast.Decl) (Code, os.Error) {
        stmts := make([]ast.Stmt, len(decls));
        for i, d := range decls {
-               stmts[i] = &ast.DeclStmt{d};
+               stmts[i] = &ast.DeclStmt{d}
        }
        return w.CompileStmtList(stmts);
 }
@@ -101,7 +101,7 @@ func (w *World) CompileExpr(e ast.Expr) (Code, os.Error) {
 
        ec := cc.compileExpr(w.scope.block, false, e);
        if ec == nil {
-               return nil, errors.GetError(scanner.Sorted);
+               return nil, errors.GetError(scanner.Sorted)
        }
        var eval func(Value, *Thread);
        switch t := ec.t.(type) {
@@ -111,7 +111,7 @@ func (w *World) CompileExpr(e ast.Expr) (Code, os.Error) {
                // nothing
        default:
                if tm, ok := t.(*MultiType); ok && len(tm.Elems) == 0 {
-                       return &stmtCode{w, code{ec.exec}}, nil;
+                       return &stmtCode{w, code{ec.exec}}, nil
                }
                eval = genAssign(ec.t, ec);
        }
@@ -125,9 +125,9 @@ func (e *exprCode) Run() (Value, os.Error) {
        t.f = e.w.scope.NewFrame(nil);
        switch e.e.t.(type) {
        case *idealIntType:
-               return &idealIntV{e.e.asIdealInt()()}, nil;
+               return &idealIntV{e.e.asIdealInt()()}, nil
        case *idealFloatType:
-               return &idealFloatV{e.e.asIdealFloat()()}, nil;
+               return &idealFloatV{e.e.asIdealFloat()()}, nil
        }
        v := e.e.t.Zero();
        eval := e.eval;
@@ -138,13 +138,13 @@ func (e *exprCode) Run() (Value, os.Error) {
 func (w *World) Compile(text string) (Code, os.Error) {
        stmts, err := parser.ParseStmtList("input", text);
        if err == nil {
-               return w.CompileStmtList(stmts);
+               return w.CompileStmtList(stmts)
        }
 
        // Otherwise try as DeclList.
        decls, err1 := parser.ParseDeclList("input", text);
        if err1 == nil {
-               return w.CompileDeclList(decls);
+               return w.CompileDeclList(decls)
        }
 
        // Have to pick an error.
@@ -162,7 +162,7 @@ func (e *RedefinitionError) String() string {
        res := "identifier " + e.Name + " redeclared";
        pos := e.Prev.Pos();
        if pos.IsValid() {
-               res += "; previous declaration at " + pos.String();
+               res += "; previous declaration at " + pos.String()
        }
        return res;
 }
@@ -170,7 +170,7 @@ func (e *RedefinitionError) String() string {
 func (w *World) DefineConst(name string, t Type, val Value) os.Error {
        _, prev := w.scope.DefineConst(name, token.Position{}, t, val);
        if prev != nil {
-               return &RedefinitionError{name, prev};
+               return &RedefinitionError{name, prev}
        }
        return nil;
 }
@@ -178,7 +178,7 @@ func (w *World) DefineConst(name string, t Type, val Value) os.Error {
 func (w *World) DefineVar(name string, t Type, val Value) os.Error {
        v, prev := w.scope.DefineVar(name, token.Position{}, t);
        if prev != nil {
-               return &RedefinitionError{name, prev};
+               return &RedefinitionError{name, prev}
        }
        v.Init = val;
        return nil;
index 8ea0becb89b7ac8bd3c81627530b8998db34f0cd..d9836d52ba1ecf595d6392234c22ad82764cbffa 100644 (file)
@@ -16,14 +16,14 @@ type Iterable interface {
 }
 
 func not(f func(interface{}) bool) (func(interface{}) bool) {
-       return func(e interface{}) bool { return !f(e) };
+       return func(e interface{}) bool { return !f(e) }
 }
 
 // All tests whether f is true for every element of iter.
 func All(iter Iterable, f func(interface{}) bool) bool {
        for e := range iter.Iter() {
                if !f(e) {
-                       return false;
+                       return false
                }
        }
        return true;
@@ -31,14 +31,14 @@ func All(iter Iterable, f func(interface{}) bool) bool {
 
 // Any tests whether f is true for at least one element of iter.
 func Any(iter Iterable, f func(interface{}) bool) bool {
-       return !All(iter, not(f));
+       return !All(iter, not(f))
 }
 
 // Data returns a slice containing the elements of iter.
 func Data(iter Iterable) []interface{} {
        vec := vector.New(0);
        for e := range iter.Iter() {
-               vec.Push(e);
+               vec.Push(e)
        }
        return vec.Data();
 }
@@ -53,7 +53,7 @@ type filteredIterable struct {
 func (f *filteredIterable) iterate(out chan<- interface{}) {
        for e := range f.it.Iter() {
                if f.f(e) {
-                       out <- e;
+                       out <- e
                }
        }
        close(out);
@@ -67,14 +67,14 @@ func (f *filteredIterable) Iter() <-chan interface{} {
 
 // Filter returns an Iterable that returns the elements of iter that satisfy f.
 func Filter(iter Iterable, f func(interface{}) bool) Iterable {
-       return &filteredIterable{iter, f};
+       return &filteredIterable{iter, f}
 }
 
 // Find returns the first element of iter that satisfies f.
 // Returns nil if no such element is found.
 func Find(iter Iterable, f func(interface{}) bool) interface{} {
        for e := range Filter(iter, f).Iter() {
-               return e;
+               return e
        }
        return nil;
 }
@@ -95,7 +95,7 @@ type Injector func(interface{}, interface{}) interface{}
 func Inject(iter Iterable, initial interface{}, f Injector) interface{} {
        acc := initial;
        for e := range iter.Iter() {
-               acc = f(acc, e);
+               acc = f(acc, e)
        }
        return acc;
 }
@@ -108,7 +108,7 @@ type mappedIterable struct {
 
 func (m *mappedIterable) iterate(out chan<- interface{}) {
        for e := range m.it.Iter() {
-               out <- m.f(e);
+               out <- m.f(e)
        }
        close(out);
 }
@@ -122,12 +122,12 @@ func (m *mappedIterable) Iter() <-chan interface{} {
 // Map returns an Iterable that returns the result of applying f to each
 // element of iter.
 func Map(iter Iterable, f func(interface{}) interface{}) Iterable {
-       return &mappedIterable{iter, f};
+       return &mappedIterable{iter, f}
 }
 
 // Partition(iter, f) returns Filter(iter, f) and Filter(iter, !f).
 func Partition(iter Iterable, f func(interface{}) bool) (Iterable, Iterable) {
-       return Filter(iter, f), Filter(iter, not(f));
+       return Filter(iter, f), Filter(iter, not(f))
 }
 
 // TODO:
index fbb24f7b6e3d6004ba646750697f1db2a525e76d..bb22334f9e242c2426a6659fda1503a033e80fe5 100644 (file)
@@ -14,7 +14,7 @@ func (arr IntArray) Iter() <-chan interface{} {
        ch := make(chan interface{});
        go func() {
                for _, x := range arr {
-                       ch <- x;
+                       ch <- x
                }
                close(ch);
        }();
@@ -30,7 +30,7 @@ func isEven(n interface{}) bool               { return n.(int) % 2 == 0 }
 func doubler(n interface{}) interface{}        { return n.(int) * 2 }
 func addOne(n interface{}) interface{} { return n.(int) + 1 }
 func adder(acc interface{}, n interface{}) interface{} {
-       return acc.(int) + n.(int);
+       return acc.(int) + n.(int)
 }
 
 // A stream of the natural numbers: 0, 1, 2, 3, ...
@@ -40,7 +40,7 @@ func (i integerStream) Iter() <-chan interface{} {
        ch := make(chan interface{});
        go func() {
                for i := 0; ; i++ {
-                       ch <- i;
+                       ch <- i
                }
        }();
        return ch;
@@ -48,19 +48,19 @@ func (i integerStream) Iter() <-chan interface{} {
 
 func TestAll(t *testing.T) {
        if !All(oneToFive, isPositive) {
-               t.Error("All(oneToFive, isPositive) == false");
+               t.Error("All(oneToFive, isPositive) == false")
        }
        if All(oneToFive, isAbove3) {
-               t.Error("All(oneToFive, isAbove3) == true");
+               t.Error("All(oneToFive, isAbove3) == true")
        }
 }
 
 func TestAny(t *testing.T) {
        if Any(oneToFive, isNegative) {
-               t.Error("Any(oneToFive, isNegative) == true");
+               t.Error("Any(oneToFive, isNegative) == true")
        }
        if !Any(oneToFive, isEven) {
-               t.Error("Any(oneToFive, isEven) == false");
+               t.Error("Any(oneToFive, isEven) == false")
        }
 }
 
@@ -85,7 +85,7 @@ func TestFilter(t *testing.T) {
        moreInts := Filter(ints, isAbove3).Iter();
        res := make([]interface{}, 3);
        for i := 0; i < 3; i++ {
-               res[i] = <-moreInts;
+               res[i] = <-moreInts
        }
        assertArraysAreEqual(t, res, []int{4, 5, 6});
 }
@@ -94,14 +94,14 @@ func TestFind(t *testing.T) {
        ints := integerStream{};
        first := Find(ints, isAbove3);
        if first.(int) != 4 {
-               t.Errorf("Find(ints, isAbove3) = %v, want 4", first);
+               t.Errorf("Find(ints, isAbove3) = %v, want 4", first)
        }
 }
 
 func TestInject(t *testing.T) {
        res := Inject(oneToFive, 0, adder);
        if res.(int) != 15 {
-               t.Errorf("Inject(oneToFive, 0, adder) = %v, want 15", res);
+               t.Errorf("Inject(oneToFive, 0, adder) = %v, want 15", res)
        }
 }
 
index 12801c631edf95ea9f5cbc5ad4514ac26de22cb8..26844c84f52c447ec9ad4f6f8b4ade504fda337d 100644 (file)
@@ -57,7 +57,7 @@ var _ draw.Context = (*Window)(nil)
 func (w *Window) KeyboardChan() <-chan int     { return w.kbdc }
 
 func (w *Window) MouseChan() <-chan draw.Mouse {
-       return w.mousec;
+       return w.mousec
 }
 
 func (w *Window) QuitChan() <-chan bool        { return w.quitc }
@@ -85,18 +85,18 @@ func Init(subsys int, dx, dy int) (*Window, os.Error) {
        }
 
        if xsubsys & SubsystemEmbed != 0 {
-               return nil, os.NewError("not embedded");
+               return nil, os.NewError("not embedded")
        }
 
        w := new(Window);
        err := multimediaInit(xsubsys);
        if err != nil {
-               return nil, err;
+               return nil, err
        }
 
        if subsys & SubsystemVideo != 0 {
                if dx, dy, err = videoInit(dx, dy); err != nil {
-                       return nil, err;
+                       return nil, err
                }
                w.Image = newImage(dx, dy, bridge.pixel);
                w.resizec = make(chan bool, 64);
@@ -108,13 +108,13 @@ func Init(subsys int, dx, dy int) (*Window, os.Error) {
        if subsys & SubsystemAudio != 0 {
                var n int;
                if n, err = audioInit(AudioFormatStereo44K, 2048); err != nil {
-                       return nil, err;
+                       return nil, err
                }
                println("audio", n);
        }
 
        if subsys & SubsystemVideo != 0 {
-               go w.readEvents();
+               go w.readEvents()
        }
 
        return w, nil;
@@ -122,13 +122,13 @@ func Init(subsys int, dx, dy int) (*Window, os.Error) {
 
 func (w *Window) FlushImage() {
        if w.Image == nil {
-               return;
+               return
        }
        videoUpdate(w.Image.Linear);
 }
 
 func multimediaInit(subsys int) (err os.Error) {
-       return os.NewSyscallError("multimedia_init", syscall.MultimediaInit(subsys));
+       return os.NewSyscallError("multimedia_init", syscall.MultimediaInit(subsys))
 }
 
 func videoInit(dx, dy int) (ndx, ndy int, err os.Error) {
@@ -137,7 +137,7 @@ func videoInit(dx, dy int) (ndx, ndy int, err os.Error) {
                return int(bridge.share.width), int(bridge.share.height), nil;
        }
        if e := syscall.VideoInit(dx, dy); e != 0 {
-               return 0, 0, os.NewSyscallError("video_init", int(e));
+               return 0, 0, os.NewSyscallError("video_init", int(e))
        }
        return dx, dy, nil;
 }
@@ -156,7 +156,7 @@ func videoPollEvent(ev []byte) (err os.Error) {
        if srpcEnabled {
                r := bridge.share.eq.ri;
                if r == bridge.share.eq.wi {
-                       return noEvents;
+                       return noEvents
                }
                bytes.Copy(ev, &bridge.share.eq.event[r]);
                bridge.share.eq.ri = (r+1)%eqsize;
@@ -169,7 +169,7 @@ func audioInit(fmt int, want int) (got int, err os.Error) {
        var x int;
        e := syscall.AudioInit(fmt, want, &x);
        if e == 0 {
-               return x, nil;
+               return x, nil
        }
        return 0, os.NewSyscallError("audio_init", e);
 }
@@ -190,10 +190,10 @@ func AudioStream(data []uint16) (nextSize int, err os.Error) {
                return int(audioSize), e;
        }
        if data == nil {
-               return int(audioSize), nil;
+               return int(audioSize), nil
        }
        if uintptr(len(data))*2 != audioSize {
-               log.Stdoutf("invalid audio size want %d got %d", audioSize, len(data));
+               log.Stdoutf("invalid audio size want %d got %d", audioSize, len(data))
        }
        e := os.NewSyscallError("audio_stream", syscall.AudioStream(&data[0], &audioSize));
        return int(audioSize), e;
@@ -255,7 +255,7 @@ func (multimediaBridge) Run(arg, ret []interface{}, size []int) srpc.Errno {
 
        var st syscall.Stat_t;
        if errno := syscall.Fstat(bridge.displayFd, &st); errno != 0 {
-               log.Exitf("mmbridge stat display: %s", os.Errno(errno));
+               log.Exitf("mmbridge stat display: %s", os.Errno(errno))
        }
 
        addr, _, errno := syscall.Syscall6(syscall.SYS_MMAP,
@@ -266,7 +266,7 @@ func (multimediaBridge) Run(arg, ret []interface{}, size []int) srpc.Errno {
                uintptr(bridge.displayFd),
                0);
        if errno != 0 {
-               log.Exitf("mmap display: %s", os.Errno(errno));
+               log.Exitf("mmap display: %s", os.Errno(errno))
        }
 
        bridge.share = (*videoShare)(unsafe.Pointer(addr));
@@ -281,7 +281,7 @@ func (multimediaBridge) Run(arg, ret []interface{}, size []int) srpc.Errno {
        var err os.Error;
        bridge.client, err = srpc.NewClient(bridge.rpcFd);
        if err != nil {
-               log.Exitf("NewClient: %s", err);
+               log.Exitf("NewClient: %s", err)
        }
        bridge.flushRPC = bridge.client.NewRPC(nil);
 
@@ -295,6 +295,6 @@ func (multimediaBridge) Run(arg, ret []interface{}, size []int) srpc.Errno {
 func init() {
        bridge.c = make(chan bool, 1);
        if srpcEnabled {
-               srpc.Add("nacl_multimedia_bridge", "hh:", multimediaBridge{});
+               srpc.Add("nacl_multimedia_bridge", "hh:", multimediaBridge{})
        }
 }
index 0b70b7e9c2ef4b11d31f2a7501e148f7b323ecaf..1412153cf06ca0dd058de44b6400bc0ae037cf5a 100644 (file)
@@ -381,7 +381,7 @@ type reader []byte
 func (r *reader) Read(p []byte) (n int, err os.Error) {
        b := *r;
        if len(b) == 0 && len(p) > 0 {
-               return 0, os.EOF;
+               return 0, os.EOF
        }
        n = bytes.Copy(p, b);
        *r = b[n:len(b)];
@@ -403,7 +403,7 @@ func (w *Window) readEvents() {
        for {
                if err := videoPollEvent(buf); err != nil {
                        if !clean {
-                               clean = w.resizec <- false;
+                               clean = w.resizec <- false
                        }
                        time.Sleep(10e6);       // 10ms
                        continue;
@@ -441,11 +441,11 @@ func (w *Window) readEvents() {
                // log.Stdoutf("%#v\n", e);
                switch buf[0] {
                case eventExpose:
-                       w.resizec <- true;
+                       w.resizec <- true
                case eventKeyDown:
-                       w.kbdc <- int(ke.Key);
+                       w.kbdc <- int(ke.Key)
                case eventKeyUp:
-                       w.kbdc <- -int(ke.Key);
+                       w.kbdc <- -int(ke.Key)
                case eventMouseMotion:
                        m.X = int(mme.X);
                        m.Y = int(mme.Y);
@@ -467,7 +467,7 @@ func (w *Window) readEvents() {
                        m.Nsec = time.Nanoseconds();
                        _ = w.mousec <- m;
                case eventQuit:
-                       w.quitc <- true;
+                       w.quitc <- true
                }
        }
 }
index e92ca8aeb2afd7454a569e0401c136107308df1c..0c6099ee3d498b64e837e51d6e04da7a38db7e11 100644 (file)
@@ -26,7 +26,7 @@ func (m *Image) ColorModel() image.ColorModel { return ColorModel }
 
 func (m *Image) Width() int {
        if len(m.Pixel) == 0 {
-               return 0;
+               return 0
        }
        return len(m.Pixel[0]);
 }
@@ -37,18 +37,18 @@ func (m *Image) At(x, y int) image.Color    { return m.Pixel[y][x] }
 
 func (m *Image) Set(x, y int, color image.Color) {
        if c, ok := color.(Color); ok {
-               m.Pixel[y][x] = c;
+               m.Pixel[y][x] = c
        }
        m.Pixel[y][x] = makeColor(color.RGBA());
 }
 
 func newImage(dx, dy int, linear []Color) *Image {
        if linear == nil {
-               linear = make([]Color, dx*dy);
+               linear = make([]Color, dx*dy)
        }
        pix := make([][]Color, dy);
        for i := range pix {
-               pix[i] = linear[dx*i : dx*(i+1)];
+               pix[i] = linear[dx*i : dx*(i+1)]
        }
        return &Image{linear, pix};
 }
@@ -75,12 +75,12 @@ func (p Color) RGBA() (r, g, b, a uint32) {
 }
 
 func makeColor(r, g, b, a uint32) Color {
-       return Color(a>>24<<24 | r>>24<<16 | g>>24<<8 | b>>24);
+       return Color(a>>24<<24 | r>>24<<16 | g>>24<<8 | b>>24)
 }
 
 func toColor(color image.Color) image.Color {
        if c, ok := color.(Color); ok {
-               return c;
+               return c
        }
        return makeColor(color.RGBA());
 }
index 1a2d5fdc9c8c990274c17d7719fcd15f10cc1a40..251f501615edf78e1438a7d810fefa7a4c47e734 100644 (file)
@@ -60,7 +60,7 @@ func NewClient(fd int) (c *Client, err os.Error) {
        c.s.send(m);
        m, err = c.r.recv();
        if err != nil {
-               return nil, err;
+               return nil, err
        }
        m.unpackResponse();
        if m.status != OK {
@@ -70,7 +70,7 @@ func NewClient(fd int) (c *Client, err os.Error) {
        for n, line := range bytes.Split(m.Ret[0].([]byte), []byte{'\n'}, 0) {
                i := bytes.Index(line, []byte{':'});
                if i < 0 {
-                       continue;
+                       continue
                }
                c.service[string(line[0:i])] = srv{uint32(n), string(line[i+1 : len(line)])};
        }
@@ -85,7 +85,7 @@ func (c *Client) input() {
        for {
                m, err := c.r.recv();
                if err != nil {
-                       log.Exitf("client recv: %s", err);
+                       log.Exitf("client recv: %s", err)
                }
                if m.unpackResponse(); m.status != OK {
                        log.Stderrf("invalid message: %s", m.status);
@@ -94,7 +94,7 @@ func (c *Client) input() {
                c.mu.Lock();
                rpc, ok := c.pending[m.requestId];
                if ok {
-                       c.pending[m.requestId] = nil, false;
+                       c.pending[m.requestId] = nil, false
                }
                c.mu.Unlock();
                if !ok {
@@ -108,14 +108,14 @@ func (c *Client) input() {
 
 func (c *Client) output() {
        for m := range c.out {
-               c.s.send(m);
+               c.s.send(m)
        }
 }
 
 // NewRPC creates a new RPC on the client connection.
 func (c *Client) NewRPC(done chan *RPC) *RPC {
        if done == nil {
-               done = make(chan *RPC);
+               done = make(chan *RPC)
        }
        c.mu.Lock();
        id := c.idGen;
@@ -157,7 +157,7 @@ func (r *RPC) Start(name string, arg []interface{}) {
        // will do that anyway.
        i := 0;
        for srv.fmt[i] != ':' {
-               i++;
+               i++
        }
        fmt := srv.fmt[i+1 : len(srv.fmt)];
 
@@ -167,21 +167,21 @@ func (r *RPC) Start(name string, arg []interface{}) {
        for i := 0; i < len(fmt); i++ {
                switch fmt[i] {
                default:
-                       log.Exitf("unexpected service type %c", fmt[i]);
+                       log.Exitf("unexpected service type %c", fmt[i])
                case 'b':
-                       m.Ret[i] = false;
+                       m.Ret[i] = false
                case 'C':
                        m.Ret[i] = []byte(nil);
                        m.Size[i] = 1<<30;
                case 'd':
-                       m.Ret[i] = float64(0);
+                       m.Ret[i] = float64(0)
                case 'D':
                        m.Ret[i] = []float64(nil);
                        m.Size[i] = 1<<30;
                case 'h':
-                       m.Ret[i] = int(-1);
+                       m.Ret[i] = int(-1)
                case 'i':
-                       m.Ret[i] = int32(0);
+                       m.Ret[i] = int32(0)
                case 'I':
                        m.Ret[i] = []int32(nil);
                        m.Size[i] = 1<<30;
index e6ab4aa8fc17cfec58758b39c1c782f090b32d97..f158b138565e502dd7879fae33e9fa74d59e055e 100644 (file)
@@ -52,7 +52,7 @@ var errstr = [...]string{
 
 func (e Errno) String() string {
        if e < OK || int(e-OK) >= len(errstr) {
-               return "Errno(" + strconv.Itoa64(int64(e)) + ")";
+               return "Errno(" + strconv.Itoa64(int64(e)) + ")"
        }
        return errstr[e-OK];
 }
@@ -113,7 +113,7 @@ func (r *msgReceiver) recv() (*msg, os.Error) {
        r.hdr.ndesc = int32(len(r.desc));
        n, _, e := syscall.Syscall(syscall.SYS_IMC_RECVMSG, uintptr(r.fd), uintptr(unsafe.Pointer(&r.hdr)), 0);
        if e != 0 {
-               return nil, os.NewSyscallError("imc_recvmsg", int(e));
+               return nil, os.NewSyscallError("imc_recvmsg", int(e))
        }
 
        // Make a copy of the data so that the next recvmsg doesn't
@@ -128,7 +128,7 @@ func (r *msgReceiver) recv() (*msg, os.Error) {
        if r.hdr.ndesc > 0 {
                m.rdesc = make([]int32, r.hdr.ndesc);
                for i := range m.rdesc {
-                       m.rdesc[i] = r.desc[i];
+                       m.rdesc[i] = r.desc[i]
                }
        }
 
@@ -144,7 +144,7 @@ type msgSender struct {
 
 func (s *msgSender) send(m *msg) os.Error {
        if len(m.wdata) > 0 {
-               s.iov.base = &m.wdata[0];
+               s.iov.base = &m.wdata[0]
        }
        s.iov.len = int32(len(m.wdata));
        s.hdr.iov = &s.iov;
@@ -153,7 +153,7 @@ func (s *msgSender) send(m *msg) os.Error {
        s.hdr.ndesc = 0;
        _, _, e := syscall.Syscall(syscall.SYS_IMC_SENDMSG, uintptr(s.fd), uintptr(unsafe.Pointer(&s.hdr)), 0);
        if e != 0 {
-               return os.NewSyscallError("imc_sendmsg", int(e));
+               return os.NewSyscallError("imc_sendmsg", int(e))
        }
        return nil;
 }
@@ -161,7 +161,7 @@ func (s *msgSender) send(m *msg) os.Error {
 // Reading from msg.rdata.
 func (m *msg) uint8() uint8 {
        if m.status != OK {
-               return 0;
+               return 0
        }
        if len(m.rdata) < 1 {
                m.status = ErrMessageTruncated;
@@ -174,7 +174,7 @@ func (m *msg) uint8() uint8 {
 
 func (m *msg) uint32() uint32 {
        if m.status != OK {
-               return 0;
+               return 0
        }
        if len(m.rdata) < 4 {
                m.status = ErrMessageTruncated;
@@ -188,7 +188,7 @@ func (m *msg) uint32() uint32 {
 
 func (m *msg) uint64() uint64 {
        if m.status != OK {
-               return 0;
+               return 0
        }
        if len(m.rdata) < 8 {
                m.status = ErrMessageTruncated;
@@ -203,7 +203,7 @@ func (m *msg) uint64() uint64 {
 
 func (m *msg) bytes(n int) []byte {
        if m.status != OK {
-               return nil;
+               return nil
        }
        if len(m.rdata) < n {
                m.status = ErrMessageTruncated;
@@ -255,7 +255,7 @@ func (m *msg) wbytes(p []byte)      { bytes.Copy(m.grow(len(p)), p) }
 func (m *msg) wstring(s string) {
        b := m.grow(len(s));
        for i := range b {
-               b[i] = s[i];
+               b[i] = s[i]
        }
 }
 
@@ -308,7 +308,7 @@ func (m *msg) unpackHeader() {
                status := Errno(m.uint32());
                m.gotHeader = m.status == OK;   // still ok?
                if m.gotHeader {
-                       m.status = status;
+                       m.status = status
                }
        }
 }
@@ -317,13 +317,13 @@ func (m *msg) packHeader() {
        m.wuint32(m.protocol);
        m.wuint64(m.requestId);
        if m.isReq {
-               m.wuint8(1);
+               m.wuint8(1)
        } else {
-               m.wuint8(0);
+               m.wuint8(0)
        }
        m.wuint32(m.rpcNumber);
        if !m.isReq {
-               m.wuint32(uint32(m.status));
+               m.wuint32(uint32(m.status))
        }
 }
 
@@ -334,40 +334,40 @@ func (m *msg) unpackValues(v []interface{}) {
                switch t {
                default:
                        if m.status == OK {
-                               m.status = ErrBadArgType;
+                               m.status = ErrBadArgType
                        }
                        return;
                case 'b':       // bool[1]
-                       v[i] = m.uint8() > 0;
+                       v[i] = m.uint8() > 0
                case 'C':       // char array
-                       v[i] = m.bytes(int(m.uint32()));
+                       v[i] = m.bytes(int(m.uint32()))
                case 'd':       // double
-                       v[i] = math.Float64frombits(m.uint64());
+                       v[i] = math.Float64frombits(m.uint64())
                case 'D':       // double array
                        a := make([]float64, int(m.uint32()));
                        for j := range a {
-                               a[j] = math.Float64frombits(m.uint64());
+                               a[j] = math.Float64frombits(m.uint64())
                        }
                        v[i] = a;
                case 'h':       // file descriptor (handle)
                        if len(m.rdesc) == 0 {
                                if m.status == OK {
-                                       m.status = ErrBadArgType;
+                                       m.status = ErrBadArgType
                                }
                                return;
                        }
                        v[i] = int(m.rdesc[0]);
                        m.rdesc = m.rdesc[1:len(m.rdesc)];
                case 'i':       // int
-                       v[i] = int32(m.uint32());
+                       v[i] = int32(m.uint32())
                case 'I':       // int array
                        a := make([]int32, int(m.uint32()));
                        for j := range a {
-                               a[j] = int32(m.uint32());
+                               a[j] = int32(m.uint32())
                        }
                        v[i] = a;
                case 's':       // string
-                       v[i] = string(m.bytes(int(m.uint32())));
+                       v[i] = string(m.bytes(int(m.uint32())))
                }
        }
 }
@@ -377,15 +377,15 @@ func (m *msg) packValues(v []interface{}) {
                switch x := v[i].(type) {
                default:
                        if m.status == OK {
-                               m.status = ErrInternalError;
+                               m.status = ErrInternalError
                        }
                        return;
                case bool:
                        m.wuint8('b');
                        if x {
-                               m.wuint8(1);
+                               m.wuint8(1)
                        } else {
-                               m.wuint8(0);
+                               m.wuint8(0)
                        }
                case []byte:
                        m.wuint8('C');
@@ -398,7 +398,7 @@ func (m *msg) packValues(v []interface{}) {
                        m.wuint8('D');
                        m.wuint32(uint32(len(x)));
                        for _, f := range x {
-                               m.wuint64(math.Float64bits(f));
+                               m.wuint64(math.Float64bits(f))
                        }
                case int32:
                        m.wuint8('i');
@@ -407,7 +407,7 @@ func (m *msg) packValues(v []interface{}) {
                        m.wuint8('I');
                        m.wuint32(uint32(len(x)));
                        for _, i := range x {
-                               m.wuint32(uint32(i));
+                               m.wuint32(uint32(i))
                        }
                case string:
                        m.wuint8('s');
@@ -420,7 +420,7 @@ func (m *msg) packValues(v []interface{}) {
 func (m *msg) unpackRequest() {
        m.status = OK;
        if m.unpackHeader(); m.status != OK {
-               return;
+               return
        }
        if m.protocol != protocol || !m.isReq {
                m.status = ErrProtocolMismatch;
@@ -431,7 +431,7 @@ func (m *msg) unpackRequest() {
        m.Arg = make([]interface{}, m.uint32());
        m.unpackValues(m.Arg);
        if m.status != OK {
-               return;
+               return
        }
 
        // type-tagged expected return sizes.
@@ -446,23 +446,23 @@ func (m *msg) unpackRequest() {
                switch t {
                default:
                        if m.status == OK {
-                               m.status = ErrBadArgType;
+                               m.status = ErrBadArgType
                        }
                        return;
                case 'b':       // bool[1]
-                       m.Ret[i] = false;
+                       m.Ret[i] = false
                case 'C':       // char array
                        m.Size[i] = int(m.uint32());
                        m.Ret[i] = []byte(nil);
                case 'd':       // double
-                       m.Ret[i] = float64(0);
+                       m.Ret[i] = float64(0)
                case 'D':       // double array
                        m.Size[i] = int(m.uint32());
                        m.Ret[i] = []float64(nil);
                case 'h':       // file descriptor (handle)
-                       m.Ret[i] = int(-1);
+                       m.Ret[i] = int(-1)
                case 'i':       // int
-                       m.Ret[i] = int32(0);
+                       m.Ret[i] = int32(0)
                case 'I':       // int array
                        m.Size[i] = int(m.uint32());
                        m.Ret[i] = []int32(nil);
@@ -481,19 +481,19 @@ func (m *msg) packRequest() {
        for i, v := range m.Ret {
                switch x := v.(type) {
                case bool:
-                       m.wuint8('b');
+                       m.wuint8('b')
                case []byte:
                        m.wuint8('C');
                        m.wuint32(uint32(m.Size[i]));
                case float64:
-                       m.wuint8('d');
+                       m.wuint8('d')
                case []float64:
                        m.wuint8('D');
                        m.wuint32(uint32(m.Size[i]));
                case int:
-                       m.wuint8('h');
+                       m.wuint8('h')
                case int32:
-                       m.wuint8('i');
+                       m.wuint8('i')
                case []int32:
                        m.wuint8('I');
                        m.wuint32(uint32(m.Size[i]));
@@ -507,7 +507,7 @@ func (m *msg) packRequest() {
 func (m *msg) unpackResponse() {
        m.status = OK;
        if m.unpackHeader(); m.status != OK {
-               return;
+               return
        }
        if m.protocol != protocol || m.isReq {
                m.status = ErrProtocolMismatch;
index 87b51a6f49800d1ac329bbb59e68f977a5f762e1..56edfccd0200f68f6b15aa18f1dfb0636927765f 100644 (file)
@@ -57,7 +57,7 @@ func Add(name, fmt string, handler Handler) {
        if n >= cap(rpcMethod) {
                a := make([]method, n, (n+4)*2);
                for i := range a {
-                       a[i] = rpcMethod[i];
+                       a[i] = rpcMethod[i]
                }
                rpcMethod = a;
        }
@@ -74,7 +74,7 @@ func Serve(fd int) os.Error {
        for {
                cfd, _, e := syscall.Syscall(syscall.SYS_IMC_ACCEPT, uintptr(fd), 0, 0);
                if e != 0 {
-                       return os.NewSyscallError("imc_accept", int(e));
+                       return os.NewSyscallError("imc_accept", int(e))
                }
                go serveLoop(int(cfd));
        }
@@ -90,7 +90,7 @@ func serveLoop(fd int) {
        for {
                m, err := r.recv();
                if err != nil {
-                       break;
+                       break
                }
                m.unpackRequest();
                if !m.gotHeader {
@@ -130,9 +130,9 @@ func serveMsg(m *msg, c chan<- *msg) {
        if meth.fmt != m.fmt {
                switch {
                case len(m.fmt) < len(meth.fmt):
-                       m.status = ErrTooFewArgs;
+                       m.status = ErrTooFewArgs
                case len(m.fmt) > len(meth.fmt):
-                       m.status = ErrTooManyArgs;
+                       m.status = ErrTooManyArgs
                default:
                        // There's a type mismatch.
                        // It's an in-arg mismatch if the mismatch happens
@@ -158,7 +158,7 @@ func serveMsg(m *msg, c chan<- *msg) {
 func ServeRuntime() os.Error {
        // Call getFd to check that we are running embedded.
        if _, err := getFd(); err != nil {
-               return err;
+               return err
        }
 
        // We are running embedded.
@@ -192,7 +192,7 @@ func (serviceDiscovery) Run(arg, ret []interface{}, size []int) Errno {
                b.WriteByte('\n');
        }
        if b.Len() > size[0] {
-               return ErrNoMemory;
+               return ErrNoMemory
        }
        ret[0] = b.Bytes();
        return OK;
index 20ce9f66607a47dd37dce6fcd8333ebe61079abd..5208a2a01c28a2bed7d75026360948532e4ce65b 100644 (file)
@@ -56,7 +56,7 @@ type ArchLSB struct{}
 func (ArchLSB) ToWord(data []byte) proc.Word {
        var v proc.Word;
        for i, b := range data {
-               v |= proc.Word(b) << (uint(i)*8);
+               v |= proc.Word(b) << (uint(i)*8)
        }
        return v;
 }
@@ -71,7 +71,7 @@ func (ArchLSB) FromWord(v proc.Word, out []byte) {
 func (ArchLSB) ToFloat32(bits uint32) float32 {
        // TODO(austin) Do these definitions depend on my current
        // architecture?
-       return math.Float32frombits(bits);
+       return math.Float32frombits(bits)
 }
 
 func (ArchLSB) FromFloat32(f float32) uint32   { return math.Float32bits(f) }
@@ -83,7 +83,7 @@ func (ArchLSB) FromFloat64(f float64) uint64  { return math.Float64bits(f) }
 type ArchAlignedMultiple struct{}
 
 func (ArchAlignedMultiple) Align(offset, width int) int {
-       return ((offset-1)|(width-1))+1;
+       return ((offset-1)|(width-1))+1
 }
 
 type amd64 struct {
@@ -117,7 +117,7 @@ func (a *amd64) ClosureSize() int   { return 8 }
 
 func (a *amd64) ParseClosure(data []byte) (int, bool) {
        if data[0] == 0x48 && data[1] == 0x81 && data[2] == 0xc4 && data[7] == 0xc3 {
-               return int(a.ToWord(data[3:7]) + 8), true;
+               return int(a.ToWord(data[3:7]) + 8), true
        }
        return 0, false;
 }
index 4df546a27a3be1508c168373a89ce3b800ee863b..fb01c92cc6a2a011d5244ff89ad09ed23266996c 100644 (file)
@@ -29,7 +29,7 @@ func Main() {
                print("; ");
                line, err := r.ReadSlice('\n');
                if err != nil {
-                       break;
+                       break
                }
 
                // Try line as a command
@@ -37,7 +37,7 @@ func Main() {
                if cmd != nil {
                        err := cmd.handler(rest);
                        if err != nil {
-                               scanner.PrintError(os.Stderr, err);
+                               scanner.PrintError(os.Stderr, err)
                        }
                        continue;
                }
@@ -54,7 +54,7 @@ func Main() {
                        continue;
                }
                if v != nil {
-                       println(v.String());
+                       println(v.String())
                }
        }
 }
@@ -96,13 +96,13 @@ func getCmd(line []byte) (*cmd, []byte) {
        sc, _ := newScanner(line);
        pos, tok, lit := sc.Scan();
        if sc.ErrorCount != 0 || tok != token.IDENT {
-               return nil, nil;
+               return nil, nil
        }
 
        slit := string(lit);
        for i := range cmds {
                if cmds[i].cmd == slit {
-                       return &cmds[i], line[pos.Offset + len(lit) : len(line)];
+                       return &cmds[i], line[pos.Offset + len(lit) : len(line)]
                }
        }
        return nil, nil;
@@ -127,13 +127,13 @@ func getCmd(line []byte) (*cmd, []byte) {
 func cmdLoad(args []byte) os.Error {
        ident, path, err := parseLoad(args);
        if err != nil {
-               return err;
+               return err
        }
        if curProc != nil {
-               return UsageError("multiple processes not implemented");
+               return UsageError("multiple processes not implemented")
        }
        if ident != "." {
-               return UsageError("process identifiers not implemented");
+               return UsageError("process identifiers not implemented")
        }
 
        // Parse argument and start or attach to process
@@ -142,27 +142,27 @@ func cmdLoad(args []byte) os.Error {
        if len(path) >= 4 && path[0:4] == "pid:" {
                pid, err := strconv.Atoi(path[4:len(path)]);
                if err != nil {
-                       return err;
+                       return err
                }
                fname, err = os.Readlink(fmt.Sprintf("/proc/%d/exe", pid));
                if err != nil {
-                       return err;
+                       return err
                }
                tproc, err = proc.Attach(pid);
                if err != nil {
-                       return err;
+                       return err
                }
                println("Attached to", pid);
        } else {
                parts := strings.Split(path, " ", 0);
                if len(parts) == 0 {
-                       fname = "";
+                       fname = ""
                } else {
-                       fname = parts[0];
+                       fname = parts[0]
                }
                tproc, err = proc.ForkExec(fname, parts, os.Environ(), "", []*os.File{os.Stdin, os.Stdout, os.Stderr});
                if err != nil {
-                       return err;
+                       return err
                }
                println("Started", path);
                // TODO(austin) If we fail after this point, kill tproc
@@ -207,7 +207,7 @@ func parseLoad(args []byte) (ident string, path string, err os.Error) {
        var toks [4]token.Token;
        var lits [4][]byte;
        for i := range toks {
-               _, toks[i], lits[i] = sc.Scan();
+               _, toks[i], lits[i] = sc.Scan()
        }
        if sc.ErrorCount != 0 {
                err = ev.GetError(scanner.NoMultiples);
@@ -222,7 +222,7 @@ func parseLoad(args []byte) (ident string, path string, err os.Error) {
        }
 
        if toks[i] != token.STRING {
-               return;
+               return
        }
        path, uerr := strconv.Unquote(string(lits[i]));
        if uerr != nil {
@@ -232,10 +232,10 @@ func parseLoad(args []byte) (ident string, path string, err os.Error) {
        i++;
 
        if toks[i] == token.SEMICOLON {
-               i++;
+               i++
        }
        if toks[i] != token.EOF {
-               return;
+               return
        }
 
        return ident, path, nil;
@@ -246,11 +246,11 @@ func parseLoad(args []byte) (ident string, path string, err os.Error) {
 func cmdBt(args []byte) os.Error {
        err := parseNoArgs(args, "Usage: bt");
        if err != nil {
-               return err;
+               return err
        }
 
        if curProc == nil || curProc.curGoroutine == nil {
-               return NoCurrentGoroutine{};
+               return NoCurrentGoroutine{}
        }
 
        f := curProc.curGoroutine.frame;
@@ -260,22 +260,22 @@ func cmdBt(args []byte) os.Error {
        }
 
        for f.Inner() != nil {
-               f = f.Inner();
+               f = f.Inner()
        }
 
        for i := 0; i < 100; i++ {
                if f == curProc.curGoroutine.frame {
-                       fmt.Printf("=> ");
+                       fmt.Printf("=> ")
                } else {
-                       fmt.Printf("   ");
+                       fmt.Printf("   ")
                }
                fmt.Printf("%8x %v\n", f.pc, f);
                f, err = f.Outer();
                if err != nil {
-                       return err;
+                       return err
                }
                if f == nil {
-                       return nil;
+                       return nil
                }
        }
 
@@ -287,10 +287,10 @@ func parseNoArgs(args []byte, usage string) os.Error {
        sc, ev := newScanner(args);
        _, tok, _ := sc.Scan();
        if sc.ErrorCount != 0 {
-               return ev.GetError(scanner.NoMultiples);
+               return ev.GetError(scanner.NoMultiples)
        }
        if tok != token.EOF {
-               return UsageError(usage);
+               return UsageError(usage)
        }
        return nil;
 }
@@ -313,11 +313,11 @@ func defineFuncs() {
 // a backtrace.
 func printCurFrame() {
        if curProc == nil || curProc.curGoroutine == nil {
-               return;
+               return
        }
        f := curProc.curGoroutine.frame;
        if f == nil {
-               return;
+               return
        }
        fmt.Printf("=> %8x %v\n", f.pc, f);
 }
@@ -326,11 +326,11 @@ func printCurFrame() {
 func fnOutSig()        {}
 func fnOut(t *eval.Thread, args []eval.Value, res []eval.Value) {
        if curProc == nil {
-               t.Abort(NoCurrentGoroutine{});
+               t.Abort(NoCurrentGoroutine{})
        }
        err := curProc.Out();
        if err != nil {
-               t.Abort(err);
+               t.Abort(err)
        }
        // TODO(austin) Only in the command form
        printCurFrame();
@@ -340,16 +340,16 @@ func fnOut(t *eval.Thread, args []eval.Value, res []eval.Value) {
 func fnContWaitSig()   {}
 func fnContWait(t *eval.Thread, args []eval.Value, res []eval.Value) {
        if curProc == nil {
-               t.Abort(NoCurrentGoroutine{});
+               t.Abort(NoCurrentGoroutine{})
        }
        err := curProc.ContWait();
        if err != nil {
-               t.Abort(err);
+               t.Abort(err)
        }
        // TODO(austin) Only in the command form
        ev := curProc.Event();
        if ev != nil {
-               fmt.Printf("%v\n", ev);
+               fmt.Printf("%v\n", ev)
        }
        printCurFrame();
 }
@@ -362,12 +362,12 @@ func fnBpSet(t *eval.Thread, args []eval.Value, res []eval.Value) {
        // Functions and instructions can implement that interface and
        // we can have something to translate file:line pairs.
        if curProc == nil {
-               t.Abort(NoCurrentGoroutine{});
+               t.Abort(NoCurrentGoroutine{})
        }
        name := args[0].(eval.StringValue).Get(t);
        fn := curProc.syms.LookupFunc(name);
        if fn == nil {
-               t.Abort(UsageError("no such function " + name));
+               t.Abort(UsageError("no such function " + name))
        }
        curProc.OnBreakpoint(proc.Word(fn.Entry)).AddHandler(EventStop);
 }
index 898ab2762af42fc7c0bc200ee798be08269943c3..dc7ae918b3555bc0b91acffe424250919de79d7e 100644 (file)
@@ -76,7 +76,7 @@ type handler struct {
 }
 
 func (h *commonHook) AddHandler(eh EventHandler) {
-       h.addHandler(eh, false);
+       h.addHandler(eh, false)
 }
 
 func (h *commonHook) addHandler(eh EventHandler, internal bool) {
@@ -84,7 +84,7 @@ func (h *commonHook) addHandler(eh EventHandler, internal bool) {
        h.RemoveHandler(eh);
 
        if !internal {
-               h.len++;
+               h.len++
        }
        // Add internal handlers to the beginning
        if internal || h.head == nil {
@@ -95,7 +95,7 @@ func (h *commonHook) addHandler(eh EventHandler, internal bool) {
        // TODO(austin) This should probably go on the end instead
        prev := h.head;
        for prev.next != nil && prev.internal {
-               prev = prev.next;
+               prev = prev.next
        }
        prev.next = &handler{eh, internal, false, prev.next};
 }
@@ -105,7 +105,7 @@ func (h *commonHook) RemoveHandler(eh EventHandler) {
        for l := *plink; l != nil; plink, l = &l.next, l.next {
                if l.eh == eh {
                        if !l.internal {
-                               h.len--;
+                               h.len--
                        }
                        l.removed = true;
                        *plink = l.next;
@@ -121,22 +121,22 @@ func (h *commonHook) handle(e Event) (EventAction, os.Error) {
        plink := &h.head;
        for l := *plink; l != nil; plink, l = &l.next, l.next {
                if l.removed {
-                       continue;
+                       continue
                }
                a, err := l.eh(e);
                if a & EARemoveSelf == EARemoveSelf {
                        if !l.internal {
-                               h.len--;
+                               h.len--
                        }
                        l.removed = true;
                        *plink = l.next;
                        a &^= EARemoveSelf;
                }
                if err != nil {
-                       return EAStop, err;
+                       return EAStop, err
                }
                if a > action {
-                       action = a;
+                       action = a
                }
        }
        return action, nil;
@@ -167,7 +167,7 @@ func EventPrint(ev Event) (EventAction, os.Error) {
 
 // EventStop is a standard event handler that causes the process to stop.
 func EventStop(ev Event) (EventAction, os.Error) {
-       return EAStop, nil;
+       return EAStop, nil
 }
 
 /*
@@ -190,7 +190,7 @@ type Breakpoint struct {
 }
 
 func (h *breakpointHook) AddHandler(eh EventHandler) {
-       h.addHandler(eh, false);
+       h.addHandler(eh, false)
 }
 
 func (h *breakpointHook) addHandler(eh EventHandler, internal bool) {
@@ -198,7 +198,7 @@ func (h *breakpointHook) addHandler(eh EventHandler, internal bool) {
        // references to breakpoints without handlers.  Be sure to use
        // the "canonical" breakpoint if there is one.
        if cur, ok := h.p.breakpointHooks[h.pc]; ok {
-               h = cur;
+               h = cur
        }
        oldhead := h.head;
        h.commonHook.addHandler(eh, internal);
@@ -220,7 +220,7 @@ func (h *breakpointHook) RemoveHandler(eh EventHandler) {
 func (h *breakpointHook) String() string {
        // TODO(austin) Include process name?
        // TODO(austin) Use line:pc or at least sym+%#x
-       return fmt.Sprintf("breakpoint at %#x", h.pc);
+       return fmt.Sprintf("breakpoint at %#x", h.pc)
 }
 
 func (b *Breakpoint) PC() proc.Word    { return b.pc }
@@ -228,7 +228,7 @@ func (b *Breakpoint) PC() proc.Word { return b.pc }
 func (b *Breakpoint) String() string {
        // TODO(austin) Include process name and goroutine
        // TODO(austin) Use line:pc or at least sym+%#x
-       return fmt.Sprintf("breakpoint at %#x", b.pc);
+       return fmt.Sprintf("breakpoint at %#x", b.pc)
 }
 
 /*
@@ -256,7 +256,7 @@ func (e *GoroutineCreate) Parent() *Goroutine       { return e.parent }
 func (e *GoroutineCreate) String() string {
        // TODO(austin) Include process name
        if e.parent == nil {
-               return fmt.Sprintf("%v created", e.t);
+               return fmt.Sprintf("%v created", e.t)
        }
        return fmt.Sprintf("%v created by %v", e.t, e.parent);
 }
@@ -276,5 +276,5 @@ func (e *GoroutineExit) String() string {
        // TODO(austin) Include process name
        //return fmt.Sprintf("%v exited", e.t);
        // For debugging purposes
-       return fmt.Sprintf("goroutine %#x exited", e.t.g.addr().base);
+       return fmt.Sprintf("goroutine %#x exited", e.t.g.addr().base)
 }
index a0ba71e74b6833f24d378816a700f185b620fd16..22fe0552e9919df6a94268164c9f7ae0aa9c36db 100644 (file)
@@ -44,7 +44,7 @@ func aNewFrame(a aborter, g remoteStruct) *Frame {
        // Is this G alive?
        switch g.field(p.f.G.Status).(remoteInt).aGet(a) {
        case p.runtime.Gidle, p.runtime.Gmoribund, p.runtime.Gdead:
-               return nil;
+               return nil
        }
 
        // Find the OS thread for this G
@@ -57,7 +57,7 @@ func aNewFrame(a aborter, g remoteStruct) *Frame {
                regs, err := t.Regs();
                if err != nil {
                        // TODO(austin) What to do?
-                       continue;
+                       continue
                }
                thisg := p.G(regs);
                if thisg == g.addr().base {
@@ -117,19 +117,19 @@ func prepareFrame(a aborter, pc, sp proc.Word, stk remoteStruct, inner *Frame) *
                // Get the PC of the call instruction
                callpc := pc;
                if !top && (p.sys.goexit == nil || pc != proc.Word(p.sys.goexit.Value)) {
-                       callpc--;
+                       callpc--
                }
 
                // Look up function
                path, line, fn = p.syms.PCToLine(uint64(callpc));
                if fn != nil {
-                       break;
+                       break
                }
 
                // Closure?
                var buf = make([]byte, p.ClosureSize());
                if _, err := p.Peek(pc, buf); err != nil {
-                       break;
+                       break
                }
                spdelta, ok := p.ParseClosure(buf);
                if ok {
@@ -138,15 +138,15 @@ func prepareFrame(a aborter, pc, sp proc.Word, stk remoteStruct, inner *Frame) *
                }
        }
        if fn == nil {
-               return nil;
+               return nil
        }
 
        // Compute frame pointer
        var fp proc.Word;
        if fn.FrameSize < p.PtrSize() {
-               fp = sp + proc.Word(p.PtrSize());
+               fp = sp + proc.Word(p.PtrSize())
        } else {
-               fp = sp + proc.Word(fn.FrameSize);
+               fp = sp + proc.Word(fn.FrameSize)
        }
        // TODO(austin) To really figure out if we're in the prologue,
        // we need to disassemble the function and look for the call
@@ -157,7 +157,7 @@ func prepareFrame(a aborter, pc, sp proc.Word, stk remoteStruct, inner *Frame) *
        if top && pc == proc.Word(fn.Entry) {
                // We're in the function prologue, before SP
                // has been adjusted for the frame.
-               fp -= proc.Word(fn.FrameSize - p.PtrSize());
+               fp -= proc.Word(fn.FrameSize - p.PtrSize())
        }
 
        return &Frame{pc, sp, fp, stk, fn, path, line, inner, nil};
@@ -174,7 +174,7 @@ func (f *Frame) Outer() (*Frame, os.Error) {
 func (f *Frame) aOuter(a aborter) *Frame {
        // Is there a cached outer frame
        if f.outer != nil {
-               return f.outer;
+               return f.outer
        }
 
        p := f.stk.r.p;
@@ -185,12 +185,12 @@ func (f *Frame) aOuter(a aborter) *Frame {
                // around calls to go and defer.  Russ says this
                // should get fixed in the compiler, but we account
                // for it for now.
-               sp += proc.Word(2 * p.PtrSize());
+               sp += proc.Word(2 * p.PtrSize())
        }
 
        pc := p.peekUintptr(a, f.fp - proc.Word(p.PtrSize()));
        if pc < 0x1000 {
-               return nil;
+               return nil
        }
 
        // TODO(austin) Register this frame for shoot-down.
@@ -206,7 +206,7 @@ func (f *Frame) Inner() *Frame      { return f.inner }
 func (f *Frame) String() string {
        res := f.fn.Name;
        if f.pc > proc.Word(f.fn.Value) {
-               res += fmt.Sprintf("+%#x", f.pc - proc.Word(f.fn.Entry));
+               res += fmt.Sprintf("+%#x", f.pc - proc.Word(f.fn.Entry))
        }
        return res + fmt.Sprintf(" %s:%d", f.path, f.line);
 }
index 683b70d19572f7d0a4bee4f19f7232160924e503..0c0075249a1f421bb8387cd2f141455d8ada3a76 100644 (file)
@@ -20,7 +20,7 @@ type Goroutine struct {
 
 func (t *Goroutine) String() string {
        if t.dead {
-               return "<dead thread>";
+               return "<dead thread>"
        }
        // TODO(austin) Give threads friendly ID's, possibly including
        // the name of the entry function.
@@ -41,7 +41,7 @@ func (t *Goroutine) resetFrame() (err os.Error) {
 func (t *Goroutine) Out() os.Error {
        f, err := t.frame.Outer();
        if f != nil {
-               t.frame = f;
+               t.frame = f
        }
        return err;
 }
@@ -50,7 +50,7 @@ func (t *Goroutine) Out() os.Error {
 func (t *Goroutine) In() os.Error {
        f := t.frame.Inner();
        if f != nil {
-               t.frame = f;
+               t.frame = f
        }
        return nil;
 }
@@ -63,7 +63,7 @@ func readylockedBP(ev Event) (EventAction, os.Error) {
        // stack will have the return address, then the G*.
        regs, err := b.osThread.Regs();
        if err != nil {
-               return EAStop, err;
+               return EAStop, err
        }
        sp := regs.SP();
        addr := sp + proc.Word(p.PtrSize());
@@ -71,10 +71,10 @@ func readylockedBP(ev Event) (EventAction, os.Error) {
        var gp eval.Value;
        err = try(func(a aborter) { gp = arg.aGet(a) });
        if err != nil {
-               return EAStop, err;
+               return EAStop, err
        }
        if gp == nil {
-               return EAStop, UnknownGoroutine{b.osThread, 0};
+               return EAStop, UnknownGoroutine{b.osThread, 0}
        }
        gs := gp.(remoteStruct);
        g := &Goroutine{gs, nil, false};
@@ -83,13 +83,13 @@ func readylockedBP(ev Event) (EventAction, os.Error) {
        // Enqueue goroutine creation event
        parent := b.Goroutine();
        if parent.isG0() {
-               parent = nil;
+               parent = nil
        }
        p.postEvent(&GoroutineCreate{commonEvent{p, g}, parent});
 
        // If we don't have any thread selected, select this one
        if p.curGoroutine == nil {
-               p.curGoroutine = g;
+               p.curGoroutine = g
        }
 
        return EADefault, nil;
@@ -110,7 +110,7 @@ func goexitBP(ev Event) (EventAction, os.Error) {
 
        // If we just exited our selected goroutine, selected another
        if p.curGoroutine == g {
-               p.selectSomeGoroutine();
+               p.selectSomeGoroutine()
        }
 
        return EADefault, nil;
index 0b45477eaacf6c5b85865f7ea79705e36b77f235..3a2954f618913183bbe24beb1dc0003f4a13de44 100644 (file)
@@ -27,7 +27,7 @@ func (e FormatError) String() string  { return string(e) }
 type UnknownArchitecture elf.Machine
 
 func (e UnknownArchitecture) String() string {
-       return "unknown architecture: " + elf.Machine(e).String();
+       return "unknown architecture: " + elf.Machine(e).String()
 }
 
 // A ProcessNotStopped error occurs when attempting to read or write
@@ -44,7 +44,7 @@ type UnknownGoroutine struct {
 }
 
 func (e UnknownGoroutine) String() string {
-       return fmt.Sprintf("internal error: unknown goroutine (G %#x)", e.Goroutine);
+       return fmt.Sprintf("internal error: unknown goroutine (G %#x)", e.Goroutine)
 }
 
 // A NoCurrentGoroutine error occurs when no goroutine is currently
@@ -121,13 +121,13 @@ func NewProcess(tproc proc.Process, arch Arch, syms *gosym.Table) (*Process, os.
 
        switch {
        case p.sys.allg.addr().base == 0:
-               return nil, FormatError("failed to find runtime symbol 'allg'");
+               return nil, FormatError("failed to find runtime symbol 'allg'")
        case p.sys.g0.addr().base == 0:
-               return nil, FormatError("failed to find runtime symbol 'g0'");
+               return nil, FormatError("failed to find runtime symbol 'g0'")
        case p.sys.newprocreadylocked == nil:
-               return nil, FormatError("failed to find runtime symbol 'newprocreadylocked'");
+               return nil, FormatError("failed to find runtime symbol 'newprocreadylocked'")
        case p.sys.goexit == nil:
-               return nil, FormatError("failed to find runtime symbol 'sys.goexit'");
+               return nil, FormatError("failed to find runtime symbol 'sys.goexit'")
        }
 
        // Get current goroutines
@@ -142,7 +142,7 @@ func NewProcess(tproc proc.Process, arch Arch, syms *gosym.Table) (*Process, os.
                }
        });
        if err != nil {
-               return nil, err;
+               return nil, err
        }
 
        // Create internal breakpoints to catch new and exited goroutines
@@ -151,7 +151,7 @@ func NewProcess(tproc proc.Process, arch Arch, syms *gosym.Table) (*Process, os.
 
        // Select current frames
        for _, g := range p.goroutines {
-               g.resetFrame();
+               g.resetFrame()
        }
 
        p.selectSomeGoroutine();
@@ -164,22 +164,22 @@ func elfGoSyms(f *elf.File) (*gosym.Table, os.Error) {
        symtab := f.Section(".gosymtab");
        pclntab := f.Section(".gopclntab");
        if text == nil || symtab == nil || pclntab == nil {
-               return nil, nil;
+               return nil, nil
        }
 
        symdat, err := symtab.Data();
        if err != nil {
-               return nil, err;
+               return nil, err
        }
        pclndat, err := pclntab.Data();
        if err != nil {
-               return nil, err;
+               return nil, err
        }
 
        pcln := gosym.NewLineTable(pclndat, text.Addr);
        tab, err := gosym.NewTable(symdat, pcln);
        if err != nil {
-               return nil, err;
+               return nil, err
        }
 
        return tab, nil;
@@ -190,17 +190,17 @@ func elfGoSyms(f *elf.File) (*gosym.Table, os.Error) {
 func NewProcessElf(tproc proc.Process, f *elf.File) (*Process, os.Error) {
        syms, err := elfGoSyms(f);
        if err != nil {
-               return nil, err;
+               return nil, err
        }
        if syms == nil {
-               return nil, FormatError("Failed to find symbol table");
+               return nil, FormatError("Failed to find symbol table")
        }
        var arch Arch;
        switch f.Machine {
        case elf.EM_X86_64:
-               arch = Amd64;
+               arch = Amd64
        default:
-               return nil, UnknownArchitecture(f.Machine);
+               return nil, UnknownArchitecture(f.Machine)
        }
        return NewProcess(tproc, arch, syms);
 }
@@ -231,11 +231,11 @@ func (p *Process) bootstrap() {
        for i := 0; i < rtv.NumField(); i++ {
                n := rtvt.Field(i).Name;
                if n[0] != 'P' || n[1] < 'A' || n[1] > 'Z' {
-                       continue;
+                       continue
                }
                sym := p.syms.LookupSym("type.*runtime." + n[1:len(n)]);
                if sym == nil {
-                       continue;
+                       continue
                }
                rtv.Field(i).(*reflect.Uint64Value).Set(sym.Value);
        }
@@ -253,10 +253,10 @@ func (p *Process) bootstrap() {
        p.sys.deferproc = p.syms.LookupFunc("sys.deferproc");
        p.sys.newprocreadylocked = p.syms.LookupFunc("newprocreadylocked");
        if allg := p.syms.LookupSym("allg"); allg != nil {
-               p.sys.allg = remotePtr{remote{proc.Word(allg.Value), p}, p.runtime.G};
+               p.sys.allg = remotePtr{remote{proc.Word(allg.Value), p}, p.runtime.G}
        }
        if g0 := p.syms.LookupSym("g0"); g0 != nil {
-               p.sys.g0 = p.runtime.G.mk(remote{proc.Word(g0.Value), p}).(remoteStruct);
+               p.sys.g0 = p.runtime.G.mk(remote{proc.Word(g0.Value), p}).(remoteStruct)
        }
 }
 
@@ -279,7 +279,7 @@ func (p *Process) selectSomeGoroutine() {
 func (p *Process) someStoppedOSThread() proc.Thread {
        if p.threadCache != nil {
                if _, err := p.threadCache.Stopped(); err == nil {
-                       return p.threadCache;
+                       return p.threadCache
                }
        }
 
@@ -295,7 +295,7 @@ func (p *Process) someStoppedOSThread() proc.Thread {
 func (p *Process) Peek(addr proc.Word, out []byte) (int, os.Error) {
        thr := p.someStoppedOSThread();
        if thr == nil {
-               return 0, ProcessNotStopped{};
+               return 0, ProcessNotStopped{}
        }
        return thr.Peek(addr, out);
 }
@@ -303,13 +303,13 @@ func (p *Process) Peek(addr proc.Word, out []byte) (int, os.Error) {
 func (p *Process) Poke(addr proc.Word, b []byte) (int, os.Error) {
        thr := p.someStoppedOSThread();
        if thr == nil {
-               return 0, ProcessNotStopped{};
+               return 0, ProcessNotStopped{}
        }
        return thr.Poke(addr, b);
 }
 
 func (p *Process) peekUintptr(a aborter, addr proc.Word) proc.Word {
-       return proc.Word(mkUintptr(remote{addr, p}).(remoteUint).aGet(a));
+       return proc.Word(mkUintptr(remote{addr, p}).(remoteUint).aGet(a))
 }
 
 /*
@@ -320,7 +320,7 @@ func (p *Process) peekUintptr(a aborter, addr proc.Word) proc.Word {
 // the given program counter.
 func (p *Process) OnBreakpoint(pc proc.Word) EventHook {
        if bp, ok := p.breakpointHooks[pc]; ok {
-               return bp;
+               return bp
        }
        // The breakpoint will register itself when a handler is added
        return &breakpointHook{commonHook{nil, 0}, p, pc};
@@ -328,7 +328,7 @@ func (p *Process) OnBreakpoint(pc proc.Word) EventHook {
 
 // OnGoroutineCreate returns the hook that is run when a goroutine is created.
 func (p *Process) OnGoroutineCreate() EventHook {
-       return p.goroutineCreateHook;
+       return p.goroutineCreateHook
 }
 
 // OnGoroutineExit returns the hook that is run when a goroutine exits.
@@ -338,12 +338,12 @@ func (p *Process) OnGoroutineExit() EventHook     { return p.goroutineExitHook }
 func (p *Process) osThreadToGoroutine(t proc.Thread) (*Goroutine, os.Error) {
        regs, err := t.Regs();
        if err != nil {
-               return nil, err;
+               return nil, err
        }
        g := p.G(regs);
        gt, ok := p.goroutines[g];
        if !ok {
-               return nil, UnknownGoroutine{t, g};
+               return nil, UnknownGoroutine{t, g}
        }
        return gt, nil;
 }
@@ -357,7 +357,7 @@ func (p *Process) causesToEvents() ([]Event, os.Error) {
                if c, err := t.Stopped(); err == nil {
                        switch c := c.(type) {
                        case proc.Breakpoint:
-                               nev++;
+                               nev++
                        case proc.Signal:
                                // TODO(austin)
                                //nev++;
@@ -374,7 +374,7 @@ func (p *Process) causesToEvents() ([]Event, os.Error) {
                        case proc.Breakpoint:
                                gt, err := p.osThreadToGoroutine(t);
                                if err != nil {
-                                       return nil, err;
+                                       return nil, err
                                }
                                events[i] = &Breakpoint{commonEvent{p, gt}, t, proc.Word(c)};
                                i++;
@@ -393,11 +393,11 @@ func (p *Process) postEvent(ev Event) {
        n := len(p.posted);
        m := n*2;
        if m == 0 {
-               m = 4;
+               m = 4
        }
        posted := make([]Event, n+1, m);
        for i, p := range p.posted {
-               posted[i] = p;
+               posted[i] = p
        }
        posted[n] = ev;
        p.posted = posted;
@@ -412,7 +412,7 @@ func (p *Process) processEvents() (EventAction, os.Error) {
                ev, p.posted = p.posted[0], p.posted[1:len(p.posted)];
                action, err := p.processEvent(ev);
                if action == EAStop {
-                       return action, err;
+                       return action, err
                }
        }
 
@@ -420,7 +420,7 @@ func (p *Process) processEvents() (EventAction, os.Error) {
                ev, p.pending = p.pending[0], p.pending[1:len(p.pending)];
                action, err := p.processEvent(ev);
                if action == EAStop {
-                       return action, err;
+                       return action, err
                }
        }
 
@@ -439,7 +439,7 @@ func (p *Process) processEvent(ev Event) (EventAction, os.Error) {
        case *Breakpoint:
                hook, ok := p.breakpointHooks[ev.pc];
                if !ok {
-                       break;
+                       break
                }
                p.curGoroutine = ev.Goroutine();
                action, err = hook.handle(ev);
@@ -449,16 +449,16 @@ func (p *Process) processEvent(ev Event) (EventAction, os.Error) {
                action, err = p.goroutineCreateHook.handle(ev);
 
        case *GoroutineExit:
-               action, err = p.goroutineExitHook.handle(ev);
+               action, err = p.goroutineExitHook.handle(ev)
 
        default:
-               log.Crashf("Unknown event type %T in queue", p.event);
+               log.Crashf("Unknown event type %T in queue", p.event)
        }
 
        if err != nil {
-               return EAStop, err;
+               return EAStop, err
        } else if action == EAStop {
-               return EAStop, nil;
+               return EAStop, nil
        }
        return EAContinue, nil;
 }
@@ -491,24 +491,24 @@ func (p *Process) ContWait() os.Error {
        for {
                a, err := p.processEvents();
                if err != nil {
-                       return err;
+                       return err
                } else if a == EAStop {
-                       break;
+                       break
                }
                err = p.proc.Continue();
                if err != nil {
-                       return err;
+                       return err
                }
                err = p.proc.WaitStop();
                if err != nil {
-                       return err;
+                       return err
                }
                for _, g := range p.goroutines {
-                       g.resetFrame();
+                       g.resetFrame()
                }
                p.pending, err = p.causesToEvents();
                if err != nil {
-                       return err;
+                       return err
                }
        }
        return nil;
@@ -517,7 +517,7 @@ func (p *Process) ContWait() os.Error {
 // Out selects the caller frame of the current frame.
 func (p *Process) Out() os.Error {
        if p.curGoroutine == nil {
-               return NoCurrentGoroutine{};
+               return NoCurrentGoroutine{}
        }
        return p.curGoroutine.Out();
 }
@@ -525,7 +525,7 @@ func (p *Process) Out() os.Error {
 // In selects the frame called by the current frame.
 func (p *Process) In() os.Error {
        if p.curGoroutine == nil {
-               return NoCurrentGoroutine{};
+               return NoCurrentGoroutine{}
        }
        return p.curGoroutine.In();
 }
index 7ce258a79cfea5f3251fa9b9c918ee0f7c184e29..c9e695b2479080a16521ac409b38493cb67f5e2b 100644 (file)
@@ -250,11 +250,11 @@ func fillRuntimeIndexes(runtime *runtimeValues, out *runtimeIndexes) {
                indexes := make(map[string]int, len(et.Elems));
                for j, f := range et.Elems {
                        if f.Anonymous {
-                               continue;
+                               continue
                        }
                        name := f.Name;
                        if name[0] >= 'a' && name[0] <= 'z' {
-                               name = string(name[0]+'A'-'a')+name[1:len(name)];
+                               name = string(name[0]+'A'-'a')+name[1:len(name)]
                        }
                        indexes[name] = j;
                }
index 0b05b1120e058e900ae8446c1009fd80dc2ce7bb..74eb9ab15e0023b507b301276668ff76f7ca0b6a 100644 (file)
@@ -34,7 +34,7 @@ var manualTypes = make(map[Arch]map[eval.Type]*remoteType)
 // so we need to layout the structures that describe those types ourselves.
 func newManualType(t eval.Type, arch Arch) *remoteType {
        if nt, ok := t.(*eval.NamedType); ok {
-               t = nt.Def;
+               t = nt.Def
        }
 
        // Get the type map for this architecture
@@ -47,7 +47,7 @@ func newManualType(t eval.Type, arch Arch) *remoteType {
                basicType := func(t eval.Type, mk maker, size int, fieldAlign int) {
                        t = t.(*eval.NamedType).Def;
                        if fieldAlign == 0 {
-                               fieldAlign = size;
+                               fieldAlign = size
                        }
                        typeMap[t] = &remoteType{t, size, fieldAlign, mk};
                };
@@ -61,7 +61,7 @@ func newManualType(t eval.Type, arch Arch) *remoteType {
        }
 
        if rt, ok := typeMap[t]; ok {
-               return rt;
+               return rt
        }
 
        var rt *remoteType;
@@ -92,7 +92,7 @@ func newManualType(t eval.Type, arch Arch) *remoteType {
                for i, f := range t.Elems {
                        elem := newManualType(f.Type, arch);
                        if fieldAlign == 0 {
-                               fieldAlign = elem.fieldAlign;
+                               fieldAlign = elem.fieldAlign
                        }
                        offset = arch.Align(offset, elem.fieldAlign);
                        layout[i].offset = offset;
@@ -103,7 +103,7 @@ func newManualType(t eval.Type, arch Arch) *remoteType {
                rt = &remoteType{t, offset, fieldAlign, mk};
 
        default:
-               log.Crashf("cannot manually construct type %T", t);
+               log.Crashf("cannot manually construct type %T", t)
        }
 
        typeMap[t] = rt;
@@ -130,7 +130,7 @@ func parseRemoteType(a aborter, rs remoteStruct) *remoteType {
 
        rt, ok := p.types[addr];
        if ok && rt.Type != nil {
-               return rt;
+               return rt
        } else if !ok {
                rt = &remoteType{};
                p.types[addr] = rt;
@@ -140,7 +140,7 @@ func parseRemoteType(a aborter, rs remoteStruct) *remoteType {
                sym := p.syms.SymByAddr(uint64(addr));
                name := "<unknown>";
                if sym != nil {
-                       name = sym.Name;
+                       name = sym.Name
                }
                log.Stderrf("%sParsing type at %#x (%s)", prtIndent, addr, name);
                prtIndent += " ";
@@ -238,9 +238,9 @@ func parseRemoteType(a aborter, rs remoteStruct) *remoteType {
                        fields[i].Type = elem.Type;
                        name := f.field(p.f.StructField.Name).(remotePtr).aGet(a);
                        if name == nil {
-                               fields[i].Anonymous = true;
+                               fields[i].Anonymous = true
                        } else {
-                               fields[i].Name = name.(remoteString).aGet(a);
+                               fields[i].Name = name.(remoteString).aGet(a)
                        }
                        layout[i].offset = int(f.field(p.f.StructField.Offset).(remoteUint).aGet(a));
                        layout[i].fieldType = elem;
@@ -272,7 +272,7 @@ func parseRemoteType(a aborter, rs remoteStruct) *remoteType {
                sym := p.syms.SymByAddr(uint64(itype));
                name := "<unknown symbol>";
                if sym != nil {
-                       name = sym.Name;
+                       name = sym.Name
                }
                err := fmt.Sprintf("runtime type at %#x has unexpected type %#x (%s)", addr, itype, name);
                a.Abort(FormatError(err));
@@ -280,9 +280,9 @@ func parseRemoteType(a aborter, rs remoteStruct) *remoteType {
 
        // Fill in the remote type
        if nt != nil {
-               nt.Complete(t);
+               nt.Complete(t)
        } else {
-               rt.Type = t;
+               rt.Type = t
        }
        rt.size = int(typ.field(p.f.CommonType.Size).(remoteUint).aGet(a));
        rt.mk = mk;
index a01512ace6346cef0771aef20892e97ee58a0468..ebd6a6f22f56b4aa182c5e1b8b6bbe913009c484 100644 (file)
@@ -59,7 +59,7 @@ func (v remote) Get(a aborter, size int) uint64 {
        buf := arr[0:size];
        _, err := v.p.Peek(v.base, buf);
        if err != nil {
-               a.Abort(err);
+               a.Abort(err)
        }
        return uint64(v.p.ToWord(buf));
 }
@@ -70,7 +70,7 @@ func (v remote) Set(a aborter, size int, x uint64) {
        v.p.FromWord(proc.Word(x), buf);
        _, err := v.p.Poke(v.base, buf);
        if err != nil {
-               a.Abort(err);
+               a.Abort(err)
        }
 }
 
@@ -80,7 +80,7 @@ func tryRVString(f func(a aborter) string) string {
        var s string;
        err := try(func(a aborter) { s = f(a) });
        if err != nil {
-               return fmt.Sprintf("<error: %v>", err);
+               return fmt.Sprintf("<error: %v>", err)
        }
        return s;
 }
@@ -94,11 +94,11 @@ type remoteBool struct {
 }
 
 func (v remoteBool) String() string {
-       return tryRVString(func(a aborter) string { return fmt.Sprintf("%v", v.aGet(a)) });
+       return tryRVString(func(a aborter) string { return fmt.Sprintf("%v", v.aGet(a)) })
 }
 
 func (v remoteBool) Assign(t *eval.Thread, o eval.Value) {
-       v.Set(t, o.(eval.BoolValue).Get(t));
+       v.Set(t, o.(eval.BoolValue).Get(t))
 }
 
 func (v remoteBool) Get(t *eval.Thread) bool   { return v.aGet(t) }
@@ -106,14 +106,14 @@ func (v remoteBool) Get(t *eval.Thread) bool      { return v.aGet(t) }
 func (v remoteBool) aGet(a aborter) bool       { return v.r.Get(a, 1) != 0 }
 
 func (v remoteBool) Set(t *eval.Thread, x bool) {
-       v.aSet(t, x);
+       v.aSet(t, x)
 }
 
 func (v remoteBool) aSet(a aborter, x bool) {
        if x {
-               v.r.Set(a, 1, 1);
+               v.r.Set(a, 1, 1)
        } else {
-               v.r.Set(a, 1, 0);
+               v.r.Set(a, 1, 0)
        }
 }
 
@@ -131,21 +131,21 @@ type remoteUint struct {
 }
 
 func (v remoteUint) String() string {
-       return tryRVString(func(a aborter) string { return fmt.Sprintf("%v", v.aGet(a)) });
+       return tryRVString(func(a aborter) string { return fmt.Sprintf("%v", v.aGet(a)) })
 }
 
 func (v remoteUint) Assign(t *eval.Thread, o eval.Value) {
-       v.Set(t, o.(eval.UintValue).Get(t));
+       v.Set(t, o.(eval.UintValue).Get(t))
 }
 
 func (v remoteUint) Get(t *eval.Thread) uint64 {
-       return v.aGet(t);
+       return v.aGet(t)
 }
 
 func (v remoteUint) aGet(a aborter) uint64     { return v.r.Get(a, v.size) }
 
 func (v remoteUint) Set(t *eval.Thread, x uint64) {
-       v.aSet(t, x);
+       v.aSet(t, x)
 }
 
 func (v remoteUint) aSet(a aborter, x uint64)  { v.r.Set(a, v.size, x) }
@@ -174,11 +174,11 @@ type remoteInt struct {
 }
 
 func (v remoteInt) String() string {
-       return tryRVString(func(a aborter) string { return fmt.Sprintf("%v", v.aGet(a)) });
+       return tryRVString(func(a aborter) string { return fmt.Sprintf("%v", v.aGet(a)) })
 }
 
 func (v remoteInt) Assign(t *eval.Thread, o eval.Value) {
-       v.Set(t, o.(eval.IntValue).Get(t));
+       v.Set(t, o.(eval.IntValue).Get(t))
 }
 
 func (v remoteInt) Get(t *eval.Thread) int64   { return v.aGet(t) }
@@ -186,7 +186,7 @@ func (v remoteInt) Get(t *eval.Thread) int64        { return v.aGet(t) }
 func (v remoteInt) aGet(a aborter) int64       { return int64(v.r.Get(a, v.size)) }
 
 func (v remoteInt) Set(t *eval.Thread, x int64) {
-       v.aSet(t, x);
+       v.aSet(t, x)
 }
 
 func (v remoteInt) aSet(a aborter, x int64)    { v.r.Set(a, v.size, uint64(x)) }
@@ -213,41 +213,41 @@ type remoteFloat struct {
 }
 
 func (v remoteFloat) String() string {
-       return tryRVString(func(a aborter) string { return fmt.Sprintf("%v", v.aGet(a)) });
+       return tryRVString(func(a aborter) string { return fmt.Sprintf("%v", v.aGet(a)) })
 }
 
 func (v remoteFloat) Assign(t *eval.Thread, o eval.Value) {
-       v.Set(t, o.(eval.FloatValue).Get(t));
+       v.Set(t, o.(eval.FloatValue).Get(t))
 }
 
 func (v remoteFloat) Get(t *eval.Thread) float64 {
-       return v.aGet(t);
+       return v.aGet(t)
 }
 
 func (v remoteFloat) aGet(a aborter) float64 {
        bits := v.r.Get(a, v.size);
        switch v.size {
        case 4:
-               return float64(v.r.p.ToFloat32(uint32(bits)));
+               return float64(v.r.p.ToFloat32(uint32(bits)))
        case 8:
-               return v.r.p.ToFloat64(bits);
+               return v.r.p.ToFloat64(bits)
        }
        panic("Unexpected float size ", v.size);
 }
 
 func (v remoteFloat) Set(t *eval.Thread, x float64) {
-       v.aSet(t, x);
+       v.aSet(t, x)
 }
 
 func (v remoteFloat) aSet(a aborter, x float64) {
        var bits uint64;
        switch v.size {
        case 4:
-               bits = uint64(v.r.p.FromFloat32(float32(x)));
+               bits = uint64(v.r.p.FromFloat32(float32(x)))
        case 8:
-               bits = v.r.p.FromFloat64(x);
+               bits = v.r.p.FromFloat64(x)
        default:
-               panic("Unexpected float size ", v.size);
+               panic("Unexpected float size ", v.size)
        }
        v.r.Set(a, v.size, bits);
 }
@@ -269,15 +269,15 @@ type remoteString struct {
 }
 
 func (v remoteString) String() string {
-       return tryRVString(func(a aborter) string { return v.aGet(a) });
+       return tryRVString(func(a aborter) string { return v.aGet(a) })
 }
 
 func (v remoteString) Assign(t *eval.Thread, o eval.Value) {
-       v.Set(t, o.(eval.StringValue).Get(t));
+       v.Set(t, o.(eval.StringValue).Get(t))
 }
 
 func (v remoteString) Get(t *eval.Thread) string {
-       return v.aGet(t);
+       return v.aGet(t)
 }
 
 func (v remoteString) aGet(a aborter) string {
@@ -288,19 +288,19 @@ func (v remoteString) aGet(a aborter) string {
        bytes := make([]uint8, len);
        _, err := v.r.p.Peek(str, bytes);
        if err != nil {
-               a.Abort(err);
+               a.Abort(err)
        }
        return string(bytes);
 }
 
 func (v remoteString) Set(t *eval.Thread, x string) {
-       v.aSet(t, x);
+       v.aSet(t, x)
 }
 
 func (v remoteString) aSet(a aborter, x string) {
        // TODO(austin) This isn't generally possible without the
        // ability to allocate remote memory.
-       a.Abort(ReadOnlyError("remote strings cannot be assigned to"));
+       a.Abort(ReadOnlyError("remote strings cannot be assigned to"))
 }
 
 func mkString(r remote) eval.Value     { return remoteString{r} }
@@ -319,7 +319,7 @@ func (v remoteArray) String() string {
        res := "{";
        for i := int64(0); i < v.len; i++ {
                if i > 0 {
-                       res += ", ";
+                       res += ", "
                }
                res += v.elem(i).String();
        }
@@ -331,24 +331,24 @@ func (v remoteArray) Assign(t *eval.Thread, o eval.Value) {
        // remoteArray in the same Process.
        oa := o.(eval.ArrayValue);
        for i := int64(0); i < v.len; i++ {
-               v.Elem(t, i).Assign(t, oa.Elem(t, i));
+               v.Elem(t, i).Assign(t, oa.Elem(t, i))
        }
 }
 
 func (v remoteArray) Get(t *eval.Thread) eval.ArrayValue {
-       return v;
+       return v
 }
 
 func (v remoteArray) Elem(t *eval.Thread, i int64) eval.Value {
-       return v.elem(i);
+       return v.elem(i)
 }
 
 func (v remoteArray) elem(i int64) eval.Value {
-       return v.elemType.mk(v.r.plus(proc.Word(int64(v.elemType.size)*i)));
+       return v.elemType.mk(v.r.plus(proc.Word(int64(v.elemType.size)*i)))
 }
 
 func (v remoteArray) Sub(i int64, len int64) eval.ArrayValue {
-       return remoteArray{v.r.plus(proc.Word(int64(v.elemType.size)*i)), len, v.elemType};
+       return remoteArray{v.r.plus(proc.Word(int64(v.elemType.size)*i)), len, v.elemType}
 }
 
 /*
@@ -369,7 +369,7 @@ func (v remoteStruct) String() string {
        res := "{";
        for i := range v.layout {
                if i > 0 {
-                       res += ", ";
+                       res += ", "
                }
                res += v.field(i).String();
        }
@@ -381,16 +381,16 @@ func (v remoteStruct) Assign(t *eval.Thread, o eval.Value) {
        oa := o.(eval.StructValue);
        l := len(v.layout);
        for i := 0; i < l; i++ {
-               v.Field(t, i).Assign(t, oa.Field(t, i));
+               v.Field(t, i).Assign(t, oa.Field(t, i))
        }
 }
 
 func (v remoteStruct) Get(t *eval.Thread) eval.StructValue {
-       return v;
+       return v
 }
 
 func (v remoteStruct) Field(t *eval.Thread, i int) eval.Value {
-       return v.field(i);
+       return v.field(i)
 }
 
 func (v remoteStruct) field(i int) eval.Value {
@@ -417,30 +417,30 @@ func (v remotePtr) String() string {
        return tryRVString(func(a aborter) string {
                e := v.aGet(a);
                if e == nil {
-                       return "<nil>";
+                       return "<nil>"
                }
                return "&" + e.String();
-       });
+       })
 }
 
 func (v remotePtr) Assign(t *eval.Thread, o eval.Value) {
-       v.Set(t, o.(eval.PtrValue).Get(t));
+       v.Set(t, o.(eval.PtrValue).Get(t))
 }
 
 func (v remotePtr) Get(t *eval.Thread) eval.Value {
-       return v.aGet(t);
+       return v.aGet(t)
 }
 
 func (v remotePtr) aGet(a aborter) eval.Value {
        addr := proc.Word(v.r.Get(a, v.r.p.PtrSize()));
        if addr == 0 {
-               return nil;
+               return nil
        }
        return v.elemType.mk(remote{addr, v.r.p});
 }
 
 func (v remotePtr) Set(t *eval.Thread, x eval.Value) {
-       v.aSet(t, x);
+       v.aSet(t, x)
 }
 
 func (v remotePtr) aSet(a aborter, x eval.Value) {
@@ -450,7 +450,7 @@ func (v remotePtr) aSet(a aborter, x eval.Value) {
        }
        xr, ok := x.(remoteValue);
        if !ok || v.r.p != xr.addr().p {
-               a.Abort(RemoteMismatchError("remote pointer must point within the same process"));
+               a.Abort(RemoteMismatchError("remote pointer must point within the same process"))
        }
        v.r.Set(a, v.r.p.PtrSize(), uint64(xr.addr().base));
 }
@@ -470,18 +470,18 @@ func (v remoteSlice) String() string {
        return tryRVString(func(a aborter) string {
                b := v.aGet(a).Base;
                if b == nil {
-                       return "<nil>";
+                       return "<nil>"
                }
                return b.String();
-       });
+       })
 }
 
 func (v remoteSlice) Assign(t *eval.Thread, o eval.Value) {
-       v.Set(t, o.(eval.SliceValue).Get(t));
+       v.Set(t, o.(eval.SliceValue).Get(t))
 }
 
 func (v remoteSlice) Get(t *eval.Thread) eval.Slice {
-       return v.aGet(t);
+       return v.aGet(t)
 }
 
 func (v remoteSlice) aGet(a aborter) eval.Slice {
@@ -490,23 +490,23 @@ func (v remoteSlice) aGet(a aborter) eval.Slice {
        nel := rs.field(v.r.p.f.Slice.Len).(remoteInt).aGet(a);
        cap := rs.field(v.r.p.f.Slice.Cap).(remoteInt).aGet(a);
        if base == 0 {
-               return eval.Slice{nil, nel, cap};
+               return eval.Slice{nil, nel, cap}
        }
        return eval.Slice{remoteArray{remote{base, v.r.p}, nel, v.elemType}, nel, cap};
 }
 
 func (v remoteSlice) Set(t *eval.Thread, x eval.Slice) {
-       v.aSet(t, x);
+       v.aSet(t, x)
 }
 
 func (v remoteSlice) aSet(a aborter, x eval.Slice) {
        rs := v.r.p.runtime.Slice.mk(v.r).(remoteStruct);
        if x.Base == nil {
-               rs.field(v.r.p.f.Slice.Array).(remoteUint).aSet(a, 0);
+               rs.field(v.r.p.f.Slice.Array).(remoteUint).aSet(a, 0)
        } else {
                ar, ok := x.Base.(remoteArray);
                if !ok || v.r.p != ar.r.p {
-                       a.Abort(RemoteMismatchError("remote slice must point within the same process"));
+                       a.Abort(RemoteMismatchError("remote slice must point within the same process"))
                }
                rs.field(v.r.p.f.Slice.Array).(remoteUint).aSet(a, uint64(ar.r.base));
        }
index 74d540ce90fe0052daed0fc7440a700ed6eb02ea..b881c0ade49190ae262bf755d33dd7ead0f41a94 100644 (file)
@@ -24,7 +24,7 @@ type NotOnStack struct {
 }
 
 func (e NotOnStack) String() string {
-       return "function " + e.Fn.Name + " not on " + e.Goroutine.String() + "'s stack";
+       return "function " + e.Fn.Name + " not on " + e.Goroutine.String() + "'s stack"
 }
 
 // A remoteFramePtr is an implementation of eval.PtrValue that
@@ -40,22 +40,22 @@ type remoteFramePtr struct {
 
 func (v remoteFramePtr) String() string {
        // TODO(austin): This could be a really awesome string method
-       return "<remote frame>";
+       return "<remote frame>"
 }
 
 func (v remoteFramePtr) Assign(t *eval.Thread, o eval.Value) {
-       v.Set(t, o.(eval.PtrValue).Get(t));
+       v.Set(t, o.(eval.PtrValue).Get(t))
 }
 
 func (v remoteFramePtr) Get(t *eval.Thread) eval.Value {
        g := v.p.curGoroutine;
        if g == nil || g.frame == nil {
-               t.Abort(NoCurrentGoroutine{});
+               t.Abort(NoCurrentGoroutine{})
        }
 
        for f := g.frame; f != nil; f = f.aOuter(t) {
                if f.fn != v.fn {
-                       continue;
+                       continue
                }
 
                // TODO(austin): Register for shootdown with f
@@ -70,7 +70,7 @@ func (v remoteFramePtr) Set(t *eval.Thread, x eval.Value) {
        // Theoretically this could be a static error.  If remote
        // packages were packages, remote frames could just be defined
        // as constants.
-       t.Abort(ReadOnlyError("remote frames cannot be assigned to"));
+       t.Abort(ReadOnlyError("remote frames cannot be assigned to"))
 }
 
 /*
@@ -93,15 +93,15 @@ type remotePackage struct {
 func (v remotePackage) String() string { return "<remote package>" }
 
 func (v remotePackage) Assign(t *eval.Thread, o eval.Value) {
-       t.Abort(ReadOnlyError("remote packages cannot be assigned to"));
+       t.Abort(ReadOnlyError("remote packages cannot be assigned to"))
 }
 
 func (v remotePackage) Get(t *eval.Thread) eval.StructValue {
-       return v;
+       return v
 }
 
 func (v remotePackage) Field(t *eval.Thread, i int) eval.Value {
-       return v.defs[i];
+       return v.defs[i]
 }
 
 /*
@@ -121,7 +121,7 @@ func (p *Process) populateWorld(w *eval.World) os.Error {
        for _, s := range p.syms.Syms {
                if s.ReceiverName() != "" {
                        // TODO(austin)
-                       continue;
+                       continue
                }
 
                // Package
@@ -129,7 +129,7 @@ func (p *Process) populateWorld(w *eval.World) os.Error {
                switch pkgName {
                case "", "type", "extratype", "string", "go":
                        // "go" is really "go.string"
-                       continue;
+                       continue
                }
                pkg, ok := packages[pkgName];
                if !ok {
@@ -147,7 +147,7 @@ func (p *Process) populateWorld(w *eval.World) os.Error {
                // Symbol type
                rt, err := p.typeOfSym(&s);
                if err != nil {
-                       return err;
+                       return err
                }
 
                // Definition
@@ -155,7 +155,7 @@ func (p *Process) populateWorld(w *eval.World) os.Error {
                case 'D', 'd', 'B', 'b':
                        // Global variable
                        if rt == nil {
-                               continue;
+                               continue
                        }
                        pkg[name] = def{rt.Type, rt.mk(remote{proc.Word(s.Value), p})};
 
@@ -167,7 +167,7 @@ func (p *Process) populateWorld(w *eval.World) os.Error {
                        // conversion syntax?
                        rt, err := p.makeFrameType(s);
                        if err != nil {
-                               return err;
+                               return err
                        }
                        pkg[name] = def{eval.NewPtrType(rt.Type), remoteFramePtr{p, s, rt}};
                }
@@ -191,7 +191,7 @@ func (p *Process) populateWorld(w *eval.World) os.Error {
 
                err := w.DefineConst(pkgName, pkgType, pkgVal);
                if err != nil {
-                       log.Stderrf("while defining package %s: %v", pkgName, err);
+                       log.Stderrf("while defining package %s: %v", pkgName, err)
                }
        }
 
@@ -202,13 +202,13 @@ func (p *Process) populateWorld(w *eval.World) os.Error {
 // has no type, returns nil.
 func (p *Process) typeOfSym(s *gosym.Sym) (*remoteType, os.Error) {
        if s.GoType == 0 {
-               return nil, nil;
+               return nil, nil
        }
        addr := proc.Word(s.GoType);
        var rt *remoteType;
        err := try(func(a aborter) { rt = parseRemoteType(a, p.runtime.Type.mk(remote{addr, p}).(remoteStruct)) });
        if err != nil {
-               return nil, err;
+               return nil, err
        }
        return rt, nil;
 }
@@ -232,11 +232,11 @@ func (p *Process) makeFrameType(s *gosym.Func) (*remoteType, os.Error) {
        for _, param := range s.Params {
                rt, err := p.typeOfSym(param);
                if err != nil {
-                       return nil, err;
+                       return nil, err
                }
                if rt == nil {
                        //fmt.Printf(" (no type)\n");
-                       continue;
+                       continue
                }
                // TODO(austin): Why do local variables carry their
                // package name?
@@ -251,10 +251,10 @@ func (p *Process) makeFrameType(s *gosym.Func) (*remoteType, os.Error) {
        for _, local := range s.Locals {
                rt, err := p.typeOfSym(local);
                if err != nil {
-                       return nil, err;
+                       return nil, err
                }
                if rt == nil {
-                       continue;
+                       continue
                }
                fields[i].Name = local.BaseName();
                fields[i].Type = rt.Type;
index 02c3717e9c07136ad2110b4ae40f42c548ab7f7a..3d9dfeb12589808dd9b1a4460f2b68297f2913a4 100644 (file)
@@ -136,7 +136,7 @@ func norm(i Word) Word {
        i += i>>18;
        i &= mask;
        if i == mask {
-               i = 0;
+               i = 0
        }
        return i;
 }
@@ -147,13 +147,13 @@ type UnknownInstrError struct {
 }
 
 func (e UnknownInstrError) String() string {
-       return fmt.Sprintf("unknown instruction %06o at %06o", e.Inst, e.PC);
+       return fmt.Sprintf("unknown instruction %06o at %06o", e.Inst, e.PC)
 }
 
 type HaltError Word
 
 func (e HaltError) String() string {
-       return fmt.Sprintf("executed HLT instruction at %06o", e);
+       return fmt.Sprintf("executed HLT instruction at %06o", e)
 }
 
 type LoopError Word
@@ -166,7 +166,7 @@ func (m *M) run(inst Word, t Trapper) os.Error {
        if op < opSKP && op != opCALJDA {
                for n := 0; ib != 0; n++ {
                        if n > 07777 {
-                               return LoopError(m.PC - 1);
+                               return LoopError(m.PC - 1)
                        }
                        ib = (m.Mem[y] >> 12)&1;
                        y = m.Mem[y] & 07777;
@@ -175,33 +175,33 @@ func (m *M) run(inst Word, t Trapper) os.Error {
 
        switch op {
        case opAND:
-               m.AC &= m.Mem[y];
+               m.AC &= m.Mem[y]
        case opIOR:
-               m.AC |= m.Mem[y];
+               m.AC |= m.Mem[y]
        case opXOR:
-               m.AC ^= m.Mem[y];
+               m.AC ^= m.Mem[y]
        case opXCT:
-               m.run(m.Mem[y], t);
+               m.run(m.Mem[y], t)
        case opCALJDA:
                a := y;
                if ib == 0 {
-                       a = 64;
+                       a = 64
                }
                m.Mem[a] = m.AC;
                m.AC = (m.OV << 17) + m.PC;
                m.PC = a+1;
        case opLAC:
-               m.AC = m.Mem[y];
+               m.AC = m.Mem[y]
        case opLIO:
-               m.IO = m.Mem[y];
+               m.IO = m.Mem[y]
        case opDAC:
-               m.Mem[y] = m.AC;
+               m.Mem[y] = m.AC
        case opDAP:
-               m.Mem[y] = m.Mem[y] & 0770000 | m.AC & 07777;
+               m.Mem[y] = m.Mem[y] & 0770000 | m.AC & 07777
        case opDIO:
-               m.Mem[y] = m.IO;
+               m.Mem[y] = m.IO
        case opDZM:
-               m.Mem[y] = 0;
+               m.Mem[y] = 0
        case opADD:
                m.AC += m.Mem[y];
                m.OV = m.AC >> 18;
@@ -211,7 +211,7 @@ func (m *M) run(inst Word, t Trapper) os.Error {
                m.AC += m.Mem[y] ^ mask;
                m.AC = norm(m.AC);
                if diffSigns && m.Mem[y] >> 17 == m.AC >> 17 {
-                       m.OV = 1;
+                       m.OV = 1
                }
        case opIDX:
                m.AC = norm(m.Mem[y] + 1);
@@ -220,15 +220,15 @@ func (m *M) run(inst Word, t Trapper) os.Error {
                m.AC = norm(m.Mem[y] + 1);
                m.Mem[y] = m.AC;
                if m.AC & sign == 0 {
-                       m.PC++;
+                       m.PC++
                }
        case opSAD:
                if m.AC != m.Mem[y] {
-                       m.PC++;
+                       m.PC++
                }
        case opSAS:
                if m.AC == m.Mem[y] {
-                       m.PC++;
+                       m.PC++
                }
        case opMUS:
                if m.IO & 1 == 1 {
@@ -241,13 +241,13 @@ func (m *M) run(inst Word, t Trapper) os.Error {
                m.AC, m.IO = (m.AC << 1 | m.IO >> 17)&mask,
                        ((m.IO << 1 | m.AC >> 17)&mask)^1;
                if m.IO & 1 == 1 {
-                       m.AC = m.AC + (m.Mem[y] ^ mask);
+                       m.AC = m.AC + (m.Mem[y] ^ mask)
                } else {
-                       m.AC = m.AC + 1 + m.Mem[y];
+                       m.AC = m.AC + 1 + m.Mem[y]
                }
                m.AC = norm(m.AC);
        case opJMP:
-               m.PC = y;
+               m.PC = y
        case opJSP:
                m.AC = (m.OV << 17) + m.PC;
                m.PC = y;
@@ -261,74 +261,74 @@ func (m *M) run(inst Word, t Trapper) os.Error {
                        y&070 != 0 && !m.Sense[(y&070)>>3] ||
                        y&070 == 010;
                if (ib == 0) == cond {
-                       m.PC++;
+                       m.PC++
                }
                if y&01000 == 01000 {
-                       m.OV = 0;
+                       m.OV = 0
                }
        case opSFT:
                for count := inst&0777; count != 0; count >>= 1 {
                        if count&1 == 0 {
-                               continue;
+                               continue
                        }
                        switch (inst>>9)&017 {
                        case 001:       // rotate AC left
-                               m.AC = (m.AC << 1 | m.AC >> 17)&mask;
+                               m.AC = (m.AC << 1 | m.AC >> 17)&mask
                        case 002:       // rotate IO left
-                               m.IO = (m.IO << 1 | m.IO >> 17)&mask;
+                               m.IO = (m.IO << 1 | m.IO >> 17)&mask
                        case 003:       // rotate AC and IO left.
                                w := uint64(m.AC)<<18 | uint64(m.IO);
                                w = w<<1 | w>>35;
                                m.AC = Word(w>>18)&mask;
                                m.IO = Word(w)&mask;
                        case 005:       // shift AC left (excluding sign bit)
-                               m.AC = (m.AC << 1 | m.AC >> 17)&mask&^sign | m.AC & sign;
+                               m.AC = (m.AC << 1 | m.AC >> 17)&mask&^sign | m.AC & sign
                        case 006:       // shift IO left (excluding sign bit)
-                               m.IO = (m.IO << 1 | m.IO >> 17)&mask&^sign | m.IO & sign;
+                               m.IO = (m.IO << 1 | m.IO >> 17)&mask&^sign | m.IO & sign
                        case 007:       // shift AC and IO left (excluding AC's sign bit)
                                w := uint64(m.AC)<<18 | uint64(m.IO);
                                w = w<<1 | w>>35;
                                m.AC = Word(w>>18)&mask&^sign | m.AC & sign;
                                m.IO = Word(w)&mask&^sign | m.AC & sign;
                        case 011:       // rotate AC right
-                               m.AC = (m.AC >> 1 | m.AC << 17)&mask;
+                               m.AC = (m.AC >> 1 | m.AC << 17)&mask
                        case 012:       // rotate IO right
-                               m.IO = (m.IO >> 1 | m.IO << 17)&mask;
+                               m.IO = (m.IO >> 1 | m.IO << 17)&mask
                        case 013:       // rotate AC and IO right
                                w := uint64(m.AC)<<18 | uint64(m.IO);
                                w = w>>1 | w<<35;
                                m.AC = Word(w>>18)&mask;
                                m.IO = Word(w)&mask;
                        case 015:       // shift AC right (excluding sign bit)
-                               m.AC = m.AC >> 1 | m.AC & sign;
+                               m.AC = m.AC >> 1 | m.AC & sign
                        case 016:       // shift IO right (excluding sign bit)
-                               m.IO = m.IO >> 1 | m.IO & sign;
+                               m.IO = m.IO >> 1 | m.IO & sign
                        case 017:       // shift AC and IO right (excluding AC's sign bit)
                                w := uint64(m.AC)<<18 | uint64(m.IO);
                                w = w>>1;
                                m.AC = Word(w>>18) | m.AC & sign;
                                m.IO = Word(w)&mask;
                        default:
-                               goto Unknown;
+                               goto Unknown
                        }
                }
        case opLAW:
                if ib == 0 {
-                       m.AC = y;
+                       m.AC = y
                } else {
-                       m.AC = y^mask;
+                       m.AC = y^mask
                }
        case opIOT:
-               t.Trap(y);
+               t.Trap(y)
        case opOPR:
                if y&0200 == 0200 {
-                       m.AC = 0;
+                       m.AC = 0
                }
                if y&04000 == 04000 {
-                       m.IO = 0;
+                       m.IO = 0
                }
                if y&01000 == 01000 {
-                       m.AC ^= mask;
+                       m.AC ^= mask
                }
                if y&0400 == 0400 {
                        m.PC--;
@@ -337,14 +337,14 @@ func (m *M) run(inst Word, t Trapper) os.Error {
                switch i, f := y&7, y&010 == 010; {
                case i == 7:
                        for i := 2; i < 7; i++ {
-                               m.Flag[i] = f;
+                               m.Flag[i] = f
                        }
                case i >= 2:
-                       m.Flag[i] = f;
+                       m.Flag[i] = f
                }
        default:
        Unknown:
-               return UnknownInstrError{inst, m.PC - 1};
+               return UnknownInstrError{inst, m.PC - 1}
        }
        return nil;
 }
@@ -358,29 +358,29 @@ func (m *M) Load(r io.Reader) os.Error {
                line, err := b.ReadString('\n');
                if err != nil {
                        if err != os.EOF {
-                               return err;
+                               return err
                        }
                        break;
                }
                // look for ^[ +]([0-9]+)\t([0-9]+)
                if line[0] != ' ' && line[0] != '+' {
-                       continue;
+                       continue
                }
                i := 1;
                a := Word(0);
                for ; i < len(line) && '0' <= line[i] && line[i] <= '7'; i++ {
-                       a = a*8 + Word(line[i]-'0');
+                       a = a*8 + Word(line[i]-'0')
                }
                if i >= len(line) || line[i] != '\t' || i == 1 {
-                       continue;
+                       continue
                }
                v := Word(0);
                j := i;
                for i++; i < len(line) && '0' <= line[i] && line[i] <= '7'; i++ {
-                       v = v*8 + Word(line[i]-'0');
+                       v = v*8 + Word(line[i]-'0')
                }
                if i == j {
-                       continue;
+                       continue
                }
                m.Mem[a] = v;
        }
index 3927a986c96acfa116d66ed9e475e52b9e9a4b4b..a09cd8c7260419bc83bdda210321e1b7d86d89e5 100644 (file)
@@ -38,12 +38,12 @@ import (
 func main() {
        runtime.LockOSThread();
        if srpc.Enabled() {
-               go srpc.ServeRuntime();
+               go srpc.ServeRuntime()
        }
 
        w, err := av.Init(av.SubsystemVideo, 512, 512);
        if err != nil {
-               log.Exitf("av.Init: %s", err);
+               log.Exitf("av.Init: %s", err)
        }
 
        go quitter(w.QuitChan());
@@ -53,13 +53,13 @@ func main() {
        m.PC = 4;
        f := bytes.NewBuffer(strings.Bytes(spacewarCode));
        if err = m.Load(f); err != nil {
-               log.Exitf("loading %s: %s", "spacewar.lst", err);
+               log.Exitf("loading %s: %s", "spacewar.lst", err)
        }
        for err == nil {
                //fmt.Printf("step PC=%06o ", m.PC);
                //fmt.Printf("inst=%06o AC=%06o IO=%06o OV=%o\n",
                //      m.Mem[m.PC], m.AC, m.IO, m.OV);
-               err = m.Step();
+               err = m.Step()
        }
        log.Exitf("step: %s", err);
 }
@@ -89,7 +89,7 @@ type SpacewarPDP1 struct {
 
 func min(a, b int) int {
        if a < b {
-               return a;
+               return a
        }
        return b;
 }
@@ -103,7 +103,7 @@ func (m *SpacewarPDP1) Init(ctxt draw.Context) {
        m.colorModel = m.screen.ColorModel();
        m.pix = make([][]uint8, m.dy);
        for i := range m.pix {
-               m.pix[i] = make([]uint8, m.dx);
+               m.pix[i] = make([]uint8, m.dx)
        }
        m.cmap = make([]image.Color, 256);
        for i := range m.cmap {
@@ -138,7 +138,7 @@ func (m *SpacewarPDP1) Step() os.Error {
                        m.flush();
                        t := time.Nanoseconds();
                        if t >= m.frameTime + 3 * frameDelay {
-                               m.frameTime = t;
+                               m.frameTime = t
                        } else {
                                m.frameTime += frameDelay;
                                for t < m.frameTime {
@@ -163,7 +163,7 @@ func (m *SpacewarPDP1) Trap(y pdp1.Word) {
                        m.pix[y][x] = n;
                }
        case 011:
-               m.IO = m.ctl;
+               m.IO = m.ctl
        }
 }
 
@@ -183,13 +183,13 @@ func (m *SpacewarPDP1) pollInput() {
                select {
                case ch := <-m.kc:
                        if 0 <= ch && ch < len(ctlBits) {
-                               m.ctl |= ctlBits[ch];
+                               m.ctl |= ctlBits[ch]
                        }
                        if 0 <= -ch && -ch < len(ctlBits) {
-                               m.ctl &^= ctlBits[-ch];
+                               m.ctl &^= ctlBits[-ch]
                        }
                default:
-                       return;
+                       return
                }
        }
 }
index 0c85df84439916b169f4ad3bcd8a61e627fa984f..3a2e74b267f0782a44c7f70c2b1f6892107b805e 100644 (file)
@@ -55,7 +55,7 @@ func (v *Map) String() string {
        first := true;
        for key, val := range v.m {
                if !first {
-                       fmt.Fprintf(b, ", ");
+                       fmt.Fprintf(b, ", ")
                }
                fmt.Fprintf(b, "\"%s\": %v", key, val.String());
                first = false;
@@ -73,7 +73,7 @@ func (v *Map) Get(key string) Var {
        v.mu.Lock();
        defer v.mu.Unlock();
        if av, ok := v.m[key]; ok {
-               return av;
+               return av
        }
        return nil;
 }
@@ -95,14 +95,14 @@ func (v *Map) Add(key string, delta int64) {
 
        // Add to Int; ignore otherwise.
        if iv, ok := av.(*Int); ok {
-               iv.Add(delta);
+               iv.Add(delta)
        }
 }
 
 // TODO(rsc): Make sure map access in separate thread is safe.
 func (v *Map) iterate(c chan<- KeyValue) {
        for k, v := range v.m {
-               c <- KeyValue{k, v};
+               c <- KeyValue{k, v}
        }
        close(c);
 }
@@ -140,7 +140,7 @@ func Publish(name string, v Var) {
        mutex.Lock();
        defer mutex.Unlock();
        if _, existing := vars[name]; existing {
-               log.Crash("Reuse of exported var name:", name);
+               log.Crash("Reuse of exported var name:", name)
        }
        vars[name] = v;
 }
@@ -148,7 +148,7 @@ func Publish(name string, v Var) {
 // Get retrieves a named exported variable.
 func Get(name string) Var {
        if v, ok := vars[name]; ok {
-               return v;
+               return v
        }
        return nil;
 }
@@ -184,7 +184,7 @@ func NewString(name string) *String {
 // TODO(rsc): Make sure map access in separate thread is safe.
 func iterate(c chan<- KeyValue) {
        for k, v := range vars {
-               c <- KeyValue{k, v};
+               c <- KeyValue{k, v}
        }
        close(c);
 }
@@ -201,7 +201,7 @@ func expvarHandler(c *http.Conn, req *http.Request) {
        first := true;
        for name, value := range vars {
                if !first {
-                       fmt.Fprintf(c, ",\n");
+                       fmt.Fprintf(c, ",\n")
                }
                first = false;
                fmt.Fprintf(c, "  %q: %s", name, value);
index 51c78d5a071b5be41093824c32ad07908e17cbd5..cbbb2cbefe88d86236746f6bd1f2ee3e2b30bf81 100644 (file)
@@ -12,36 +12,36 @@ import (
 func TestInt(t *testing.T) {
        reqs := NewInt("requests");
        if reqs.i != 0 {
-               t.Errorf("reqs.i = %v, want 4", reqs.i);
+               t.Errorf("reqs.i = %v, want 4", reqs.i)
        }
        if reqs != Get("requests").(*Int) {
-               t.Errorf("Get() failed.");
+               t.Errorf("Get() failed.")
        }
 
        reqs.Add(1);
        reqs.Add(3);
        if reqs.i != 4 {
-               t.Errorf("reqs.i = %v, want 4", reqs.i);
+               t.Errorf("reqs.i = %v, want 4", reqs.i)
        }
 
        if s := reqs.String(); s != "4" {
-               t.Errorf("reqs.String() = %q, want \"4\"", s);
+               t.Errorf("reqs.String() = %q, want \"4\"", s)
        }
 }
 
 func TestString(t *testing.T) {
        name := NewString("my-name");
        if name.s != "" {
-               t.Errorf("name.s = %q, want \"\"", name.s);
+               t.Errorf("name.s = %q, want \"\"", name.s)
        }
 
        name.Set("Mike");
        if name.s != "Mike" {
-               t.Errorf("name.s = %q, want \"Mike\"", name.s);
+               t.Errorf("name.s = %q, want \"Mike\"", name.s)
        }
 
        if s := name.String(); s != "\"Mike\"" {
-               t.Errorf("reqs.String() = %q, want \"\"Mike\"\"", s);
+               t.Errorf("reqs.String() = %q, want \"\"Mike\"\"", s)
        }
 }
 
@@ -52,10 +52,10 @@ func TestMapCounter(t *testing.T) {
        colours.Add("red", 2);
        colours.Add("blue", 4);
        if x := colours.m["red"].(*Int).i; x != 3 {
-               t.Errorf("colours.m[\"red\"] = %v, want 3", x);
+               t.Errorf("colours.m[\"red\"] = %v, want 3", x)
        }
        if x := colours.m["blue"].(*Int).i; x != 4 {
-               t.Errorf("colours.m[\"blue\"] = %v, want 4", x);
+               t.Errorf("colours.m[\"blue\"] = %v, want 4", x)
        }
 
        // colours.String() should be '{"red":3, "blue":4}',
@@ -63,17 +63,17 @@ func TestMapCounter(t *testing.T) {
        s := colours.String();
        j, ok, errtok := json.StringToJson(s);
        if !ok {
-               t.Errorf("colours.String() isn't valid JSON: %v", errtok);
+               t.Errorf("colours.String() isn't valid JSON: %v", errtok)
        }
        if j.Kind() != json.MapKind {
-               t.Error("colours.String() didn't produce a map.");
+               t.Error("colours.String() didn't produce a map.")
        }
        red := j.Get("red");
        if red.Kind() != json.NumberKind {
-               t.Error("red.Kind() is not a NumberKind.");
+               t.Error("red.Kind() is not a NumberKind.")
        }
        if x := red.Number(); x != 3 {
-               t.Error("red = %v, want 3", x);
+               t.Error("red = %v, want 3", x)
        }
 }
 
@@ -81,11 +81,11 @@ func TestIntFunc(t *testing.T) {
        x := int(4);
        ix := IntFunc(func() int64 { return int64(x) });
        if s := ix.String(); s != "4" {
-               t.Errorf("ix.String() = %v, want 4", s);
+               t.Errorf("ix.String() = %v, want 4", s)
        }
 
        x++;
        if s := ix.String(); s != "5" {
-               t.Errorf("ix.String() = %v, want 5", s);
+               t.Errorf("ix.String() = %v, want 5", s)
        }
 }
index 011b48b69236b2f4df3eee72ea5a1c081199060a..a88b2d178594fb89195559e1a9cd377dc47ac65b 100644 (file)
@@ -52,9 +52,9 @@ import (
 func atob(str string) (value bool, ok bool) {
        switch str {
        case "1", "t", "T", "true", "TRUE", "True":
-               return true, true;
+               return true, true
        case "0", "f", "F", "false", "FALSE", "False":
-               return false, true;
+               return false, true
        }
        return false, false;
 }
@@ -228,14 +228,14 @@ var flags *allFlags = &allFlags{make(map[string]*Flag), make(map[string]*Flag),
 // VisitAll visits the flags, calling fn for each. It visits all flags, even those not set.
 func VisitAll(fn func(*Flag)) {
        for _, f := range flags.formal {
-               fn(f);
+               fn(f)
        }
 }
 
 // Visit visits the flags, calling fn for each. It visits only those flags that have been set.
 func Visit(fn func(*Flag)) {
        for _, f := range flags.actual {
-               fn(f);
+               fn(f)
        }
 }
 
@@ -243,7 +243,7 @@ func Visit(fn func(*Flag)) {
 func Lookup(name string) *Flag {
        f, ok := flags.formal[name];
        if !ok {
-               return nil;
+               return nil
        }
        return f;
 }
@@ -253,11 +253,11 @@ func Lookup(name string) *Flag {
 func Set(name, value string) bool {
        f, ok := flags.formal[name];
        if !ok {
-               return false;
+               return false
        }
        ok = f.Value.set(value);
        if !ok {
-               return false;
+               return false
        }
        flags.actual[name] = f;
        return true;
@@ -269,10 +269,10 @@ func PrintDefaults() {
                format := "  -%s=%s: %s\n";
                if _, ok := f.Value.(*stringValue); ok {
                        // put quotes on the value
-                       format = "  -%s=%q: %s\n";
+                       format = "  -%s=%q: %s\n"
                }
                fmt.Fprintf(os.Stderr, format, f.Name, f.DefValue, f.Usage);
-       });
+       })
 }
 
 // Usage prints to standard error a default usage message documenting all defined flags.
@@ -289,7 +289,7 @@ func NFlag() int    { return len(flags.actual) }
 func Arg(i int) string {
        i += flags.first_arg;
        if i < 0 || i >= len(os.Args) {
-               return "";
+               return ""
        }
        return os.Args[i];
 }
@@ -314,7 +314,7 @@ func add(name string, value FlagValue, usage string) {
 // BoolVar defines a bool flag with specified name, default value, and usage string.
 // The argument p points to a bool variable in which to store the value of the flag.
 func BoolVar(p *bool, name string, value bool, usage string) {
-       add(name, newBoolValue(value, p), usage);
+       add(name, newBoolValue(value, p), usage)
 }
 
 // Bool defines a bool flag with specified name, default value, and usage string.
@@ -328,7 +328,7 @@ func Bool(name string, value bool, usage string) *bool {
 // IntVar defines an int flag with specified name, default value, and usage string.
 // The argument p points to an int variable in which to store the value of the flag.
 func IntVar(p *int, name string, value int, usage string) {
-       add(name, newIntValue(value, p), usage);
+       add(name, newIntValue(value, p), usage)
 }
 
 // Int defines an int flag with specified name, default value, and usage string.
@@ -342,7 +342,7 @@ func Int(name string, value int, usage string) *int {
 // Int64Var defines an int64 flag with specified name, default value, and usage string.
 // The argument p points to an int64 variable in which to store the value of the flag.
 func Int64Var(p *int64, name string, value int64, usage string) {
-       add(name, newInt64Value(value, p), usage);
+       add(name, newInt64Value(value, p), usage)
 }
 
 // Int64 defines an int64 flag with specified name, default value, and usage string.
@@ -356,7 +356,7 @@ func Int64(name string, value int64, usage string) *int64 {
 // UintVar defines a uint flag with specified name, default value, and usage string.
 // The argument p points to a uint variable in which to store the value of the flag.
 func UintVar(p *uint, name string, value uint, usage string) {
-       add(name, newUintValue(value, p), usage);
+       add(name, newUintValue(value, p), usage)
 }
 
 // Uint defines a uint flag with specified name, default value, and usage string.
@@ -370,7 +370,7 @@ func Uint(name string, value uint, usage string) *uint {
 // Uint64Var defines a uint64 flag with specified name, default value, and usage string.
 // The argument p points to a uint64 variable in which to store the value of the flag.
 func Uint64Var(p *uint64, name string, value uint64, usage string) {
-       add(name, newUint64Value(value, p), usage);
+       add(name, newUint64Value(value, p), usage)
 }
 
 // Uint64 defines a uint64 flag with specified name, default value, and usage string.
@@ -384,7 +384,7 @@ func Uint64(name string, value uint64, usage string) *uint64 {
 // StringVar defines a string flag with specified name, default value, and usage string.
 // The argument p points to a string variable in which to store the value of the flag.
 func StringVar(p *string, name, value string, usage string) {
-       add(name, newStringValue(value, p), usage);
+       add(name, newStringValue(value, p), usage)
 }
 
 // String defines a string flag with specified name, default value, and usage string.
@@ -398,7 +398,7 @@ func String(name, value string, usage string) *string {
 // FloatVar defines a float flag with specified name, default value, and usage string.
 // The argument p points to a float variable in which to store the value of the flag.
 func FloatVar(p *float, name string, value float, usage string) {
-       add(name, newFloatValue(value, p), usage);
+       add(name, newFloatValue(value, p), usage)
 }
 
 // Float defines a float flag with specified name, default value, and usage string.
@@ -412,7 +412,7 @@ func Float(name string, value float, usage string) *float {
 // Float64Var defines a float64 flag with specified name, default value, and usage string.
 // The argument p points to a float64 variable in which to store the value of the flag.
 func Float64Var(p *float64, name string, value float64, usage string) {
-       add(name, newFloat64Value(value, p), usage);
+       add(name, newFloat64Value(value, p), usage)
 }
 
 // Float64 defines a float64 flag with specified name, default value, and usage string.
@@ -428,19 +428,19 @@ func (f *allFlags) parseOne(index int) (ok bool, next int) {
        s := os.Args[index];
        f.first_arg = index;    // until proven otherwise
        if len(s) == 0 {
-               return false, -1;
+               return false, -1
        }
        if s[0] != '-' {
-               return false, -1;
+               return false, -1
        }
        num_minuses := 1;
        if len(s) == 1 {
-               return false, index;
+               return false, index
        }
        if s[1] == '-' {
                num_minuses++;
                if len(s) == 2 {        // "--" terminates the flags
-                       return false, index+1;
+                       return false, index+1
                }
        }
        name := s[num_minuses : len(s)];
@@ -482,7 +482,7 @@ func (f *allFlags) parseOne(index int) (ok bool, next int) {
                                os.Exit(2);
                        }
                } else {
-                       f.set("true");
+                       f.set("true")
                }
        } else {
                // It must have a value, which might be the next argument.
@@ -518,7 +518,7 @@ func Parse() {
                        i = next;
                }
                if !ok {
-                       break;
+                       break
                }
        }
 }
index 9a8b087b59df6c226ad24094b9d46fd944a57eb8..0acfc2f96f7f41281100316ff33ae27e43e45190 100644 (file)
@@ -22,7 +22,7 @@ var (
 
 func boolString(s string) string {
        if s == "0" {
-               return "false";
+               return "false"
        }
        return "true";
 }
@@ -36,12 +36,12 @@ func TestEverything(t *testing.T) {
                        ok := false;
                        switch {
                        case f.Value.String() == desired:
-                               ok = true;
+                               ok = true
                        case f.Name == "test_bool" && f.Value.String() == boolString(desired):
-                               ok = true;
+                               ok = true
                        }
                        if !ok {
-                               t.Error("Visit: bad value", f.Value.String(), "for", f.Name);
+                               t.Error("Visit: bad value", f.Value.String(), "for", f.Name)
                        }
                }
        };
@@ -49,7 +49,7 @@ func TestEverything(t *testing.T) {
        if len(m) != 8 {
                t.Error("VisitAll misses some flags");
                for k, v := range m {
-                       t.Log(k, *v);
+                       t.Log(k, *v)
                }
        }
        m = make(map[string]*Flag);
@@ -57,7 +57,7 @@ func TestEverything(t *testing.T) {
        if len(m) != 0 {
                t.Errorf("Visit sees unset flags");
                for k, v := range m {
-                       t.Log(k, *v);
+                       t.Log(k, *v)
                }
        }
        // Now set all flags
@@ -74,7 +74,7 @@ func TestEverything(t *testing.T) {
        if len(m) != 8 {
                t.Error("Visit fails after set");
                for k, v := range m {
-                       t.Log(k, *v);
+                       t.Log(k, *v)
                }
        }
 }
index 07b1b221a9074d03f28c88b080b595d7b31ef4c1..8febdac74542eb1b9de4838f7322875c0d27538f 100644 (file)
@@ -17,7 +17,7 @@ func TestFmtInterface(t *testing.T) {
        i1 = "abc";
        s := Sprintf("%s", i1);
        if s != "abc" {
-               t.Errorf(`Sprintf("%%s", empty("abc")) = %q want %q`, s, "abc");
+               t.Errorf(`Sprintf("%%s", empty("abc")) = %q want %q`, s, "abc")
        }
 }
 
@@ -201,7 +201,7 @@ func TestSprintf(t *testing.T) {
                        for ; j < len(s); j++ {
                                c := s[j];
                                if (c < '0' || c > '9') && (c < 'a' || c > 'f') {
-                                       break;
+                                       break
                                }
                        }
                        s = s[0:i]+"PTR"+s[j:len(s)];
@@ -210,9 +210,9 @@ func TestSprintf(t *testing.T) {
                        if _, ok := tt.val.(string); ok {
                                // Don't requote the already-quoted strings.
                                // It's too confusing to read the errors.
-                               t.Errorf("Sprintf(%q, %q) = %s want %s", tt.fmt, tt.val, s, tt.out);
+                               t.Errorf("Sprintf(%q, %q) = %s want %s", tt.fmt, tt.val, s, tt.out)
                        } else {
-                               t.Errorf("Sprintf(%q, %v) = %q want %q", tt.fmt, tt.val, s, tt.out);
+                               t.Errorf("Sprintf(%q, %v) = %q want %q", tt.fmt, tt.val, s, tt.out)
                        }
                }
        }
@@ -224,14 +224,14 @@ func (*flagPrinter) Format(f State, c int) {
        s := "%";
        for i := 0; i < 128; i++ {
                if f.Flag(i) {
-                       s += string(i);
+                       s += string(i)
                }
        }
        if w, ok := f.Width(); ok {
-               s += Sprintf("%d", w);
+               s += Sprintf("%d", w)
        }
        if p, ok := f.Precision(); ok {
-               s += Sprintf(".%d", p);
+               s += Sprintf(".%d", p)
        }
        s += string(c);
        io.WriteString(f, "["+s+"]");
@@ -262,7 +262,7 @@ func TestFlagParser(t *testing.T) {
        for _, tt := range flagtests {
                s := Sprintf(tt.in, &flagprinter);
                if s != tt.out {
-                       t.Errorf("Sprintf(%q, &flagprinter) => %q, want %q", tt.in, s, tt.out);
+                       t.Errorf("Sprintf(%q, &flagprinter) => %q, want %q", tt.in, s, tt.out)
                }
        }
 }
@@ -287,7 +287,7 @@ func TestStructPrinter(t *testing.T) {
        for _, tt := range tests {
                out := Sprintf(tt.fmt, s);
                if out != tt.out {
-                       t.Errorf("Sprintf(%q, &s) = %q, want %q", tt.fmt, out, tt.out);
+                       t.Errorf("Sprintf(%q, &s) = %q, want %q", tt.fmt, out, tt.out)
                }
        }
 }
@@ -297,12 +297,12 @@ func presentInMap(s string, a []string, t *testing.T) {
        for i := 0; i < len(a); i++ {
                loc := strings.Index(s, a[i]);
                if loc < 0 {
-                       t.Errorf("map print: expected to find %q in %q", a[i], s);
+                       t.Errorf("map print: expected to find %q in %q", a[i], s)
                }
                // make sure the match ends here
                loc += len(a[i]);
                if loc >= len(s) || (s[loc] != ' ' && s[loc] != ']') {
-                       t.Errorf("map print: %q not properly terminated in %q", a[i], s);
+                       t.Errorf("map print: %q not properly terminated in %q", a[i], s)
                }
        }
 }
@@ -311,7 +311,7 @@ func TestMapPrinter(t *testing.T) {
        m0 := make(map[int]string);
        s := Sprint(m0);
        if s != "map[]" {
-               t.Errorf("empty map printed as %q not %q", s, "map[]");
+               t.Errorf("empty map printed as %q not %q", s, "map[]")
        }
        m1 := map[int]string{1: "one", 2: "two", 3: "three"};
        a := []string{"1:one", "2:two", "3:three"};
@@ -324,11 +324,11 @@ func TestEmptyMap(t *testing.T) {
        var m map[string]int;
        s := Sprint(m);
        if s != emptyMapStr {
-               t.Errorf("nil map printed as %q not %q", s, emptyMapStr);
+               t.Errorf("nil map printed as %q not %q", s, emptyMapStr)
        }
        m = make(map[string]int);
        s = Sprint(m);
        if s != emptyMapStr {
-               t.Errorf("empty map printed as %q not %q", s, emptyMapStr);
+               t.Errorf("empty map printed as %q not %q", s, emptyMapStr)
        }
 }
index bd09017719202c97017374d0bd8e4f419f2b0e53..79817bfd46e983d82a9eb338a7506556d7a50a58 100644 (file)
@@ -127,20 +127,20 @@ func (f *Fmt) pad(s string) {
                w -= len(s);
                padchar := byte(' ');
                if left && f.zero {
-                       padchar = '0';
+                       padchar = '0'
                }
                if w > 0 {
                        if w > nByte {
-                               w = nByte;
+                               w = nByte
                        }
                        buf := make([]byte, w);
                        for i := 0; i < w; i++ {
-                               buf[i] = padchar;
+                               buf[i] = padchar
                        }
                        if left {
-                               s = string(buf)+s;
+                               s = string(buf)+s
                        } else {
-                               s = s+string(buf);
+                               s = s+string(buf)
                        }
                }
        }
@@ -166,9 +166,9 @@ func putint(buf []byte, base, val uint64, digits string) int {
 // Fmt_boolean formats a boolean.
 func (f *Fmt) Fmt_boolean(v bool) *Fmt {
        if v {
-               f.pad("true");
+               f.pad("true")
        } else {
-               f.pad("false");
+               f.pad("false")
        }
        f.clearflags();
        return f;
@@ -179,7 +179,7 @@ func (f *Fmt) integer(a int64, base uint, is_signed bool, digits string) string
        var buf [nByte]byte;
        negative := is_signed && a < 0;
        if negative {
-               a = -a;
+               a = -a
        }
 
        // two ways to ask for extra leading zero digits: %.3d or %03d.
@@ -191,7 +191,7 @@ func (f *Fmt) integer(a int64, base uint, is_signed bool, digits string) string
        } else if f.zero && f.wid_present && !f.minus && f.wid > 0 {
                prec = f.wid;
                if negative || f.plus || f.space {
-                       prec--; // leave room for sign
+                       prec--  // leave room for sign
                }
        }
 
@@ -357,7 +357,7 @@ func (f *Fmt) Fmt_c(v int) *Fmt {
 func (f *Fmt) Fmt_s(s string) *Fmt {
        if f.prec_present {
                if f.prec < len(s) {
-                       s = s[0 : f.prec];
+                       s = s[0 : f.prec]
                }
        }
        f.pad(s);
@@ -370,7 +370,7 @@ func (f *Fmt) Fmt_sx(s string) *Fmt {
        t := "";
        for i := 0; i < len(s); i++ {
                if i > 0 && f.space {
-                       t += " ";
+                       t += " "
                }
                v := s[i];
                t += string(ldigits[v>>4]);
@@ -398,9 +398,9 @@ func (f *Fmt) Fmt_sX(s string) *Fmt {
 func (f *Fmt) Fmt_q(s string) *Fmt {
        var quoted string;
        if f.sharp && strconv.CanBackquote(s) {
-               quoted = "`"+s+"`";
+               quoted = "`"+s+"`"
        } else {
-               quoted = strconv.Quote(s);
+               quoted = strconv.Quote(s)
        }
        f.pad(quoted);
        f.clearflags();
@@ -411,7 +411,7 @@ func (f *Fmt) Fmt_q(s string) *Fmt {
 
 func doPrec(f *Fmt, def int) int {
        if f.prec_present {
-               return f.prec;
+               return f.prec
        }
        return def;
 }
@@ -424,27 +424,27 @@ func fmtString(f *Fmt, s string) *Fmt {
 
 // Fmt_e64 formats a float64 in the form -1.23e+12.
 func (f *Fmt) Fmt_e64(v float64) *Fmt {
-       return fmtString(f, strconv.Ftoa64(v, 'e', doPrec(f, 6)));
+       return fmtString(f, strconv.Ftoa64(v, 'e', doPrec(f, 6)))
 }
 
 // Fmt_E64 formats a float64 in the form -1.23E+12.
 func (f *Fmt) Fmt_E64(v float64) *Fmt {
-       return fmtString(f, strconv.Ftoa64(v, 'E', doPrec(f, 6)));
+       return fmtString(f, strconv.Ftoa64(v, 'E', doPrec(f, 6)))
 }
 
 // Fmt_f64 formats a float64 in the form -1.23.
 func (f *Fmt) Fmt_f64(v float64) *Fmt {
-       return fmtString(f, strconv.Ftoa64(v, 'f', doPrec(f, 6)));
+       return fmtString(f, strconv.Ftoa64(v, 'f', doPrec(f, 6)))
 }
 
 // Fmt_g64 formats a float64 in the 'f' or 'e' form according to size.
 func (f *Fmt) Fmt_g64(v float64) *Fmt {
-       return fmtString(f, strconv.Ftoa64(v, 'g', doPrec(f, -1)));
+       return fmtString(f, strconv.Ftoa64(v, 'g', doPrec(f, -1)))
 }
 
 // Fmt_g64 formats a float64 in the 'f' or 'E' form according to size.
 func (f *Fmt) Fmt_G64(v float64) *Fmt {
-       return fmtString(f, strconv.Ftoa64(v, 'G', doPrec(f, -1)));
+       return fmtString(f, strconv.Ftoa64(v, 'G', doPrec(f, -1)))
 }
 
 // Fmt_fb64 formats a float64 in the form -123p3 (exponent is power of 2).
@@ -456,27 +456,27 @@ func (f *Fmt) Fmt_fb64(v float64) *Fmt    { return fmtString(f, strconv.Ftoa64(v, '
 
 // Fmt_e32 formats a float32 in the form -1.23e+12.
 func (f *Fmt) Fmt_e32(v float32) *Fmt {
-       return fmtString(f, strconv.Ftoa32(v, 'e', doPrec(f, 6)));
+       return fmtString(f, strconv.Ftoa32(v, 'e', doPrec(f, 6)))
 }
 
 // Fmt_E32 formats a float32 in the form -1.23E+12.
 func (f *Fmt) Fmt_E32(v float32) *Fmt {
-       return fmtString(f, strconv.Ftoa32(v, 'e', doPrec(f, 6)));
+       return fmtString(f, strconv.Ftoa32(v, 'e', doPrec(f, 6)))
 }
 
 // Fmt_f32 formats a float32 in the form -1.23.
 func (f *Fmt) Fmt_f32(v float32) *Fmt {
-       return fmtString(f, strconv.Ftoa32(v, 'f', doPrec(f, 6)));
+       return fmtString(f, strconv.Ftoa32(v, 'f', doPrec(f, 6)))
 }
 
 // Fmt_g32 formats a float32 in the 'f' or 'e' form according to size.
 func (f *Fmt) Fmt_g32(v float32) *Fmt {
-       return fmtString(f, strconv.Ftoa32(v, 'g', doPrec(f, -1)));
+       return fmtString(f, strconv.Ftoa32(v, 'g', doPrec(f, -1)))
 }
 
 // Fmt_G32 formats a float32 in the 'f' or 'E' form according to size.
 func (f *Fmt) Fmt_G32(v float32) *Fmt {
-       return fmtString(f, strconv.Ftoa32(v, 'G', doPrec(f, -1)));
+       return fmtString(f, strconv.Ftoa32(v, 'G', doPrec(f, -1)))
 }
 
 // Fmt_fb32 formats a float32 in the form -123p3 (exponent is power of 2).
@@ -485,28 +485,28 @@ func (f *Fmt) Fmt_fb32(v float32) *Fmt    { return fmtString(f, strconv.Ftoa32(v, '
 // float
 func (x *Fmt) f(a float) *Fmt {
        if strconv.FloatSize == 32 {
-               return x.Fmt_f32(float32(a));
+               return x.Fmt_f32(float32(a))
        }
        return x.Fmt_f64(float64(a));
 }
 
 func (x *Fmt) e(a float) *Fmt {
        if strconv.FloatSize == 32 {
-               return x.Fmt_e32(float32(a));
+               return x.Fmt_e32(float32(a))
        }
        return x.Fmt_e64(float64(a));
 }
 
 func (x *Fmt) g(a float) *Fmt {
        if strconv.FloatSize == 32 {
-               return x.Fmt_g32(float32(a));
+               return x.Fmt_g32(float32(a))
        }
        return x.Fmt_g64(float64(a));
 }
 
 func (x *Fmt) fb(a float) *Fmt {
        if strconv.FloatSize == 32 {
-               return x.Fmt_fb32(float32(a));
+               return x.Fmt_fb32(float32(a))
        }
        return x.Fmt_fb64(float64(a));
 }
index a27c65cf79410d246d81b5b2ccbda9a713e8418e..4d7dd4c7f9eddd49b20b8ff7aff92eb7c57c6bd2 100644 (file)
@@ -143,15 +143,15 @@ func (p *pp) Precision() (prec int, ok bool)      { return p.fmt.prec, p.fmt.prec_pre
 func (p *pp) Flag(b int) bool {
        switch b {
        case '-':
-               return p.fmt.minus;
+               return p.fmt.minus
        case '+':
-               return p.fmt.plus;
+               return p.fmt.plus
        case '#':
-               return p.fmt.sharp;
+               return p.fmt.sharp
        case ' ':
-               return p.fmt.space;
+               return p.fmt.space
        case '0':
-               return p.fmt.zero;
+               return p.fmt.zero
        }
        return false;
 }
@@ -160,11 +160,11 @@ func (p *pp) ensure(n int) {
        if len(p.buf) < n {
                newn := allocSize + len(p.buf);
                if newn < n {
-                       newn = n + allocSize;
+                       newn = n + allocSize
                }
                b := make([]byte, newn);
                for i := 0; i < p.n; i++ {
-                       b[i] = p.buf[i];
+                       b[i] = p.buf[i]
                }
                p.buf = b;
        }
@@ -193,7 +193,7 @@ func (p *pp) add(c int) {
                p.buf[p.n] = byte(c);
                p.n++;
        } else {
-               p.addstr(string(c));
+               p.addstr(string(c))
        }
 }
 
@@ -298,7 +298,7 @@ func getField(v *reflect.StructValue, i int) reflect.Value {
        val := v.Field(i);
        if i, ok := val.(*reflect.InterfaceValue); ok {
                if inter := i.Interface(); inter != nil {
-                       return reflect.NewValue(inter);
+                       return reflect.NewValue(inter)
                }
        }
        return val;
@@ -308,7 +308,7 @@ func getField(v *reflect.StructValue, i int) reflect.Value {
 
 func getBool(v reflect.Value) (val bool, ok bool) {
        if b, ok := v.(*reflect.BoolValue); ok {
-               return b.Get(), true;
+               return b.Get(), true
        }
        return;
 }
@@ -316,37 +316,37 @@ func getBool(v reflect.Value) (val bool, ok bool) {
 func getInt(v reflect.Value) (val int64, signed, ok bool) {
        switch v := v.(type) {
        case *reflect.IntValue:
-               return int64(v.Get()), true, true;
+               return int64(v.Get()), true, true
        case *reflect.Int8Value:
-               return int64(v.Get()), true, true;
+               return int64(v.Get()), true, true
        case *reflect.Int16Value:
-               return int64(v.Get()), true, true;
+               return int64(v.Get()), true, true
        case *reflect.Int32Value:
-               return int64(v.Get()), true, true;
+               return int64(v.Get()), true, true
        case *reflect.Int64Value:
-               return int64(v.Get()), true, true;
+               return int64(v.Get()), true, true
        case *reflect.UintValue:
-               return int64(v.Get()), false, true;
+               return int64(v.Get()), false, true
        case *reflect.Uint8Value:
-               return int64(v.Get()), false, true;
+               return int64(v.Get()), false, true
        case *reflect.Uint16Value:
-               return int64(v.Get()), false, true;
+               return int64(v.Get()), false, true
        case *reflect.Uint32Value:
-               return int64(v.Get()), false, true;
+               return int64(v.Get()), false, true
        case *reflect.Uint64Value:
-               return int64(v.Get()), false, true;
+               return int64(v.Get()), false, true
        case *reflect.UintptrValue:
-               return int64(v.Get()), false, true;
+               return int64(v.Get()), false, true
        }
        return;
 }
 
 func getString(v reflect.Value) (val string, ok bool) {
        if v, ok := v.(*reflect.StringValue); ok {
-               return v.Get(), true;
+               return v.Get(), true
        }
        if bytes, ok := v.Interface().([]byte); ok {
-               return string(bytes), true;
+               return string(bytes), true
        }
        return;
 }
@@ -354,10 +354,10 @@ func getString(v reflect.Value) (val string, ok bool) {
 func getFloat32(v reflect.Value) (val float32, ok bool) {
        switch v := v.(type) {
        case *reflect.Float32Value:
-               return float32(v.Get()), true;
+               return float32(v.Get()), true
        case *reflect.FloatValue:
                if v.Type().Size() * 8 == 32 {
-                       return float32(v.Get()), true;
+                       return float32(v.Get()), true
                }
        }
        return;
@@ -367,10 +367,10 @@ func getFloat64(v reflect.Value) (val float64, ok bool) {
        switch v := v.(type) {
        case *reflect.FloatValue:
                if v.Type().Size() * 8 == 64 {
-                       return float64(v.Get()), true;
+                       return float64(v.Get()), true
                }
        case *reflect.Float64Value:
-               return float64(v.Get()), true;
+               return float64(v.Get()), true
        }
        return;
 }
@@ -378,7 +378,7 @@ func getFloat64(v reflect.Value) (val float64, ok bool) {
 func getPtr(v reflect.Value) (val uintptr, ok bool) {
        switch v := v.(type) {
        case *reflect.PtrValue:
-               return uintptr(v.Get()), true;
+               return uintptr(v.Get()), true
        }
        return;
 }
@@ -387,7 +387,7 @@ func getPtr(v reflect.Value) (val uintptr, ok bool) {
 
 func parsenum(s string, start, end int) (n int, got bool, newi int) {
        if start >= end {
-               return 0, false, end;
+               return 0, false, end
        }
        isnum := false;
        num := 0;
@@ -423,20 +423,20 @@ func (p *pp) printField(field reflect.Value, plus, sharp bool, depth int) (was_s
 BigSwitch:
        switch f := field.(type) {
        case *reflect.BoolValue:
-               s = p.fmt.Fmt_boolean(f.Get()).Str();
+               s = p.fmt.Fmt_boolean(f.Get()).Str()
        case *reflect.Float32Value:
-               s = p.fmt.Fmt_g32(f.Get()).Str();
+               s = p.fmt.Fmt_g32(f.Get()).Str()
        case *reflect.Float64Value:
-               s = p.fmt.Fmt_g64(f.Get()).Str();
+               s = p.fmt.Fmt_g64(f.Get()).Str()
        case *reflect.FloatValue:
                if field.Type().Size() * 8 == 32 {
-                       s = p.fmt.Fmt_g32(float32(f.Get())).Str();
+                       s = p.fmt.Fmt_g32(float32(f.Get())).Str()
                } else {
-                       s = p.fmt.Fmt_g64(float64(f.Get())).Str();
+                       s = p.fmt.Fmt_g64(float64(f.Get())).Str()
                }
        case *reflect.StringValue:
                if sharp {
-                       s = p.fmt.Fmt_q(f.Get()).Str();
+                       s = p.fmt.Fmt_q(f.Get()).Str()
                } else {
                        s = p.fmt.Fmt_s(f.Get()).Str();
                        was_string = true;
@@ -446,15 +446,15 @@ BigSwitch:
                        p.addstr(field.Type().String());
                        p.addstr("{");
                } else {
-                       p.addstr("map[");
+                       p.addstr("map[")
                }
                keys := f.Keys();
                for i, key := range keys {
                        if i > 0 {
                                if sharp {
-                                       p.addstr(", ");
+                                       p.addstr(", ")
                                } else {
-                                       p.addstr(" ");
+                                       p.addstr(" ")
                                }
                        }
                        p.printField(key, plus, sharp, depth+1);
@@ -462,13 +462,13 @@ BigSwitch:
                        p.printField(f.Elem(key), plus, sharp, depth+1);
                }
                if sharp {
-                       p.addstr("}");
+                       p.addstr("}")
                } else {
-                       p.addstr("]");
+                       p.addstr("]")
                }
        case *reflect.StructValue:
                if sharp {
-                       p.addstr(field.Type().String());
+                       p.addstr(field.Type().String())
                }
                p.add('{');
                v := f;
@@ -477,9 +477,9 @@ BigSwitch:
                for i := 0; i < v.NumField(); i++ {
                        if i > 0 {
                                if sharp {
-                                       p.addstr(", ");
+                                       p.addstr(", ")
                                } else {
-                                       p.addstr(" ");
+                                       p.addstr(" ")
                                }
                        }
                        if plus || sharp {
@@ -498,32 +498,32 @@ BigSwitch:
                                p.addstr(field.Type().String());
                                p.addstr("(nil)");
                        } else {
-                               s = "<nil>";
+                               s = "<nil>"
                        }
                } else {
-                       return p.printField(value, plus, sharp, depth+1);
+                       return p.printField(value, plus, sharp, depth+1)
                }
        case reflect.ArrayOrSliceValue:
                if sharp {
                        p.addstr(field.Type().String());
                        p.addstr("{");
                } else {
-                       p.addstr("[");
+                       p.addstr("[")
                }
                for i := 0; i < f.Len(); i++ {
                        if i > 0 {
                                if sharp {
-                                       p.addstr(", ");
+                                       p.addstr(", ")
                                } else {
-                                       p.addstr(" ");
+                                       p.addstr(" ")
                                }
                        }
                        p.printField(f.Elem(i), plus, sharp, depth+1);
                }
                if sharp {
-                       p.addstr("}");
+                       p.addstr("}")
                } else {
-                       p.addstr("]");
+                       p.addstr("]")
                }
        case *reflect.PtrValue:
                v := f.Get();
@@ -546,7 +546,7 @@ BigSwitch:
                        p.addstr(field.Type().String());
                        p.addstr(")(");
                        if v == 0 {
-                               p.addstr("nil");
+                               p.addstr("nil")
                        } else {
                                p.fmt.sharp = true;
                                p.addstr(p.fmt.Fmt_ux64(uint64(v)).Str());
@@ -567,7 +567,7 @@ BigSwitch:
                        p.addstr(field.Type().String());
                        p.addstr(")(");
                        if v == 0 {
-                               p.addstr("nil");
+                               p.addstr("nil")
                        } else {
                                p.fmt.sharp = true;
                                p.addstr(p.fmt.Fmt_ux64(uint64(v)).Str());
@@ -581,13 +581,13 @@ BigSwitch:
                v, signed, ok := getInt(field);
                if ok {
                        if signed {
-                               s = p.fmt.Fmt_d64(v).Str();
+                               s = p.fmt.Fmt_d64(v).Str()
                        } else {
                                if sharp {
                                        p.fmt.sharp = true;     // turn on 0x
                                        s = p.fmt.Fmt_ux64(uint64(v)).Str();
                                } else {
-                                       s = p.fmt.Fmt_ud64(uint64(v)).Str();
+                                       s = p.fmt.Fmt_ud64(uint64(v)).Str()
                                }
                        }
                        break;
@@ -615,24 +615,24 @@ func (p *pp) doprintf(format string, v *reflect.StructValue) {
        F:      for ; i < end; i++ {
                        switch format[i] {
                        case '#':
-                               p.fmt.sharp = true;
+                               p.fmt.sharp = true
                        case '0':
-                               p.fmt.zero = true;
+                               p.fmt.zero = true
                        case '+':
-                               p.fmt.plus = true;
+                               p.fmt.plus = true
                        case '-':
-                               p.fmt.minus = true;
+                               p.fmt.minus = true
                        case ' ':
-                               p.fmt.space = true;
+                               p.fmt.space = true
                        default:
-                               break F;
+                               break F
                        }
                }
                // do we have 20 (width)?
                p.fmt.wid, p.fmt.wid_present, i = parsenum(format, i, end);
                // do we have .20 (precision)?
                if i < end && format[i] == '.' {
-                       p.fmt.prec, p.fmt.prec_present, i = parsenum(format, i+1, end);
+                       p.fmt.prec, p.fmt.prec_present, i = parsenum(format, i+1, end)
                }
                c, w = utf8.DecodeRuneInString(format[i:len(format)]);
                i += w;
@@ -666,116 +666,116 @@ func (p *pp) doprintf(format string, v *reflect.StructValue) {
                case 't':
                        if v, ok := getBool(field); ok {
                                if v {
-                                       s = "true";
+                                       s = "true"
                                } else {
-                                       s = "false";
+                                       s = "false"
                                }
                        } else {
-                               goto badtype;
+                               goto badtype
                        }
 
                // int
                case 'b':
                        if v, _, ok := getInt(field); ok {
-                               s = p.fmt.Fmt_b64(uint64(v)).Str();     // always unsigned
+                               s = p.fmt.Fmt_b64(uint64(v)).Str()      // always unsigned
                        } else if v, ok := getFloat32(field); ok {
-                               s = p.fmt.Fmt_fb32(v).Str();
+                               s = p.fmt.Fmt_fb32(v).Str()
                        } else if v, ok := getFloat64(field); ok {
-                               s = p.fmt.Fmt_fb64(v).Str();
+                               s = p.fmt.Fmt_fb64(v).Str()
                        } else {
-                               goto badtype;
+                               goto badtype
                        }
                case 'c':
                        if v, _, ok := getInt(field); ok {
-                               s = p.fmt.Fmt_c(int(v)).Str();
+                               s = p.fmt.Fmt_c(int(v)).Str()
                        } else {
-                               goto badtype;
+                               goto badtype
                        }
                case 'd':
                        if v, signed, ok := getInt(field); ok {
                                if signed {
-                                       s = p.fmt.Fmt_d64(v).Str();
+                                       s = p.fmt.Fmt_d64(v).Str()
                                } else {
-                                       s = p.fmt.Fmt_ud64(uint64(v)).Str();
+                                       s = p.fmt.Fmt_ud64(uint64(v)).Str()
                                }
                        } else {
-                               goto badtype;
+                               goto badtype
                        }
                case 'o':
                        if v, signed, ok := getInt(field); ok {
                                if signed {
-                                       s = p.fmt.Fmt_o64(v).Str();
+                                       s = p.fmt.Fmt_o64(v).Str()
                                } else {
-                                       s = p.fmt.Fmt_uo64(uint64(v)).Str();
+                                       s = p.fmt.Fmt_uo64(uint64(v)).Str()
                                }
                        } else {
-                               goto badtype;
+                               goto badtype
                        }
                case 'x':
                        if v, signed, ok := getInt(field); ok {
                                if signed {
-                                       s = p.fmt.Fmt_x64(v).Str();
+                                       s = p.fmt.Fmt_x64(v).Str()
                                } else {
-                                       s = p.fmt.Fmt_ux64(uint64(v)).Str();
+                                       s = p.fmt.Fmt_ux64(uint64(v)).Str()
                                }
                        } else if v, ok := getString(field); ok {
-                               s = p.fmt.Fmt_sx(v).Str();
+                               s = p.fmt.Fmt_sx(v).Str()
                        } else {
-                               goto badtype;
+                               goto badtype
                        }
                case 'X':
                        if v, signed, ok := getInt(field); ok {
                                if signed {
-                                       s = p.fmt.Fmt_X64(v).Str();
+                                       s = p.fmt.Fmt_X64(v).Str()
                                } else {
-                                       s = p.fmt.Fmt_uX64(uint64(v)).Str();
+                                       s = p.fmt.Fmt_uX64(uint64(v)).Str()
                                }
                        } else if v, ok := getString(field); ok {
-                               s = p.fmt.Fmt_sX(v).Str();
+                               s = p.fmt.Fmt_sX(v).Str()
                        } else {
-                               goto badtype;
+                               goto badtype
                        }
 
                // float
                case 'e':
                        if v, ok := getFloat32(field); ok {
-                               s = p.fmt.Fmt_e32(v).Str();
+                               s = p.fmt.Fmt_e32(v).Str()
                        } else if v, ok := getFloat64(field); ok {
-                               s = p.fmt.Fmt_e64(v).Str();
+                               s = p.fmt.Fmt_e64(v).Str()
                        } else {
-                               goto badtype;
+                               goto badtype
                        }
                case 'E':
                        if v, ok := getFloat32(field); ok {
-                               s = p.fmt.Fmt_E32(v).Str();
+                               s = p.fmt.Fmt_E32(v).Str()
                        } else if v, ok := getFloat64(field); ok {
-                               s = p.fmt.Fmt_E64(v).Str();
+                               s = p.fmt.Fmt_E64(v).Str()
                        } else {
-                               goto badtype;
+                               goto badtype
                        }
                case 'f':
                        if v, ok := getFloat32(field); ok {
-                               s = p.fmt.Fmt_f32(v).Str();
+                               s = p.fmt.Fmt_f32(v).Str()
                        } else if v, ok := getFloat64(field); ok {
-                               s = p.fmt.Fmt_f64(v).Str();
+                               s = p.fmt.Fmt_f64(v).Str()
                        } else {
-                               goto badtype;
+                               goto badtype
                        }
                case 'g':
                        if v, ok := getFloat32(field); ok {
-                               s = p.fmt.Fmt_g32(v).Str();
+                               s = p.fmt.Fmt_g32(v).Str()
                        } else if v, ok := getFloat64(field); ok {
-                               s = p.fmt.Fmt_g64(v).Str();
+                               s = p.fmt.Fmt_g64(v).Str()
                        } else {
-                               goto badtype;
+                               goto badtype
                        }
                case 'G':
                        if v, ok := getFloat32(field); ok {
-                               s = p.fmt.Fmt_G32(v).Str();
+                               s = p.fmt.Fmt_G32(v).Str()
                        } else if v, ok := getFloat64(field); ok {
-                               s = p.fmt.Fmt_G64(v).Str();
+                               s = p.fmt.Fmt_G64(v).Str()
                        } else {
-                               goto badtype;
+                               goto badtype
                        }
 
                // string
@@ -788,27 +788,27 @@ func (p *pp) doprintf(format string, v *reflect.StructValue) {
                                }
                        }
                        if v, ok := getString(field); ok {
-                               s = p.fmt.Fmt_s(v).Str();
+                               s = p.fmt.Fmt_s(v).Str()
                        } else {
-                               goto badtype;
+                               goto badtype
                        }
                case 'q':
                        if v, ok := getString(field); ok {
-                               s = p.fmt.Fmt_q(v).Str();
+                               s = p.fmt.Fmt_q(v).Str()
                        } else {
-                               goto badtype;
+                               goto badtype
                        }
 
                // pointer
                case 'p':
                        if v, ok := getPtr(field); ok {
                                if v == 0 {
-                                       s = "<nil>";
+                                       s = "<nil>"
                                } else {
-                                       s = "0x" + p.fmt.Fmt_uX64(uint64(v)).Str();
+                                       s = "0x" + p.fmt.Fmt_uX64(uint64(v)).Str()
                                }
                        } else {
-                               goto badtype;
+                               goto badtype
                        }
 
                // arbitrary value; do your best
@@ -820,7 +820,7 @@ func (p *pp) doprintf(format string, v *reflect.StructValue) {
 
                // the value's type
                case 'T':
-                       s = field.Type().String();
+                       s = field.Type().String()
 
                default:
                badtype:
@@ -839,7 +839,7 @@ func (p *pp) doprintf(format string, v *reflect.StructValue) {
                        p.addstr("=");
                        p.printField(field, false, false, 0);
                        if fieldnum+1 < v.NumField() {
-                               p.addstr(", ");
+                               p.addstr(", ")
                        }
                }
                p.addstr(")");
@@ -854,12 +854,12 @@ func (p *pp) doprint(v *reflect.StructValue, addspace, addnewline bool) {
                if fieldnum > 0 {
                        _, is_string := field.(*reflect.StringValue);
                        if addspace || !is_string && !prev_string {
-                               p.add(' ');
+                               p.add(' ')
                        }
                }
                prev_string = p.printField(field, false, false, 0);
        }
        if addnewline {
-               p.add('\n');
+               p.add('\n')
        }
 }
index ec299c5f7522adaf13b3189ae199ff3f2992426f..b501247cb67cc3c982752a3b80f614831b76e685 100644 (file)
@@ -97,7 +97,7 @@ type Field struct {
 
 func (f *Field) Pos() token.Position {
        if len(f.Names) > 0 {
-               return f.Names[0].Pos();
+               return f.Names[0].Pos()
        }
        return f.Type.Pos();
 }
@@ -600,7 +600,7 @@ type (
 //
 func (s *ImportSpec) Pos() token.Position {
        if s.Name != nil {
-               return s.Name.Pos();
+               return s.Name.Pos()
        }
        return s.Path[0].Pos();
 }
index ee6747f65b414b5b19b2ddd3aeb20654fec3647c..2e86435bf6ba875c73deb812c64cfcaa26a09a47 100644 (file)
@@ -23,14 +23,14 @@ func filterIdentList(list []*Ident) []*Ident {
 func isExportedType(typ Expr) bool {
        switch t := typ.(type) {
        case *Ident:
-               return t.IsExported();
+               return t.IsExported()
        case *ParenExpr:
-               return isExportedType(t.X);
+               return isExportedType(t.X)
        case *SelectorExpr:
                // assume t.X is a typename
-               return t.Sel.IsExported();
+               return t.Sel.IsExported()
        case *StarExpr:
-               return isExportedType(t.X);
+               return isExportedType(t.X)
        }
        return false;
 }
@@ -47,12 +47,12 @@ func filterFieldList(list []*Field, incomplete *bool) []*Field {
                        // fields, so this is not absolutely correct.
                        // However, this cannot be done w/o complete
                        // type information.)
-                       exported = isExportedType(f.Type);
+                       exported = isExportedType(f.Type)
                } else {
                        n := len(f.Names);
                        f.Names = filterIdentList(f.Names);
                        if len(f.Names) < n {
-                               *incomplete = true;
+                               *incomplete = true
                        }
                        exported = len(f.Names) > 0;
                }
@@ -63,7 +63,7 @@ func filterFieldList(list []*Field, incomplete *bool) []*Field {
                }
        }
        if j < len(list) {
-               *incomplete = true;
+               *incomplete = true
        }
        return list[0:j];
 }
@@ -71,7 +71,7 @@ func filterFieldList(list []*Field, incomplete *bool) []*Field {
 
 func filterParamList(list []*Field) {
        for _, f := range list {
-               filterType(f.Type);
+               filterType(f.Type)
        }
 }
 
@@ -81,19 +81,19 @@ var noPos token.Position
 func filterType(typ Expr) {
        switch t := typ.(type) {
        case *ArrayType:
-               filterType(t.Elt);
+               filterType(t.Elt)
        case *StructType:
-               t.Fields = filterFieldList(t.Fields, &t.Incomplete);
+               t.Fields = filterFieldList(t.Fields, &t.Incomplete)
        case *FuncType:
                filterParamList(t.Params);
                filterParamList(t.Results);
        case *InterfaceType:
-               t.Methods = filterFieldList(t.Methods, &t.Incomplete);
+               t.Methods = filterFieldList(t.Methods, &t.Incomplete)
        case *MapType:
                filterType(t.Key);
                filterType(t.Value);
        case *ChanType:
-               filterType(t.Value);
+               filterType(t.Value)
        }
 }
 
@@ -180,7 +180,7 @@ func PackageExports(pkg *Package) bool {
        hasExports := false;
        for _, f := range pkg.Files {
                if FileExports(f) {
-                       hasExports = true;
+                       hasExports = true
                }
        }
        return hasExports;
@@ -203,7 +203,7 @@ func MergePackageFiles(pkg *Package) *File {
        ndecls := 0;
        for _, f := range pkg.Files {
                if f.Doc != nil {
-                       ncomments += len(f.Doc.List)+1; // +1 for separator
+                       ncomments += len(f.Doc.List)+1  // +1 for separator
                }
                ndecls += len(f.Decls);
        }
index 301630de6482fc8c21a3e676413249dcdc5efeb8..24095367385958e4c6ab724c9bd6c8b28a763d4f 100644 (file)
@@ -26,7 +26,7 @@ func NewScope(outer *Scope) *Scope    { return &Scope{outer, make(map[string]*Ident
 //
 func (s *Scope) Declare(ident *Ident) bool {
        if _, found := s.Names[ident.Value]; found {
-               return false;
+               return false
        }
        s.Names[ident.Value] = ident;
        return true;
@@ -40,7 +40,7 @@ func (s *Scope) Declare(ident *Ident) bool {
 func (s *Scope) Lookup(name string) *Ident {
        for ; s != nil; s = s.Outer {
                if ident, found := s.Names[name]; found {
-                       return ident;
+                       return ident
                }
        }
        return nil;
index 379cc901248dcf62f7309a6d6f93f0cf50a6fc5d..c1ed3662157f9c918ee288495c522c379ce17f80 100644 (file)
@@ -17,49 +17,49 @@ type Visitor interface {
 
 func walkIdent(v Visitor, x *Ident) {
        if x != nil {
-               Walk(v, x);
+               Walk(v, x)
        }
 }
 
 
 func walkCommentGroup(v Visitor, g *CommentGroup) {
        if g != nil {
-               Walk(v, g);
+               Walk(v, g)
        }
 }
 
 
 func walkFieldList(v Visitor, list []*Field) {
        for _, x := range list {
-               Walk(v, x);
+               Walk(v, x)
        }
 }
 
 
 func walkIdentList(v Visitor, list []*Ident) {
        for _, x := range list {
-               Walk(v, x);
+               Walk(v, x)
        }
 }
 
 
 func walkExprList(v Visitor, list []Expr) {
        for _, x := range list {
-               Walk(v, x);
+               Walk(v, x)
        }
 }
 
 
 func walkStmtList(v Visitor, list []Stmt) {
        for _, s := range list {
-               Walk(v, s);
+               Walk(v, s)
        }
 }
 
 
 func walkBlockStmt(v Visitor, b *BlockStmt) {
        if b != nil {
-               Walk(v, b);
+               Walk(v, b)
        }
 }
 
@@ -70,7 +70,7 @@ func walkBlockStmt(v Visitor, b *BlockStmt) {
 //
 func Walk(v Visitor, node interface{}) {
        if node == nil || !v.Visit(node) {
-               return;
+               return
        }
 
        // walk children
@@ -83,7 +83,7 @@ func Walk(v Visitor, node interface{}) {
 
        case *CommentGroup:
                for _, c := range n.List {
-                       Walk(v, c);
+                       Walk(v, c)
                }
                // TODO(gri): Keep comments in a list/vector instead
                // of linking them via Next. Following next will lead
@@ -96,7 +96,7 @@ func Walk(v Visitor, node interface{}) {
                walkIdentList(v, n.Names);
                Walk(v, n.Type);
                for _, x := range n.Tag {
-                       Walk(v, x);
+                       Walk(v, x)
                }
                walkCommentGroup(v, n.Comment);
 
@@ -106,12 +106,12 @@ func Walk(v Visitor, node interface{}) {
 
        case *StringList:
                for _, x := range n.Strings {
-                       Walk(v, x);
+                       Walk(v, x)
                }
 
        case *FuncLit:
                if n != nil {
-                       Walk(v, n.Type);
+                       Walk(v, n.Type)
                }
                walkBlockStmt(v, n.Body);
 
@@ -120,7 +120,7 @@ func Walk(v Visitor, node interface{}) {
                walkExprList(v, n.Elts);
 
        case *ParenExpr:
-               Walk(v, n.X);
+               Walk(v, n.X)
 
        case *SelectorExpr:
                Walk(v, n.X);
@@ -140,10 +140,10 @@ func Walk(v Visitor, node interface{}) {
                walkExprList(v, n.Args);
 
        case *StarExpr:
-               Walk(v, n.X);
+               Walk(v, n.X)
 
        case *UnaryExpr:
-               Walk(v, n.X);
+               Walk(v, n.X)
 
        case *BinaryExpr:
                Walk(v, n.X);
@@ -159,28 +159,28 @@ func Walk(v Visitor, node interface{}) {
                Walk(v, n.Elt);
 
        case *StructType:
-               walkFieldList(v, n.Fields);
+               walkFieldList(v, n.Fields)
 
        case *FuncType:
                walkFieldList(v, n.Params);
                walkFieldList(v, n.Results);
 
        case *InterfaceType:
-               walkFieldList(v, n.Methods);
+               walkFieldList(v, n.Methods)
 
        case *MapType:
                Walk(v, n.Key);
                Walk(v, n.Value);
 
        case *ChanType:
-               Walk(v, n.Value);
+               Walk(v, n.Value)
 
        // Statements
        case *BadStmt:
                // nothing to do
 
        case *DeclStmt:
-               Walk(v, n.Decl);
+               Walk(v, n.Decl)
 
        case *EmptyStmt:
                // nothing to do
@@ -190,10 +190,10 @@ func Walk(v Visitor, node interface{}) {
                Walk(v, n.Stmt);
 
        case *ExprStmt:
-               Walk(v, n.X);
+               Walk(v, n.X)
 
        case *IncDecStmt:
-               Walk(v, n.X);
+               Walk(v, n.X)
 
        case *AssignStmt:
                walkExprList(v, n.Lhs);
@@ -201,22 +201,22 @@ func Walk(v Visitor, node interface{}) {
 
        case *GoStmt:
                if n.Call != nil {
-                       Walk(v, n.Call);
+                       Walk(v, n.Call)
                }
 
        case *DeferStmt:
                if n.Call != nil {
-                       Walk(v, n.Call);
+                       Walk(v, n.Call)
                }
 
        case *ReturnStmt:
-               walkExprList(v, n.Results);
+               walkExprList(v, n.Results)
 
        case *BranchStmt:
-               walkIdent(v, n.Label);
+               walkIdent(v, n.Label)
 
        case *BlockStmt:
-               walkStmtList(v, n.List);
+               walkStmtList(v, n.List)
 
        case *IfStmt:
                Walk(v, n.Init);
@@ -248,7 +248,7 @@ func Walk(v Visitor, node interface{}) {
                walkStmtList(v, n.Body);
 
        case *SelectStmt:
-               walkBlockStmt(v, n.Body);
+               walkBlockStmt(v, n.Body)
 
        case *ForStmt:
                Walk(v, n.Init);
@@ -267,7 +267,7 @@ func Walk(v Visitor, node interface{}) {
                walkCommentGroup(v, n.Doc);
                walkIdent(v, n.Name);
                for _, x := range n.Path {
-                       Walk(v, x);
+                       Walk(v, x)
                }
                walkCommentGroup(v, n.Comment);
 
@@ -290,17 +290,17 @@ func Walk(v Visitor, node interface{}) {
        case *GenDecl:
                walkCommentGroup(v, n.Doc);
                for _, s := range n.Specs {
-                       Walk(v, s);
+                       Walk(v, s)
                }
 
        case *FuncDecl:
                walkCommentGroup(v, n.Doc);
                if n.Recv != nil {
-                       Walk(v, n.Recv);
+                       Walk(v, n.Recv)
                }
                walkIdent(v, n.Name);
                if n.Type != nil {
-                       Walk(v, n.Type);
+                       Walk(v, n.Type)
                }
                walkBlockStmt(v, n.Body);
 
@@ -309,13 +309,13 @@ func Walk(v Visitor, node interface{}) {
                walkCommentGroup(v, n.Doc);
                walkIdent(v, n.Name);
                for _, d := range n.Decls {
-                       Walk(v, d);
+                       Walk(v, d)
                }
                walkCommentGroup(v, n.Comments);
 
        case *Package:
                for _, f := range n.Files {
-                       Walk(v, f);
+                       Walk(v, f)
                }
 
        default:
index 3d04c349c436f9e630c2daa5aa72e8616705e964..ba9371439b48e91e949089a7b0482c8a34a982cf 100644 (file)
@@ -19,11 +19,11 @@ import (
 // with the comment markers - //, /*, and */ - removed.
 func CommentText(comment *ast.CommentGroup) string {
        if comment == nil {
-               return "";
+               return ""
        }
        comments := make([]string, len(comment.List));
        for i, c := range comment.List {
-               comments[i] = string(c.Text);
+               comments[i] = string(c.Text)
        }
 
        lines := make([]string, 0, 20);
@@ -32,12 +32,12 @@ func CommentText(comment *ast.CommentGroup) string {
                // The parser has given us exactly the comment text.
                switch n := len(c); {
                case n >= 4 && c[0:2] == "/*" && c[n-2 : n] == "*/":
-                       c = c[2 : n-2];
+                       c = c[2 : n-2]
                case n >= 2 && c[0:2] == "//":
                        c = c[2:n];
                        // Remove leading space after //, if there is one.
                        if len(c) > 0 && c[0] == ' ' {
-                               c = c[1:len(c)];
+                               c = c[1:len(c)]
                        }
                }
 
@@ -49,7 +49,7 @@ func CommentText(comment *ast.CommentGroup) string {
                        // Strip trailing white space
                        m := len(l);
                        for m > 0 && (l[m-1] == ' ' || l[m-1] == '\n' || l[m-1] == '\t' || l[m-1] == '\r') {
-                               m--;
+                               m--
                        }
                        l = l[0:m];
 
@@ -58,7 +58,7 @@ func CommentText(comment *ast.CommentGroup) string {
                        if n+1 >= cap(lines) {
                                newlines := make([]string, n, 2*cap(lines));
                                for k := range newlines {
-                                       newlines[k] = lines[k];
+                                       newlines[k] = lines[k]
                                }
                                lines = newlines;
                        }
@@ -100,7 +100,7 @@ func split(text []byte) [][]byte {
                }
        }
        if last < len(text) {
-               n++;
+               n++
        }
 
        // split
@@ -115,7 +115,7 @@ func split(text []byte) [][]byte {
                }
        }
        if last < len(text) {
-               out[n] = text[last:len(text)];
+               out[n] = text[last:len(text)]
        }
 
        return out;
@@ -137,9 +137,9 @@ func commentEscape(w io.Writer, s []byte) {
                        last = i+2;
                        switch s[i] {
                        case '`':
-                               w.Write(ldquo);
+                               w.Write(ldquo)
                        case '\'':
-                               w.Write(rdquo);
+                               w.Write(rdquo)
                        }
                        i++;    // loop will add one more
                }
@@ -159,7 +159,7 @@ var (
 func indentLen(s []byte) int {
        i := 0;
        for i < len(s) && (s[i] == ' ' || s[i] == '\t') {
-               i++;
+               i++
        }
        return i;
 }
@@ -171,7 +171,7 @@ func isBlank(s []byte) bool { return len(s) == 0 || (len(s) == 1 && s[0] == '\n'
 func commonPrefix(a, b []byte) []byte {
        i := 0;
        for i < len(a) && i < len(b) && a[i] == b[i] {
-               i++;
+               i++
        }
        return a[0:i];
 }
@@ -179,14 +179,14 @@ func commonPrefix(a, b []byte) []byte {
 
 func unindent(block [][]byte) {
        if len(block) == 0 {
-               return;
+               return
        }
 
        // compute maximum common white prefix
        prefix := block[0][0 : indentLen(block[0])];
        for _, line := range block {
                if !isBlank(line) {
-                       prefix = commonPrefix(prefix, line[0 : indentLen(line)]);
+                       prefix = commonPrefix(prefix, line[0 : indentLen(line)])
                }
        }
        n := len(prefix);
@@ -194,7 +194,7 @@ func unindent(block [][]byte) {
        // remove
        for i, line := range block {
                if !isBlank(line) {
-                       block[i] = line[n:len(line)];
+                       block[i] = line[n:len(line)]
                }
        }
 }
@@ -244,11 +244,11 @@ func ToHTML(w io.Writer, s []byte) {
                        // count indented or blank lines
                        j := i+1;
                        for j < len(lines) && (isBlank(lines[j]) || indentLen(lines[j]) > 0) {
-                               j++;
+                               j++
                        }
                        // but not trailing blank lines
                        for j > i && isBlank(lines[j-1]) {
-                               j--;
+                               j--
                        }
                        block := lines[i:j];
                        i = j;
@@ -260,7 +260,7 @@ func ToHTML(w io.Writer, s []byte) {
                        // just html escaping
                        w.Write(html_pre);
                        for _, line := range block {
-                               template.HTMLEscape(w, line);
+                               template.HTMLEscape(w, line)
                        }
                        w.Write(html_endpre);
                        continue;
index 865f52ec461e7db325804312bee5615e06b9b580..9c85c20bebbdbe010a0986cebc297f5684f31a31 100644 (file)
@@ -61,17 +61,17 @@ func (doc *docReader) addType(decl *ast.GenDecl) {
        if typ != nil {
                // a type should be added at most once, so typ.decl
                // should be nil - if it isn't, simply overwrite it
-               typ.decl = decl;
+               typ.decl = decl
        }
 }
 
 
 func (doc *docReader) lookupTypeDoc(name string) *typeDoc {
        if name == "" {
-               return nil;     // no type docs for anonymous types
+               return nil      // no type docs for anonymous types
        }
        if tdoc, found := doc.types[name]; found {
-               return tdoc;
+               return tdoc
        }
        // type wasn't found - add one without declaration
        tdoc := &typeDoc{nil, vector.New(0), make(map[string]*ast.FuncDecl), make(map[string]*ast.FuncDecl)};
@@ -86,10 +86,10 @@ func baseTypeName(typ ast.Expr) string {
                // if the type is not exported, the effect to
                // a client is as if there were no type name
                if t.IsExported() {
-                       return string(t.Value);
+                       return string(t.Value)
                }
        case *ast.StarExpr:
-               return baseTypeName(t.X);
+               return baseTypeName(t.X)
        }
        return "";
 }
@@ -109,13 +109,13 @@ func (doc *docReader) addValue(decl *ast.GenDecl) {
                        switch {
                        case v.Type != nil:
                                // a type is present; determine it's name
-                               name = baseTypeName(v.Type);
+                               name = baseTypeName(v.Type)
                        case decl.Tok == token.CONST:
                                // no type is present but we have a constant declaration;
                                // use the previous type name (w/o more type information
                                // we cannot handle the case of unnamed variables with
                                // initializer expressions except for some trivial cases)
-                               name = prev;
+                               name = prev
                        }
                        if name != "" {
                                // entry has a named type
@@ -139,7 +139,7 @@ func (doc *docReader) addValue(decl *ast.GenDecl) {
                // typed entries are sufficiently frequent
                typ := doc.lookupTypeDoc(domName);
                if typ != nil {
-                       values = typ.values;    // associate with that type
+                       values = typ.values     // associate with that type
                }
        }
 
@@ -156,7 +156,7 @@ func (doc *docReader) addFunc(fun *ast.FuncDecl) {
                typ := doc.lookupTypeDoc(baseTypeName(fun.Recv.Type));
                if typ != nil {
                        // exported receiver type
-                       typ.methods[name] = fun;
+                       typ.methods[name] = fun
                }
                // otherwise don't show the method
                // TODO(gri): There may be exported methods of non-exported types
@@ -209,7 +209,7 @@ func (doc *docReader) addDecl(decl ast.Decl) {
                        switch d.Tok {
                        case token.CONST, token.VAR:
                                // constants and variables are always handled as a group
-                               doc.addValue(d);
+                               doc.addValue(d)
                        case token.TYPE:
                                // types are handled individually
                                var noPos token.Position;
@@ -225,13 +225,13 @@ func (doc *docReader) addDecl(decl ast.Decl) {
                                        // makeTypeDocs below). Simpler data structures, but
                                        // would lose GenDecl documentation if the TypeSpec
                                        // has documentation as well.
-                                       doc.addType(&ast.GenDecl{d.Doc, d.Pos(), token.TYPE, noPos, []ast.Spec{spec}, noPos});
+                                       doc.addType(&ast.GenDecl{d.Doc, d.Pos(), token.TYPE, noPos, []ast.Spec{spec}, noPos})
                                        // A new GenDecl node is created, no need to nil out d.Doc.
                                }
                        }
                }
        case *ast.FuncDecl:
-               doc.addFunc(d);
+               doc.addFunc(d)
        }
 }
 
@@ -239,7 +239,7 @@ func (doc *docReader) addDecl(decl ast.Decl) {
 func copyCommentList(list []*ast.Comment) []*ast.Comment {
        copy := make([]*ast.Comment, len(list));
        for i, c := range list {
-               copy[i] = c;
+               copy[i] = c
        }
        return copy;
 }
@@ -268,7 +268,7 @@ func (doc *docReader) addFile(src *ast.File) {
 
        // add all declarations
        for _, decl := range src.Decls {
-               doc.addDecl(decl);
+               doc.addDecl(decl)
        }
 
        // collect BUG(...) comments
@@ -331,14 +331,14 @@ func (p sortValueDoc) Swap(i, j int)      { p[i], p[j] = p[j], p[i] }
 
 func declName(d *ast.GenDecl) string {
        if len(d.Specs) != 1 {
-               return "";
+               return ""
        }
 
        switch v := d.Specs[0].(type) {
        case *ast.ValueSpec:
-               return v.Names[0].Value;
+               return v.Names[0].Value
        case *ast.TypeSpec:
-               return v.Name.Value;
+               return v.Name.Value
        }
 
        return "";
@@ -350,7 +350,7 @@ func (p sortValueDoc) Less(i, j int) bool {
        // pull blocks (name = "") up to top
        // in original order
        if ni, nj := declName(p[i].Decl), declName(p[j].Decl); ni != nj {
-               return ni < nj;
+               return ni < nj
        }
        return p[i].order < p[j].order;
 }
@@ -398,7 +398,7 @@ func makeFuncDocs(m map[string]*ast.FuncDecl) []*FuncDoc {
                doc.Doc = CommentText(f.Doc);
                f.Doc = nil;    // doc consumed - remove from ast.FuncDecl node
                if f.Recv != nil {
-                       doc.Recv = f.Recv.Type;
+                       doc.Recv = f.Recv.Type
                }
                doc.Name = f.Name.Value;
                doc.Decl = f;
@@ -434,7 +434,7 @@ func (p sortTypeDoc) Less(i, j int) bool {
        // pull blocks (name = "") up to top
        // in original order
        if ni, nj := p[i].Type.Name.Value, p[j].Type.Name.Value; ni != nj {
-               return ni < nj;
+               return ni < nj
        }
        return p[i].order < p[j].order;
 }
@@ -457,7 +457,7 @@ func (doc *docReader) makeTypeDocs(m map[string]*typeDoc) []*TypeDoc {
                        typespec.Doc = nil;     // doc consumed - remove from ast.TypeSpec node
                        if doc == nil {
                                // no doc associated with the spec, use the declaration doc, if any
-                               doc = decl.Doc;
+                               doc = decl.Doc
                        }
                        decl.Doc = nil; // doc consumed - remove from ast.Decl node
                        t.Doc = CommentText(doc);
@@ -480,13 +480,13 @@ func (doc *docReader) makeTypeDocs(m map[string]*typeDoc) []*TypeDoc {
                        doc.values.AppendVector(old.values);
                        // 2) move factory functions
                        for name, f := range old.factories {
-                               doc.funcs[name] = f;
+                               doc.funcs[name] = f
                        }
                        // 3) move methods
                        for name, f := range old.methods {
                                // don't overwrite functions with the same name
                                if _, found := doc.funcs[name]; !found {
-                                       doc.funcs[name] = f;
+                                       doc.funcs[name] = f
                                }
                        }
                }
@@ -500,7 +500,7 @@ func (doc *docReader) makeTypeDocs(m map[string]*typeDoc) []*TypeDoc {
 func makeBugDocs(v *vector.Vector) []string {
        d := make([]string, v.Len());
        for i := 0; i < v.Len(); i++ {
-               d[i] = CommentText(v.At(i).(*ast.CommentGroup));
+               d[i] = CommentText(v.At(i).(*ast.CommentGroup))
        }
        return d;
 }
@@ -553,7 +553,7 @@ func isRegexp(s string) bool {
        for _, c := range s {
                for _, m := range metachars {
                        if c == m {
-                               return true;
+                               return true
                        }
                }
        }
@@ -565,11 +565,11 @@ func match(s string, a []string) bool {
        for _, t := range a {
                if isRegexp(t) {
                        if matched, _ := regexp.MatchString(t, s); matched {
-                               return true;
+                               return true
                        }
                }
                if s == t {
-                       return true;
+                       return true
                }
        }
        return false;
@@ -582,12 +582,12 @@ func matchDecl(d *ast.GenDecl, names []string) bool {
                case *ast.ValueSpec:
                        for _, name := range v.Names {
                                if match(name.Value, names) {
-                                       return true;
+                                       return true
                                }
                        }
                case *ast.TypeSpec:
                        if match(v.Name.Value, names) {
-                               return true;
+                               return true
                        }
                }
        }
@@ -624,7 +624,7 @@ func filterTypeDocs(a []*TypeDoc, names []string) []*TypeDoc {
        for _, td := range a {
                match := false;
                if matchDecl(td.Decl, names) {
-                       match = true;
+                       match = true
                } else {
                        // type name doesn't match, but we may have matching factories or methods
                        td.Factories = filterFuncDocs(td.Factories, names);
index 3c9be7532c255ec792a6964244227026db397f13..50d7dff6564923c8f115505e142a5d971850d7a5 100644 (file)
@@ -26,23 +26,23 @@ func readSource(filename string, src interface{}) ([]byte, os.Error) {
        if src != nil {
                switch s := src.(type) {
                case string:
-                       return strings.Bytes(s), nil;
+                       return strings.Bytes(s), nil
                case []byte:
-                       return s, nil;
+                       return s, nil
                case *bytes.Buffer:
                        // is io.Reader, but src is already available in []byte form
                        if s != nil {
-                               return s.Bytes(), nil;
+                               return s.Bytes(), nil
                        }
                case io.Reader:
                        var buf bytes.Buffer;
                        _, err := io.Copy(&buf, s);
                        if err != nil {
-                               return nil, err;
+                               return nil, err
                        }
                        return buf.Bytes(), nil;
                default:
-                       return nil, os.ErrorString("invalid source");
+                       return nil, os.ErrorString("invalid source")
                }
        }
 
@@ -58,7 +58,7 @@ func readSource(filename string, src interface{}) ([]byte, os.Error) {
 func ParseExpr(filename string, src interface{}) (ast.Expr, os.Error) {
        data, err := readSource(filename, src);
        if err != nil {
-               return nil, err;
+               return nil, err
        }
 
        var p parser;
@@ -75,7 +75,7 @@ func ParseExpr(filename string, src interface{}) (ast.Expr, os.Error) {
 func ParseStmtList(filename string, src interface{}) ([]ast.Stmt, os.Error) {
        data, err := readSource(filename, src);
        if err != nil {
-               return nil, err;
+               return nil, err
        }
 
        var p parser;
@@ -92,7 +92,7 @@ func ParseStmtList(filename string, src interface{}) ([]ast.Stmt, os.Error) {
 func ParseDeclList(filename string, src interface{}) ([]ast.Decl, os.Error) {
        data, err := readSource(filename, src);
        if err != nil {
-               return nil, err;
+               return nil, err
        }
 
        var p parser;
@@ -122,7 +122,7 @@ func ParseDeclList(filename string, src interface{}) ([]ast.Decl, os.Error) {
 func ParseFile(filename string, src interface{}, mode uint) (*ast.File, os.Error) {
        data, err := readSource(filename, src);
        if err != nil {
-               return nil, err;
+               return nil, err
        }
 
        var p parser;
@@ -140,16 +140,16 @@ func ParseFile(filename string, src interface{}, mode uint) (*ast.File, os.Error
 func ParsePkgFile(pkgname, filename string, mode uint) (*ast.File, os.Error) {
        src, err := io.ReadFile(filename);
        if err != nil {
-               return nil, err;
+               return nil, err
        }
 
        if pkgname != "" {
                prog, err := ParseFile(filename, src, PackageClauseOnly);
                if err != nil {
-                       return nil, err;
+                       return nil, err
                }
                if prog.Name.Value != pkgname {
-                       return nil, os.NewError(fmt.Sprintf("multiple packages found: %s, %s", prog.Name.Value, pkgname));
+                       return nil, os.NewError(fmt.Sprintf("multiple packages found: %s, %s", prog.Name.Value, pkgname))
                }
        }
 
@@ -168,13 +168,13 @@ func ParsePkgFile(pkgname, filename string, mode uint) (*ast.File, os.Error) {
 func ParsePackage(path string, filter func(*os.Dir) bool, mode uint) (*ast.Package, os.Error) {
        fd, err := os.Open(path, os.O_RDONLY, 0);
        if err != nil {
-               return nil, err;
+               return nil, err
        }
        defer fd.Close();
 
        list, err := fd.Readdir(-1);
        if err != nil {
-               return nil, err;
+               return nil, err
        }
 
        name := "";
@@ -184,17 +184,17 @@ func ParsePackage(path string, filter func(*os.Dir) bool, mode uint) (*ast.Packa
                if filter == nil || filter(entry) {
                        src, err := ParsePkgFile(name, pathutil.Join(path, entry.Name), mode);
                        if err != nil {
-                               return nil, err;
+                               return nil, err
                        }
                        files[entry.Name] = src;
                        if name == "" {
-                               name = src.Name.Value;
+                               name = src.Name.Value
                        }
                }
        }
 
        if len(files) == 0 {
-               return nil, os.NewError(path + ": no package found");
+               return nil, os.NewError(path + ": no package found")
        }
 
        return &ast.Package{name, path, files}, nil;
index 53fff192dc57aed58b383bf54331543cd1c8b519..5e0c7307b505859ae5c9149a469dcb9b24e5469a 100644 (file)
@@ -69,7 +69,7 @@ type parser struct {
 // scannerMode returns the scanner mode bits given the parser's mode bits.
 func scannerMode(mode uint) uint {
        if mode & ParseComments != 0 {
-               return scanner.ScanComments;
+               return scanner.ScanComments
        }
        return 0;
 }
@@ -94,7 +94,7 @@ func (p *parser) printTrace(a ...) {
        fmt.Printf("%5d:%3d: ", p.pos.Line, p.pos.Column);
        i := 2 * p.indent;
        for ; i > n; i -= n {
-               fmt.Print(dots);
+               fmt.Print(dots)
        }
        fmt.Print(dots[0:i]);
        fmt.Println(a);
@@ -125,11 +125,11 @@ func (p *parser) next0() {
                s := p.tok.String();
                switch {
                case p.tok.IsLiteral():
-                       p.printTrace(s, string(p.lit));
+                       p.printTrace(s, string(p.lit))
                case p.tok.IsOperator(), p.tok.IsKeyword():
-                       p.printTrace("\""+s+"\"");
+                       p.printTrace("\""+s+"\"")
                default:
-                       p.printTrace(s);
+                       p.printTrace(s)
                }
        }
 
@@ -146,7 +146,7 @@ func (p *parser) consumeComment() (comment *ast.Comment, endline int) {
        if p.lit[1] == '*' {
                for _, b := range p.lit {
                        if b == '\n' {
-                               endline++;
+                               endline++
                        }
                }
        }
@@ -175,15 +175,15 @@ func (p *parser) consumeCommentGroup() int {
        // convert list
        group := make([]*ast.Comment, list.Len());
        for i := 0; i < list.Len(); i++ {
-               group[i] = list.At(i).(*ast.Comment);
+               group[i] = list.At(i).(*ast.Comment)
        }
 
        // add comment group to the comments list
        g := &ast.CommentGroup{group, nil};
        if p.lastComment != nil {
-               p.lastComment.Next = g;
+               p.lastComment.Next = g
        } else {
-               p.comments = g;
+               p.comments = g
        }
        p.lastComment = g;
 
@@ -220,20 +220,20 @@ func (p *parser) next() {
                        if p.pos.Line != endline {
                                // The next token is on a different line, thus
                                // the last comment group is a line comment.
-                               p.lineComment = p.lastComment;
+                               p.lineComment = p.lastComment
                        }
                }
 
                // consume successor comments, if any
                endline := -1;
                for p.tok == token.COMMENT {
-                       endline = p.consumeCommentGroup();
+                       endline = p.consumeCommentGroup()
                }
 
                if endline >= 0 && endline+1 == p.pos.Line {
                        // The next token is following on the line immediately after the
                        // comment group, thus the last comment group is a lead comment.
-                       p.leadComment = p.lastComment;
+                       p.leadComment = p.lastComment
                }
        }
 }
@@ -246,7 +246,7 @@ func (p *parser) errorExpected(pos token.Position, msg string) {
                // make the error message more specific
                msg += ", found '" + p.tok.String() + "'";
                if p.tok.IsLiteral() {
-                       msg += " "+string(p.lit);
+                       msg += " "+string(p.lit)
                }
        }
        p.Error(pos, msg);
@@ -256,7 +256,7 @@ func (p *parser) errorExpected(pos token.Position, msg string) {
 func (p *parser) expect(tok token.Token) token.Position {
        pos := p.pos;
        if p.tok != tok {
-               p.errorExpected(pos, "'" + tok.String() + "'");
+               p.errorExpected(pos, "'" + tok.String() + "'")
        }
        p.next();       // make progress in any case
        return pos;
@@ -278,14 +278,14 @@ func close(p *parser)     { p.topScope = p.topScope.Outer }
 
 func (p *parser) declare(ident *ast.Ident) {
        if !p.topScope.Declare(ident) {
-               p.Error(p.pos, "'" + ident.Value + "' declared already");
+               p.Error(p.pos, "'" + ident.Value + "' declared already")
        }
 }
 
 
 func (p *parser) declareList(idents []*ast.Ident) {
        for _, ident := range idents {
-               p.declare(ident);
+               p.declare(ident)
        }
 }
 
@@ -306,7 +306,7 @@ func (p *parser) parseIdent() *ast.Ident {
 
 func (p *parser) parseIdentList() []*ast.Ident {
        if p.trace {
-               defer un(trace(p, "IdentList"));
+               defer un(trace(p, "IdentList"))
        }
 
        list := vector.New(0);
@@ -319,7 +319,7 @@ func (p *parser) parseIdentList() []*ast.Ident {
        // convert vector
        idents := make([]*ast.Ident, list.Len());
        for i := 0; i < list.Len(); i++ {
-               idents[i] = list.At(i).(*ast.Ident);
+               idents[i] = list.At(i).(*ast.Ident)
        }
 
        return idents;
@@ -328,7 +328,7 @@ func (p *parser) parseIdentList() []*ast.Ident {
 
 func (p *parser) parseExprList() []ast.Expr {
        if p.trace {
-               defer un(trace(p, "ExpressionList"));
+               defer un(trace(p, "ExpressionList"))
        }
 
        list := vector.New(0);
@@ -341,7 +341,7 @@ func (p *parser) parseExprList() []ast.Expr {
        // convert list
        exprs := make([]ast.Expr, list.Len());
        for i := 0; i < list.Len(); i++ {
-               exprs[i] = list.At(i).(ast.Expr);
+               exprs[i] = list.At(i).(ast.Expr)
        }
 
        return exprs;
@@ -353,7 +353,7 @@ func (p *parser) parseExprList() []ast.Expr {
 
 func (p *parser) parseType() ast.Expr {
        if p.trace {
-               defer un(trace(p, "Type"));
+               defer un(trace(p, "Type"))
        }
 
        typ := p.tryType();
@@ -370,7 +370,7 @@ func (p *parser) parseType() ast.Expr {
 
 func (p *parser) parseQualifiedIdent() ast.Expr {
        if p.trace {
-               defer un(trace(p, "QualifiedIdent"));
+               defer un(trace(p, "QualifiedIdent"))
        }
 
        var x ast.Expr = p.parseIdent();
@@ -386,7 +386,7 @@ func (p *parser) parseQualifiedIdent() ast.Expr {
 
 func (p *parser) parseTypeName() ast.Expr {
        if p.trace {
-               defer un(trace(p, "TypeName"));
+               defer un(trace(p, "TypeName"))
        }
 
        return p.parseQualifiedIdent();
@@ -395,7 +395,7 @@ func (p *parser) parseTypeName() ast.Expr {
 
 func (p *parser) parseArrayType(ellipsisOk bool) ast.Expr {
        if p.trace {
-               defer un(trace(p, "ArrayType"));
+               defer un(trace(p, "ArrayType"))
        }
 
        lbrack := p.expect(token.LBRACK);
@@ -404,7 +404,7 @@ func (p *parser) parseArrayType(ellipsisOk bool) ast.Expr {
                len = &ast.Ellipsis{p.pos};
                p.next();
        } else if p.tok != token.RBRACK {
-               len = p.parseExpr();
+               len = p.parseExpr()
        }
        p.expect(token.RBRACK);
        elt := p.parseType();
@@ -430,7 +430,7 @@ func (p *parser) makeIdentList(list *vector.Vector) []*ast.Ident {
 
 func (p *parser) parseFieldDecl() *ast.Field {
        if p.trace {
-               defer un(trace(p, "FieldDecl"));
+               defer un(trace(p, "FieldDecl"))
        }
 
        doc := p.leadComment;
@@ -441,9 +441,9 @@ func (p *parser) parseFieldDecl() *ast.Field {
                // TODO(gri): do not allow ()'s here
                list.Push(p.parseType());
                if p.tok == token.COMMA {
-                       p.next();
+                       p.next()
                } else {
-                       break;
+                       break
                }
        }
 
@@ -453,19 +453,19 @@ func (p *parser) parseFieldDecl() *ast.Field {
        // optional tag
        var tag []*ast.BasicLit;
        if p.tok == token.STRING {
-               tag = p.parseStringList(nil);
+               tag = p.parseStringList(nil)
        }
 
        // analyze case
        var idents []*ast.Ident;
        if typ != nil {
                // IdentifierList Type
-               idents = p.makeIdentList(list);
+               idents = p.makeIdentList(list)
        } else {
                // Type (anonymous field)
                if list.Len() == 1 {
                        // TODO(gri): check that this looks like a type
-                       typ = list.At(0).(ast.Expr);
+                       typ = list.At(0).(ast.Expr)
                } else {
                        p.errorExpected(p.pos, "anonymous field");
                        typ = &ast.BadExpr{p.pos};
@@ -478,7 +478,7 @@ func (p *parser) parseFieldDecl() *ast.Field {
 
 func (p *parser) parseStructType() *ast.StructType {
        if p.trace {
-               defer un(trace(p, "StructType"));
+               defer un(trace(p, "StructType"))
        }
 
        pos := p.expect(token.STRUCT);
@@ -487,7 +487,7 @@ func (p *parser) parseStructType() *ast.StructType {
        for p.tok == token.IDENT || p.tok == token.MUL {
                f := p.parseFieldDecl();
                if p.tok != token.RBRACE {
-                       p.expect(token.SEMICOLON);
+                       p.expect(token.SEMICOLON)
                }
                f.Comment = p.lineComment;
                list.Push(f);
@@ -498,7 +498,7 @@ func (p *parser) parseStructType() *ast.StructType {
        // convert vector
        fields := make([]*ast.Field, list.Len());
        for i := list.Len() - 1; i >= 0; i-- {
-               fields[i] = list.At(i).(*ast.Field);
+               fields[i] = list.At(i).(*ast.Field)
        }
 
        return &ast.StructType{pos, lbrace, fields, rbrace, false};
@@ -507,7 +507,7 @@ func (p *parser) parseStructType() *ast.StructType {
 
 func (p *parser) parsePointerType() *ast.StarExpr {
        if p.trace {
-               defer un(trace(p, "PointerType"));
+               defer un(trace(p, "PointerType"))
        }
 
        star := p.expect(token.MUL);
@@ -523,7 +523,7 @@ func (p *parser) tryParameterType(ellipsisOk bool) ast.Expr {
                p.next();
                if p.tok != token.RPAREN {
                        // "..." always must be at the very end of a parameter list
-                       p.Error(pos, "expected type, found '...'");
+                       p.Error(pos, "expected type, found '...'")
                }
                return &ast.Ellipsis{pos};
        }
@@ -544,7 +544,7 @@ func (p *parser) parseParameterType(ellipsisOk bool) ast.Expr {
 
 func (p *parser) parseParameterDecl(ellipsisOk bool) (*vector.Vector, ast.Expr) {
        if p.trace {
-               defer un(trace(p, "ParameterDecl"));
+               defer un(trace(p, "ParameterDecl"))
        }
 
        // a list of identifiers looks like a list of type names
@@ -553,9 +553,9 @@ func (p *parser) parseParameterDecl(ellipsisOk bool) (*vector.Vector, ast.Expr)
                // TODO(gri): do not allow ()'s here
                list.Push(p.parseParameterType(ellipsisOk));
                if p.tok == token.COMMA {
-                       p.next();
+                       p.next()
                } else {
-                       break;
+                       break
                }
        }
 
@@ -568,7 +568,7 @@ func (p *parser) parseParameterDecl(ellipsisOk bool) (*vector.Vector, ast.Expr)
 
 func (p *parser) parseParameterList(ellipsisOk bool) []*ast.Field {
        if p.trace {
-               defer un(trace(p, "ParameterList"));
+               defer un(trace(p, "ParameterList"))
        }
 
        list, typ := p.parseParameterDecl(ellipsisOk);
@@ -589,14 +589,14 @@ func (p *parser) parseParameterList(ellipsisOk bool) []*ast.Field {
                // Type { "," Type } (anonymous parameters)
                // convert list of types into list of *Param
                for i := 0; i < list.Len(); i++ {
-                       list.Set(i, &ast.Field{Type: list.At(i).(ast.Expr)});
+                       list.Set(i, &ast.Field{Type: list.At(i).(ast.Expr)})
                }
        }
 
        // convert list
        params := make([]*ast.Field, list.Len());
        for i := 0; i < list.Len(); i++ {
-               params[i] = list.At(i).(*ast.Field);
+               params[i] = list.At(i).(*ast.Field)
        }
 
        return params;
@@ -605,13 +605,13 @@ func (p *parser) parseParameterList(ellipsisOk bool) []*ast.Field {
 
 func (p *parser) parseParameters(ellipsisOk bool) []*ast.Field {
        if p.trace {
-               defer un(trace(p, "Parameters"));
+               defer un(trace(p, "Parameters"))
        }
 
        var params []*ast.Field;
        p.expect(token.LPAREN);
        if p.tok != token.RPAREN {
-               params = p.parseParameterList(ellipsisOk);
+               params = p.parseParameterList(ellipsisOk)
        }
        p.expect(token.RPAREN);
 
@@ -621,12 +621,12 @@ func (p *parser) parseParameters(ellipsisOk bool) []*ast.Field {
 
 func (p *parser) parseResult() []*ast.Field {
        if p.trace {
-               defer un(trace(p, "Result"));
+               defer un(trace(p, "Result"))
        }
 
        var results []*ast.Field;
        if p.tok == token.LPAREN {
-               results = p.parseParameters(false);
+               results = p.parseParameters(false)
        } else if p.tok != token.FUNC {
                typ := p.tryType();
                if typ != nil {
@@ -641,7 +641,7 @@ func (p *parser) parseResult() []*ast.Field {
 
 func (p *parser) parseSignature() (params []*ast.Field, results []*ast.Field) {
        if p.trace {
-               defer un(trace(p, "Signature"));
+               defer un(trace(p, "Signature"))
        }
 
        params = p.parseParameters(true);
@@ -653,7 +653,7 @@ func (p *parser) parseSignature() (params []*ast.Field, results []*ast.Field) {
 
 func (p *parser) parseFuncType() *ast.FuncType {
        if p.trace {
-               defer un(trace(p, "FuncType"));
+               defer un(trace(p, "FuncType"))
        }
 
        pos := p.expect(token.FUNC);
@@ -665,7 +665,7 @@ func (p *parser) parseFuncType() *ast.FuncType {
 
 func (p *parser) parseMethodSpec() *ast.Field {
        if p.trace {
-               defer un(trace(p, "MethodSpec"));
+               defer un(trace(p, "MethodSpec"))
        }
 
        doc := p.leadComment;
@@ -679,7 +679,7 @@ func (p *parser) parseMethodSpec() *ast.Field {
                typ = &ast.FuncType{noPos, params, results};
        } else {
                // embedded interface
-               typ = x;
+               typ = x
        }
 
        return &ast.Field{doc, idents, typ, nil, nil};
@@ -688,7 +688,7 @@ func (p *parser) parseMethodSpec() *ast.Field {
 
 func (p *parser) parseInterfaceType() *ast.InterfaceType {
        if p.trace {
-               defer un(trace(p, "InterfaceType"));
+               defer un(trace(p, "InterfaceType"))
        }
 
        pos := p.expect(token.INTERFACE);
@@ -697,7 +697,7 @@ func (p *parser) parseInterfaceType() *ast.InterfaceType {
        for p.tok == token.IDENT {
                m := p.parseMethodSpec();
                if p.tok != token.RBRACE {
-                       p.expect(token.SEMICOLON);
+                       p.expect(token.SEMICOLON)
                }
                m.Comment = p.lineComment;
                list.Push(m);
@@ -708,7 +708,7 @@ func (p *parser) parseInterfaceType() *ast.InterfaceType {
        // convert vector
        methods := make([]*ast.Field, list.Len());
        for i := list.Len() - 1; i >= 0; i-- {
-               methods[i] = list.At(i).(*ast.Field);
+               methods[i] = list.At(i).(*ast.Field)
        }
 
        return &ast.InterfaceType{pos, lbrace, methods, rbrace, false};
@@ -717,7 +717,7 @@ func (p *parser) parseInterfaceType() *ast.InterfaceType {
 
 func (p *parser) parseMapType() *ast.MapType {
        if p.trace {
-               defer un(trace(p, "MapType"));
+               defer un(trace(p, "MapType"))
        }
 
        pos := p.expect(token.MAP);
@@ -732,7 +732,7 @@ func (p *parser) parseMapType() *ast.MapType {
 
 func (p *parser) parseChanType() *ast.ChanType {
        if p.trace {
-               defer un(trace(p, "ChanType"));
+               defer un(trace(p, "ChanType"))
        }
 
        pos := p.pos;
@@ -757,21 +757,21 @@ func (p *parser) parseChanType() *ast.ChanType {
 func (p *parser) tryRawType(ellipsisOk bool) ast.Expr {
        switch p.tok {
        case token.IDENT:
-               return p.parseTypeName();
+               return p.parseTypeName()
        case token.LBRACK:
-               return p.parseArrayType(ellipsisOk);
+               return p.parseArrayType(ellipsisOk)
        case token.STRUCT:
-               return p.parseStructType();
+               return p.parseStructType()
        case token.MUL:
-               return p.parsePointerType();
+               return p.parsePointerType()
        case token.FUNC:
-               return p.parseFuncType();
+               return p.parseFuncType()
        case token.INTERFACE:
-               return p.parseInterfaceType();
+               return p.parseInterfaceType()
        case token.MAP:
-               return p.parseMapType();
+               return p.parseMapType()
        case token.CHAN, token.ARROW:
-               return p.parseChanType();
+               return p.parseChanType()
        case token.LPAREN:
                lparen := p.pos;
                p.next();
@@ -794,7 +794,7 @@ func (p *parser) tryType() ast.Expr { return p.tryRawType(false) }
 func makeStmtList(list *vector.Vector) []ast.Stmt {
        stats := make([]ast.Stmt, list.Len());
        for i := 0; i < list.Len(); i++ {
-               stats[i] = list.At(i).(ast.Stmt);
+               stats[i] = list.At(i).(ast.Stmt)
        }
        return stats;
 }
@@ -802,7 +802,7 @@ func makeStmtList(list *vector.Vector) []ast.Stmt {
 
 func (p *parser) parseStmtList() []ast.Stmt {
        if p.trace {
-               defer un(trace(p, "StatementList"));
+               defer un(trace(p, "StatementList"))
        }
 
        list := vector.New(0);
@@ -814,11 +814,11 @@ func (p *parser) parseStmtList() []ast.Stmt {
                }
                list.Push(p.parseStmt());
                if p.tok == token.SEMICOLON {
-                       p.next();
+                       p.next()
                } else if p.optSemi {
-                       p.optSemi = false;      // "consume" optional semicolon
+                       p.optSemi = false       // "consume" optional semicolon
                } else {
-                       expectSemi = true;
+                       expectSemi = true
                }
        }
 
@@ -828,7 +828,7 @@ func (p *parser) parseStmtList() []ast.Stmt {
 
 func (p *parser) parseBlockStmt(idents []*ast.Ident) *ast.BlockStmt {
        if p.trace {
-               defer un(trace(p, "BlockStmt"));
+               defer un(trace(p, "BlockStmt"))
        }
 
        defer close(openScope(p));
@@ -847,12 +847,12 @@ func (p *parser) parseBlockStmt(idents []*ast.Ident) *ast.BlockStmt {
 
 func (p *parser) parseStringList(x *ast.BasicLit) []*ast.BasicLit {
        if p.trace {
-               defer un(trace(p, "StringList"));
+               defer un(trace(p, "StringList"))
        }
 
        list := vector.New(0);
        if x != nil {
-               list.Push(x);
+               list.Push(x)
        }
 
        for p.tok == token.STRING {
@@ -863,7 +863,7 @@ func (p *parser) parseStringList(x *ast.BasicLit) []*ast.BasicLit {
        // convert list
        strings := make([]*ast.BasicLit, list.Len());
        for i := 0; i < list.Len(); i++ {
-               strings[i] = list.At(i).(*ast.BasicLit);
+               strings[i] = list.At(i).(*ast.BasicLit)
        }
 
        return strings;
@@ -872,13 +872,13 @@ func (p *parser) parseStringList(x *ast.BasicLit) []*ast.BasicLit {
 
 func (p *parser) parseFuncTypeOrLit() ast.Expr {
        if p.trace {
-               defer un(trace(p, "FuncTypeOrLit"));
+               defer un(trace(p, "FuncTypeOrLit"))
        }
 
        typ := p.parseFuncType();
        if p.tok != token.LBRACE {
                // function type only
-               return typ;
+               return typ
        }
 
        p.exprLev++;
@@ -895,18 +895,18 @@ func (p *parser) parseFuncTypeOrLit() ast.Expr {
 //
 func (p *parser) parseOperand() ast.Expr {
        if p.trace {
-               defer un(trace(p, "Operand"));
+               defer un(trace(p, "Operand"))
        }
 
        switch p.tok {
        case token.IDENT:
-               return p.parseIdent();
+               return p.parseIdent()
 
        case token.INT, token.FLOAT, token.CHAR, token.STRING:
                x := &ast.BasicLit{p.pos, p.tok, p.lit};
                p.next();
                if p.tok == token.STRING && p.tok == token.STRING {
-                       return &ast.StringList{p.parseStringList(x)};
+                       return &ast.StringList{p.parseStringList(x)}
                }
                return x;
 
@@ -920,12 +920,12 @@ func (p *parser) parseOperand() ast.Expr {
                return &ast.ParenExpr{lparen, x, rparen};
 
        case token.FUNC:
-               return p.parseFuncTypeOrLit();
+               return p.parseFuncTypeOrLit()
 
        default:
                t := p.tryRawType(true);        // could be type for composite literal or conversion
                if t != nil {
-                       return t;
+                       return t
                }
        }
 
@@ -937,7 +937,7 @@ func (p *parser) parseOperand() ast.Expr {
 
 func (p *parser) parseSelectorOrTypeAssertion(x ast.Expr) ast.Expr {
        if p.trace {
-               defer un(trace(p, "SelectorOrTypeAssertion"));
+               defer un(trace(p, "SelectorOrTypeAssertion"))
        }
 
        p.expect(token.PERIOD);
@@ -952,9 +952,9 @@ func (p *parser) parseSelectorOrTypeAssertion(x ast.Expr) ast.Expr {
        var typ ast.Expr;
        if p.tok == token.TYPE {
                // type switch: typ == nil
-               p.next();
+               p.next()
        } else {
-               typ = p.parseType();
+               typ = p.parseType()
        }
        p.expect(token.RPAREN);
 
@@ -964,7 +964,7 @@ func (p *parser) parseSelectorOrTypeAssertion(x ast.Expr) ast.Expr {
 
 func (p *parser) parseIndex(x ast.Expr) ast.Expr {
        if p.trace {
-               defer un(trace(p, "Index"));
+               defer un(trace(p, "Index"))
        }
 
        p.expect(token.LBRACK);
@@ -984,13 +984,13 @@ func (p *parser) parseIndex(x ast.Expr) ast.Expr {
 
 func (p *parser) parseCallOrConversion(fun ast.Expr) *ast.CallExpr {
        if p.trace {
-               defer un(trace(p, "CallOrConversion"));
+               defer un(trace(p, "CallOrConversion"))
        }
 
        lparen := p.expect(token.LPAREN);
        var args []ast.Expr;
        if p.tok != token.RPAREN {
-               args = p.parseExprList();
+               args = p.parseExprList()
        }
        rparen := p.expect(token.RPAREN);
 
@@ -1000,7 +1000,7 @@ func (p *parser) parseCallOrConversion(fun ast.Expr) *ast.CallExpr {
 
 func (p *parser) parseElement() ast.Expr {
        if p.trace {
-               defer un(trace(p, "Element"));
+               defer un(trace(p, "Element"))
        }
 
        x := p.parseExpr();
@@ -1016,23 +1016,23 @@ func (p *parser) parseElement() ast.Expr {
 
 func (p *parser) parseElementList() []ast.Expr {
        if p.trace {
-               defer un(trace(p, "ElementList"));
+               defer un(trace(p, "ElementList"))
        }
 
        list := vector.New(0);
        for p.tok != token.RBRACE && p.tok != token.EOF {
                list.Push(p.parseElement());
                if p.tok == token.COMMA {
-                       p.next();
+                       p.next()
                } else {
-                       break;
+                       break
                }
        }
 
        // convert list
        elts := make([]ast.Expr, list.Len());
        for i := 0; i < list.Len(); i++ {
-               elts[i] = list.At(i).(ast.Expr);
+               elts[i] = list.At(i).(ast.Expr)
        }
 
        return elts;
@@ -1041,13 +1041,13 @@ func (p *parser) parseElementList() []ast.Expr {
 
 func (p *parser) parseCompositeLit(typ ast.Expr) ast.Expr {
        if p.trace {
-               defer un(trace(p, "CompositeLit"));
+               defer un(trace(p, "CompositeLit"))
        }
 
        lbrace := p.expect(token.LBRACE);
        var elts []ast.Expr;
        if p.tok != token.RBRACE {
-               elts = p.parseElementList();
+               elts = p.parseElementList()
        }
        rbrace := p.expect(token.RBRACE);
        return &ast.CompositeLit{typ, lbrace, elts, rbrace};
@@ -1103,11 +1103,11 @@ func isTypeName(x ast.Expr) bool {
        case *ast.BadExpr:
        case *ast.Ident:
        case *ast.ParenExpr:
-               return isTypeName(t.X); // TODO(gri): should (TypeName) be illegal?
+               return isTypeName(t.X)  // TODO(gri): should (TypeName) be illegal?
        case *ast.SelectorExpr:
-               return isTypeName(t.X);
+               return isTypeName(t.X)
        default:
-               return false;   // all other nodes are not type names
+               return false    // all other nodes are not type names
        }
        return true;
 }
@@ -1120,14 +1120,14 @@ func isCompositeLitType(x ast.Expr) bool {
        case *ast.BadExpr:
        case *ast.Ident:
        case *ast.ParenExpr:
-               return isCompositeLitType(t.X);
+               return isCompositeLitType(t.X)
        case *ast.SelectorExpr:
-               return isTypeName(t.X);
+               return isTypeName(t.X)
        case *ast.ArrayType:
        case *ast.StructType:
        case *ast.MapType:
        default:
-               return false;   // all other nodes are not legal composite literal types
+               return false    // all other nodes are not legal composite literal types
        }
        return true;
 }
@@ -1159,26 +1159,26 @@ func (p *parser) checkExprOrType(x ast.Expr) ast.Expr {
 
 func (p *parser) parsePrimaryExpr() ast.Expr {
        if p.trace {
-               defer un(trace(p, "PrimaryExpr"));
+               defer un(trace(p, "PrimaryExpr"))
        }
 
        x := p.parseOperand();
 L:     for {
                switch p.tok {
                case token.PERIOD:
-                       x = p.parseSelectorOrTypeAssertion(p.checkExpr(x));
+                       x = p.parseSelectorOrTypeAssertion(p.checkExpr(x))
                case token.LBRACK:
-                       x = p.parseIndex(p.checkExpr(x));
+                       x = p.parseIndex(p.checkExpr(x))
                case token.LPAREN:
-                       x = p.parseCallOrConversion(p.checkExprOrType(x));
+                       x = p.parseCallOrConversion(p.checkExprOrType(x))
                case token.LBRACE:
                        if isCompositeLitType(x) && (p.exprLev >= 0 || !isTypeName(x)) {
-                               x = p.parseCompositeLit(x);
+                               x = p.parseCompositeLit(x)
                        } else {
-                               break L;
+                               break L
                        }
                default:
-                       break L;
+                       break L
                }
        }
 
@@ -1188,7 +1188,7 @@ L:        for {
 
 func (p *parser) parseUnaryExpr() ast.Expr {
        if p.trace {
-               defer un(trace(p, "UnaryExpr"));
+               defer un(trace(p, "UnaryExpr"))
        }
 
        switch p.tok {
@@ -1212,7 +1212,7 @@ func (p *parser) parseUnaryExpr() ast.Expr {
 
 func (p *parser) parseBinaryExpr(prec1 int) ast.Expr {
        if p.trace {
-               defer un(trace(p, "BinaryExpr"));
+               defer un(trace(p, "BinaryExpr"))
        }
 
        x := p.parseUnaryExpr();
@@ -1233,7 +1233,7 @@ func (p *parser) parseBinaryExpr(prec1 int) ast.Expr {
 //            should reject when a type/raw type is obviously not allowed
 func (p *parser) parseExpr() ast.Expr {
        if p.trace {
-               defer un(trace(p, "Expression"));
+               defer un(trace(p, "Expression"))
        }
 
        return p.parseBinaryExpr(token.LowestPrec + 1);
@@ -1246,7 +1246,7 @@ func (p *parser) parseExpr() ast.Expr {
 
 func (p *parser) parseSimpleStmt(labelOk bool) ast.Stmt {
        if p.trace {
-               defer un(trace(p, "SimpleStmt"));
+               defer un(trace(p, "SimpleStmt"))
        }
 
        x := p.parseExprList();
@@ -1257,7 +1257,7 @@ func (p *parser) parseSimpleStmt(labelOk bool) ast.Stmt {
                p.next();
                if labelOk && len(x) == 1 {
                        if label, isIdent := x[0].(*ast.Ident); isIdent {
-                               return &ast.LabeledStmt{label, p.parseStmt()};
+                               return &ast.LabeledStmt{label, p.parseStmt()}
                        }
                }
                p.Error(x[0].Pos(), "illegal label declaration");
@@ -1273,13 +1273,13 @@ func (p *parser) parseSimpleStmt(labelOk bool) ast.Stmt {
                p.next();
                y := p.parseExprList();
                if len(x) > 1 && len(y) > 1 && len(x) != len(y) {
-                       p.Error(x[0].Pos(), "arity of lhs doesn't match rhs");
+                       p.Error(x[0].Pos(), "arity of lhs doesn't match rhs")
                }
                return &ast.AssignStmt{x, pos, tok, y};
        }
 
        if len(x) > 1 {
-               p.Error(x[0].Pos(), "only one expression allowed");
+               p.Error(x[0].Pos(), "only one expression allowed")
                // continue with first expression
        }
 
@@ -1298,7 +1298,7 @@ func (p *parser) parseSimpleStmt(labelOk bool) ast.Stmt {
 func (p *parser) parseCallExpr() *ast.CallExpr {
        x := p.parseExpr();
        if call, isCall := x.(*ast.CallExpr); isCall {
-               return call;
+               return call
        }
        p.errorExpected(x.Pos(), "function/method call");
        return nil;
@@ -1307,13 +1307,13 @@ func (p *parser) parseCallExpr() *ast.CallExpr {
 
 func (p *parser) parseGoStmt() ast.Stmt {
        if p.trace {
-               defer un(trace(p, "GoStmt"));
+               defer un(trace(p, "GoStmt"))
        }
 
        pos := p.expect(token.GO);
        call := p.parseCallExpr();
        if call != nil {
-               return &ast.GoStmt{pos, call};
+               return &ast.GoStmt{pos, call}
        }
        return &ast.BadStmt{pos};
 }
@@ -1321,13 +1321,13 @@ func (p *parser) parseGoStmt() ast.Stmt {
 
 func (p *parser) parseDeferStmt() ast.Stmt {
        if p.trace {
-               defer un(trace(p, "DeferStmt"));
+               defer un(trace(p, "DeferStmt"))
        }
 
        pos := p.expect(token.DEFER);
        call := p.parseCallExpr();
        if call != nil {
-               return &ast.DeferStmt{pos, call};
+               return &ast.DeferStmt{pos, call}
        }
        return &ast.BadStmt{pos};
 }
@@ -1335,14 +1335,14 @@ func (p *parser) parseDeferStmt() ast.Stmt {
 
 func (p *parser) parseReturnStmt() *ast.ReturnStmt {
        if p.trace {
-               defer un(trace(p, "ReturnStmt"));
+               defer un(trace(p, "ReturnStmt"))
        }
 
        pos := p.pos;
        p.expect(token.RETURN);
        var x []ast.Expr;
        if p.tok != token.SEMICOLON && p.tok != token.CASE && p.tok != token.DEFAULT && p.tok != token.RBRACE {
-               x = p.parseExprList();
+               x = p.parseExprList()
        }
 
        return &ast.ReturnStmt{pos, x};
@@ -1351,13 +1351,13 @@ func (p *parser) parseReturnStmt() *ast.ReturnStmt {
 
 func (p *parser) parseBranchStmt(tok token.Token) *ast.BranchStmt {
        if p.trace {
-               defer un(trace(p, "BranchStmt"));
+               defer un(trace(p, "BranchStmt"))
        }
 
        s := &ast.BranchStmt{p.pos, tok, nil};
        p.expect(tok);
        if tok != token.FALLTHROUGH && p.tok == token.IDENT {
-               s.Label = p.parseIdent();
+               s.Label = p.parseIdent()
        }
 
        return s;
@@ -1366,10 +1366,10 @@ func (p *parser) parseBranchStmt(tok token.Token) *ast.BranchStmt {
 
 func (p *parser) makeExpr(s ast.Stmt) ast.Expr {
        if s == nil {
-               return nil;
+               return nil
        }
        if es, isExpr := s.(*ast.ExprStmt); isExpr {
-               return p.checkExpr(es.X);
+               return p.checkExpr(es.X)
        }
        p.Error(s.Pos(), "expected condition, found simple statement");
        return &ast.BadExpr{s.Pos()};
@@ -1382,22 +1382,22 @@ func (p *parser) parseControlClause(isForStmt bool) (s1, s2, s3 ast.Stmt) {
                p.exprLev = -1;
 
                if p.tok != token.SEMICOLON {
-                       s1 = p.parseSimpleStmt(false);
+                       s1 = p.parseSimpleStmt(false)
                }
                if p.tok == token.SEMICOLON {
                        p.next();
                        if p.tok != token.LBRACE && p.tok != token.SEMICOLON {
-                               s2 = p.parseSimpleStmt(false);
+                               s2 = p.parseSimpleStmt(false)
                        }
                        if isForStmt {
                                // for statements have a 3rd section
                                p.expect(token.SEMICOLON);
                                if p.tok != token.LBRACE {
-                                       s3 = p.parseSimpleStmt(false);
+                                       s3 = p.parseSimpleStmt(false)
                                }
                        }
                } else {
-                       s1, s2 = nil, s1;
+                       s1, s2 = nil, s1
                }
 
                p.exprLev = prevLev;
@@ -1409,7 +1409,7 @@ func (p *parser) parseControlClause(isForStmt bool) (s1, s2, s3 ast.Stmt) {
 
 func (p *parser) parseIfStmt() *ast.IfStmt {
        if p.trace {
-               defer un(trace(p, "IfStmt"));
+               defer un(trace(p, "IfStmt"))
        }
 
        // IfStmt block
@@ -1430,7 +1430,7 @@ func (p *parser) parseIfStmt() *ast.IfStmt {
 
 func (p *parser) parseCaseClause() *ast.CaseClause {
        if p.trace {
-               defer un(trace(p, "CaseClause"));
+               defer un(trace(p, "CaseClause"))
        }
 
        // CaseClause block
@@ -1443,7 +1443,7 @@ func (p *parser) parseCaseClause() *ast.CaseClause {
                p.next();
                x = p.parseExprList();
        } else {
-               p.expect(token.DEFAULT);
+               p.expect(token.DEFAULT)
        }
 
        colon := p.expect(token.COLON);
@@ -1455,7 +1455,7 @@ func (p *parser) parseCaseClause() *ast.CaseClause {
 
 func (p *parser) parseTypeList() []ast.Expr {
        if p.trace {
-               defer un(trace(p, "TypeList"));
+               defer un(trace(p, "TypeList"))
        }
 
        list := vector.New(0);
@@ -1468,7 +1468,7 @@ func (p *parser) parseTypeList() []ast.Expr {
        // convert list
        exprs := make([]ast.Expr, list.Len());
        for i := 0; i < list.Len(); i++ {
-               exprs[i] = list.At(i).(ast.Expr);
+               exprs[i] = list.At(i).(ast.Expr)
        }
 
        return exprs;
@@ -1477,7 +1477,7 @@ func (p *parser) parseTypeList() []ast.Expr {
 
 func (p *parser) parseTypeCaseClause() *ast.TypeCaseClause {
        if p.trace {
-               defer un(trace(p, "TypeCaseClause"));
+               defer un(trace(p, "TypeCaseClause"))
        }
 
        // TypeCaseClause block
@@ -1490,7 +1490,7 @@ func (p *parser) parseTypeCaseClause() *ast.TypeCaseClause {
                p.next();
                types = p.parseTypeList();
        } else {
-               p.expect(token.DEFAULT);
+               p.expect(token.DEFAULT)
        }
 
        colon := p.expect(token.COLON);
@@ -1502,11 +1502,11 @@ func (p *parser) parseTypeCaseClause() *ast.TypeCaseClause {
 
 func isExprSwitch(s ast.Stmt) bool {
        if s == nil {
-               return true;
+               return true
        }
        if e, ok := s.(*ast.ExprStmt); ok {
                if a, ok := e.X.(*ast.TypeAssertExpr); ok {
-                       return a.Type != nil;   // regular type assertion
+                       return a.Type != nil    // regular type assertion
                }
                return true;
        }
@@ -1516,7 +1516,7 @@ func isExprSwitch(s ast.Stmt) bool {
 
 func (p *parser) parseSwitchStmt() ast.Stmt {
        if p.trace {
-               defer un(trace(p, "SwitchStmt"));
+               defer un(trace(p, "SwitchStmt"))
        }
 
        // SwitchStmt block
@@ -1529,7 +1529,7 @@ func (p *parser) parseSwitchStmt() ast.Stmt {
                lbrace := p.expect(token.LBRACE);
                cases := vector.New(0);
                for p.tok == token.CASE || p.tok == token.DEFAULT {
-                       cases.Push(p.parseCaseClause());
+                       cases.Push(p.parseCaseClause())
                }
                rbrace := p.expect(token.RBRACE);
                p.optSemi = true;
@@ -1542,7 +1542,7 @@ func (p *parser) parseSwitchStmt() ast.Stmt {
        lbrace := p.expect(token.LBRACE);
        cases := vector.New(0);
        for p.tok == token.CASE || p.tok == token.DEFAULT {
-               cases.Push(p.parseTypeCaseClause());
+               cases.Push(p.parseTypeCaseClause())
        }
        rbrace := p.expect(token.RBRACE);
        p.optSemi = true;
@@ -1553,7 +1553,7 @@ func (p *parser) parseSwitchStmt() ast.Stmt {
 
 func (p *parser) parseCommClause() *ast.CommClause {
        if p.trace {
-               defer un(trace(p, "CommClause"));
+               defer un(trace(p, "CommClause"))
        }
 
        // CommClause block
@@ -1567,7 +1567,7 @@ func (p *parser) parseCommClause() *ast.CommClause {
                p.next();
                if p.tok == token.ARROW {
                        // RecvExpr without assignment
-                       rhs = p.parseExpr();
+                       rhs = p.parseExpr()
                } else {
                        // SendExpr or RecvExpr
                        rhs = p.parseExpr();
@@ -1577,15 +1577,15 @@ func (p *parser) parseCommClause() *ast.CommClause {
                                p.next();
                                lhs = rhs;
                                if p.tok == token.ARROW {
-                                       rhs = p.parseExpr();
+                                       rhs = p.parseExpr()
                                } else {
-                                       p.expect(token.ARROW);  // use expect() error handling
+                                       p.expect(token.ARROW)   // use expect() error handling
                                }
                        }
                        // else SendExpr
                }
        } else {
-               p.expect(token.DEFAULT);
+               p.expect(token.DEFAULT)
        }
 
        colon := p.expect(token.COLON);
@@ -1597,14 +1597,14 @@ func (p *parser) parseCommClause() *ast.CommClause {
 
 func (p *parser) parseSelectStmt() *ast.SelectStmt {
        if p.trace {
-               defer un(trace(p, "SelectStmt"));
+               defer un(trace(p, "SelectStmt"))
        }
 
        pos := p.expect(token.SELECT);
        lbrace := p.expect(token.LBRACE);
        cases := vector.New(0);
        for p.tok == token.CASE || p.tok == token.DEFAULT {
-               cases.Push(p.parseCommClause());
+               cases.Push(p.parseCommClause())
        }
        rbrace := p.expect(token.RBRACE);
        p.optSemi = true;
@@ -1616,7 +1616,7 @@ func (p *parser) parseSelectStmt() *ast.SelectStmt {
 
 func (p *parser) parseForStmt() ast.Stmt {
        if p.trace {
-               defer un(trace(p, "ForStmt"));
+               defer un(trace(p, "ForStmt"))
        }
 
        // ForStmt block
@@ -1639,7 +1639,7 @@ func (p *parser) parseForStmt() ast.Stmt {
                        value = as.Lhs[1];
                        fallthrough;
                case 1:
-                       key = as.Lhs[0];
+                       key = as.Lhs[0]
                default:
                        p.errorExpected(as.Lhs[0].Pos(), "1 or 2 expressions");
                        return &ast.BadStmt{pos};
@@ -1651,14 +1651,14 @@ func (p *parser) parseForStmt() ast.Stmt {
                }
                if rhs, isUnary := as.Rhs[0].(*ast.UnaryExpr); isUnary && rhs.Op == token.RANGE {
                        // rhs is range expression; check lhs
-                       return &ast.RangeStmt{pos, key, value, as.TokPos, as.Tok, rhs.X, body};
+                       return &ast.RangeStmt{pos, key, value, as.TokPos, as.Tok, rhs.X, body}
                } else {
                        p.errorExpected(s2.Pos(), "range clause");
                        return &ast.BadStmt{pos};
                }
        } else {
                // regular for statement
-               return &ast.ForStmt{pos, s1, p.makeExpr(s2), s3, body};
+               return &ast.ForStmt{pos, s1, p.makeExpr(s2), s3, body}
        }
 
        panic();        // unreachable
@@ -1668,7 +1668,7 @@ func (p *parser) parseForStmt() ast.Stmt {
 
 func (p *parser) parseStmt() ast.Stmt {
        if p.trace {
-               defer un(trace(p, "Statement"));
+               defer un(trace(p, "Statement"))
        }
 
        switch p.tok {
@@ -1680,28 +1680,28 @@ func (p *parser) parseStmt() ast.Stmt {
                token.IDENT, token.INT, token.FLOAT, token.CHAR, token.STRING, token.FUNC, token.LPAREN,        // operand
                token.LBRACK, token.STRUCT,     // composite type
                token.MUL, token.AND, token.ARROW, token.ADD, token.SUB, token.XOR:     // unary operators
-               return p.parseSimpleStmt(true);
+               return p.parseSimpleStmt(true)
        case token.GO:
-               return p.parseGoStmt();
+               return p.parseGoStmt()
        case token.DEFER:
-               return p.parseDeferStmt();
+               return p.parseDeferStmt()
        case token.RETURN:
-               return p.parseReturnStmt();
+               return p.parseReturnStmt()
        case token.BREAK, token.CONTINUE, token.GOTO, token.FALLTHROUGH:
-               return p.parseBranchStmt(p.tok);
+               return p.parseBranchStmt(p.tok)
        case token.LBRACE:
-               return p.parseBlockStmt(nil);
+               return p.parseBlockStmt(nil)
        case token.IF:
-               return p.parseIfStmt();
+               return p.parseIfStmt()
        case token.SWITCH:
-               return p.parseSwitchStmt();
+               return p.parseSwitchStmt()
        case token.SELECT:
-               return p.parseSelectStmt();
+               return p.parseSelectStmt()
        case token.FOR:
-               return p.parseForStmt();
+               return p.parseForStmt()
        case token.SEMICOLON, token.RBRACE:
                // don't consume the ";", it is the separator following the empty statement
-               return &ast.EmptyStmt{p.pos};
+               return &ast.EmptyStmt{p.pos}
        }
 
        // no statement found
@@ -1731,7 +1731,7 @@ func (p *parser) parseComment(getSemi bool) (comment *ast.CommentGroup, gotSemi
 
 func parseImportSpec(p *parser, doc *ast.CommentGroup, getSemi bool) (spec ast.Spec, gotSemi bool) {
        if p.trace {
-               defer un(trace(p, "ImportSpec"));
+               defer un(trace(p, "ImportSpec"))
        }
 
        var ident *ast.Ident;
@@ -1739,14 +1739,14 @@ func parseImportSpec(p *parser, doc *ast.CommentGroup, getSemi bool) (spec ast.S
                ident = &ast.Ident{p.pos, "."};
                p.next();
        } else if p.tok == token.IDENT {
-               ident = p.parseIdent();
+               ident = p.parseIdent()
        }
 
        var path []*ast.BasicLit;
        if p.tok == token.STRING {
-               path = p.parseStringList(nil);
+               path = p.parseStringList(nil)
        } else {
-               p.expect(token.STRING); // use expect() error handling
+               p.expect(token.STRING)  // use expect() error handling
        }
 
        comment, gotSemi := p.parseComment(getSemi);
@@ -1757,7 +1757,7 @@ func parseImportSpec(p *parser, doc *ast.CommentGroup, getSemi bool) (spec ast.S
 
 func parseConstSpec(p *parser, doc *ast.CommentGroup, getSemi bool) (spec ast.Spec, gotSemi bool) {
        if p.trace {
-               defer un(trace(p, "ConstSpec"));
+               defer un(trace(p, "ConstSpec"))
        }
 
        idents := p.parseIdentList();
@@ -1775,7 +1775,7 @@ func parseConstSpec(p *parser, doc *ast.CommentGroup, getSemi bool) (spec ast.Sp
 
 func parseTypeSpec(p *parser, doc *ast.CommentGroup, getSemi bool) (spec ast.Spec, gotSemi bool) {
        if p.trace {
-               defer un(trace(p, "TypeSpec"));
+               defer un(trace(p, "TypeSpec"))
        }
 
        ident := p.parseIdent();
@@ -1788,7 +1788,7 @@ func parseTypeSpec(p *parser, doc *ast.CommentGroup, getSemi bool) (spec ast.Spe
 
 func parseVarSpec(p *parser, doc *ast.CommentGroup, getSemi bool) (spec ast.Spec, gotSemi bool) {
        if p.trace {
-               defer un(trace(p, "VarSpec"));
+               defer un(trace(p, "VarSpec"))
        }
 
        idents := p.parseIdentList();
@@ -1806,7 +1806,7 @@ func parseVarSpec(p *parser, doc *ast.CommentGroup, getSemi bool) (spec ast.Spec
 
 func (p *parser) parseGenDecl(keyword token.Token, f parseSpecFunction, getSemi bool) (decl *ast.GenDecl, gotSemi bool) {
        if p.trace {
-               defer un(trace(p, keyword.String() + "Decl"));
+               defer un(trace(p, keyword.String() + "Decl"))
        }
 
        doc := p.leadComment;
@@ -1821,7 +1821,7 @@ func (p *parser) parseGenDecl(keyword token.Token, f parseSpecFunction, getSemi
                        spec, semi := f(p, doc, true);  // consume semicolon if any
                        list.Push(spec);
                        if !semi {
-                               break;
+                               break
                        }
                }
                rparen = p.expect(token.RPAREN);
@@ -1830,7 +1830,7 @@ func (p *parser) parseGenDecl(keyword token.Token, f parseSpecFunction, getSemi
                        p.next();
                        gotSemi = true;
                } else {
-                       p.optSemi = true;
+                       p.optSemi = true
                }
        } else {
                spec, semi := f(p, nil, getSemi);
@@ -1841,7 +1841,7 @@ func (p *parser) parseGenDecl(keyword token.Token, f parseSpecFunction, getSemi
        // convert vector
        specs := make([]ast.Spec, list.Len());
        for i := 0; i < list.Len(); i++ {
-               specs[i] = list.At(i).(ast.Spec);
+               specs[i] = list.At(i).(ast.Spec)
        }
 
        return &ast.GenDecl{doc, pos, keyword, lparen, specs, rparen}, gotSemi;
@@ -1850,7 +1850,7 @@ func (p *parser) parseGenDecl(keyword token.Token, f parseSpecFunction, getSemi
 
 func (p *parser) parseReceiver() *ast.Field {
        if p.trace {
-               defer un(trace(p, "Receiver"));
+               defer un(trace(p, "Receiver"))
        }
 
        pos := p.pos;
@@ -1867,10 +1867,10 @@ func (p *parser) parseReceiver() *ast.Field {
        // recv type must be TypeName or *TypeName
        base := recv.Type;
        if ptr, isPtr := base.(*ast.StarExpr); isPtr {
-               base = ptr.X;
+               base = ptr.X
        }
        if !isTypeName(base) {
-               p.errorExpected(base.Pos(), "type name");
+               p.errorExpected(base.Pos(), "type name")
        }
 
        return recv;
@@ -1879,7 +1879,7 @@ func (p *parser) parseReceiver() *ast.Field {
 
 func (p *parser) parseFunctionDecl() *ast.FuncDecl {
        if p.trace {
-               defer un(trace(p, "FunctionDecl"));
+               defer un(trace(p, "FunctionDecl"))
        }
 
        doc := p.leadComment;
@@ -1887,7 +1887,7 @@ func (p *parser) parseFunctionDecl() *ast.FuncDecl {
 
        var recv *ast.Field;
        if p.tok == token.LPAREN {
-               recv = p.parseReceiver();
+               recv = p.parseReceiver()
        }
 
        ident := p.parseIdent();
@@ -1895,7 +1895,7 @@ func (p *parser) parseFunctionDecl() *ast.FuncDecl {
 
        var body *ast.BlockStmt;
        if p.tok == token.LBRACE {
-               body = p.parseBlockStmt(nil);
+               body = p.parseBlockStmt(nil)
        }
 
        return &ast.FuncDecl{doc, recv, ident, &ast.FuncType{pos, params, results}, body};
@@ -1904,19 +1904,19 @@ func (p *parser) parseFunctionDecl() *ast.FuncDecl {
 
 func (p *parser) parseDecl(getSemi bool) (decl ast.Decl, gotSemi bool) {
        if p.trace {
-               defer un(trace(p, "Declaration"));
+               defer un(trace(p, "Declaration"))
        }
 
        var f parseSpecFunction;
        switch p.tok {
        case token.CONST:
-               f = parseConstSpec;
+               f = parseConstSpec
 
        case token.TYPE:
-               f = parseTypeSpec;
+               f = parseTypeSpec
 
        case token.VAR:
-               f = parseVarSpec;
+               f = parseVarSpec
 
        case token.FUNC:
                decl = p.parseFunctionDecl();
@@ -1938,7 +1938,7 @@ func (p *parser) parseDecl(getSemi bool) (decl ast.Decl, gotSemi bool) {
 
 func (p *parser) parseDeclList() []ast.Decl {
        if p.trace {
-               defer un(trace(p, "DeclList"));
+               defer un(trace(p, "DeclList"))
        }
 
        list := vector.New(0);
@@ -1950,7 +1950,7 @@ func (p *parser) parseDeclList() []ast.Decl {
        // convert vector
        decls := make([]ast.Decl, list.Len());
        for i := 0; i < list.Len(); i++ {
-               decls[i] = list.At(i).(ast.Decl);
+               decls[i] = list.At(i).(ast.Decl)
        }
 
        return decls;
@@ -1962,7 +1962,7 @@ func (p *parser) parseDeclList() []ast.Decl {
 
 func (p *parser) parseFile() *ast.File {
        if p.trace {
-               defer un(trace(p, "File"));
+               defer un(trace(p, "File"))
        }
 
        // file block
@@ -1996,7 +1996,7 @@ func (p *parser) parseFile() *ast.File {
                // convert declaration list
                decls = make([]ast.Decl, list.Len());
                for i := 0; i < list.Len(); i++ {
-                       decls[i] = list.At(i).(ast.Decl);
+                       decls[i] = list.At(i).(ast.Decl)
                }
        }
 
index 257ef9a7fe0bb0c8c2015843e19764c122c900af..10a750c59e8d2b5122089950d87b95cbc2777d9c 100644 (file)
@@ -22,7 +22,7 @@ func TestParseIllegalInputs(t *testing.T) {
        for _, src := range illegalInputs {
                _, err := ParseFile("", src, 0);
                if err == nil {
-                       t.Errorf("ParseFile(%v) should have failed", src);
+                       t.Errorf("ParseFile(%v) should have failed", src)
                }
        }
 }
@@ -38,7 +38,7 @@ func TestParseValidPrograms(t *testing.T) {
        for _, src := range validPrograms {
                _, err := ParseFile("", src, 0);
                if err != nil {
-                       t.Errorf("ParseFile(%q): %v", src, err);
+                       t.Errorf("ParseFile(%q): %v", src, err)
                }
        }
 }
@@ -54,7 +54,7 @@ func TestParse3(t *testing.T) {
        for _, filename := range validFiles {
                _, err := ParseFile(filename, nil, 0);
                if err != nil {
-                       t.Errorf("ParseFile(%s): %v", filename, err);
+                       t.Errorf("ParseFile(%s): %v", filename, err)
                }
        }
 }
@@ -66,7 +66,7 @@ func nameFilter(filename string) bool {
        case "interface.go":
        case "parser_test.go":
        default:
-               return false;
+               return false
        }
        return true;
 }
@@ -79,14 +79,14 @@ func TestParse4(t *testing.T) {
        path := ".";
        pkg, err := ParsePackage(path, dirFilter, 0);
        if err != nil {
-               t.Fatalf("ParsePackage(%s): %v", path, err);
+               t.Fatalf("ParsePackage(%s): %v", path, err)
        }
        if pkg.Name != "parser" {
-               t.Errorf("incorrect package name: %s", pkg.Name);
+               t.Errorf("incorrect package name: %s", pkg.Name)
        }
        for filename, _ := range pkg.Files {
                if !nameFilter(filename) {
-                       t.Errorf("unexpected package file: %s", filename);
+                       t.Errorf("unexpected package file: %s", filename)
                }
        }
 }
index b89bb2b0c345f2ba77f91e53e3e3cbf46eea21f1..6397796903aed28a335c04f6e180b7c6af59811c 100644 (file)
@@ -19,7 +19,7 @@ import (
 // Disabled formatting - enable eventually and remove the flag.
 const (
        compositeLitBlank       = false;
-       fewerSemis              = false;
+       fewerSemis              = true;
        stringListMode          = exprListMode(0);      // previously: noIndent
 )
 
@@ -49,9 +49,9 @@ func (p *printer) linebreak(line, min, max int, ws whiteSpace, newSection bool)
        n := line - p.pos.Line;
        switch {
        case n < min:
-               n = min;
+               n = min
        case n > max:
-               n = max;
+               n = max
        }
        if n > 0 {
                p.print(ws);
@@ -81,7 +81,7 @@ func (p *printer) commentList(list []*ast.Comment) {
                p.print(c.Pos(), t);
                if t[1] == '/' && i+1 < len(list) {
                        //-style comment which is not at the end; print a newline
-                       p.print(newline);
+                       p.print(newline)
                }
        }
 }
@@ -114,7 +114,7 @@ func (p *printer) identList(list []*ast.Ident, multiLine *bool) {
        // convert into an expression list
        xlist := make([]ast.Expr, len(list));
        for i, x := range list {
-               xlist[i] = x;
+               xlist[i] = x
        }
        p.exprList(noPos, xlist, commaSep, multiLine);
 }
@@ -125,7 +125,7 @@ func (p *printer) stringList(list []*ast.BasicLit, multiLine *bool) {
        // convert into an expression list
        xlist := make([]ast.Expr, len(list));
        for i, x := range list {
-               xlist[i] = x;
+               xlist[i] = x
        }
        p.exprList(noPos, xlist, stringListMode, multiLine);
 }
@@ -148,11 +148,11 @@ const (
 // lines.
 func (p *printer) exprList(prev token.Position, list []ast.Expr, mode exprListMode, multiLine *bool) {
        if len(list) == 0 {
-               return;
+               return
        }
 
        if mode & blankStart != 0 {
-               p.print(blank);
+               p.print(blank)
        }
 
        // TODO(gri): endLine may be incorrect as it is really the beginning
@@ -166,14 +166,14 @@ func (p *printer) exprList(prev token.Position, list []ast.Expr, mode exprListMo
                for i, x := range list {
                        if i > 0 {
                                if mode&commaSep != 0 {
-                                       p.print(token.COMMA);
+                                       p.print(token.COMMA)
                                }
                                p.print(blank);
                        }
                        p.expr(x, multiLine);
                }
                if mode&blankEnd != 0 {
-                       p.print(blank);
+                       p.print(blank)
                }
                return;
        }
@@ -185,7 +185,7 @@ func (p *printer) exprList(prev token.Position, list []ast.Expr, mode exprListMo
        // i.e., pretend that the first line is already indented
        ws := ignore;
        if mode&noIndent == 0 {
-               ws = indent;
+               ws = indent
        }
 
        if prev.IsValid() && prev.Line < line && p.linebreak(line, 1, 2, ws, true) {
@@ -198,7 +198,7 @@ func (p *printer) exprList(prev token.Position, list []ast.Expr, mode exprListMo
                line = x.Pos().Line;
                if i > 0 {
                        if mode&commaSep != 0 {
-                               p.print(token.COMMA);
+                               p.print(token.COMMA)
                        }
                        if prev < line {
                                if p.linebreak(line, 1, 2, ws, true) {
@@ -206,7 +206,7 @@ func (p *printer) exprList(prev token.Position, list []ast.Expr, mode exprListMo
                                        *multiLine = true;
                                }
                        } else {
-                               p.print(blank);
+                               p.print(blank)
                        }
                }
                p.expr(x, multiLine);
@@ -216,19 +216,19 @@ func (p *printer) exprList(prev token.Position, list []ast.Expr, mode exprListMo
                p.print(token.COMMA);
                if ws == ignore && mode&noIndent == 0 {
                        // unindent if we indented
-                       p.print(unindent);
+                       p.print(unindent)
                }
                p.print(formfeed);      // terminating comma needs a line break to look good
                return;
        }
 
        if mode&blankEnd != 0 {
-               p.print(blank);
+               p.print(blank)
        }
 
        if ws == ignore && mode&noIndent == 0 {
                // unindent if we indented
-               p.print(unindent);
+               p.print(unindent)
        }
 }
 
@@ -239,7 +239,7 @@ func (p *printer) parameters(list []*ast.Field, multiLine *bool) {
        if len(list) > 0 {
                for i, par := range list {
                        if i > 0 {
-                               p.print(token.COMMA, blank);
+                               p.print(token.COMMA, blank)
                        }
                        if len(par.Names) > 0 {
                                p.identList(par.Names, multiLine);
@@ -277,13 +277,13 @@ func (p *printer) signature(params, result []*ast.Field, multiLine *bool) (optSe
 func identListSize(list []*ast.Ident, maxSize int) (size int) {
        for i, x := range list {
                if i > 0 {
-                       size += 2 // ", "
-                       ;
+                       size += 2       // ", "
+
 
                }
                size += len(x.Value);
                if size >= maxSize {
-                       break;
+                       break
                }
        }
        return;
@@ -292,18 +292,18 @@ func identListSize(list []*ast.Ident, maxSize int) (size int) {
 
 func (p *printer) isOneLineFieldList(list []*ast.Field) bool {
        if len(list) != 1 {
-               return false;   // allow only one field
+               return false    // allow only one field
        }
        f := list[0];
        if f.Tag != nil || f.Comment != nil {
-               return false;   // don't allow tags or comments
+               return false    // don't allow tags or comments
        }
        // only name(s) and type
        const maxSize = 30;     // adjust as appropriate, this is an approximate value
        namesSize := identListSize(f.Names, maxSize);
        if namesSize > 0 {
-               namesSize = 1 // blank between names and types
-               ;
+               namesSize = 1   // blank between names and types
+
 
        }
        typeSize := p.nodeSize(f.Type, maxSize);
@@ -326,12 +326,12 @@ func (p *printer) fieldList(lbrace token.Position, list []*ast.Field, rbrace tok
                        f := list[0];
                        for i, x := range f.Names {
                                if i > 0 {
-                                       p.print(token.COMMA, blank);
+                                       p.print(token.COMMA, blank)
                                }
                                p.expr(x, ignoreMultiLine);
                        }
                        if len(f.Names) > 0 {
-                               p.print(blank);
+                               p.print(blank)
                        }
                        p.expr(f.Type, ignoreMultiLine);
                        p.print(blank, rbrace, token.RBRACE);
@@ -345,12 +345,12 @@ func (p *printer) fieldList(lbrace token.Position, list []*ast.Field, rbrace tok
 
                sep := vtab;
                if len(list) == 1 {
-                       sep = blank;
+                       sep = blank
                }
                var ml bool;
                for i, f := range list {
                        if i > 0 {
-                               p.linebreak(f.Pos().Line, 1, 2, ignore, ml);
+                               p.linebreak(f.Pos().Line, 1, 2, ignore, ml)
                        }
                        ml = false;
                        extraTabs := 0;
@@ -368,7 +368,7 @@ func (p *printer) fieldList(lbrace token.Position, list []*ast.Field, rbrace tok
                        }
                        if f.Tag != nil {
                                if len(f.Names) > 0 && sep == vtab {
-                                       p.print(sep);
+                                       p.print(sep)
                                }
                                p.print(sep);
                                p.expr(&ast.StringList{f.Tag}, &ml);
@@ -377,14 +377,14 @@ func (p *printer) fieldList(lbrace token.Position, list []*ast.Field, rbrace tok
                        p.print(token.SEMICOLON);
                        if f.Comment != nil {
                                for ; extraTabs > 0; extraTabs-- {
-                                       p.print(vtab);
+                                       p.print(vtab)
                                }
                                p.lineComment(f.Comment);
                        }
                }
                if isIncomplete {
                        if len(list) > 0 {
-                               p.print(formfeed);
+                               p.print(formfeed)
                        }
                        // TODO(gri): this needs to be styled like normal comments
                        p.print("// contains unexported fields");
@@ -395,7 +395,7 @@ func (p *printer) fieldList(lbrace token.Position, list []*ast.Field, rbrace tok
                var ml bool;
                for i, f := range list {
                        if i > 0 {
-                               p.linebreak(f.Pos().Line, 1, 2, ignore, ml);
+                               p.linebreak(f.Pos().Line, 1, 2, ignore, ml)
                        }
                        ml = false;
                        p.leadComment(f.Doc);
@@ -405,14 +405,14 @@ func (p *printer) fieldList(lbrace token.Position, list []*ast.Field, rbrace tok
                                p.signature(ftyp.Params, ftyp.Results, &ml);
                        } else {
                                // embedded interface
-                               p.expr(f.Type, &ml);
+                               p.expr(f.Type, &ml)
                        }
                        p.print(token.SEMICOLON);
                        p.lineComment(f.Comment);
                }
                if isIncomplete {
                        if len(list) > 0 {
-                               p.print(formfeed);
+                               p.print(formfeed)
                        }
                        // TODO(gri): this needs to be styled like normal comments
                        p.print("// contains unexported methods");
@@ -439,20 +439,20 @@ func needsBlanks(expr ast.Expr) bool {
        switch x := expr.(type) {
        case *ast.Ident:
                // "long" identifiers look better with blanks around them
-               return len(x.Value) > 8;
+               return len(x.Value) > 8
        case *ast.BasicLit:
                // "long" literals look better with blanks around them
-               return len(x.Value) > 8;
+               return len(x.Value) > 8
        case *ast.ParenExpr:
                // parenthesized expressions don't need blanks around them
-               return false;
+               return false
        case *ast.IndexExpr:
                // index expressions don't need blanks if the indexed expressions are simple
-               return needsBlanks(x.X);
+               return needsBlanks(x.X)
        case *ast.CallExpr:
                // call expressions need blanks if they have more than one
                // argument or if the function expression needs blanks
-               return len(x.Args) > 1 || needsBlanks(x.Fun);
+               return len(x.Args) > 1 || needsBlanks(x.Fun)
        }
        return true;
 }
@@ -487,16 +487,16 @@ func (p *printer) binaryExpr(x *ast.BinaryExpr, prec1 int, multiLine *bool) {
                        prev := line;
                        line = x.Y.Pos().Line;
                        if needsBlanks(x.Y) || prev != line {
-                               printBlanks = true;
+                               printBlanks = true
                        }
                } else {
-                       break;
+                       break
                }
        }
        prev := line;
        line = x.X.Pos().Line;
        if needsBlanks(x.X) || prev != line {
-               printBlanks = true;
+               printBlanks = true
        }
 
        // Print collected operations left-to-right, with blanks if necessary.
@@ -516,18 +516,18 @@ func (p *printer) binaryExpr(x *ast.BinaryExpr, prec1 int, multiLine *bool) {
                                        *multiLine = true;
                                }
                        } else {
-                               p.print(blank, x.OpPos, x.Op, blank);
+                               p.print(blank, x.OpPos, x.Op, blank)
                        }
                } else {
                        if prev != line {
-                               panic("internal error");
+                               panic("internal error")
                        }
                        p.print(x.OpPos, x.Op);
                }
                p.expr1(x.Y, prec, 0, multiLine);
        }
        if ws == ignore {
-               p.print(unindent);
+               p.print(unindent)
        }
 }
 
@@ -539,13 +539,13 @@ func (p *printer) expr1(expr ast.Expr, prec1 int, ctxt exprContext, multiLine *b
 
        switch x := expr.(type) {
        case *ast.BadExpr:
-               p.print("BadExpr");
+               p.print("BadExpr")
 
        case *ast.Ident:
-               p.print(x);
+               p.print(x)
 
        case *ast.BinaryExpr:
-               p.binaryExpr(x, prec1, multiLine);
+               p.binaryExpr(x, prec1, multiLine)
 
        case *ast.KeyValueExpr:
                p.expr(x.Key, multiLine);
@@ -567,16 +567,16 @@ func (p *printer) expr1(expr ast.Expr, prec1 int, ctxt exprContext, multiLine *b
                        // no parenthesis needed
                        p.print(x.Op);
                        if x.Op == token.RANGE {
-                               p.print(blank);
+                               p.print(blank)
                        }
                        p.expr1(x.X, prec, 0, multiLine);
                }
 
        case *ast.BasicLit:
-               p.print(x);
+               p.print(x)
 
        case *ast.StringList:
-               p.stringList(x.Strings, multiLine);
+               p.stringList(x.Strings, multiLine)
 
        case *ast.FuncLit:
                p.expr(x.Type, multiLine);
@@ -596,9 +596,9 @@ func (p *printer) expr1(expr ast.Expr, prec1 int, ctxt exprContext, multiLine *b
                p.expr1(x.X, token.HighestPrec, 0, multiLine);
                p.print(token.PERIOD, token.LPAREN);
                if x.Type != nil {
-                       p.expr(x.Type, multiLine);
+                       p.expr(x.Type, multiLine)
                } else {
-                       p.print(token.TYPE);
+                       p.print(token.TYPE)
                }
                p.print(token.RPAREN);
 
@@ -609,10 +609,10 @@ func (p *printer) expr1(expr ast.Expr, prec1 int, ctxt exprContext, multiLine *b
                if x.End != nil {
                        if needsBlanks(x.Index) || needsBlanks(x.End) {
                                // blanks around ":"
-                               p.print(blank, token.COLON, blank);
+                               p.print(blank, token.COLON, blank)
                        } else {
                                // no blanks around ":"
-                               p.print(token.COLON);
+                               p.print(token.COLON)
                        }
                        p.expr(x.End, multiLine);
                }
@@ -636,7 +636,7 @@ func (p *printer) expr1(expr ast.Expr, prec1 int, ctxt exprContext, multiLine *b
                                // TODO(gri): for now this decision is made by looking at the
                                //            source code - it may not be correct if the source
                                //            code was badly misformatted in the first place
-                               p.print(blank);
+                               p.print(blank)
                        }
                }
                p.print(x.Lbrace, token.LBRACE);
@@ -644,12 +644,12 @@ func (p *printer) expr1(expr ast.Expr, prec1 int, ctxt exprContext, multiLine *b
                p.print(x.Rbrace, token.RBRACE);
 
        case *ast.Ellipsis:
-               p.print(token.ELLIPSIS);
+               p.print(token.ELLIPSIS)
 
        case *ast.ArrayType:
                p.print(token.LBRACK);
                if x.Len != nil {
-                       p.expr(x.Len, multiLine);
+                       p.expr(x.Len, multiLine)
                }
                p.print(token.RBRACK);
                optSemi = p.expr(x.Elt, multiLine);
@@ -677,17 +677,17 @@ func (p *printer) expr1(expr ast.Expr, prec1 int, ctxt exprContext, multiLine *b
        case *ast.ChanType:
                switch x.Dir {
                case ast.SEND | ast.RECV:
-                       p.print(token.CHAN);
+                       p.print(token.CHAN)
                case ast.RECV:
-                       p.print(token.ARROW, token.CHAN);
+                       p.print(token.ARROW, token.CHAN)
                case ast.SEND:
-                       p.print(token.CHAN, token.ARROW);
+                       p.print(token.CHAN, token.ARROW)
                }
                p.print(blank);
                optSemi = p.expr(x.Value, multiLine);
 
        default:
-               panic("unreachable");
+               panic("unreachable")
        }
 
        return;
@@ -697,7 +697,7 @@ func (p *printer) expr1(expr ast.Expr, prec1 int, ctxt exprContext, multiLine *b
 // Returns true if a separating semicolon is optional.
 // Sets multiLine to true if the expression spans multiple lines.
 func (p *printer) expr(x ast.Expr, multiLine *bool) (optSemi bool) {
-       return p.expr1(x, token.LowestPrec, 0, multiLine);
+       return p.expr1(x, token.LowestPrec, 0, multiLine)
 }
 
 
@@ -712,7 +712,7 @@ const maxStmtNewlines = 2   // maximum number of newlines between statements
 func (p *printer) stmtList(list []ast.Stmt, _indent int) {
        // TODO(gri): fix _indent code
        if _indent > 0 {
-               p.print(indent);
+               p.print(indent)
        }
        var multiLine bool;
        for i, s := range list {
@@ -721,11 +721,11 @@ func (p *printer) stmtList(list []ast.Stmt, _indent int) {
                p.linebreak(s.Pos().Line, 1, maxStmtNewlines, ignore, i == 0 || _indent == 0 || multiLine);
                multiLine = false;
                if !p.stmt(s, &multiLine) && (!fewerSemis || len(list) > 1) {
-                       p.print(token.SEMICOLON);
+                       p.print(token.SEMICOLON)
                }
        }
        if _indent > 0 {
-               p.print(unindent);
+               p.print(unindent)
        }
 }
 
@@ -744,7 +744,7 @@ func (p *printer) block(s *ast.BlockStmt, indent int) {
 //            need to be careful to keep them around type expressions.
 func stripParens(x ast.Expr) ast.Expr {
        if px, hasParens := x.(*ast.ParenExpr); hasParens {
-               return stripParens(px.X);
+               return stripParens(px.X)
        }
        return x;
 }
@@ -763,7 +763,7 @@ func (p *printer) controlClause(isForStmt bool, init ast.Stmt, expr ast.Expr, po
                // all semicolons required
                // (they are not separators, print them explicitly)
                if init != nil {
-                       p.stmt(init, ignoreMultiLine);
+                       p.stmt(init, ignoreMultiLine)
                }
                p.print(token.SEMICOLON, blank);
                if expr != nil {
@@ -780,7 +780,7 @@ func (p *printer) controlClause(isForStmt bool, init ast.Stmt, expr ast.Expr, po
                }
        }
        if needsBlank {
-               p.print(blank);
+               p.print(blank)
        }
 }
 
@@ -792,7 +792,7 @@ func (p *printer) stmt(stmt ast.Stmt, multiLine *bool) (optSemi bool) {
 
        switch s := stmt.(type) {
        case *ast.BadStmt:
-               p.print("BadStmt");
+               p.print("BadStmt")
 
        case *ast.DeclStmt:
                p.decl(s.Decl, inStmtList, multiLine);
@@ -812,7 +812,7 @@ func (p *printer) stmt(stmt ast.Stmt, multiLine *bool) (optSemi bool) {
                optSemi = p.stmt(s.Stmt, multiLine);
 
        case *ast.ExprStmt:
-               p.expr(s.X, multiLine);
+               p.expr(s.X, multiLine)
 
        case *ast.IncDecStmt:
                p.expr(s.X, multiLine);
@@ -834,7 +834,7 @@ func (p *printer) stmt(stmt ast.Stmt, multiLine *bool) (optSemi bool) {
        case *ast.ReturnStmt:
                p.print(token.RETURN);
                if s.Results != nil {
-                       p.exprList(s.Pos(), s.Results, blankStart | commaSep, multiLine);
+                       p.exprList(s.Pos(), s.Results, blankStart | commaSep, multiLine)
                }
 
        case *ast.BranchStmt:
@@ -859,7 +859,7 @@ func (p *printer) stmt(stmt ast.Stmt, multiLine *bool) (optSemi bool) {
                        p.print(blank, token.ELSE, blank);
                        switch s.Else.(type) {
                        case *ast.BlockStmt, *ast.IfStmt:
-                               optSemi = p.stmt(s.Else, ignoreMultiLine);
+                               optSemi = p.stmt(s.Else, ignoreMultiLine)
                        default:
                                p.print(token.LBRACE, indent, formfeed);
                                p.stmt(s.Else, ignoreMultiLine);
@@ -872,7 +872,7 @@ func (p *printer) stmt(stmt ast.Stmt, multiLine *bool) (optSemi bool) {
                        p.print(token.CASE);
                        p.exprList(s.Pos(), s.Values, blankStart | commaSep, multiLine);
                } else {
-                       p.print(token.DEFAULT);
+                       p.print(token.DEFAULT)
                }
                p.print(s.Colon, token.COLON);
                p.stmtList(s.Body, 1);
@@ -890,7 +890,7 @@ func (p *printer) stmt(stmt ast.Stmt, multiLine *bool) (optSemi bool) {
                        p.print(token.CASE);
                        p.exprList(s.Pos(), s.Types, blankStart | commaSep, multiLine);
                } else {
-                       p.print(token.DEFAULT);
+                       p.print(token.DEFAULT)
                }
                p.print(s.Colon, token.COLON);
                p.stmtList(s.Body, 1);
@@ -919,7 +919,7 @@ func (p *printer) stmt(stmt ast.Stmt, multiLine *bool) (optSemi bool) {
                        }
                        p.expr(s.Rhs, multiLine);
                } else {
-                       p.print(token.DEFAULT);
+                       p.print(token.DEFAULT)
                }
                p.print(s.Colon, token.COLON);
                p.stmtList(s.Body, 1);
@@ -953,7 +953,7 @@ func (p *printer) stmt(stmt ast.Stmt, multiLine *bool) (optSemi bool) {
                optSemi = true;
 
        default:
-               panic("unreachable");
+               panic("unreachable")
        }
 
        return;
@@ -1009,7 +1009,7 @@ func (p *printer) spec(spec ast.Spec, n int, context declContext, multiLine *boo
                } else {
                        extraTabs = 2;
                        if s.Type != nil || s.Values != nil {
-                               p.print(vtab);
+                               p.print(vtab)
                        }
                        if s.Type != nil {
                                optSemi = p.expr(s.Type, multiLine);
@@ -1029,24 +1029,24 @@ func (p *printer) spec(spec ast.Spec, n int, context declContext, multiLine *boo
                p.leadComment(s.Doc);
                p.expr(s.Name, multiLine);
                if n == 1 {
-                       p.print(blank);
+                       p.print(blank)
                } else {
-                       p.print(vtab);
+                       p.print(vtab)
                }
                optSemi = p.expr(s.Type, multiLine);
                comment = s.Comment;
 
        default:
-               panic("unreachable");
+               panic("unreachable")
        }
 
        if context == inGroup || context == inStmtList && !optSemi {
-               p.print(token.SEMICOLON);
+               p.print(token.SEMICOLON)
        }
 
        if comment != nil {
                for ; extraTabs > 0; extraTabs-- {
-                       p.print(vtab);
+                       p.print(vtab)
                }
                p.lineComment(comment);
        }
@@ -1066,7 +1066,7 @@ func (p *printer) genDecl(d *ast.GenDecl, context declContext, multiLine *bool)
                        var ml bool;
                        for i, s := range d.Specs {
                                if i > 0 {
-                                       p.linebreak(s.Pos().Line, 1, 2, ignore, ml);
+                                       p.linebreak(s.Pos().Line, 1, 2, ignore, ml)
                                }
                                ml = false;
                                p.spec(s, len(d.Specs), inGroup, &ml);
@@ -1078,7 +1078,7 @@ func (p *printer) genDecl(d *ast.GenDecl, context declContext, multiLine *bool)
 
        } else {
                // single declaration
-               p.spec(d.Specs[0], 1, context, multiLine);
+               p.spec(d.Specs[0], 1, context, multiLine)
        }
 }
 
@@ -1096,12 +1096,12 @@ func (p *printer) nodeSize(n ast.Node, maxSize int) (size int) {
        cfg := Config{Mode: RawFormat};
        var buf bytes.Buffer;
        if _, err := cfg.Fprint(&buf, n); err != nil {
-               return;
+               return
        }
        if buf.Len() <= maxSize {
                for _, ch := range buf.Bytes() {
                        if ch < ' ' {
-                               return;
+                               return
                        }
                }
                size = buf.Len();       // n fits
@@ -1115,9 +1115,9 @@ func (p *printer) isOneLineFunc(b *ast.BlockStmt, headerSize int) bool {
        bodySize := 0;
        switch {
        case len(b.List) > 1 || p.commentBefore(b.Rbrace):
-               return false;   // too many statements or there is a comment - all bets are off
+               return false    // too many statements or there is a comment - all bets are off
        case len(b.List) == 1:
-               bodySize = p.nodeSize(b.List[0], maxSize);
+               bodySize = p.nodeSize(b.List[0], maxSize)
        }
        // require both headers and overall size to be not "too large"
        return headerSize <= maxSize/2 && headerSize + bodySize <= maxSize;
@@ -1127,20 +1127,20 @@ func (p *printer) isOneLineFunc(b *ast.BlockStmt, headerSize int) bool {
 // Sets multiLine to true if the function body spans multiple lines.
 func (p *printer) funcBody(b *ast.BlockStmt, headerSize int, isLit bool, multiLine *bool) {
        if b == nil {
-               return;
+               return
        }
 
        if p.isOneLineFunc(b, headerSize) {
                sep := vtab;
                if isLit {
-                       sep = blank;
+                       sep = blank
                }
                if len(b.List) > 0 {
                        p.print(sep, b.Pos(), token.LBRACE, blank);
                        p.stmt(b.List[0], ignoreMultiLine);
                        p.print(blank, b.Rbrace, token.RBRACE);
                } else {
-                       p.print(sep, b.Pos(), token.LBRACE, b.Rbrace, token.RBRACE);
+                       p.print(sep, b.Pos(), token.LBRACE, b.Rbrace, token.RBRACE)
                }
                return;
        }
@@ -1156,7 +1156,7 @@ func (p *printer) funcBody(b *ast.BlockStmt, headerSize int, isLit bool, multiLi
 // the result is infinity (1<<30).
 func distance(from, to token.Position) int {
        if from.IsValid() && to.IsValid() && from.Line == to.Line {
-               return to.Column - from.Column;
+               return to.Column - from.Column
        }
        return 1<<30;
 }
@@ -1186,13 +1186,13 @@ func (p *printer) funcDecl(d *ast.FuncDecl, multiLine *bool) {
 func (p *printer) decl(decl ast.Decl, context declContext, multiLine *bool) {
        switch d := decl.(type) {
        case *ast.BadDecl:
-               p.print(d.Pos(), "BadDecl");
+               p.print(d.Pos(), "BadDecl")
        case *ast.GenDecl:
-               p.genDecl(d, context, multiLine);
+               p.genDecl(d, context, multiLine)
        case *ast.FuncDecl:
-               p.funcDecl(d, multiLine);
+               p.funcDecl(d, multiLine)
        default:
-               panic("unreachable");
+               panic("unreachable")
        }
 }
 
@@ -1206,9 +1206,9 @@ func declToken(decl ast.Decl) (tok token.Token) {
        tok = token.ILLEGAL;
        switch d := decl.(type) {
        case *ast.GenDecl:
-               tok = d.Tok;
+               tok = d.Tok
        case *ast.FuncDecl:
-               tok = token.FUNC;
+               tok = token.FUNC
        }
        return;
 }
@@ -1228,7 +1228,7 @@ func (p *printer) file(src *ast.File) {
                        // print an empty line between top-level declarations
                        min := 1;
                        if prev != tok {
-                               min = 2;
+                               min = 2
                        }
                        p.linebreak(d.Pos().Line, min, maxDeclNewlines, ignore, false);
                        p.decl(d, atTop, ignoreMultiLine);
index 9c68da227e7c01dc40d0fc37e77cc80e5447e9de..4c3511c61559b7e2e6b1f574842bdf84682c63b8 100644 (file)
@@ -137,7 +137,7 @@ func (p *printer) write(data []byte) {
                                // must not be discarded by the tabwriter
                                j := p.indent;
                                for ; j > len(htabs); j -= len(htabs) {
-                                       p.write0(&htabs);
+                                       p.write0(&htabs)
                                }
                                p.write0(htabs[0:j]);
 
@@ -158,15 +158,15 @@ func (p *printer) write(data []byte) {
                                var esc []byte;
                                switch b {
                                case '"':
-                                       esc = esc_quot;
+                                       esc = esc_quot
                                case '\'':
-                                       esc = esc_apos;
+                                       esc = esc_apos
                                case '&':
-                                       esc = esc_amp;
+                                       esc = esc_amp
                                case '<':
-                                       esc = esc_lt;
+                                       esc = esc_lt
                                case '>':
-                                       esc = esc_gt;
+                                       esc = esc_gt
                                }
                                p.write0(esc);
 
@@ -180,7 +180,7 @@ func (p *printer) write(data []byte) {
                        }
 
                case tabwriter.Escape:
-                       p.escape = !p.escape;
+                       p.escape = !p.escape
                }
        }
 
@@ -197,7 +197,7 @@ func (p *printer) write(data []byte) {
 func (p *printer) writeNewlines(n int) {
        if n > 0 {
                if n > maxNewlines {
-                       n = maxNewlines;
+                       n = maxNewlines
                }
                p.write(newlines[0:n]);
        }
@@ -207,7 +207,7 @@ func (p *printer) writeNewlines(n int) {
 func (p *printer) writeFormfeeds(n int) {
        if n > 0 {
                if n > maxNewlines {
-                       n = maxNewlines;
+                       n = maxNewlines
                }
                p.write(formfeeds[0:n]);
        }
@@ -218,12 +218,12 @@ func (p *printer) writeTaggedItem(data []byte, tag HTMLTag) {
        // write start tag, if any
        // (no html-escaping and no p.pos update for tags - use write0)
        if tag.Start != "" {
-               p.write0(strings.Bytes(tag.Start));
+               p.write0(strings.Bytes(tag.Start))
        }
        p.write(data);
        // write end tag, if any
        if tag.End != "" {
-               p.write0(strings.Bytes(tag.End));
+               p.write0(strings.Bytes(tag.End))
        }
 }
 
@@ -239,7 +239,7 @@ func (p *printer) writeItem(pos token.Position, data []byte, tag HTMLTag) {
        p.pos = pos;
        if debug {
                // do not update p.pos - use write0
-               p.write0(strings.Bytes(fmt.Sprintf("[%d:%d]", pos.Line, pos.Column)));
+               p.write0(strings.Bytes(fmt.Sprintf("[%d:%d]", pos.Line, pos.Column)))
        }
        if p.Mode & GenHTML != 0 {
                // write line tag if on a new line
@@ -251,7 +251,7 @@ func (p *printer) writeItem(pos token.Position, data []byte, tag HTMLTag) {
                }
                p.writeTaggedItem(data, tag);
        } else {
-               p.write(data);
+               p.write(data)
        }
        p.last = p.pos;
 }
@@ -269,7 +269,7 @@ func (p *printer) writeCommentPrefix(pos, next token.Position, isFirst, isKeywor
        if !p.last.IsValid() {
                // there was no preceeding item and the comment is the
                // first item to be printed - don't write any whitespace
-               return;
+               return
        }
 
        if pos.Line == p.last.Line {
@@ -291,7 +291,7 @@ func (p *printer) writeCommentPrefix(pos, next token.Position, isFirst, isKeywor
                                        continue;
                                case indent:
                                        // apply pending indentation
-                                       continue;
+                                       continue
                                }
                                j = i;
                                break;
@@ -304,9 +304,9 @@ func (p *printer) writeCommentPrefix(pos, next token.Position, isFirst, isKeywor
                                // next item is on the same line as the comment
                                // (which must be a /*-style comment): separate
                                // with a blank instead of a tab
-                               p.write([]byte{' '});
+                               p.write([]byte{' '})
                        } else {
-                               p.write(htab);
+                               p.write(htab)
                        }
                }
 
@@ -323,7 +323,7 @@ func (p *printer) writeCommentPrefix(pos, next token.Position, isFirst, isKeywor
                                        continue;
                                case indent:
                                        // apply pending indentation
-                                       continue;
+                                       continue
                                case unindent:
                                        // if the next token is a keyword, apply the outdent
                                        // if it appears that the comment is aligned with the
@@ -332,11 +332,11 @@ func (p *printer) writeCommentPrefix(pos, next token.Position, isFirst, isKeywor
                                        // comments before a case label where the comments
                                        // apply to the next case instead of the current one)
                                        if isKeyword && pos.Column == next.Column {
-                                               continue;
+                                               continue
                                        }
                                case newline, formfeed:
                                        // TODO(gri): may want to keep formfeed info in some cases
-                                       p.buffer[i] = ignore;
+                                       p.buffer[i] = ignore
                                }
                                j = i;
                                break;
@@ -359,7 +359,7 @@ func (p *printer) writeCommentLine(comment *ast.Comment, pos token.Position, lin
        // apply styler, if any
        var tag HTMLTag;
        if p.Styler != nil {
-               line, tag = p.Styler.Comment(comment, line);
+               line, tag = p.Styler.Comment(comment, line)
        }
 
        p.writeItem(pos, line, tag);
@@ -376,7 +376,7 @@ func split(text []byte) [][]byte {
        n := 1;
        for _, c := range text {
                if c == '\n' {
-                       n++;
+                       n++
                }
        }
 
@@ -400,7 +400,7 @@ func split(text []byte) [][]byte {
 func isBlank(s []byte) bool {
        for _, b := range s {
                if b > ' ' {
-                       return false;
+                       return false
                }
        }
        return true;
@@ -410,7 +410,7 @@ func isBlank(s []byte) bool {
 func commonPrefix(a, b []byte) []byte {
        i := 0;
        for i < len(a) && i < len(b) && a[i] == b[i] && (a[i] <= ' ' || a[i] == '*') {
-               i++;
+               i++
        }
        return a[0:i];
 }
@@ -418,7 +418,7 @@ func commonPrefix(a, b []byte) []byte {
 
 func stripCommonPrefix(lines [][]byte) {
        if len(lines) < 2 {
-               return; // at most one line - nothing to do
+               return  // at most one line - nothing to do
        }
 
        // The heuristic in this function tries to handle a few
@@ -438,11 +438,11 @@ func stripCommonPrefix(lines [][]byte) {
                case i == 0 || i == len(lines)-1:
                        // ignore
                case isBlank(line):
-                       lines[i] = nil;
+                       lines[i] = nil
                case prefix == nil:
-                       prefix = commonPrefix(line, line);
+                       prefix = commonPrefix(line, line)
                default:
-                       prefix = commonPrefix(prefix, line);
+                       prefix = commonPrefix(prefix, line)
                }
        }
 
@@ -453,7 +453,7 @@ func stripCommonPrefix(lines [][]byte) {
        if i := bytes.Index(prefix, []byte{'*'}); i >= 0 {
                // Line of stars present.
                if i > 0 && prefix[i-1] == ' ' {
-                       i--;    // remove trailing blank from prefix so stars remain aligned
+                       i--     // remove trailing blank from prefix so stars remain aligned
                }
                prefix = prefix[0:i];
                lineOfStars = true;
@@ -474,10 +474,10 @@ func stripCommonPrefix(lines [][]byte) {
                        // in the first place
                        i := len(prefix);
                        for n := 0; n < 3 && i > 0 && prefix[i-1] == ' '; n++ {
-                               i--;
+                               i--
                        }
                        if i == len(prefix) && i > 0 && prefix[i-1] == '\t' {
-                               i--;
+                               i--
                        }
                        prefix = prefix[0:i];
                } else {
@@ -490,7 +490,7 @@ func stripCommonPrefix(lines [][]byte) {
                        }
                        if n > 2 && suffix[2] == '\t' {
                                // assume the '\t' compensates for the /*
-                               suffix = suffix[2:n];
+                               suffix = suffix[2:n]
                        } else {
                                // otherwise assume two blanks
                                suffix[0], suffix[1] = ' ', ' ';
@@ -499,7 +499,7 @@ func stripCommonPrefix(lines [][]byte) {
                        // Shorten the computed common prefix by the length of
                        // suffix, if it is found as suffix of the prefix.
                        if bytes.HasSuffix(prefix, suffix) {
-                               prefix = prefix[0 : len(prefix)-len(suffix)];
+                               prefix = prefix[0 : len(prefix)-len(suffix)]
                        }
                }
        }
@@ -515,19 +515,19 @@ func stripCommonPrefix(lines [][]byte) {
                var sep []byte;
                if lineOfStars {
                        // insert an aligning blank
-                       sep = []byte{' '};
+                       sep = []byte{' '}
                }
                lines[len(lines)-1] = bytes.Join([][]byte{prefix, closing}, sep);
        } else {
                // last line contains more comment text - assume
                // it is aligned like the other lines
-               prefix = commonPrefix(prefix, last);
+               prefix = commonPrefix(prefix, last)
        }
 
        // Remove the common prefix from all but the first and empty lines.
        for i, line := range lines {
                if i > 0 && len(line) != 0 {
-                       lines[i] = line[len(prefix):len(line)];
+                       lines[i] = line[len(prefix):len(line)]
                }
        }
 }
@@ -557,7 +557,7 @@ func (p *printer) writeComment(comment *ast.Comment) {
                        pos = p.pos;
                }
                if len(line) > 0 {
-                       p.writeCommentLine(comment, pos, line);
+                       p.writeCommentLine(comment, pos, line)
                }
        }
 }
@@ -573,15 +573,15 @@ func (p *printer) writeCommentSuffix(needsLinebreak bool) {
                switch ch {
                case blank, vtab:
                        // ignore trailing whitespace
-                       p.buffer[i] = ignore;
+                       p.buffer[i] = ignore
                case indent, unindent:
                        // don't loose indentation information
                case newline, formfeed:
                        // if we need a line break, keep exactly one
                        if needsLinebreak {
-                               needsLinebreak = false;
+                               needsLinebreak = false
                        } else {
-                               p.buffer[i] = ignore;
+                               p.buffer[i] = ignore
                        }
                }
        }
@@ -589,7 +589,7 @@ func (p *printer) writeCommentSuffix(needsLinebreak bool) {
 
        // make sure we have a line break
        if needsLinebreak {
-               p.write([]byte{'\n'});
+               p.write([]byte{'\n'})
        }
 }
 
@@ -616,7 +616,7 @@ func (p *printer) intersperseComments(next token.Position, isKeyword bool) {
        if last != nil && !needsLinebreak && last.Pos().Line == next.Line {
                // the last comment is a /*-style comment and the next item
                // follows on the same line: separate with an extra blank
-               p.write([]byte{' '});
+               p.write([]byte{' '})
        }
        p.writeCommentSuffix(needsLinebreak);
 }
@@ -631,13 +631,13 @@ func (p *printer) writeWhitespace(n int) {
                case ignore:
                        // ignore!
                case indent:
-                       p.indent++;
+                       p.indent++
                case unindent:
                        p.indent--;
                        if p.indent < 0 {
                                // handle gracefully unless in debug mode
                                if debug {
-                                       panicln("negative indentation:", p.indent);
+                                       panicln("negative indentation:", p.indent)
                                }
                                p.indent = 0;
                        }
@@ -704,7 +704,7 @@ func (p *printer) print(args ...) {
                                // don't add ignore's to the buffer; they
                                // may screw up "correcting" unindents (see
                                // LabeledStmt)
-                               break;
+                               break
                        }
                        i := len(p.buffer);
                        if i == cap(p.buffer) {
@@ -719,22 +719,22 @@ func (p *printer) print(args ...) {
                case []byte:
                        // TODO(gri): remove this case once commentList
                        //            handles comments correctly
-                       data = x;
+                       data = x
                case string:
                        // TODO(gri): remove this case once fieldList
                        //            handles comments correctly
-                       data = strings.Bytes(x);
+                       data = strings.Bytes(x)
                case *ast.Ident:
                        if p.Styler != nil {
-                               data, tag = p.Styler.Ident(x);
+                               data, tag = p.Styler.Ident(x)
                        } else {
-                               data = strings.Bytes(x.Value);
+                               data = strings.Bytes(x.Value)
                        }
                case *ast.BasicLit:
                        if p.Styler != nil {
-                               data, tag = p.Styler.BasicLit(x);
+                               data, tag = p.Styler.BasicLit(x)
                        } else {
-                               data = x.Value;
+                               data = x.Value
                        }
                        // escape all literals so they pass through unchanged
                        // (note that valid Go programs cannot contain esc ('\xff')
@@ -743,17 +743,17 @@ func (p *printer) print(args ...) {
                        data = strings.Bytes("\xff"+string(data)+"\xff");
                case token.Token:
                        if p.Styler != nil {
-                               data, tag = p.Styler.Token(x);
+                               data, tag = p.Styler.Token(x)
                        } else {
-                               data = strings.Bytes(x.String());
+                               data = strings.Bytes(x.String())
                        }
                        isKeyword = x.IsKeyword();
                case token.Position:
                        if x.IsValid() {
-                               next = x;       // accurate position of next item
+                               next = x        // accurate position of next item
                        }
                default:
-                       panicln("print: unsupported argument type", f.Type().String());
+                       panicln("print: unsupported argument type", f.Type().String())
                }
                p.pos = next;
 
@@ -775,7 +775,7 @@ func (p *printer) print(args ...) {
 // before the next position in the source code.
 //
 func (p *printer) commentBefore(next token.Position) bool {
-       return p.comment != nil && p.comment.List[0].Pos().Offset < next.Offset;
+       return p.comment != nil && p.comment.List[0].Pos().Offset < next.Offset
 }
 
 
@@ -785,7 +785,7 @@ func (p *printer) commentBefore(next token.Position) bool {
 func (p *printer) flush(next token.Position, isKeyword bool) {
        // if there are comments before the next item, intersperse them
        if p.commentBefore(next) {
-               p.intersperseComments(next, isKeyword);
+               p.intersperseComments(next, isKeyword)
        }
        // write any leftover whitespace
        p.writeWhitespace(len(p.buffer));
@@ -817,7 +817,7 @@ func (p *trimmer) Write(data []byte) (n int, err os.Error) {
        // m >= 0: data[m:n] unwritten and no whitespace
        m := 0;
        if p.buf.Len() > 0 {
-               m = -1;
+               m = -1
        }
 
        var b byte;
@@ -827,7 +827,7 @@ func (p *trimmer) Write(data []byte) (n int, err os.Error) {
                        // write any pending whitespace
                        if m < 0 {
                                if _, err = p.output.Write(p.buf.Bytes()); err != nil {
-                                       return;
+                                       return
                                }
                                p.buf.Reset();
                                m = n;
@@ -841,13 +841,13 @@ func (p *trimmer) Write(data []byte) (n int, err os.Error) {
                        // write any pending (non-whitespace) data
                        if m >= 0 {
                                if _, err = p.output.Write(data[m:n]); err != nil {
-                                       return;
+                                       return
                                }
                                m = -1;
                        }
                        // collect whitespace but discard tabrwiter.Escapes.
                        if b != tabwriter.Escape {
-                               p.buf.WriteByte(b);     // WriteByte returns no errors
+                               p.buf.WriteByte(b)      // WriteByte returns no errors
                        }
 
                case '\f', '\n':
@@ -856,13 +856,13 @@ func (p *trimmer) Write(data []byte) (n int, err os.Error) {
                        // write any pending (non-whitespace) data
                        if m >= 0 {
                                if _, err = p.output.Write(data[m:n]); err != nil {
-                                       return;
+                                       return
                                }
                                m = -1;
                        }
                        // convert formfeed into newline
                        if _, err = p.output.Write(newlines[0:1]); err != nil {
-                               return;
+                               return
                        }
                }
        }
@@ -871,7 +871,7 @@ func (p *trimmer) Write(data []byte) (n int, err os.Error) {
        // write any pending non-whitespace
        if m >= 0 {
                if _, err = p.output.Write(data[m:n]); err != nil {
-                       return;
+                       return
                }
        }
 
@@ -933,11 +933,11 @@ func (cfg *Config) Fprint(output io.Writer, node interface{}) (int, os.Error) {
        if cfg.Mode & RawFormat == 0 {
                padchar := byte('\t');
                if cfg.Mode & UseSpaces != 0 {
-                       padchar = ' ';
+                       padchar = ' '
                }
                twmode := tabwriter.DiscardEmptyColumns;
                if cfg.Mode & GenHTML != 0 {
-                       twmode |= tabwriter.FilterHTML;
+                       twmode |= tabwriter.FilterHTML
                }
                tw = tabwriter.NewWriter(output, cfg.Tabwidth, 1, padchar, twmode);
                output = tw;
@@ -949,11 +949,11 @@ func (cfg *Config) Fprint(output io.Writer, node interface{}) (int, os.Error) {
        go func() {
                switch n := node.(type) {
                case ast.Expr:
-                       p.expr(n, ignoreMultiLine);
+                       p.expr(n, ignoreMultiLine)
                case ast.Stmt:
-                       p.stmt(n, ignoreMultiLine);
+                       p.stmt(n, ignoreMultiLine)
                case ast.Decl:
-                       p.decl(n, atTop, ignoreMultiLine);
+                       p.decl(n, atTop, ignoreMultiLine)
                case *ast.File:
                        p.comment = n.Comments;
                        p.file(n);
@@ -968,7 +968,7 @@ func (cfg *Config) Fprint(output io.Writer, node interface{}) (int, os.Error) {
 
        // flush tabwriter, if any
        if tw != nil {
-               tw.Flush();     // ignore errors
+               tw.Flush()      // ignore errors
        }
 
        return p.written, err;
index ebb170550118d0e0977c6f3d399683279392c88b..6cafc582096c5dea78b692d889ff5a8db9f1188c 100644 (file)
@@ -27,7 +27,7 @@ var update = flag.Bool("update", false, "update golden files")
 func lineString(text []byte, i int) string {
        i0 := i;
        for i < len(text) && text[i] != '\n' {
-               i++;
+               i++
        }
        return string(text[i0:i]);
 }
@@ -58,20 +58,20 @@ func check(t *testing.T, source, golden string, mode checkMode) {
        // determine printer configuration
        cfg := Config{Tabwidth: tabwidth};
        if mode & rawFormat != 0 {
-               cfg.Mode |= RawFormat;
+               cfg.Mode |= RawFormat
        }
 
        // format source
        var buf bytes.Buffer;
        if _, err := cfg.Fprint(&buf, prog); err != nil {
-               t.Error(err);
+               t.Error(err)
        }
        res := buf.Bytes();
 
        // update golden files if necessary
        if *update {
                if err := io.WriteFile(golden, res, 0644); err != nil {
-                       t.Error(err);
+                       t.Error(err)
                }
                return;
        }
@@ -85,7 +85,7 @@ func check(t *testing.T, source, golden string, mode checkMode) {
 
        // compare lengths
        if len(res) != len(gld) {
-               t.Errorf("len = %d, expected %d (= len(%s))", len(res), len(gld), golden);
+               t.Errorf("len = %d, expected %d (= len(%s))", len(res), len(gld), golden)
        }
 
        // compare contents
index cb28274765904b4b64e041c4f59392aeb75cd65f..04f87a6c4610ac7496fc2428a5187067bb2799ea 100644 (file)
@@ -98,7 +98,7 @@ func _() {
 
 func abs(x int) int {
        if x < 0 {      // the tab printed before this comment's // must not affect the remaining lines
-               return -x;      // this statement should be properly indented
+               return -x       // this statement should be properly indented
        }
        return x;
 }
@@ -120,7 +120,7 @@ func typeswitch(x interface{}) {
        switch v0, ok := x.(int); x.(type) {
        case byte:      // this comment should be on the same line as the keyword
                // this comment should be normally indented
-               _ = 0;
+               _ = 0
        case bool, int, float:
                // this comment should be indented
        case string:
index 4d105f7d30b1faf57255670acce7fa1490f5e3ee..efca110ca5c55e4ec7d60d03b26b426e11a4f57f 100644 (file)
@@ -230,7 +230,7 @@ func same(t, u *Time) bool {
                t.Second == u.Second &&
                t.Weekday == u.Weekday &&
                t.ZoneOffset == u.ZoneOffset &&
-               t.Zone == u.Zone;
+               t.Zone == u.Zone
 }
 
 
@@ -249,7 +249,7 @@ func addState(s []state, inst instr, match []int) {
        for i := 0; i < l; i++ {
                if s[i].inst.index() == index &&        // same instruction
                        s[i].match[0] < pos {   // earlier match already going; leftmost wins
-                       return s;
+                       return s
                }
        }
 }
index ae11b7b16ed7f3fb18fc3f6a114384be7853ae74..29109ba61ce37e63bfc74023955e495ac4073d65 100644 (file)
@@ -230,7 +230,7 @@ func same(t, u *Time) bool {
                t.Second == u.Second &&
                t.Weekday == u.Weekday &&
                t.ZoneOffset == u.ZoneOffset &&
-               t.Zone == u.Zone;
+               t.Zone == u.Zone
 }
 
 
@@ -249,7 +249,7 @@ func addState(s []state, inst instr, match []int) {
        for i := 0; i < l; i++ {
                if s[i].inst.index() == index &&        // same instruction
                        s[i].match[0] < pos {   // earlier match already going; leftmost wins
-                       return s;
+                       return s
                }
        }
 }
index 9f92a998ccc2147cd2f7888094deb29a556aef16..afc5e7b4f1ac767cc5984b29ce3c31d02139ef51 100644 (file)
@@ -209,12 +209,12 @@ testLoop:
                        }
                        if !reflect.DeepEqual(hdr, header) {
                                t.Errorf("test %d, entry %d: Incorrect header:\nhave %+v\nwant %+v",
-                                       i, j, *hdr, *header);
+                                       i, j, *hdr, *header)
                        }
                }
                hdr, err := tr.Next();
                if hdr != nil || err != nil {
-                       t.Errorf("test %d: Unexpected entry or error: hdr=%v err=%v", i, err);
+                       t.Errorf("test %d: Unexpected entry or error: hdr=%v err=%v", i, err)
                }
                f.Close();
        }
index 875bac40b3838f6209627c065b72de271a1fac43..b09352c4c195b199134ee40475fcb15bc5ca6758 100644 (file)
@@ -23,10 +23,10 @@ func _() {
        if expr {
        }       // no semicolon and parens printed
        if x := expr; {
-               use(x);
+               use(x)
        }
        if x := expr; expr {
-               use(x);
+               use(x)
        }
 }
 
@@ -48,11 +48,11 @@ func _() {
        switch x := expr; {
        default:
                use(
-                       x);
+                       x)
        }
        switch x := expr; expr {
        default:
-               use(x);
+               use(x)
        }
 }
 
@@ -69,7 +69,7 @@ func _() {
 
        case 2: // followed by an empty line
 
-               use(x); // followed by an empty line
+               use(x)  // followed by an empty line
 
        case 3: // no empty lines
                use(x);
@@ -78,20 +78,20 @@ func _() {
 
        switch x {
        case 0:
-               use(x);
+               use(x)
        case 1: // this comment should have no effect on the previous or next line
-               use(x);
+               use(x)
        }
 
        switch x := 0; x {
        case 1:
-               x = 0;
+               x = 0
                // this comment should be indented
        case 2:
-               x = 0;
+               x = 0
        // this comment should not be indented, it is aligned with the next case
        case 3:
-               x = 0;
+               x = 0
                /* indented comment
                   aligned
                   aligned
@@ -99,7 +99,7 @@ func _() {
                // bla
                /* and more */
        case 4:
-               x = 0;
+               x = 0
        /* not indented comment
           aligned
           aligned
@@ -122,7 +122,7 @@ func _() {
        for {
        }       // no semicolons printed
        for x := expr; ; {
-               use(x);
+               use(x)
        }
        for expr {
        }       // no semicolons printed
@@ -131,18 +131,18 @@ func _() {
        for ; ; expr = false {
        }
        for x := expr; expr; {
-               use(x);
+               use(x)
        }
        for x := expr; ; expr = false {
-               use(x);
+               use(x)
        }
        for ; expr; expr = false {
        }
        for x := expr; expr; expr = false {
-               use(x);
+               use(x)
        }
        for x := range []int{} {
-               use(x);
+               use(x)
        }
 }
 
@@ -169,11 +169,11 @@ func _() {
 
        if x < x {
 
-               use(x);
+               use(x)
 
        } else {
 
-               use(x);
+               use(x)
 
        }
 }
@@ -182,25 +182,25 @@ func _() {
 // Formatting around labels.
 func _() {
 L:
-       ;
+
 }
 
 
 func _() {
        // this comment should be indented
 L:
-       ;
+
 }
 
 
 func _() {
-L:     _ = 0;
+L:     _ = 0
 }
 
 
 func _() {
        // this comment should be indented
-L:     _ = 0;
+L:     _ = 0
 }
 
 
@@ -225,14 +225,14 @@ func _() {
 
 func _() {
        if {
-               _ = 0;
+               _ = 0
        }
        _ = 0;  // the indentation here should not be affected by the long label name
 AnOverlongLabel:
        _ = 0;
 
        if {
-               _ = 0;
+               _ = 0
        }
        _ = 0;
 
index a8219b19033aea741a3a3ff8b84f75a203c447fc..16ad53260e3b88daad493eebaf6f1fa96ee92018 100644 (file)
@@ -68,7 +68,7 @@ func (e *Error) String() string {
        if e.Pos.Filename != "" || e.Pos.IsValid() {
                // don't print "<unknown position>"
                // TODO(gri) reconsider the semantics of Position.IsValid
-               return e.Pos.String() + ": " + e.Msg;
+               return e.Pos.String() + ": " + e.Msg
        }
        return e.Msg;
 }
@@ -90,14 +90,14 @@ func (p ErrorList) Less(i, j int) bool {
        // the offsets do not reflect modified line information (through //line
        // comments).
        if e.Filename < f.Filename {
-               return true;
+               return true
        }
        if e.Filename == f.Filename {
                if e.Line < f.Line {
-                       return true;
+                       return true
                }
                if e.Line == f.Line {
-                       return e.Column < f.Column;
+                       return e.Column < f.Column
                }
        }
        return false;
@@ -107,9 +107,9 @@ func (p ErrorList) Less(i, j int) bool {
 func (p ErrorList) String() string {
        switch len(p) {
        case 0:
-               return "unspecified error";
+               return "unspecified error"
        case 1:
-               return p[0].String();
+               return p[0].String()
        }
        return fmt.Sprintf("%s (and %d more errors)", p[0].String(), len(p)-1);
 }
@@ -131,16 +131,16 @@ const (
 //
 func (h *ErrorVector) GetErrorList(mode int) ErrorList {
        if h.errors.Len() == 0 {
-               return nil;
+               return nil
        }
 
        list := make(ErrorList, h.errors.Len());
        for i := 0; i < h.errors.Len(); i++ {
-               list[i] = h.errors.At(i).(*Error);
+               list[i] = h.errors.At(i).(*Error)
        }
 
        if mode >= Sorted {
-               sort.Sort(list);
+               sort.Sort(list)
        }
 
        if mode >= NoMultiples {
@@ -166,7 +166,7 @@ func (h *ErrorVector) GetErrorList(mode int) ErrorList {
 //
 func (h *ErrorVector) GetError(mode int) os.Error {
        if h.errors.Len() == 0 {
-               return nil;
+               return nil
        }
 
        return h.GetErrorList(mode);
@@ -175,7 +175,7 @@ func (h *ErrorVector) GetError(mode int) os.Error {
 
 // ErrorVector implements the ErrorHandler interface.
 func (h *ErrorVector) Error(pos token.Position, msg string) {
-       h.errors.Push(&Error{pos, msg});
+       h.errors.Push(&Error{pos, msg})
 }
 
 
@@ -186,9 +186,9 @@ func (h *ErrorVector) Error(pos token.Position, msg string) {
 func PrintError(w io.Writer, err os.Error) {
        if list, ok := err.(ErrorList); ok {
                for _, e := range list {
-                       fmt.Fprintf(w, "%s\n", e);
+                       fmt.Fprintf(w, "%s\n", e)
                }
        } else {
-               fmt.Fprintf(w, "%s\n", err);
+               fmt.Fprintf(w, "%s\n", err)
        }
 }
index 7f707296e76ac48ded8337a7bd124232f8504ecf..cc4ff9cc471f222734fc3d301c6c860fd47e1fb3 100644 (file)
@@ -52,7 +52,7 @@ func (S *Scanner) next() {
                        S.pos.Column = 0;
                case r >= 0x80:
                        // not ASCII
-                       r, w = utf8.DecodeRune(S.src[S.offset : len(S.src)]);
+                       r, w = utf8.DecodeRune(S.src[S.offset : len(S.src)])
                }
                S.offset += w;
                S.ch = r;
@@ -96,27 +96,27 @@ func charString(ch int) string {
        var s string;
        switch ch {
        case -1:
-               return `EOF`;
+               return `EOF`
        case '\a':
-               s = `\a`;
+               s = `\a`
        case '\b':
-               s = `\b`;
+               s = `\b`
        case '\f':
-               s = `\f`;
+               s = `\f`
        case '\n':
-               s = `\n`;
+               s = `\n`
        case '\r':
-               s = `\r`;
+               s = `\r`
        case '\t':
-               s = `\t`;
+               s = `\t`
        case '\v':
-               s = `\v`;
+               s = `\v`
        case '\\':
-               s = `\\`;
+               s = `\\`
        case '\'':
-               s = `\'`;
+               s = `\'`
        default:
-               s = string(ch);
+               s = string(ch)
        }
        return "'" + s + "' (U+" + strconv.Itob(ch, 16) + ")";
 }
@@ -124,7 +124,7 @@ func charString(ch int) string {
 
 func (S *Scanner) error(pos token.Position, msg string) {
        if S.err != nil {
-               S.err.Error(pos, msg);
+               S.err.Error(pos, msg)
        }
        S.ErrorCount++;
 }
@@ -132,7 +132,7 @@ func (S *Scanner) error(pos token.Position, msg string) {
 
 func (S *Scanner) expect(ch int) {
        if S.ch != ch {
-               S.error(S.pos, "expected " + charString(ch) + ", found " + charString(S.ch));
+               S.error(S.pos, "expected " + charString(ch) + ", found " + charString(S.ch))
        }
        S.next();       // always make progress
 }
@@ -188,19 +188,19 @@ func (S *Scanner) scanComment(pos token.Position) {
 
 
 func isLetter(ch int) bool {
-       return 'a' <= ch && ch <= 'z' || 'A' <= ch && ch <= 'Z' || ch == '_' || ch >= 0x80 && unicode.IsLetter(ch);
+       return 'a' <= ch && ch <= 'z' || 'A' <= ch && ch <= 'Z' || ch == '_' || ch >= 0x80 && unicode.IsLetter(ch)
 }
 
 
 func isDigit(ch int) bool {
-       return '0' <= ch && ch <= '9' || ch >= 0x80 && unicode.IsDigit(ch);
+       return '0' <= ch && ch <= '9' || ch >= 0x80 && unicode.IsDigit(ch)
 }
 
 
 func (S *Scanner) scanIdentifier() token.Token {
        pos := S.pos.Offset;
        for isLetter(S.ch) || isDigit(S.ch) {
-               S.next();
+               S.next()
        }
        return token.Lookup(S.src[pos : S.pos.Offset]);
 }
@@ -209,11 +209,11 @@ func (S *Scanner) scanIdentifier() token.Token {
 func digitVal(ch int) int {
        switch {
        case '0' <= ch && ch <= '9':
-               return ch-'0';
+               return ch-'0'
        case 'a' <= ch && ch <= 'f':
-               return ch-'a'+10;
+               return ch-'a'+10
        case 'A' <= ch && ch <= 'F':
-               return ch-'A'+10;
+               return ch-'A'+10
        }
        return 16;      // larger than any legal digit val
 }
@@ -221,7 +221,7 @@ func digitVal(ch int) int {
 
 func (S *Scanner) scanMantissa(base int) {
        for digitVal(S.ch) < base {
-               S.next();
+               S.next()
        }
 }
 
@@ -272,7 +272,7 @@ exponent:
                tok = token.FLOAT;
                S.next();
                if S.ch == '-' || S.ch == '+' {
-                       S.next();
+                       S.next()
                }
                S.scanMantissa(10);
        }
@@ -288,7 +288,7 @@ func (S *Scanner) scanDigits(base, length int) {
                length--;
        }
        if length > 0 {
-               S.error(S.pos, "illegal char escape");
+               S.error(S.pos, "illegal char escape")
        }
 }
 
@@ -301,15 +301,15 @@ func (S *Scanner) scanEscape(quote int) {
        case 'a', 'b', 'f', 'n', 'r', 't', 'v', '\\', quote:
        // nothing to do
        case '0', '1', '2', '3', '4', '5', '6', '7':
-               S.scanDigits(8, 3-1);   // 1 char read already
+               S.scanDigits(8, 3-1)    // 1 char read already
        case 'x':
-               S.scanDigits(16, 2);
+               S.scanDigits(16, 2)
        case 'u':
-               S.scanDigits(16, 4);
+               S.scanDigits(16, 4)
        case 'U':
-               S.scanDigits(16, 8);
+               S.scanDigits(16, 8)
        default:
-               S.error(pos, "illegal char escape");
+               S.error(pos, "illegal char escape")
        }
 }
 
@@ -328,14 +328,14 @@ func (S *Scanner) scanChar(pos token.Position) {
                        break;
                }
                if ch == '\\' {
-                       S.scanEscape('\'');
+                       S.scanEscape('\'')
                }
        }
 
        S.next();
 
        if n != 1 {
-               S.error(pos, "illegal character literal");
+               S.error(pos, "illegal character literal")
        }
 }
 
@@ -351,7 +351,7 @@ func (S *Scanner) scanString(pos token.Position) {
                        break;
                }
                if ch == '\\' {
-                       S.scanEscape('"');
+                       S.scanEscape('"')
                }
        }
 
@@ -435,7 +435,7 @@ func (S *Scanner) Scan() (pos token.Position, tok token.Token, lit []byte) {
 scan_again:
        // skip white space
        for S.ch == ' ' || S.ch == '\t' || S.ch == '\n' || S.ch == '\r' {
-               S.next();
+               S.next()
        }
 
        // current token start
@@ -444,14 +444,14 @@ scan_again:
        // determine token value
        switch ch := S.ch; {
        case isLetter(ch):
-               tok = S.scanIdentifier();
+               tok = S.scanIdentifier()
        case digitVal(ch) < 10:
-               tok = S.scanNumber(false);
+               tok = S.scanNumber(false)
        default:
                S.next();       // always make progress
                switch ch {
                case -1:
-                       tok = token.EOF;
+                       tok = token.EOF
                case '"':
                        tok = token.STRING;
                        S.scanString(pos);
@@ -462,10 +462,10 @@ scan_again:
                        tok = token.STRING;
                        S.scanRawString(pos);
                case ':':
-                       tok = S.switch2(token.COLON, token.DEFINE);
+                       tok = S.switch2(token.COLON, token.DEFINE)
                case '.':
                        if digitVal(S.ch) < 10 {
-                               tok = S.scanNumber(true);
+                               tok = S.scanNumber(true)
                        } else if S.ch == '.' {
                                S.next();
                                if S.ch == '.' {
@@ -473,69 +473,69 @@ scan_again:
                                        tok = token.ELLIPSIS;
                                }
                        } else {
-                               tok = token.PERIOD;
+                               tok = token.PERIOD
                        }
                case ',':
-                       tok = token.COMMA;
+                       tok = token.COMMA
                case ';':
-                       tok = token.SEMICOLON;
+                       tok = token.SEMICOLON
                case '(':
-                       tok = token.LPAREN;
+                       tok = token.LPAREN
                case ')':
-                       tok = token.RPAREN;
+                       tok = token.RPAREN
                case '[':
-                       tok = token.LBRACK;
+                       tok = token.LBRACK
                case ']':
-                       tok = token.RBRACK;
+                       tok = token.RBRACK
                case '{':
-                       tok = token.LBRACE;
+                       tok = token.LBRACE
                case '}':
-                       tok = token.RBRACE;
+                       tok = token.RBRACE
                case '+':
-                       tok = S.switch3(token.ADD, token.ADD_ASSIGN, '+', token.INC);
+                       tok = S.switch3(token.ADD, token.ADD_ASSIGN, '+', token.INC)
                case '-':
-                       tok = S.switch3(token.SUB, token.SUB_ASSIGN, '-', token.DEC);
+                       tok = S.switch3(token.SUB, token.SUB_ASSIGN, '-', token.DEC)
                case '*':
-                       tok = S.switch2(token.MUL, token.MUL_ASSIGN);
+                       tok = S.switch2(token.MUL, token.MUL_ASSIGN)
                case '/':
                        if S.ch == '/' || S.ch == '*' {
                                S.scanComment(pos);
                                tok = token.COMMENT;
                                if S.mode & ScanComments == 0 {
-                                       goto scan_again;
+                                       goto scan_again
                                }
                        } else {
-                               tok = S.switch2(token.QUO, token.QUO_ASSIGN);
+                               tok = S.switch2(token.QUO, token.QUO_ASSIGN)
                        }
                case '%':
-                       tok = S.switch2(token.REM, token.REM_ASSIGN);
+                       tok = S.switch2(token.REM, token.REM_ASSIGN)
                case '^':
-                       tok = S.switch2(token.XOR, token.XOR_ASSIGN);
+                       tok = S.switch2(token.XOR, token.XOR_ASSIGN)
                case '<':
                        if S.ch == '-' {
                                S.next();
                                tok = token.ARROW;
                        } else {
-                               tok = S.switch4(token.LSS, token.LEQ, '<', token.SHL, token.SHL_ASSIGN);
+                               tok = S.switch4(token.LSS, token.LEQ, '<', token.SHL, token.SHL_ASSIGN)
                        }
                case '>':
-                       tok = S.switch4(token.GTR, token.GEQ, '>', token.SHR, token.SHR_ASSIGN);
+                       tok = S.switch4(token.GTR, token.GEQ, '>', token.SHR, token.SHR_ASSIGN)
                case '=':
-                       tok = S.switch2(token.ASSIGN, token.EQL);
+                       tok = S.switch2(token.ASSIGN, token.EQL)
                case '!':
-                       tok = S.switch2(token.NOT, token.NEQ);
+                       tok = S.switch2(token.NOT, token.NEQ)
                case '&':
                        if S.ch == '^' {
                                S.next();
                                tok = S.switch2(token.AND_NOT, token.AND_NOT_ASSIGN);
                        } else {
-                               tok = S.switch3(token.AND, token.AND_ASSIGN, '&', token.LAND);
+                               tok = S.switch3(token.AND, token.AND_ASSIGN, '&', token.LAND)
                        }
                case '|':
-                       tok = S.switch3(token.OR, token.OR_ASSIGN, '|', token.LOR);
+                       tok = S.switch3(token.OR, token.OR_ASSIGN, '|', token.LOR)
                default:
                        if S.mode & AllowIllegalChars == 0 {
-                               S.error(pos, "illegal character " + charString(ch));
+                               S.error(pos, "illegal character " + charString(ch))
                        }
                }
        }
index 0b036e8b462bfe262a8fd81434c9855917b2541e..3bdd71e64c3dafc6b072b59bca456199275c95c1 100644 (file)
@@ -23,11 +23,11 @@ const /* class */ (
 func tokenclass(tok token.Token) int {
        switch {
        case tok.IsLiteral():
-               return literal;
+               return literal
        case tok.IsOperator():
-               return operator;
+               return operator
        case tok.IsKeyword():
-               return keyword;
+               return keyword
        }
        return special;
 }
@@ -169,7 +169,7 @@ type TestErrorHandler struct {
 }
 
 func (h *TestErrorHandler) Error(pos token.Position, msg string) {
-       h.t.Errorf("Error() called (msg = %s)", msg);
+       h.t.Errorf("Error() called (msg = %s)", msg)
 }
 
 
@@ -177,7 +177,7 @@ func NewlineCount(s string) int {
        n := 0;
        for i := 0; i < len(s); i++ {
                if s[i] == '\n' {
-                       n++;
+                       n++
                }
        }
        return n;
@@ -186,16 +186,16 @@ func NewlineCount(s string) int {
 
 func checkPos(t *testing.T, lit string, pos, expected token.Position) {
        if pos.Filename != expected.Filename {
-               t.Errorf("bad filename for %s: got %s, expected %s", lit, pos.Filename, expected.Filename);
+               t.Errorf("bad filename for %s: got %s, expected %s", lit, pos.Filename, expected.Filename)
        }
        if pos.Offset != expected.Offset {
-               t.Errorf("bad position for %s: got %d, expected %d", lit, pos.Offset, expected.Offset);
+               t.Errorf("bad position for %s: got %d, expected %d", lit, pos.Offset, expected.Offset)
        }
        if pos.Line != expected.Line {
-               t.Errorf("bad line for %s: got %d, expected %d", lit, pos.Line, expected.Line);
+               t.Errorf("bad line for %s: got %d, expected %d", lit, pos.Line, expected.Line)
        }
        if pos.Column != expected.Column {
-               t.Errorf("bad column for %s: got %d, expected %d", lit, pos.Column, expected.Column);
+               t.Errorf("bad column for %s: got %d, expected %d", lit, pos.Column, expected.Column)
        }
 }
 
@@ -205,7 +205,7 @@ func TestScan(t *testing.T) {
        // make source
        var src string;
        for _, e := range tokens {
-               src += e.lit + whitespace;
+               src += e.lit + whitespace
        }
        whitespace_linecount := NewlineCount(whitespace);
 
@@ -216,7 +216,7 @@ func TestScan(t *testing.T) {
                func(pos token.Position, tok token.Token, litb []byte) bool {
                        e := elt{token.EOF, "", special};
                        if index < len(tokens) {
-                               e = tokens[index];
+                               e = tokens[index]
                        }
                        lit := string(litb);
                        if tok == token.EOF {
@@ -225,13 +225,13 @@ func TestScan(t *testing.T) {
                        }
                        checkPos(t, lit, pos, epos);
                        if tok != e.tok {
-                               t.Errorf("bad token for %s: got %s, expected %s", lit, tok.String(), e.tok.String());
+                               t.Errorf("bad token for %s: got %s, expected %s", lit, tok.String(), e.tok.String())
                        }
                        if e.tok.IsLiteral() && lit != e.lit {
-                               t.Errorf("bad literal for %s: got %s, expected %s", lit, lit, e.lit);
+                               t.Errorf("bad literal for %s: got %s, expected %s", lit, lit, e.lit)
                        }
                        if tokenclass(tok) != e.class {
-                               t.Errorf("bad class for %s: got %d, expected %d", lit, tokenclass(tok), e.class);
+                               t.Errorf("bad class for %s: got %d, expected %d", lit, tokenclass(tok), e.class)
                        }
                        epos.Offset += len(lit)+len(whitespace);
                        epos.Line += NewlineCount(lit) + whitespace_linecount;
@@ -244,7 +244,7 @@ func TestScan(t *testing.T) {
                        return tok != token.EOF;
                });
        if nerrors != 0 {
-               t.Errorf("found %d errors", nerrors);
+               t.Errorf("found %d errors", nerrors)
        }
 }
 
@@ -280,7 +280,7 @@ func TestLineComments(t *testing.T) {
        // make source
        var src string;
        for _, e := range segments {
-               src += e.srcline;
+               src += e.srcline
        }
 
        // verify scan
@@ -292,7 +292,7 @@ func TestLineComments(t *testing.T) {
        }
 
        if S.ErrorCount != 0 {
-               t.Errorf("found %d errors", S.ErrorCount);
+               t.Errorf("found %d errors", S.ErrorCount)
        }
 }
 
@@ -307,18 +307,18 @@ func TestInit(t *testing.T) {
        s.Scan();               // true
        _, tok, _ := s.Scan();  // {
        if tok != token.LBRACE {
-               t.Errorf("bad token: got %s, expected %s", tok.String(), token.LBRACE);
+               t.Errorf("bad token: got %s, expected %s", tok.String(), token.LBRACE)
        }
 
        // 2nd init
        s.Init("", strings.Bytes("go true { ]"), nil, 0);
        _, tok, _ = s.Scan();   // go
        if tok != token.GO {
-               t.Errorf("bad token: got %s, expected %s", tok.String(), token.GO);
+               t.Errorf("bad token: got %s, expected %s", tok.String(), token.GO)
        }
 
        if s.ErrorCount != 0 {
-               t.Errorf("found %d errors", s.ErrorCount);
+               t.Errorf("found %d errors", s.ErrorCount)
        }
 }
 
@@ -331,15 +331,15 @@ func TestIllegalChars(t *testing.T) {
        for offs, ch := range src {
                pos, tok, lit := s.Scan();
                if pos.Offset != offs {
-                       t.Errorf("bad position for %s: got %d, expected %d", string(lit), pos.Offset, offs);
+                       t.Errorf("bad position for %s: got %d, expected %d", string(lit), pos.Offset, offs)
                }
                if tok == token.ILLEGAL && string(lit) != string(ch) {
-                       t.Errorf("bad token: got %s, expected %s", string(lit), string(ch));
+                       t.Errorf("bad token: got %s, expected %s", string(lit), string(ch))
                }
        }
 
        if s.ErrorCount != 0 {
-               t.Errorf("found %d errors", s.ErrorCount);
+               t.Errorf("found %d errors", s.ErrorCount)
        }
 }
 
@@ -358,7 +358,7 @@ func TestStdErrorHander(t *testing.T) {
        v := NewErrorVector();
        nerrors := Tokenize("File1", strings.Bytes(src), v, 0,
                func(pos token.Position, tok token.Token, litb []byte) bool {
-                       return tok != token.EOF;
+                       return tok != token.EOF
                });
 
        list := v.GetErrorList(Raw);
@@ -380,6 +380,6 @@ func TestStdErrorHander(t *testing.T) {
        }
 
        if v.ErrorCount() != nerrors {
-               t.Errorf("found %d errors, expected %d", v.ErrorCount(), nerrors);
+               t.Errorf("found %d errors, expected %d", v.ErrorCount(), nerrors)
        }
 }
index 28c335461841537db4aa006ee5bf5758c58ed7a5..10097efbd8d63ecadb54784ce79b1738a0468387 100644 (file)
@@ -239,7 +239,7 @@ var tokens = map[Token]string{
 //
 func (tok Token) String() string {
        if str, exists := tokens[tok]; exists {
-               return str;
+               return str
        }
        return "token(" + strconv.Itoa(int(tok)) + ")";
 }
@@ -265,17 +265,17 @@ const (
 func (op Token) Precedence() int {
        switch op {
        case LOR:
-               return 1;
+               return 1
        case LAND:
-               return 2;
+               return 2
        case ARROW:
-               return 3;
+               return 3
        case EQL, NEQ, LSS, LEQ, GTR, GEQ:
-               return 4;
+               return 4
        case ADD, SUB, OR, XOR:
-               return 5;
+               return 5
        case MUL, QUO, REM, SHL, SHR, AND, AND_NOT:
-               return 6;
+               return 6
        }
        return LowestPrec;
 }
@@ -286,7 +286,7 @@ var keywords map[string]Token
 func init() {
        keywords = make(map[string]Token);
        for i := keyword_beg + 1; i < keyword_end; i++ {
-               keywords[tokens[i]] = i;
+               keywords[tokens[i]] = i
        }
 }
 
@@ -297,7 +297,7 @@ func Lookup(ident []byte) Token {
        // TODO Maps with []byte key are illegal because []byte does not
        //      support == . Should find a more efficient solution eventually.
        if tok, is_keyword := keywords[string(ident)]; is_keyword {
-               return tok;
+               return tok
        }
        return IDENT;
 }
@@ -346,12 +346,12 @@ func (pos Position) String() string {
        s := pos.Filename;
        if pos.IsValid() {
                if s != "" {
-                       s += ":";
+                       s += ":"
                }
                s += fmt.Sprintf("%d:%d", pos.Line, pos.Column);
        }
        if s == "" {
-               s = "???";
+               s = "???"
        }
        return s;
 }
index aa3ae1cd62d87e1bcf15474a7d8bec239c9b8a42..4808c1146c89ad045cf1e99b24e4aae80e22e568 100644 (file)
@@ -47,10 +47,10 @@ func TestUintCodec(t *testing.T) {
                b.Reset();
                encodeUint(encState, tt.x);
                if encState.err != nil {
-                       t.Error("encodeUint:", tt.x, encState.err);
+                       t.Error("encodeUint:", tt.x, encState.err)
                }
                if !bytes.Equal(tt.b, b.Bytes()) {
-                       t.Errorf("encodeUint: %#x encode: expected % x got % x", tt.x, tt.b, b.Bytes());
+                       t.Errorf("encodeUint: %#x encode: expected % x got % x", tt.x, tt.b, b.Bytes())
                }
        }
        decState := newDecodeState(b);
@@ -58,17 +58,17 @@ func TestUintCodec(t *testing.T) {
                b.Reset();
                encodeUint(encState, u);
                if encState.err != nil {
-                       t.Error("encodeUint:", u, encState.err);
+                       t.Error("encodeUint:", u, encState.err)
                }
                v := decodeUint(decState);
                if decState.err != nil {
-                       t.Error("DecodeUint:", u, decState.err);
+                       t.Error("DecodeUint:", u, decState.err)
                }
                if u != v {
-                       t.Errorf("Encode/Decode: sent %#x received %#x\n", u, v);
+                       t.Errorf("Encode/Decode: sent %#x received %#x\n", u, v)
                }
                if u&(1<<63) != 0 {
-                       break;
+                       break
                }
        }
 }
@@ -79,16 +79,16 @@ func verifyInt(i int64, t *testing.T) {
        encState.b = b;
        encodeInt(encState, i);
        if encState.err != nil {
-               t.Error("encodeInt:", i, encState.err);
+               t.Error("encodeInt:", i, encState.err)
        }
        decState := newDecodeState(b);
        decState.buf = make([]byte, 8);
        j := decodeInt(decState);
        if decState.err != nil {
-               t.Error("DecodeInt:", i, decState.err);
+               t.Error("DecodeInt:", i, decState.err)
        }
        if i != j {
-               t.Errorf("Encode/Decode: sent %#x received %#x\n", uint64(i), uint64(j));
+               t.Errorf("Encode/Decode: sent %#x received %#x\n", uint64(i), uint64(j))
        }
 }
 
@@ -101,7 +101,7 @@ func TestIntCodec(t *testing.T) {
                verifyInt(-i, t);
                verifyInt(^i, t);
                if u&(1<<63) != 0 {
-                       break;
+                       break
                }
        }
        verifyInt(-1 << 63, t); // a tricky case
@@ -136,7 +136,7 @@ func TestScalarEncInstructions(t *testing.T) {
                state := newencoderState(b);
                instr.op(instr, state, unsafe.Pointer(&data));
                if !bytes.Equal(boolResult, b.Bytes()) {
-                       t.Errorf("bool enc instructions: expected % x got % x", boolResult, b.Bytes());
+                       t.Errorf("bool enc instructions: expected % x got % x", boolResult, b.Bytes())
                }
        }
 
@@ -148,7 +148,7 @@ func TestScalarEncInstructions(t *testing.T) {
                state := newencoderState(b);
                instr.op(instr, state, unsafe.Pointer(&data));
                if !bytes.Equal(signedResult, b.Bytes()) {
-                       t.Errorf("int enc instructions: expected % x got % x", signedResult, b.Bytes());
+                       t.Errorf("int enc instructions: expected % x got % x", signedResult, b.Bytes())
                }
        }
 
@@ -160,7 +160,7 @@ func TestScalarEncInstructions(t *testing.T) {
                state := newencoderState(b);
                instr.op(instr, state, unsafe.Pointer(&data));
                if !bytes.Equal(unsignedResult, b.Bytes()) {
-                       t.Errorf("uint enc instructions: expected % x got % x", unsignedResult, b.Bytes());
+                       t.Errorf("uint enc instructions: expected % x got % x", unsignedResult, b.Bytes())
                }
        }
 
@@ -172,7 +172,7 @@ func TestScalarEncInstructions(t *testing.T) {
                state := newencoderState(b);
                instr.op(instr, state, unsafe.Pointer(&data));
                if !bytes.Equal(signedResult, b.Bytes()) {
-                       t.Errorf("int8 enc instructions: expected % x got % x", signedResult, b.Bytes());
+                       t.Errorf("int8 enc instructions: expected % x got % x", signedResult, b.Bytes())
                }
        }
 
@@ -184,7 +184,7 @@ func TestScalarEncInstructions(t *testing.T) {
                state := newencoderState(b);
                instr.op(instr, state, unsafe.Pointer(&data));
                if !bytes.Equal(unsignedResult, b.Bytes()) {
-                       t.Errorf("uint8 enc instructions: expected % x got % x", unsignedResult, b.Bytes());
+                       t.Errorf("uint8 enc instructions: expected % x got % x", unsignedResult, b.Bytes())
                }
        }
 
@@ -196,7 +196,7 @@ func TestScalarEncInstructions(t *testing.T) {
                state := newencoderState(b);
                instr.op(instr, state, unsafe.Pointer(&data));
                if !bytes.Equal(signedResult, b.Bytes()) {
-                       t.Errorf("int16 enc instructions: expected % x got % x", signedResult, b.Bytes());
+                       t.Errorf("int16 enc instructions: expected % x got % x", signedResult, b.Bytes())
                }
        }
 
@@ -208,7 +208,7 @@ func TestScalarEncInstructions(t *testing.T) {
                state := newencoderState(b);
                instr.op(instr, state, unsafe.Pointer(&data));
                if !bytes.Equal(unsignedResult, b.Bytes()) {
-                       t.Errorf("uint16 enc instructions: expected % x got % x", unsignedResult, b.Bytes());
+                       t.Errorf("uint16 enc instructions: expected % x got % x", unsignedResult, b.Bytes())
                }
        }
 
@@ -220,7 +220,7 @@ func TestScalarEncInstructions(t *testing.T) {
                state := newencoderState(b);
                instr.op(instr, state, unsafe.Pointer(&data));
                if !bytes.Equal(signedResult, b.Bytes()) {
-                       t.Errorf("int32 enc instructions: expected % x got % x", signedResult, b.Bytes());
+                       t.Errorf("int32 enc instructions: expected % x got % x", signedResult, b.Bytes())
                }
        }
 
@@ -232,7 +232,7 @@ func TestScalarEncInstructions(t *testing.T) {
                state := newencoderState(b);
                instr.op(instr, state, unsafe.Pointer(&data));
                if !bytes.Equal(unsignedResult, b.Bytes()) {
-                       t.Errorf("uint32 enc instructions: expected % x got % x", unsignedResult, b.Bytes());
+                       t.Errorf("uint32 enc instructions: expected % x got % x", unsignedResult, b.Bytes())
                }
        }
 
@@ -244,7 +244,7 @@ func TestScalarEncInstructions(t *testing.T) {
                state := newencoderState(b);
                instr.op(instr, state, unsafe.Pointer(&data));
                if !bytes.Equal(signedResult, b.Bytes()) {
-                       t.Errorf("int64 enc instructions: expected % x got % x", signedResult, b.Bytes());
+                       t.Errorf("int64 enc instructions: expected % x got % x", signedResult, b.Bytes())
                }
        }
 
@@ -256,7 +256,7 @@ func TestScalarEncInstructions(t *testing.T) {
                state := newencoderState(b);
                instr.op(instr, state, unsafe.Pointer(&data));
                if !bytes.Equal(unsignedResult, b.Bytes()) {
-                       t.Errorf("uint64 enc instructions: expected % x got % x", unsignedResult, b.Bytes());
+                       t.Errorf("uint64 enc instructions: expected % x got % x", unsignedResult, b.Bytes())
                }
        }
 
@@ -268,7 +268,7 @@ func TestScalarEncInstructions(t *testing.T) {
                state := newencoderState(b);
                instr.op(instr, state, unsafe.Pointer(&data));
                if !bytes.Equal(floatResult, b.Bytes()) {
-                       t.Errorf("float enc instructions: expected % x got % x", floatResult, b.Bytes());
+                       t.Errorf("float enc instructions: expected % x got % x", floatResult, b.Bytes())
                }
        }
 
@@ -280,7 +280,7 @@ func TestScalarEncInstructions(t *testing.T) {
                state := newencoderState(b);
                instr.op(instr, state, unsafe.Pointer(&data));
                if !bytes.Equal(floatResult, b.Bytes()) {
-                       t.Errorf("float32 enc instructions: expected % x got % x", floatResult, b.Bytes());
+                       t.Errorf("float32 enc instructions: expected % x got % x", floatResult, b.Bytes())
                }
        }
 
@@ -292,7 +292,7 @@ func TestScalarEncInstructions(t *testing.T) {
                state := newencoderState(b);
                instr.op(instr, state, unsafe.Pointer(&data));
                if !bytes.Equal(floatResult, b.Bytes()) {
-                       t.Errorf("float64 enc instructions: expected % x got % x", floatResult, b.Bytes());
+                       t.Errorf("float64 enc instructions: expected % x got % x", floatResult, b.Bytes())
                }
        }
 
@@ -304,7 +304,7 @@ func TestScalarEncInstructions(t *testing.T) {
                state := newencoderState(b);
                instr.op(instr, state, unsafe.Pointer(&data));
                if !bytes.Equal(bytesResult, b.Bytes()) {
-                       t.Errorf("bytes enc instructions: expected % x got % x", bytesResult, b.Bytes());
+                       t.Errorf("bytes enc instructions: expected % x got % x", bytesResult, b.Bytes())
                }
        }
 
@@ -316,7 +316,7 @@ func TestScalarEncInstructions(t *testing.T) {
                state := newencoderState(b);
                instr.op(instr, state, unsafe.Pointer(&data));
                if !bytes.Equal(bytesResult, b.Bytes()) {
-                       t.Errorf("string enc instructions: expected % x got % x", bytesResult, b.Bytes());
+                       t.Errorf("string enc instructions: expected % x got % x", bytesResult, b.Bytes())
                }
        }
 }
@@ -324,10 +324,10 @@ func TestScalarEncInstructions(t *testing.T) {
 func execDec(typ string, instr *decInstr, state *decodeState, t *testing.T, p unsafe.Pointer) {
        v := int(decodeUint(state));
        if state.err != nil {
-               t.Fatalf("decoding %s field: %v", typ, state.err);
+               t.Fatalf("decoding %s field: %v", typ, state.err)
        }
        if v + state.fieldnum != 6 {
-               t.Fatalf("decoding field number %d, got %d", 6, v + state.fieldnum);
+               t.Fatalf("decoding field number %d, got %d", 6, v + state.fieldnum)
        }
        instr.op(instr, state, decIndirect(p, instr.indir));
        state.fieldnum = 6;
@@ -353,7 +353,7 @@ func TestScalarDecInstructions(t *testing.T) {
                state := newDecodeStateFromData(boolResult);
                execDec("bool", instr, state, t, unsafe.Pointer(&data));
                if data.a != true {
-                       t.Errorf("bool a = %v not true", data.a);
+                       t.Errorf("bool a = %v not true", data.a)
                }
        }
        // int
@@ -365,7 +365,7 @@ func TestScalarDecInstructions(t *testing.T) {
                state := newDecodeStateFromData(signedResult);
                execDec("int", instr, state, t, unsafe.Pointer(&data));
                if data.a != 17 {
-                       t.Errorf("int a = %v not 17", data.a);
+                       t.Errorf("int a = %v not 17", data.a)
                }
        }
 
@@ -378,7 +378,7 @@ func TestScalarDecInstructions(t *testing.T) {
                state := newDecodeStateFromData(unsignedResult);
                execDec("uint", instr, state, t, unsafe.Pointer(&data));
                if data.a != 17 {
-                       t.Errorf("uint a = %v not 17", data.a);
+                       t.Errorf("uint a = %v not 17", data.a)
                }
        }
 
@@ -391,7 +391,7 @@ func TestScalarDecInstructions(t *testing.T) {
                state := newDecodeStateFromData(signedResult);
                execDec("int8", instr, state, t, unsafe.Pointer(&data));
                if data.a != 17 {
-                       t.Errorf("int8 a = %v not 17", data.a);
+                       t.Errorf("int8 a = %v not 17", data.a)
                }
        }
 
@@ -404,7 +404,7 @@ func TestScalarDecInstructions(t *testing.T) {
                state := newDecodeStateFromData(unsignedResult);
                execDec("uint8", instr, state, t, unsafe.Pointer(&data));
                if data.a != 17 {
-                       t.Errorf("uint8 a = %v not 17", data.a);
+                       t.Errorf("uint8 a = %v not 17", data.a)
                }
        }
 
@@ -417,7 +417,7 @@ func TestScalarDecInstructions(t *testing.T) {
                state := newDecodeStateFromData(signedResult);
                execDec("int16", instr, state, t, unsafe.Pointer(&data));
                if data.a != 17 {
-                       t.Errorf("int16 a = %v not 17", data.a);
+                       t.Errorf("int16 a = %v not 17", data.a)
                }
        }
 
@@ -430,7 +430,7 @@ func TestScalarDecInstructions(t *testing.T) {
                state := newDecodeStateFromData(unsignedResult);
                execDec("uint16", instr, state, t, unsafe.Pointer(&data));
                if data.a != 17 {
-                       t.Errorf("uint16 a = %v not 17", data.a);
+                       t.Errorf("uint16 a = %v not 17", data.a)
                }
        }
 
@@ -443,7 +443,7 @@ func TestScalarDecInstructions(t *testing.T) {
                state := newDecodeStateFromData(signedResult);
                execDec("int32", instr, state, t, unsafe.Pointer(&data));
                if data.a != 17 {
-                       t.Errorf("int32 a = %v not 17", data.a);
+                       t.Errorf("int32 a = %v not 17", data.a)
                }
        }
 
@@ -456,7 +456,7 @@ func TestScalarDecInstructions(t *testing.T) {
                state := newDecodeStateFromData(unsignedResult);
                execDec("uint32", instr, state, t, unsafe.Pointer(&data));
                if data.a != 17 {
-                       t.Errorf("uint32 a = %v not 17", data.a);
+                       t.Errorf("uint32 a = %v not 17", data.a)
                }
        }
 
@@ -469,7 +469,7 @@ func TestScalarDecInstructions(t *testing.T) {
                state := newDecodeStateFromData(unsignedResult);
                execDec("uintptr", instr, state, t, unsafe.Pointer(&data));
                if data.a != 17 {
-                       t.Errorf("uintptr a = %v not 17", data.a);
+                       t.Errorf("uintptr a = %v not 17", data.a)
                }
        }
 
@@ -482,7 +482,7 @@ func TestScalarDecInstructions(t *testing.T) {
                state := newDecodeStateFromData(signedResult);
                execDec("int64", instr, state, t, unsafe.Pointer(&data));
                if data.a != 17 {
-                       t.Errorf("int64 a = %v not 17", data.a);
+                       t.Errorf("int64 a = %v not 17", data.a)
                }
        }
 
@@ -495,7 +495,7 @@ func TestScalarDecInstructions(t *testing.T) {
                state := newDecodeStateFromData(unsignedResult);
                execDec("uint64", instr, state, t, unsafe.Pointer(&data));
                if data.a != 17 {
-                       t.Errorf("uint64 a = %v not 17", data.a);
+                       t.Errorf("uint64 a = %v not 17", data.a)
                }
        }
 
@@ -508,7 +508,7 @@ func TestScalarDecInstructions(t *testing.T) {
                state := newDecodeStateFromData(floatResult);
                execDec("float", instr, state, t, unsafe.Pointer(&data));
                if data.a != 17 {
-                       t.Errorf("float a = %v not 17", data.a);
+                       t.Errorf("float a = %v not 17", data.a)
                }
        }
 
@@ -521,7 +521,7 @@ func TestScalarDecInstructions(t *testing.T) {
                state := newDecodeStateFromData(floatResult);
                execDec("float32", instr, state, t, unsafe.Pointer(&data));
                if data.a != 17 {
-                       t.Errorf("float32 a = %v not 17", data.a);
+                       t.Errorf("float32 a = %v not 17", data.a)
                }
        }
 
@@ -534,7 +534,7 @@ func TestScalarDecInstructions(t *testing.T) {
                state := newDecodeStateFromData(floatResult);
                execDec("float64", instr, state, t, unsafe.Pointer(&data));
                if data.a != 17 {
-                       t.Errorf("float64 a = %v not 17", data.a);
+                       t.Errorf("float64 a = %v not 17", data.a)
                }
        }
 
@@ -547,7 +547,7 @@ func TestScalarDecInstructions(t *testing.T) {
                state := newDecodeStateFromData(bytesResult);
                execDec("bytes", instr, state, t, unsafe.Pointer(&data));
                if string(data.a) != "hello" {
-                       t.Errorf(`bytes a = %q not "hello"`, string(data.a));
+                       t.Errorf(`bytes a = %q not "hello"`, string(data.a))
                }
        }
 
@@ -560,7 +560,7 @@ func TestScalarDecInstructions(t *testing.T) {
                state := newDecodeStateFromData(bytesResult);
                execDec("bytes", instr, state, t, unsafe.Pointer(&data));
                if data.a != "hello" {
-                       t.Errorf(`bytes a = %q not "hello"`, data.a);
+                       t.Errorf(`bytes a = %q not "hello"`, data.a)
                }
        }
 }
@@ -596,7 +596,7 @@ func TestEndToEnd(t *testing.T) {
        var _t1 T1;
        decode(b, getTypeInfoNoError(reflect.Typeof(_t1)).id, &_t1);
        if !reflect.DeepEqual(t1, &_t1) {
-               t.Errorf("encode expected %v got %v", *t1, _t1);
+               t.Errorf("encode expected %v got %v", *t1, _t1)
        }
 }
 
@@ -626,7 +626,7 @@ func TestOverflow(t *testing.T) {
        encode(b, it);
        err = decode(b, id, &o1);
        if err == nil || err.String() != `value for "maxi" out of range` {
-               t.Error("wrong overflow error for int8:", err);
+               t.Error("wrong overflow error for int8:", err)
        }
        it = inputT{
                mini: math.MinInt8 - 1,
@@ -635,7 +635,7 @@ func TestOverflow(t *testing.T) {
        encode(b, it);
        err = decode(b, id, &o1);
        if err == nil || err.String() != `value for "mini" out of range` {
-               t.Error("wrong underflow error for int8:", err);
+               t.Error("wrong underflow error for int8:", err)
        }
 
        // int16
@@ -651,7 +651,7 @@ func TestOverflow(t *testing.T) {
        encode(b, it);
        err = decode(b, id, &o2);
        if err == nil || err.String() != `value for "maxi" out of range` {
-               t.Error("wrong overflow error for int16:", err);
+               t.Error("wrong overflow error for int16:", err)
        }
        it = inputT{
                mini: math.MinInt16 - 1,
@@ -660,7 +660,7 @@ func TestOverflow(t *testing.T) {
        encode(b, it);
        err = decode(b, id, &o2);
        if err == nil || err.String() != `value for "mini" out of range` {
-               t.Error("wrong underflow error for int16:", err);
+               t.Error("wrong underflow error for int16:", err)
        }
 
        // int32
@@ -676,7 +676,7 @@ func TestOverflow(t *testing.T) {
        encode(b, it);
        err = decode(b, id, &o3);
        if err == nil || err.String() != `value for "maxi" out of range` {
-               t.Error("wrong overflow error for int32:", err);
+               t.Error("wrong overflow error for int32:", err)
        }
        it = inputT{
                mini: math.MinInt32 - 1,
@@ -685,7 +685,7 @@ func TestOverflow(t *testing.T) {
        encode(b, it);
        err = decode(b, id, &o3);
        if err == nil || err.String() != `value for "mini" out of range` {
-               t.Error("wrong underflow error for int32:", err);
+               t.Error("wrong underflow error for int32:", err)
        }
 
        // uint8
@@ -700,7 +700,7 @@ func TestOverflow(t *testing.T) {
        encode(b, it);
        err = decode(b, id, &o4);
        if err == nil || err.String() != `value for "maxu" out of range` {
-               t.Error("wrong overflow error for uint8:", err);
+               t.Error("wrong overflow error for uint8:", err)
        }
 
        // uint16
@@ -715,7 +715,7 @@ func TestOverflow(t *testing.T) {
        encode(b, it);
        err = decode(b, id, &o5);
        if err == nil || err.String() != `value for "maxu" out of range` {
-               t.Error("wrong overflow error for uint16:", err);
+               t.Error("wrong overflow error for uint16:", err)
        }
 
        // uint32
@@ -730,7 +730,7 @@ func TestOverflow(t *testing.T) {
        encode(b, it);
        err = decode(b, id, &o6);
        if err == nil || err.String() != `value for "maxu" out of range` {
-               t.Error("wrong overflow error for uint32:", err);
+               t.Error("wrong overflow error for uint32:", err)
        }
 
        // float32
@@ -746,7 +746,7 @@ func TestOverflow(t *testing.T) {
        encode(b, it);
        err = decode(b, id, &o7);
        if err == nil || err.String() != `value for "maxf" out of range` {
-               t.Error("wrong overflow error for float32:", err);
+               t.Error("wrong overflow error for float32:", err)
        }
 }
 
@@ -765,13 +765,13 @@ func TestNesting(t *testing.T) {
        var drt RT;
        decode(b, getTypeInfoNoError(reflect.Typeof(drt)).id, &drt);
        if drt.a != rt.a {
-               t.Errorf("nesting: encode expected %v got %v", *rt, drt);
+               t.Errorf("nesting: encode expected %v got %v", *rt, drt)
        }
        if drt.next == nil {
-               t.Errorf("nesting: recursion failed");
+               t.Errorf("nesting: recursion failed")
        }
        if drt.next.a != rt.next.a {
-               t.Errorf("nesting: encode expected %v got %v", *rt.next, *drt.next);
+               t.Errorf("nesting: encode expected %v got %v", *rt.next, *drt.next)
        }
 }
 
@@ -814,7 +814,7 @@ func TestAutoIndirection(t *testing.T) {
        t0Id := getTypeInfoNoError(reflect.Typeof(t0)).id;
        decode(b, t0Id, &t0);
        if t0.a != 17 || t0.b != 177 || t0.c != 1777 || t0.d != 17777 {
-               t.Errorf("t1->t0: expected {17 177 1777 17777}; got %v", t0);
+               t.Errorf("t1->t0: expected {17 177 1777 17777}; got %v", t0)
        }
 
        // Now transfer t2 into t0
@@ -834,7 +834,7 @@ func TestAutoIndirection(t *testing.T) {
        t0 = T0{};
        decode(b, t0Id, &t0);
        if t0.a != 17 || t0.b != 177 || t0.c != 1777 || t0.d != 17777 {
-               t.Errorf("t2->t0 expected {17 177 1777 17777}; got %v", t0);
+               t.Errorf("t2->t0 expected {17 177 1777 17777}; got %v", t0)
        }
 
        // Now transfer t0 into t1
@@ -845,7 +845,7 @@ func TestAutoIndirection(t *testing.T) {
        t1Id := getTypeInfoNoError(reflect.Typeof(t1)).id;
        decode(b, t1Id, &t1);
        if t1.a != 17 || *t1.b != 177 || **t1.c != 1777 || ***t1.d != 17777 {
-               t.Errorf("t0->t1 expected {17 177 1777 17777}; got {%d %d %d %d}", t1.a, *t1.b, **t1.c, ***t1.d);
+               t.Errorf("t0->t1 expected {17 177 1777 17777}; got {%d %d %d %d}", t1.a, *t1.b, **t1.c, ***t1.d)
        }
 
        // Now transfer t0 into t2
@@ -855,7 +855,7 @@ func TestAutoIndirection(t *testing.T) {
        t2Id := getTypeInfoNoError(reflect.Typeof(t2)).id;
        decode(b, t2Id, &t2);
        if ***t2.a != 17 || **t2.b != 177 || *t2.c != 1777 || t2.d != 17777 {
-               t.Errorf("t0->t2 expected {17 177 1777 17777}; got {%d %d %d %d}", ***t2.a, **t2.b, *t2.c, t2.d);
+               t.Errorf("t0->t2 expected {17 177 1777 17777}; got {%d %d %d %d}", ***t2.a, **t2.b, *t2.c, t2.d)
        }
 
        // Now do t2 again but without pre-allocated pointers.
@@ -867,7 +867,7 @@ func TestAutoIndirection(t *testing.T) {
        t2.d = 0;
        decode(b, t2Id, &t2);
        if ***t2.a != 17 || **t2.b != 177 || *t2.c != 1777 || t2.d != 17777 {
-               t.Errorf("t0->t2 expected {17 177 1777 17777}; got {%d %d %d %d}", ***t2.a, **t2.b, *t2.c, t2.d);
+               t.Errorf("t0->t2 expected {17 177 1777 17777}; got {%d %d %d %d}", ***t2.a, **t2.b, *t2.c, t2.d)
        }
 }
 
@@ -895,7 +895,7 @@ func TestReorderedFields(t *testing.T) {
        // Wire type is RT0, local type is RT1.
        decode(b, rt0Id, &rt1);
        if rt0.a != rt1.a || rt0.b != rt1.b || rt0.c != rt1.c {
-               t.Errorf("rt1->rt0: expected %v; got %v", rt0, rt1);
+               t.Errorf("rt1->rt0: expected %v; got %v", rt0, rt1)
        }
 }
 
@@ -933,10 +933,10 @@ func TestIgnoredFields(t *testing.T) {
        // Wire type is IT0, local type is RT1.
        err := decode(b, rt0Id, &rt1);
        if err != nil {
-               t.Error("error: ", err);
+               t.Error("error: ", err)
        }
        if int(it0.a) != rt1.a || it0.b != rt1.b || it0.c != rt1.c {
-               t.Errorf("rt1->rt0: expected %v; got %v", it0, rt1);
+               t.Errorf("rt1->rt0: expected %v; got %v", it0, rt1)
        }
 }
 
@@ -951,8 +951,8 @@ func TestInvalidField(t *testing.T) {
        b := new(bytes.Buffer);
        err := encode(b, &bad0);
        if err == nil {
-               t.Error("expected error; got none");
+               t.Error("expected error; got none")
        } else if strings.Index(err.String(), "interface") < 0 {
-               t.Error("expected type error; got", err);
+               t.Error("expected type error; got", err)
        }
 }
index e9e093eef543f22b9ca98146a3bfff6d5db17d60..2d133188578ab8b39cb6ec86ff5c46c5f92b27a8 100644 (file)
@@ -39,7 +39,7 @@ func newDecodeState(b *bytes.Buffer) *decodeState {
 }
 
 func overflow(name string) os.ErrorString {
-       return os.ErrorString(`value for "` + name + `" out of range`);
+       return os.ErrorString(`value for "` + name + `" out of range`)
 }
 
 // decodeUintReader reads an encoded unsigned integer from an io.Reader.
@@ -47,11 +47,11 @@ func overflow(name string) os.ErrorString {
 func decodeUintReader(r io.Reader, buf []byte) (x uint64, err os.Error) {
        _, err = r.Read(buf[0:1]);
        if err != nil {
-               return;
+               return
        }
        b := buf[0];
        if b <= 0x7f {
-               return uint64(b), nil;
+               return uint64(b), nil
        }
        nb := -int(int8(b));
        if nb > uint64Size {
@@ -62,7 +62,7 @@ func decodeUintReader(r io.Reader, buf []byte) (x uint64, err os.Error) {
        n, err = io.ReadFull(r, buf[0:nb]);
        if err != nil {
                if err == os.EOF {
-                       err = io.ErrUnexpectedEOF;
+                       err = io.ErrUnexpectedEOF
                }
                return;
        }
@@ -79,12 +79,12 @@ func decodeUintReader(r io.Reader, buf []byte) (x uint64, err os.Error) {
 // Does not check for overflow.
 func decodeUint(state *decodeState) (x uint64) {
        if state.err != nil {
-               return;
+               return
        }
        var b uint8;
        b, state.err = state.b.ReadByte();
        if b <= 0x7f {  // includes state.err != nil
-               return uint64(b);
+               return uint64(b)
        }
        nb := -int(int8(b));
        if nb > uint64Size {
@@ -108,10 +108,10 @@ func decodeUint(state *decodeState) (x uint64) {
 func decodeInt(state *decodeState) int64 {
        x := decodeUint(state);
        if state.err != nil {
-               return 0;
+               return 0
        }
        if x&1 != 0 {
-               return ^int64(x>>1);
+               return ^int64(x>>1)
        }
        return int64(x>>1);
 }
@@ -139,7 +139,7 @@ func decIndirect(p unsafe.Pointer, indir int) unsafe.Pointer {
        for ; indir > 1; indir-- {
                if *(*unsafe.Pointer)(p) == nil {
                        // Allocation required
-                       *(*unsafe.Pointer)(p) = unsafe.Pointer(new(unsafe.Pointer));
+                       *(*unsafe.Pointer)(p) = unsafe.Pointer(new(unsafe.Pointer))
                }
                p = *(*unsafe.Pointer)(p);
        }
@@ -147,13 +147,13 @@ func decIndirect(p unsafe.Pointer, indir int) unsafe.Pointer {
 }
 
 func ignoreUint(i *decInstr, state *decodeState, p unsafe.Pointer) {
-       decodeUint(state);
+       decodeUint(state)
 }
 
 func decBool(i *decInstr, state *decodeState, p unsafe.Pointer) {
        if i.indir > 0 {
                if *(*unsafe.Pointer)(p) == nil {
-                       *(*unsafe.Pointer)(p) = unsafe.Pointer(new(bool));
+                       *(*unsafe.Pointer)(p) = unsafe.Pointer(new(bool))
                }
                p = *(*unsafe.Pointer)(p);
        }
@@ -163,97 +163,97 @@ func decBool(i *decInstr, state *decodeState, p unsafe.Pointer) {
 func decInt8(i *decInstr, state *decodeState, p unsafe.Pointer) {
        if i.indir > 0 {
                if *(*unsafe.Pointer)(p) == nil {
-                       *(*unsafe.Pointer)(p) = unsafe.Pointer(new(int8));
+                       *(*unsafe.Pointer)(p) = unsafe.Pointer(new(int8))
                }
                p = *(*unsafe.Pointer)(p);
        }
        v := decodeInt(state);
        if v < math.MinInt8 || math.MaxInt8 < v {
-               state.err = i.ovfl;
+               state.err = i.ovfl
        } else {
-               *(*int8)(p) = int8(v);
+               *(*int8)(p) = int8(v)
        }
 }
 
 func decUint8(i *decInstr, state *decodeState, p unsafe.Pointer) {
        if i.indir > 0 {
                if *(*unsafe.Pointer)(p) == nil {
-                       *(*unsafe.Pointer)(p) = unsafe.Pointer(new(uint8));
+                       *(*unsafe.Pointer)(p) = unsafe.Pointer(new(uint8))
                }
                p = *(*unsafe.Pointer)(p);
        }
        v := decodeUint(state);
        if math.MaxUint8 < v {
-               state.err = i.ovfl;
+               state.err = i.ovfl
        } else {
-               *(*uint8)(p) = uint8(v);
+               *(*uint8)(p) = uint8(v)
        }
 }
 
 func decInt16(i *decInstr, state *decodeState, p unsafe.Pointer) {
        if i.indir > 0 {
                if *(*unsafe.Pointer)(p) == nil {
-                       *(*unsafe.Pointer)(p) = unsafe.Pointer(new(int16));
+                       *(*unsafe.Pointer)(p) = unsafe.Pointer(new(int16))
                }
                p = *(*unsafe.Pointer)(p);
        }
        v := decodeInt(state);
        if v < math.MinInt16 || math.MaxInt16 < v {
-               state.err = i.ovfl;
+               state.err = i.ovfl
        } else {
-               *(*int16)(p) = int16(v);
+               *(*int16)(p) = int16(v)
        }
 }
 
 func decUint16(i *decInstr, state *decodeState, p unsafe.Pointer) {
        if i.indir > 0 {
                if *(*unsafe.Pointer)(p) == nil {
-                       *(*unsafe.Pointer)(p) = unsafe.Pointer(new(uint16));
+                       *(*unsafe.Pointer)(p) = unsafe.Pointer(new(uint16))
                }
                p = *(*unsafe.Pointer)(p);
        }
        v := decodeUint(state);
        if math.MaxUint16 < v {
-               state.err = i.ovfl;
+               state.err = i.ovfl
        } else {
-               *(*uint16)(p) = uint16(v);
+               *(*uint16)(p) = uint16(v)
        }
 }
 
 func decInt32(i *decInstr, state *decodeState, p unsafe.Pointer) {
        if i.indir > 0 {
                if *(*unsafe.Pointer)(p) == nil {
-                       *(*unsafe.Pointer)(p) = unsafe.Pointer(new(int32));
+                       *(*unsafe.Pointer)(p) = unsafe.Pointer(new(int32))
                }
                p = *(*unsafe.Pointer)(p);
        }
        v := decodeInt(state);
        if v < math.MinInt32 || math.MaxInt32 < v {
-               state.err = i.ovfl;
+               state.err = i.ovfl
        } else {
-               *(*int32)(p) = int32(v);
+               *(*int32)(p) = int32(v)
        }
 }
 
 func decUint32(i *decInstr, state *decodeState, p unsafe.Pointer) {
        if i.indir > 0 {
                if *(*unsafe.Pointer)(p) == nil {
-                       *(*unsafe.Pointer)(p) = unsafe.Pointer(new(uint32));
+                       *(*unsafe.Pointer)(p) = unsafe.Pointer(new(uint32))
                }
                p = *(*unsafe.Pointer)(p);
        }
        v := decodeUint(state);
        if math.MaxUint32 < v {
-               state.err = i.ovfl;
+               state.err = i.ovfl
        } else {
-               *(*uint32)(p) = uint32(v);
+               *(*uint32)(p) = uint32(v)
        }
 }
 
 func decInt64(i *decInstr, state *decodeState, p unsafe.Pointer) {
        if i.indir > 0 {
                if *(*unsafe.Pointer)(p) == nil {
-                       *(*unsafe.Pointer)(p) = unsafe.Pointer(new(int64));
+                       *(*unsafe.Pointer)(p) = unsafe.Pointer(new(int64))
                }
                p = *(*unsafe.Pointer)(p);
        }
@@ -263,7 +263,7 @@ func decInt64(i *decInstr, state *decodeState, p unsafe.Pointer) {
 func decUint64(i *decInstr, state *decodeState, p unsafe.Pointer) {
        if i.indir > 0 {
                if *(*unsafe.Pointer)(p) == nil {
-                       *(*unsafe.Pointer)(p) = unsafe.Pointer(new(uint64));
+                       *(*unsafe.Pointer)(p) = unsafe.Pointer(new(uint64))
                }
                p = *(*unsafe.Pointer)(p);
        }
@@ -288,26 +288,26 @@ func floatFromBits(u uint64) float64 {
 func decFloat32(i *decInstr, state *decodeState, p unsafe.Pointer) {
        if i.indir > 0 {
                if *(*unsafe.Pointer)(p) == nil {
-                       *(*unsafe.Pointer)(p) = unsafe.Pointer(new(float32));
+                       *(*unsafe.Pointer)(p) = unsafe.Pointer(new(float32))
                }
                p = *(*unsafe.Pointer)(p);
        }
        v := floatFromBits(decodeUint(state));
        av := v;
        if av < 0 {
-               av = -av;
+               av = -av
        }
        if math.MaxFloat32 < av {       // underflow is OK
-               state.err = i.ovfl;
+               state.err = i.ovfl
        } else {
-               *(*float32)(p) = float32(v);
+               *(*float32)(p) = float32(v)
        }
 }
 
 func decFloat64(i *decInstr, state *decodeState, p unsafe.Pointer) {
        if i.indir > 0 {
                if *(*unsafe.Pointer)(p) == nil {
-                       *(*unsafe.Pointer)(p) = unsafe.Pointer(new(float64));
+                       *(*unsafe.Pointer)(p) = unsafe.Pointer(new(float64))
                }
                p = *(*unsafe.Pointer)(p);
        }
@@ -318,7 +318,7 @@ func decFloat64(i *decInstr, state *decodeState, p unsafe.Pointer) {
 func decUint8Array(i *decInstr, state *decodeState, p unsafe.Pointer) {
        if i.indir > 0 {
                if *(*unsafe.Pointer)(p) == nil {
-                       *(*unsafe.Pointer)(p) = unsafe.Pointer(new([]uint8));
+                       *(*unsafe.Pointer)(p) = unsafe.Pointer(new([]uint8))
                }
                p = *(*unsafe.Pointer)(p);
        }
@@ -331,7 +331,7 @@ func decUint8Array(i *decInstr, state *decodeState, p unsafe.Pointer) {
 func decString(i *decInstr, state *decodeState, p unsafe.Pointer) {
        if i.indir > 0 {
                if *(*unsafe.Pointer)(p) == nil {
-                       *(*unsafe.Pointer)(p) = unsafe.Pointer(new([]byte));
+                       *(*unsafe.Pointer)(p) = unsafe.Pointer(new([]byte))
                }
                p = *(*unsafe.Pointer)(p);
        }
@@ -358,7 +358,7 @@ func decodeStruct(engine *decEngine, rtyp *reflect.StructType, b *bytes.Buffer,
        if indir > 0 {
                up := unsafe.Pointer(p);
                if indir > 1 {
-                       up = decIndirect(up, indir);
+                       up = decIndirect(up, indir)
                }
                if *(*unsafe.Pointer)(up) == nil {
                        // Allocate object by making a slice of bytes and recording the
@@ -378,7 +378,7 @@ func decodeStruct(engine *decEngine, rtyp *reflect.StructType, b *bytes.Buffer,
                        break;
                }
                if state.err != nil || delta == 0 {     // struct terminator is zero delta fieldnum
-                       break;
+                       break
                }
                fieldnum := state.fieldnum + delta;
                if fieldnum >= len(engine.instr) {
@@ -388,7 +388,7 @@ func decodeStruct(engine *decEngine, rtyp *reflect.StructType, b *bytes.Buffer,
                instr := &engine.instr[fieldnum];
                p := unsafe.Pointer(basep + instr.offset);
                if instr.indir > 1 {
-                       p = decIndirect(p, instr.indir);
+                       p = decIndirect(p, instr.indir)
                }
                instr.op(instr, state, p);
                state.fieldnum = fieldnum;
@@ -406,7 +406,7 @@ func ignoreStruct(engine *decEngine, b *bytes.Buffer) os.Error {
                        break;
                }
                if state.err != nil || delta == 0 {     // struct terminator is zero delta fieldnum
-                       break;
+                       break
                }
                fieldnum := state.fieldnum + delta;
                if fieldnum >= len(engine.instr) {
@@ -425,7 +425,7 @@ func decodeArrayHelper(state *decodeState, p uintptr, elemOp decOp, elemWid uint
        for i := 0; i < length && state.err == nil; i++ {
                up := unsafe.Pointer(p);
                if elemIndir > 1 {
-                       up = decIndirect(up, elemIndir);
+                       up = decIndirect(up, elemIndir)
                }
                elemOp(instr, state, up);
                p += uintptr(elemWid);
@@ -445,7 +445,7 @@ func decodeArray(atyp *reflect.ArrayType, state *decodeState, p uintptr, elemOp
                p = *(*uintptr)(up);
        }
        if n := decodeUint(state); n != uint64(length) {
-               return os.ErrorString("gob: length mismatch in decodeArray");
+               return os.ErrorString("gob: length mismatch in decodeArray")
        }
        return decodeArrayHelper(state, p, elemOp, elemWid, length, elemIndir, ovfl);
 }
@@ -453,14 +453,14 @@ func decodeArray(atyp *reflect.ArrayType, state *decodeState, p uintptr, elemOp
 func ignoreArrayHelper(state *decodeState, elemOp decOp, length int) os.Error {
        instr := &decInstr{elemOp, 0, 0, 0, os.ErrorString("no error")};
        for i := 0; i < length && state.err == nil; i++ {
-               elemOp(instr, state, nil);
+               elemOp(instr, state, nil)
        }
        return state.err;
 }
 
 func ignoreArray(state *decodeState, elemOp decOp, length int) os.Error {
        if n := decodeUint(state); n != uint64(length) {
-               return os.ErrorString("gob: length mismatch in ignoreArray");
+               return os.ErrorString("gob: length mismatch in ignoreArray")
        }
        return ignoreArrayHelper(state, elemOp, length);
 }
@@ -471,7 +471,7 @@ func decodeSlice(atyp *reflect.SliceType, state *decodeState, p uintptr, elemOp
                up := unsafe.Pointer(p);
                if *(*unsafe.Pointer)(up) == nil {
                        // Allocate the slice header.
-                       *(*unsafe.Pointer)(up) = unsafe.Pointer(new(reflect.SliceHeader));
+                       *(*unsafe.Pointer)(up) = unsafe.Pointer(new(reflect.SliceHeader))
                }
                p = *(*uintptr)(up);
        }
@@ -486,7 +486,7 @@ func decodeSlice(atyp *reflect.SliceType, state *decodeState, p uintptr, elemOp
 }
 
 func ignoreSlice(state *decodeState, elemOp decOp) os.Error {
-       return ignoreArrayHelper(state, elemOp, int(decodeUint(state)));
+       return ignoreArrayHelper(state, elemOp, int(decodeUint(state)))
 }
 
 var decOpMap = map[reflect.Type]decOp{
@@ -530,11 +530,11 @@ func decOpFor(wireId typeId, rt reflect.Type, name string) (decOp, int, os.Error
                        elemId := wireId.gobType().(*sliceType).Elem;
                        elemOp, elemIndir, err := decOpFor(elemId, t.Elem(), name);
                        if err != nil {
-                               return nil, 0, err;
+                               return nil, 0, err
                        }
                        ovfl := overflow(name);
                        op = func(i *decInstr, state *decodeState, p unsafe.Pointer) {
-                               state.err = decodeSlice(t, state, uintptr(p), elemOp, t.Elem().Size(), i.indir, elemIndir, ovfl);
+                               state.err = decodeSlice(t, state, uintptr(p), elemOp, t.Elem().Size(), i.indir, elemIndir, ovfl)
                        };
 
                case *reflect.ArrayType:
@@ -542,27 +542,27 @@ func decOpFor(wireId typeId, rt reflect.Type, name string) (decOp, int, os.Error
                        elemId := wireId.gobType().(*arrayType).Elem;
                        elemOp, elemIndir, err := decOpFor(elemId, t.Elem(), name);
                        if err != nil {
-                               return nil, 0, err;
+                               return nil, 0, err
                        }
                        ovfl := overflow(name);
                        op = func(i *decInstr, state *decodeState, p unsafe.Pointer) {
-                               state.err = decodeArray(t, state, uintptr(p), elemOp, t.Elem().Size(), t.Len(), i.indir, elemIndir, ovfl);
+                               state.err = decodeArray(t, state, uintptr(p), elemOp, t.Elem().Size(), t.Len(), i.indir, elemIndir, ovfl)
                        };
 
                case *reflect.StructType:
                        // Generate a closure that calls out to the engine for the nested type.
                        enginePtr, err := getDecEnginePtr(wireId, typ);
                        if err != nil {
-                               return nil, 0, err;
+                               return nil, 0, err
                        }
                        op = func(i *decInstr, state *decodeState, p unsafe.Pointer) {
                                // indirect through enginePtr to delay evaluation for recursive structs
-                               state.err = decodeStruct(*enginePtr, t, state.b, uintptr(p), i.indir);
+                               state.err = decodeStruct(*enginePtr, t, state.b, uintptr(p), i.indir)
                        };
                }
        }
        if op == nil {
-               return nil, 0, os.ErrorString("gob: decode can't handle type " + rt.String());
+               return nil, 0, os.ErrorString("gob: decode can't handle type " + rt.String())
        }
        return op, indir, nil;
 }
@@ -577,36 +577,36 @@ func decIgnoreOpFor(wireId typeId) (decOp, os.Error) {
                        elemId := wireId.gobType().(*sliceType).Elem;
                        elemOp, err := decIgnoreOpFor(elemId);
                        if err != nil {
-                               return nil, err;
+                               return nil, err
                        }
                        op = func(i *decInstr, state *decodeState, p unsafe.Pointer) {
-                               state.err = ignoreSlice(state, elemOp);
+                               state.err = ignoreSlice(state, elemOp)
                        };
 
                case *arrayType:
                        elemId := wireId.gobType().(*arrayType).Elem;
                        elemOp, err := decIgnoreOpFor(elemId);
                        if err != nil {
-                               return nil, err;
+                               return nil, err
                        }
                        op = func(i *decInstr, state *decodeState, p unsafe.Pointer) {
-                               state.err = ignoreArray(state, elemOp, t.Len);
+                               state.err = ignoreArray(state, elemOp, t.Len)
                        };
 
                case *structType:
                        // Generate a closure that calls out to the engine for the nested type.
                        enginePtr, err := getIgnoreEnginePtr(wireId);
                        if err != nil {
-                               return nil, err;
+                               return nil, err
                        }
                        op = func(i *decInstr, state *decodeState, p unsafe.Pointer) {
                                // indirect through enginePtr to delay evaluation for recursive structs
-                               state.err = ignoreStruct(*enginePtr, state.b);
+                               state.err = ignoreStruct(*enginePtr, state.b)
                        };
                }
        }
        if op == nil {
-               return nil, os.ErrorString("ignore can't handle type " + wireId.String());
+               return nil, os.ErrorString("ignore can't handle type " + wireId.String())
        }
        return op, nil;
 }
@@ -625,39 +625,39 @@ func compatibleType(fr reflect.Type, fw typeId) bool {
        switch t := fr.(type) {
        default:
                // interface, map, chan, etc: cannot handle.
-               return false;
+               return false
        case *reflect.BoolType:
-               return fw == tBool;
+               return fw == tBool
        case *reflect.IntType:
-               return fw == tInt;
+               return fw == tInt
        case *reflect.Int8Type:
-               return fw == tInt;
+               return fw == tInt
        case *reflect.Int16Type:
-               return fw == tInt;
+               return fw == tInt
        case *reflect.Int32Type:
-               return fw == tInt;
+               return fw == tInt
        case *reflect.Int64Type:
-               return fw == tInt;
+               return fw == tInt
        case *reflect.UintType:
-               return fw == tUint;
+               return fw == tUint
        case *reflect.Uint8Type:
-               return fw == tUint;
+               return fw == tUint
        case *reflect.Uint16Type:
-               return fw == tUint;
+               return fw == tUint
        case *reflect.Uint32Type:
-               return fw == tUint;
+               return fw == tUint
        case *reflect.Uint64Type:
-               return fw == tUint;
+               return fw == tUint
        case *reflect.UintptrType:
-               return fw == tUint;
+               return fw == tUint
        case *reflect.FloatType:
-               return fw == tFloat;
+               return fw == tFloat
        case *reflect.Float32Type:
-               return fw == tFloat;
+               return fw == tFloat
        case *reflect.Float64Type:
-               return fw == tFloat;
+               return fw == tFloat
        case *reflect.StringType:
-               return fw == tString;
+               return fw == tString
        case *reflect.ArrayType:
                aw, ok := fw.gobType().(*arrayType);
                return ok && t.Len() == aw.Len && compatibleType(t.Elem(), aw.Elem);
@@ -665,13 +665,13 @@ func compatibleType(fr reflect.Type, fw typeId) bool {
                // Is it an array of bytes?
                et := t.Elem();
                if _, ok := et.(*reflect.Uint8Type); ok {
-                       return fw == tBytes;
+                       return fw == tBytes
                }
                sw, ok := fw.gobType().(*sliceType);
                elem, _ := indirect(t.Elem());
                return ok && compatibleType(elem, sw.Elem);
        case *reflect.StructType:
-               return true;
+               return true
        }
        return true;
 }
@@ -680,7 +680,7 @@ func compileDec(wireId typeId, rt reflect.Type) (engine *decEngine, err os.Error
        srt, ok1 := rt.(*reflect.StructType);
        wireStruct, ok2 := wireId.gobType().(*structType);
        if !ok1 || !ok2 {
-               return nil, errNotStruct;
+               return nil, errNotStruct
        }
        engine = new(decEngine);
        engine.instr = make([]decInstr, len(wireStruct.field));
@@ -694,7 +694,7 @@ func compileDec(wireId typeId, rt reflect.Type) (engine *decEngine, err os.Error
                if !present {
                        op, err := decIgnoreOpFor(wireField.id);
                        if err != nil {
-                               return nil, err;
+                               return nil, err
                        }
                        engine.instr[fieldnum] = decInstr{op, fieldnum, 0, 0, ovfl};
                        continue;
@@ -705,7 +705,7 @@ func compileDec(wireId typeId, rt reflect.Type) (engine *decEngine, err os.Error
                }
                op, indir, err := decOpFor(wireField.id, localField.Type, localField.Name);
                if err != nil {
-                       return nil, err;
+                       return nil, err
                }
                engine.instr[fieldnum] = decInstr{op, fieldnum, indir, uintptr(localField.Offset), ovfl};
                engine.numInstr++;
@@ -729,7 +729,7 @@ func getDecEnginePtr(wireId typeId, rt reflect.Type) (enginePtr **decEngine, err
                decoderMap[wireId] = enginePtr;
                *enginePtr, err = compileDec(wireId, rt);
                if err != nil {
-                       decoderMap[wireId] = nil, false;
+                       decoderMap[wireId] = nil, false
                }
        }
        return;
@@ -749,7 +749,7 @@ func getIgnoreEnginePtr(wireId typeId) (enginePtr **decEngine, err os.Error) {
                ignorerCache[wireId] = enginePtr;
                *enginePtr, err = compileDec(wireId, emptyStructType);
                if err != nil {
-                       ignorerCache[wireId] = nil, false;
+                       ignorerCache[wireId] = nil, false
                }
        }
        return;
@@ -760,7 +760,7 @@ func decode(b *bytes.Buffer, wireId typeId, e interface{}) os.Error {
        rt, indir := indirect(reflect.Typeof(e));
        st, ok := rt.(*reflect.StructType);
        if !ok {
-               return os.ErrorString("gob: decode can't handle " + rt.String());
+               return os.ErrorString("gob: decode can't handle " + rt.String())
        }
        typeLock.Lock();
        if _, ok := idToType[wireId]; !ok {
@@ -770,7 +770,7 @@ func decode(b *bytes.Buffer, wireId typeId, e interface{}) os.Error {
        enginePtr, err := getDecEnginePtr(wireId, rt);
        typeLock.Unlock();
        if err != nil {
-               return err;
+               return err
        }
        engine := *enginePtr;
        if engine.numInstr == 0 && st.NumField() > 0 && len(wireId.gobType().(*structType).field) > 0 {
@@ -786,11 +786,11 @@ func init() {
        var op decOp;
        switch unsafe.Sizeof(float(0)) {
        case unsafe.Sizeof(float32(0)):
-               op = decFloat32;
+               op = decFloat32
        case unsafe.Sizeof(float64(0)):
-               op = decFloat64;
+               op = decFloat64
        default:
-               panic("gob: unknown size of float", unsafe.Sizeof(float(0)));
+               panic("gob: unknown size of float", unsafe.Sizeof(float(0)))
        }
        decOpMap[valueKind(float(0))] = op;
 
@@ -804,7 +804,7 @@ func init() {
                op = decInt64;
                uop = decUint64;
        default:
-               panic("gob: unknown size of int/uint", unsafe.Sizeof(int(0)));
+               panic("gob: unknown size of int/uint", unsafe.Sizeof(int(0)))
        }
        decOpMap[valueKind(int(0))] = op;
        decOpMap[valueKind(uint(0))] = uop;
@@ -812,11 +812,11 @@ func init() {
        // Finally uintptr
        switch unsafe.Sizeof(uintptr(0)) {
        case unsafe.Sizeof(uint32(0)):
-               uop = decUint32;
+               uop = decUint32
        case unsafe.Sizeof(uint64(0)):
-               uop = decUint64;
+               uop = decUint64
        default:
-               panic("gob: unknown size of uintptr", unsafe.Sizeof(uintptr(0)));
+               panic("gob: unknown size of uintptr", unsafe.Sizeof(uintptr(0)))
        }
        decOpMap[valueKind(uintptr(0))] = uop;
 }
index d00c3a7621175d1474b13f0dba5617e98a20cc60..dde5d823f983e1bba9c3df347fd5439821f59162 100644 (file)
@@ -63,11 +63,11 @@ func (dec *Decoder) Decode(e interface{}) os.Error {
                var nbytes uint64;
                nbytes, dec.state.err = decodeUintReader(dec.r, dec.oneByte);
                if dec.state.err != nil {
-                       break;
+                       break
                }
                // Allocate the buffer.
                if nbytes > uint64(len(dec.buf)) {
-                       dec.buf = make([]byte, nbytes+1000);
+                       dec.buf = make([]byte, nbytes+1000)
                }
                dec.state.b = bytes.NewBuffer(dec.buf[0:nbytes]);
 
@@ -75,7 +75,7 @@ func (dec *Decoder) Decode(e interface{}) os.Error {
                _, dec.state.err = io.ReadFull(dec.r, dec.buf[0:nbytes]);
                if dec.state.err != nil {
                        if dec.state.err == os.EOF {
-                               dec.state.err = io.ErrUnexpectedEOF;
+                               dec.state.err = io.ErrUnexpectedEOF
                        }
                        break;
                }
@@ -83,7 +83,7 @@ func (dec *Decoder) Decode(e interface{}) os.Error {
                // Receive a type id.
                id := typeId(decodeInt(dec.state));
                if dec.state.err != nil {
-                       break;
+                       break
                }
 
                // Is it a new type?
@@ -91,7 +91,7 @@ func (dec *Decoder) Decode(e interface{}) os.Error {
                        // If the id is negative, we have a type.
                        dec.recvType(-id);
                        if dec.state.err != nil {
-                               break;
+                               break
                        }
                        continue;
                }
index 1f9d32310de62f215a64f0ecf594268ad50a354f..4f0e60c86a337e48ff9ff8a6916ee06c187a030b 100644 (file)
@@ -35,7 +35,7 @@ type encoderState struct {
 // If state.err is already non-nil, it does nothing.
 func encodeUint(state *encoderState, x uint64) {
        if state.err != nil {
-               return;
+               return
        }
        if x <= 0x7F {
                state.err = state.b.WriteByte(uint8(x));
@@ -58,9 +58,9 @@ func encodeUint(state *encoderState, x uint64) {
 func encodeInt(state *encoderState, i int64) {
        var x uint64;
        if i < 0 {
-               x = uint64(^i << 1)|1;
+               x = uint64(^i << 1)|1
        } else {
-               x = uint64(i<<1);
+               x = uint64(i<<1)
        }
        encodeUint(state, uint64(x));
 }
@@ -94,7 +94,7 @@ func encIndirect(p unsafe.Pointer, indir int) unsafe.Pointer {
        for ; indir > 0; indir-- {
                p = *(*unsafe.Pointer)(p);
                if p == nil {
-                       return unsafe.Pointer(nil);
+                       return unsafe.Pointer(nil)
                }
        }
        return p;
@@ -261,7 +261,7 @@ func encString(i *encInstr, state *encoderState, p unsafe.Pointer) {
 
 // The end of a struct is marked by a delta field number of 0.
 func encStructTerminator(i *encInstr, state *encoderState, p unsafe.Pointer) {
-       encodeUint(state, 0);
+       encodeUint(state, 0)
 }
 
 // Execution engine
@@ -281,12 +281,12 @@ func encodeStruct(engine *encEngine, b *bytes.Buffer, basep uintptr) os.Error {
                p := unsafe.Pointer(basep + instr.offset);
                if instr.indir > 0 {
                        if p = encIndirect(p, instr.indir); p == nil {
-                               continue;
+                               continue
                        }
                }
                instr.op(instr, state, p);
                if state.err != nil {
-                       break;
+                       break
                }
        }
        return state.err;
@@ -349,12 +349,12 @@ func encOpFor(rt reflect.Type) (encOp, int, os.Error) {
                        // Slices have a header; we decode it to find the underlying array.
                        elemOp, indir, err := encOpFor(t.Elem());
                        if err != nil {
-                               return nil, 0, err;
+                               return nil, 0, err
                        }
                        op = func(i *encInstr, state *encoderState, p unsafe.Pointer) {
                                slice := (*reflect.SliceHeader)(p);
                                if slice.Len == 0 {
-                                       return;
+                                       return
                                }
                                state.update(i);
                                state.err = encodeArray(state.b, slice.Data, elemOp, t.Elem().Size(), int(slice.Len), indir);
@@ -363,7 +363,7 @@ func encOpFor(rt reflect.Type) (encOp, int, os.Error) {
                        // True arrays have size in the type.
                        elemOp, indir, err := encOpFor(t.Elem());
                        if err != nil {
-                               return nil, 0, err;
+                               return nil, 0, err
                        }
                        op = func(i *encInstr, state *encoderState, p unsafe.Pointer) {
                                state.update(i);
@@ -373,7 +373,7 @@ func encOpFor(rt reflect.Type) (encOp, int, os.Error) {
                        // Generate a closure that calls out to the engine for the nested type.
                        _, err := getEncEngine(typ);
                        if err != nil {
-                               return nil, 0, err;
+                               return nil, 0, err
                        }
                        info := getTypeInfoNoError(typ);
                        op = func(i *encInstr, state *encoderState, p unsafe.Pointer) {
@@ -384,7 +384,7 @@ func encOpFor(rt reflect.Type) (encOp, int, os.Error) {
                }
        }
        if op == nil {
-               return op, indir, os.ErrorString("gob enc: can't happen: encode type" + rt.String());
+               return op, indir, os.ErrorString("gob enc: can't happen: encode type" + rt.String())
        }
        return op, indir, nil;
 }
@@ -393,7 +393,7 @@ func encOpFor(rt reflect.Type) (encOp, int, os.Error) {
 func compileEnc(rt reflect.Type) (*encEngine, os.Error) {
        srt, ok := rt.(*reflect.StructType);
        if !ok {
-               panicln("can't happen: non-struct");
+               panicln("can't happen: non-struct")
        }
        engine := new(encEngine);
        engine.instr = make([]encInstr, srt.NumField() + 1);    // +1 for terminator
@@ -401,7 +401,7 @@ func compileEnc(rt reflect.Type) (*encEngine, os.Error) {
                f := srt.Field(fieldnum);
                op, indir, err := encOpFor(f.Type);
                if err != nil {
-                       return nil, err;
+                       return nil, err
                }
                engine.instr[fieldnum] = encInstr{op, fieldnum, indir, uintptr(f.Offset)};
        }
@@ -414,7 +414,7 @@ func compileEnc(rt reflect.Type) (*encEngine, os.Error) {
 func getEncEngine(rt reflect.Type) (*encEngine, os.Error) {
        info, err := getTypeInfo(rt);
        if err != nil {
-               return nil, err;
+               return nil, err
        }
        if info.encoder == nil {
                // mark this engine as underway before compiling to handle recursive types.
@@ -429,16 +429,16 @@ func encode(b *bytes.Buffer, e interface{}) os.Error {
        rt, indir := indirect(reflect.Typeof(e));
        v := reflect.NewValue(e);
        for i := 0; i < indir; i++ {
-               v = reflect.Indirect(v);
+               v = reflect.Indirect(v)
        }
        if _, ok := v.(*reflect.StructValue); !ok {
-               return os.ErrorString("gob: encode can't handle " + v.Type().String());
+               return os.ErrorString("gob: encode can't handle " + v.Type().String())
        }
        typeLock.Lock();
        engine, err := getEncEngine(rt);
        typeLock.Unlock();
        if err != nil {
-               return err;
+               return err
        }
        return encodeStruct(engine, b, v.Addr());
 }
index c567b507e47e2345eafea524b1a821728c45ce1b..a59309e3355fc730b7c24a702eef4288b5040851 100644 (file)
@@ -213,7 +213,7 @@ func NewEncoder(w io.Writer) *Encoder {
 }
 
 func (enc *Encoder) badType(rt reflect.Type) {
-       enc.state.err = os.ErrorString("gob: can't encode type " + rt.String());
+       enc.state.err = os.ErrorString("gob: can't encode type " + rt.String())
 }
 
 // Send the data item preceded by a unsigned count of its length.
@@ -224,7 +224,7 @@ func (enc *Encoder) send() {
        countLen := enc.countState.b.Len();
        total := countLen + enc.state.b.Len();
        if total > len(enc.buf) {
-               enc.buf = make([]byte, total+1000);     // extra for growth
+               enc.buf = make([]byte, total+1000)      // extra for growth
        }
        // Place the length before the data.
        // TODO(r): avoid the extra copy here.
@@ -245,12 +245,12 @@ func (enc *Encoder) sendType(origt reflect.Type, topLevel bool) {
                // Basic types do not need to be described, but if this is a top-level
                // type, it's a user error, at least for now.
                if topLevel {
-                       enc.badType(rt);
+                       enc.badType(rt)
                }
                return;
        case *reflect.StructType:
                // Structs do need to be described.
-               break;
+               break
        case *reflect.ChanType, *reflect.FuncType, *reflect.MapType, *reflect.InterfaceType:
                // Probably a bad field in a struct.
                enc.badType(rt);
@@ -264,7 +264,7 @@ func (enc *Encoder) sendType(origt reflect.Type, topLevel bool) {
 
        // Have we already sent this type?  This time we ask about the base type.
        if _, alreadySent := enc.sent[rt]; alreadySent {
-               return;
+               return
        }
 
        // Need to send it.
@@ -289,7 +289,7 @@ func (enc *Encoder) sendType(origt reflect.Type, topLevel bool) {
        // Now send the inner types
        st := rt.(*reflect.StructType);
        for i := 0; i < st.NumField(); i++ {
-               enc.sendType(st.Field(i).Type, false);
+               enc.sendType(st.Field(i).Type, false)
        }
        return;
 }
@@ -298,7 +298,7 @@ func (enc *Encoder) sendType(origt reflect.Type, topLevel bool) {
 // guaranteeing that all necessary type information has been transmitted first.
 func (enc *Encoder) Encode(e interface{}) os.Error {
        if enc.state.b.Len() > 0 || enc.countState.b.Len() > 0 {
-               panicln("Encoder: buffer not empty");
+               panicln("Encoder: buffer not empty")
        }
        rt, _ := indirect(reflect.Typeof(e));
 
index 5f12b172f64a7909b4deec144fb8dae1ca8409df..e850bceae53adf97144b00e0b52465678e062b65 100644 (file)
@@ -44,7 +44,7 @@ func TestBasicEncoder(t *testing.T) {
        et1.et2 = new(ET2);
        enc.Encode(et1);
        if enc.state.err != nil {
-               t.Error("encoder fail:", enc.state.err);
+               t.Error("encoder fail:", enc.state.err)
        }
 
        // Decode the result by hand to verify;
@@ -53,98 +53,98 @@ func TestBasicEncoder(t *testing.T) {
        // 0) The length, 38.
        length := decodeUint(state);
        if length != 38 {
-               t.Fatal("0. expected length 38; got", length);
+               t.Fatal("0. expected length 38; got", length)
        }
        // 1) -7: the type id of ET1
        id1 := decodeInt(state);
        if id1 >= 0 {
-               t.Fatal("expected ET1 negative id; got", id1);
+               t.Fatal("expected ET1 negative id; got", id1)
        }
        // 2) The wireType for ET1
        wire1 := new(wireType);
        err := decode(b, tWireType, wire1);
        if err != nil {
-               t.Fatal("error decoding ET1 type:", err);
+               t.Fatal("error decoding ET1 type:", err)
        }
        info := getTypeInfoNoError(reflect.Typeof(ET1{}));
        trueWire1 := &wireType{s: info.id.gobType().(*structType)};
        if !reflect.DeepEqual(wire1, trueWire1) {
-               t.Fatalf("invalid wireType for ET1: expected %+v; got %+v\n", *trueWire1, *wire1);
+               t.Fatalf("invalid wireType for ET1: expected %+v; got %+v\n", *trueWire1, *wire1)
        }
        // 3) The length, 21.
        length = decodeUint(state);
        if length != 21 {
-               t.Fatal("3. expected length 21; got", length);
+               t.Fatal("3. expected length 21; got", length)
        }
        // 4) -8: the type id of ET2
        id2 := decodeInt(state);
        if id2 >= 0 {
-               t.Fatal("expected ET2 negative id; got", id2);
+               t.Fatal("expected ET2 negative id; got", id2)
        }
        // 5) The wireType for ET2
        wire2 := new(wireType);
        err = decode(b, tWireType, wire2);
        if err != nil {
-               t.Fatal("error decoding ET2 type:", err);
+               t.Fatal("error decoding ET2 type:", err)
        }
        info = getTypeInfoNoError(reflect.Typeof(ET2{}));
        trueWire2 := &wireType{s: info.id.gobType().(*structType)};
        if !reflect.DeepEqual(wire2, trueWire2) {
-               t.Fatalf("invalid wireType for ET2: expected %+v; got %+v\n", *trueWire2, *wire2);
+               t.Fatalf("invalid wireType for ET2: expected %+v; got %+v\n", *trueWire2, *wire2)
        }
        // 6) The length, 6.
        length = decodeUint(state);
        if length != 6 {
-               t.Fatal("6. expected length 6; got", length);
+               t.Fatal("6. expected length 6; got", length)
        }
        // 7) The type id for the et1 value
        newId1 := decodeInt(state);
        if newId1 != -id1 {
-               t.Fatal("expected Et1 id", -id1, "got", newId1);
+               t.Fatal("expected Et1 id", -id1, "got", newId1)
        }
        // 8) The value of et1
        newEt1 := new(ET1);
        et1Id := getTypeInfoNoError(reflect.Typeof(*newEt1)).id;
        err = decode(b, et1Id, newEt1);
        if err != nil {
-               t.Fatal("error decoding ET1 value:", err);
+               t.Fatal("error decoding ET1 value:", err)
        }
        if !reflect.DeepEqual(et1, newEt1) {
-               t.Fatalf("invalid data for et1: expected %+v; got %+v\n", *et1, *newEt1);
+               t.Fatalf("invalid data for et1: expected %+v; got %+v\n", *et1, *newEt1)
        }
        // 9) EOF
        if b.Len() != 0 {
-               t.Error("not at eof;", b.Len(), "bytes left");
+               t.Error("not at eof;", b.Len(), "bytes left")
        }
 
        // Now do it again. This time we should see only the type id and value.
        b.Reset();
        enc.Encode(et1);
        if enc.state.err != nil {
-               t.Error("2nd round: encoder fail:", enc.state.err);
+               t.Error("2nd round: encoder fail:", enc.state.err)
        }
        // The length.
        length = decodeUint(state);
        if length != 6 {
-               t.Fatal("6. expected length 6; got", length);
+               t.Fatal("6. expected length 6; got", length)
        }
        // 5a) The type id for the et1 value
        newId1 = decodeInt(state);
        if newId1 != -id1 {
-               t.Fatal("2nd round: expected Et1 id", -id1, "got", newId1);
+               t.Fatal("2nd round: expected Et1 id", -id1, "got", newId1)
        }
        // 6a) The value of et1
        newEt1 = new(ET1);
        err = decode(b, et1Id, newEt1);
        if err != nil {
-               t.Fatal("2nd round: error decoding ET1 value:", err);
+               t.Fatal("2nd round: error decoding ET1 value:", err)
        }
        if !reflect.DeepEqual(et1, newEt1) {
-               t.Fatalf("2nd round: invalid data for et1: expected %+v; got %+v\n", *et1, *newEt1);
+               t.Fatalf("2nd round: invalid data for et1: expected %+v; got %+v\n", *et1, *newEt1)
        }
        // 7a) EOF
        if b.Len() != 0 {
-               t.Error("2nd round: not at eof;", b.Len(), "bytes left");
+               t.Error("2nd round: not at eof;", b.Len(), "bytes left")
        }
 }
 
@@ -156,44 +156,44 @@ func TestEncoderDecoder(t *testing.T) {
        et1.et2 = new(ET2);
        enc.Encode(et1);
        if enc.state.err != nil {
-               t.Error("encoder fail:", enc.state.err);
+               t.Error("encoder fail:", enc.state.err)
        }
        dec := NewDecoder(b);
        newEt1 := new(ET1);
        dec.Decode(newEt1);
        if dec.state.err != nil {
-               t.Fatal("error decoding ET1:", dec.state.err);
+               t.Fatal("error decoding ET1:", dec.state.err)
        }
 
        if !reflect.DeepEqual(et1, newEt1) {
-               t.Fatalf("invalid data for et1: expected %+v; got %+v\n", *et1, *newEt1);
+               t.Fatalf("invalid data for et1: expected %+v; got %+v\n", *et1, *newEt1)
        }
        if b.Len() != 0 {
-               t.Error("not at eof;", b.Len(), "bytes left");
+               t.Error("not at eof;", b.Len(), "bytes left")
        }
 
        enc.Encode(et1);
        newEt1 = new(ET1);
        dec.Decode(newEt1);
        if dec.state.err != nil {
-               t.Fatal("round 2: error decoding ET1:", dec.state.err);
+               t.Fatal("round 2: error decoding ET1:", dec.state.err)
        }
        if !reflect.DeepEqual(et1, newEt1) {
-               t.Fatalf("round 2: invalid data for et1: expected %+v; got %+v\n", *et1, *newEt1);
+               t.Fatalf("round 2: invalid data for et1: expected %+v; got %+v\n", *et1, *newEt1)
        }
        if b.Len() != 0 {
-               t.Error("round 2: not at eof;", b.Len(), "bytes left");
+               t.Error("round 2: not at eof;", b.Len(), "bytes left")
        }
 
        // Now test with a running encoder/decoder pair that we recognize a type mismatch.
        enc.Encode(et1);
        if enc.state.err != nil {
-               t.Error("round 3: encoder fail:", enc.state.err);
+               t.Error("round 3: encoder fail:", enc.state.err)
        }
        newEt2 := new(ET2);
        dec.Decode(newEt2);
        if dec.state.err == nil {
-               t.Fatal("round 3: expected `bad type' error decoding ET2");
+               t.Fatal("round 3: expected `bad type' error decoding ET2")
        }
 }
 
@@ -207,15 +207,15 @@ func badTypeCheck(e interface{}, shouldFail bool, msg string, t *testing.T) {
        et1.et2 = new(ET2);
        enc.Encode(et1);
        if enc.state.err != nil {
-               t.Error("encoder fail:", enc.state.err);
+               t.Error("encoder fail:", enc.state.err)
        }
        dec := NewDecoder(b);
        dec.Decode(e);
        if shouldFail && (dec.state.err == nil) {
-               t.Error("expected error for", msg);
+               t.Error("expected error for", msg)
        }
        if !shouldFail && (dec.state.err != nil) {
-               t.Error("unexpected error for", msg);
+               t.Error("unexpected error for", msg)
        }
 }
 
@@ -231,7 +231,7 @@ func corruptDataCheck(s string, err os.Error, t *testing.T) {
        dec := NewDecoder(b);
        dec.Decode(new(ET2));
        if dec.state.err != err {
-               t.Error("expected error", err, "got", dec.state.err);
+               t.Error("expected error", err, "got", dec.state.err)
        }
 }
 
@@ -262,7 +262,7 @@ func TestUnsupported(t *testing.T) {
        for _, v := range unsupportedValues {
                err := enc.Encode(v);
                if err == nil {
-                       t.Errorf("expected error for %T; got none", v);
+                       t.Errorf("expected error for %T; got none", v)
                }
        }
 }
@@ -272,12 +272,12 @@ func encAndDec(in, out interface{}) os.Error {
        enc := NewEncoder(b);
        enc.Encode(in);
        if enc.state.err != nil {
-               return enc.state.err;
+               return enc.state.err
        }
        dec := NewDecoder(b);
        dec.Decode(out);
        if dec.state.err != nil {
-               return dec.state.err;
+               return dec.state.err
        }
        return nil;
 }
@@ -290,7 +290,7 @@ func TestTypeToPtrType(t *testing.T) {
        t0 := Type0{7};
        t0p := (*Type0)(nil);
        if err := encAndDec(t0, t0p); err != nil {
-               t.Error(err);
+               t.Error(err)
        }
 }
 
@@ -302,7 +302,7 @@ func TestPtrTypeToType(t *testing.T) {
        t1p := &Type1{17};
        var t1 Type1;
        if err := encAndDec(t1, t1p); err != nil {
-               t.Error(err);
+               t.Error(err)
        }
 }
 
@@ -319,9 +319,9 @@ func TestTypeToPtrPtrPtrPtrType(t *testing.T) {
        ****t2.a = 27.4;
        t2pppp := new(***Type2);
        if err := encAndDec(t2, t2pppp); err != nil {
-               t.Error(err);
+               t.Error(err)
        }
        if ****(****t2pppp).a != ****t2.a {
-               t.Errorf("wrong value after decode: %g not %g", ****(****t2pppp).a, ****t2.a);
+               t.Errorf("wrong value after decode: %g not %g", ****(****t2pppp).a, ****t2.a)
        }
 }
index ec8a347e4b62482fc54569462b0d66272f034bad..92db7cef382bd700c65f90f1fb408b4be9a33b94 100644 (file)
@@ -57,7 +57,7 @@ func setTypeId(typ gobType) {
 
 func (t typeId) gobType() gobType {
        if t == 0 {
-               return nil;
+               return nil
        }
        return idToType[t];
 }
@@ -81,7 +81,7 @@ func (t *commonType) setId(id typeId) { t._id = id }
 func (t *commonType) String() string   { return t.name }
 
 func (t *commonType) safeString(seen map[typeId]bool) string {
-       return t.name;
+       return t.name
 }
 
 func (t *commonType) Name() string     { return t.name }
@@ -121,7 +121,7 @@ func newArrayType(name string, elem gobType, length int) *arrayType {
 
 func (a *arrayType) safeString(seen map[typeId]bool) string {
        if _, ok := seen[a._id]; ok {
-               return a.name;
+               return a.name
        }
        seen[a._id] = true;
        return fmt.Sprintf("[%d]%s", a.Len, a.Elem.gobType().safeString(seen));
@@ -143,7 +143,7 @@ func newSliceType(name string, elem gobType) *sliceType {
 
 func (s *sliceType) safeString(seen map[typeId]bool) string {
        if _, ok := seen[s._id]; ok {
-               return s.name;
+               return s.name
        }
        seen[s._id] = true;
        return fmt.Sprintf("[]%s", s.Elem.gobType().safeString(seen));
@@ -164,15 +164,15 @@ type structType struct {
 
 func (s *structType) safeString(seen map[typeId]bool) string {
        if s == nil {
-               return "<nil>";
+               return "<nil>"
        }
        if _, ok := seen[s._id]; ok {
-               return s.name;
+               return s.name
        }
        seen[s._id] = true;
        str := s.name + " = struct { ";
        for _, f := range s.field {
-               str += fmt.Sprintf("%s %s; ", f.name, f.id.gobType().safeString(seen));
+               str += fmt.Sprintf("%s %s; ", f.name, f.id.gobType().safeString(seen))
        }
        str += "}";
        return str;
@@ -193,7 +193,7 @@ func indirect(t reflect.Type) (rt reflect.Type, count int) {
        for {
                pt, ok := rt.(*reflect.PtrType);
                if !ok {
-                       break;
+                       break
                }
                rt = pt.Elem();
                count++;
@@ -205,57 +205,57 @@ func newTypeObject(name string, rt reflect.Type) (gobType, os.Error) {
        switch t := rt.(type) {
        // All basic types are easy: they are predefined.
        case *reflect.BoolType:
-               return tBool.gobType(), nil;
+               return tBool.gobType(), nil
 
        case *reflect.IntType:
-               return tInt.gobType(), nil;
+               return tInt.gobType(), nil
        case *reflect.Int8Type:
-               return tInt.gobType(), nil;
+               return tInt.gobType(), nil
        case *reflect.Int16Type:
-               return tInt.gobType(), nil;
+               return tInt.gobType(), nil
        case *reflect.Int32Type:
-               return tInt.gobType(), nil;
+               return tInt.gobType(), nil
        case *reflect.Int64Type:
-               return tInt.gobType(), nil;
+               return tInt.gobType(), nil
 
        case *reflect.UintType:
-               return tUint.gobType(), nil;
+               return tUint.gobType(), nil
        case *reflect.Uint8Type:
-               return tUint.gobType(), nil;
+               return tUint.gobType(), nil
        case *reflect.Uint16Type:
-               return tUint.gobType(), nil;
+               return tUint.gobType(), nil
        case *reflect.Uint32Type:
-               return tUint.gobType(), nil;
+               return tUint.gobType(), nil
        case *reflect.Uint64Type:
-               return tUint.gobType(), nil;
+               return tUint.gobType(), nil
        case *reflect.UintptrType:
-               return tUint.gobType(), nil;
+               return tUint.gobType(), nil
 
        case *reflect.FloatType:
-               return tFloat.gobType(), nil;
+               return tFloat.gobType(), nil
        case *reflect.Float32Type:
-               return tFloat.gobType(), nil;
+               return tFloat.gobType(), nil
        case *reflect.Float64Type:
-               return tFloat.gobType(), nil;
+               return tFloat.gobType(), nil
 
        case *reflect.StringType:
-               return tString.gobType(), nil;
+               return tString.gobType(), nil
 
        case *reflect.ArrayType:
                gt, err := getType("", t.Elem());
                if err != nil {
-                       return nil, err;
+                       return nil, err
                }
                return newArrayType(name, gt, t.Len()), nil;
 
        case *reflect.SliceType:
                // []byte == []uint8 is a special case
                if _, ok := t.Elem().(*reflect.Uint8Type); ok {
-                       return tBytes.gobType(), nil;
+                       return tBytes.gobType(), nil
                }
                gt, err := getType(t.Elem().Name(), t.Elem());
                if err != nil {
-                       return nil, err;
+                       return nil, err
                }
                return newSliceType(name, gt), nil;
 
@@ -271,11 +271,11 @@ func newTypeObject(name string, rt reflect.Type) (gobType, os.Error) {
                        typ, _ := indirect(f.Type);
                        tname := typ.Name();
                        if tname == "" {
-                               tname = f.Type.String();
+                               tname = f.Type.String()
                        }
                        gt, err := getType(tname, f.Type);
                        if err != nil {
-                               return nil, err;
+                               return nil, err
                        }
                        field[i] = &fieldType{f.Name, gt.id()};
                }
@@ -283,7 +283,7 @@ func newTypeObject(name string, rt reflect.Type) (gobType, os.Error) {
                return strType, nil;
 
        default:
-               return nil, os.ErrorString("gob NewTypeObject can't handle type: " + rt.String());
+               return nil, os.ErrorString("gob NewTypeObject can't handle type: " + rt.String())
        }
        return nil, nil;
 }
@@ -295,24 +295,24 @@ func getType(name string, rt reflect.Type) (gobType, os.Error) {
        for {
                pt, ok := rt.(*reflect.PtrType);
                if !ok {
-                       break;
+                       break
                }
                rt = pt.Elem();
        }
        typ, present := types[rt];
        if present {
-               return typ, nil;
+               return typ, nil
        }
        typ, err := newTypeObject(name, rt);
        if err == nil {
-               types[rt] = typ;
+               types[rt] = typ
        }
        return typ, err;
 }
 
 func checkId(want, got typeId) {
        if want != got {
-               panicln("bootstrap type wrong id:", got.Name(), got, "not", want);
+               panicln("bootstrap type wrong id:", got.Name(), got, "not", want)
        }
 }
 
@@ -321,7 +321,7 @@ func bootstrapType(name string, e interface{}, expect typeId) typeId {
        rt := reflect.Typeof(e);
        _, present := types[rt];
        if present {
-               panicln("bootstrap type already present:", name);
+               panicln("bootstrap type already present:", name)
        }
        typ := &commonType{name: name};
        types[rt] = typ;
@@ -346,7 +346,7 @@ type wireType struct {
 
 func (w *wireType) name() string {
        // generalize once we can have non-struct types on the wire.
-       return w.s.name;
+       return w.s.name
 }
 
 type typeInfo struct {
@@ -361,7 +361,7 @@ var typeInfoMap = make(map[reflect.Type]*typeInfo)  // protected by typeLock
 // typeLock must be held.
 func getTypeInfo(rt reflect.Type) (*typeInfo, os.Error) {
        if _, ok := rt.(*reflect.PtrType); ok {
-               panicln("pointer type in getTypeInfo:", rt.String());
+               panicln("pointer type in getTypeInfo:", rt.String())
        }
        info, ok := typeInfoMap[rt];
        if !ok {
@@ -369,7 +369,7 @@ func getTypeInfo(rt reflect.Type) (*typeInfo, os.Error) {
                name := rt.Name();
                gt, err := getType(name, rt);
                if err != nil {
-                       return nil, err;
+                       return nil, err
                }
                info.id = gt.id();
                // assume it's a struct type
@@ -383,7 +383,7 @@ func getTypeInfo(rt reflect.Type) (*typeInfo, os.Error) {
 func getTypeInfoNoError(rt reflect.Type) *typeInfo {
        t, err := getTypeInfo(rt);
        if err != nil {
-               panicln("getTypeInfo:", err.String());
+               panicln("getTypeInfo:", err.String())
        }
        return t;
 }
index 5a137e772bf8c22d6e8756462045fe9e469cbf54..6983d661299c6152cd5c2df58eef59ad7fc009c9 100644 (file)
@@ -28,7 +28,7 @@ func getTypeUnlocked(name string, rt reflect.Type) gobType {
        defer typeLock.Unlock();
        t, err := getType(name, rt);
        if err != nil {
-               panicln("getTypeUnlocked:", err.String());
+               panicln("getTypeUnlocked:", err.String())
        }
        return t;
 }
@@ -37,10 +37,10 @@ func getTypeUnlocked(name string, rt reflect.Type) gobType {
 func TestBasic(t *testing.T) {
        for _, tt := range basicTypes {
                if tt.id.String() != tt.str {
-                       t.Errorf("checkType: expected %q got %s", tt.str, tt.id.String());
+                       t.Errorf("checkType: expected %q got %s", tt.str, tt.id.String())
                }
                if tt.id == 0 {
-                       t.Errorf("id for %q is zero", tt.str);
+                       t.Errorf("id for %q is zero", tt.str)
                }
        }
 }
@@ -49,15 +49,15 @@ func TestBasic(t *testing.T) {
 func TestReregistration(t *testing.T) {
        newtyp := getTypeUnlocked("int", reflect.Typeof(int(0)));
        if newtyp != tInt.gobType() {
-               t.Errorf("reregistration of %s got new type", newtyp.String());
+               t.Errorf("reregistration of %s got new type", newtyp.String())
        }
        newtyp = getTypeUnlocked("uint", reflect.Typeof(uint(0)));
        if newtyp != tUint.gobType() {
-               t.Errorf("reregistration of %s got new type", newtyp.String());
+               t.Errorf("reregistration of %s got new type", newtyp.String())
        }
        newtyp = getTypeUnlocked("string", reflect.Typeof("hello"));
        if newtyp != tString.gobType() {
-               t.Errorf("reregistration of %s got new type", newtyp.String());
+               t.Errorf("reregistration of %s got new type", newtyp.String())
        }
 }
 
@@ -66,22 +66,22 @@ func TestArrayType(t *testing.T) {
        a3int := getTypeUnlocked("foo", reflect.Typeof(a3));
        newa3int := getTypeUnlocked("bar", reflect.Typeof(a3));
        if a3int != newa3int {
-               t.Errorf("second registration of [3]int creates new type");
+               t.Errorf("second registration of [3]int creates new type")
        }
        var a4 [4]int;
        a4int := getTypeUnlocked("goo", reflect.Typeof(a4));
        if a3int == a4int {
-               t.Errorf("registration of [3]int creates same type as [4]int");
+               t.Errorf("registration of [3]int creates same type as [4]int")
        }
        var b3 [3]bool;
        a3bool := getTypeUnlocked("", reflect.Typeof(b3));
        if a3int == a3bool {
-               t.Errorf("registration of [3]bool creates same type as [3]int");
+               t.Errorf("registration of [3]bool creates same type as [3]int")
        }
        str := a3bool.String();
        expected := "[3]bool";
        if str != expected {
-               t.Errorf("array printed as %q; expected %q", str, expected);
+               t.Errorf("array printed as %q; expected %q", str, expected)
        }
 }
 
@@ -91,17 +91,17 @@ func TestSliceType(t *testing.T) {
        var news []int;
        newsint := getTypeUnlocked("slice1", reflect.Typeof(news));
        if sint != newsint {
-               t.Errorf("second registration of []int creates new type");
+               t.Errorf("second registration of []int creates new type")
        }
        var b []bool;
        sbool := getTypeUnlocked("", reflect.Typeof(b));
        if sbool == sint {
-               t.Errorf("registration of []bool creates same type as []int");
+               t.Errorf("registration of []bool creates same type as []int")
        }
        str := sbool.String();
        expected := "[]bool";
        if str != expected {
-               t.Errorf("slice printed as %q; expected %q", str, expected);
+               t.Errorf("slice printed as %q; expected %q", str, expected)
        }
 }
 
@@ -128,6 +128,6 @@ func TestStructType(t *testing.T) {
        // If we can print it correctly, we built it correctly.
        expected := "Foo = struct { a int; b int; c string; d bytes; e float; f float; g Bar = struct { x string; }; h Bar; i Foo; }";
        if str != expected {
-               t.Errorf("struct printed as %q; expected %q", str, expected);
+               t.Errorf("struct printed as %q; expected %q", str, expected)
        }
 }
index e450f5fb742f79c37f76e97c28d987260adbe7fc..4e54b09e64dba018a70728c038e9ae4c88760c5b 100644 (file)
@@ -41,9 +41,9 @@ func MakeTable(poly uint32) *Table {
                crc := uint32(i);
                for j := 0; j < 8; j++ {
                        if crc&1 == 1 {
-                               crc = (crc>>1)^poly;
+                               crc = (crc>>1)^poly
                        } else {
-                               crc >>= 1;
+                               crc >>= 1
                        }
                }
                t[i] = crc;
@@ -75,7 +75,7 @@ func (d *digest) Reset()      { d.crc = 0 }
 func update(crc uint32, tab *Table, p []byte) uint32 {
        crc = ^crc;
        for i := 0; i < len(p); i++ {
-               crc = tab[byte(crc)^p[i]]^(crc>>8);
+               crc = tab[byte(crc)^p[i]]^(crc>>8)
        }
        return ^crc;
 }
index bd6949b2d91afd3b7fc3d43a77f0a1b55360da4a..1c7f23744b90371413c29289aaddbdce4751c491 100644 (file)
@@ -49,9 +49,9 @@ func (r *Response) AddHeader(key, value string) {
 
        oldValues, oldValuesPresent := r.Header[key];
        if oldValuesPresent {
-               r.Header[key] = oldValues + "," + value;
+               r.Header[key] = oldValues + "," + value
        } else {
-               r.Header[key] = value;
+               r.Header[key] = value
        }
 }
 
@@ -76,26 +76,26 @@ func ReadResponse(r *bufio.Reader) (*Response, os.Error) {
 
        line, err := readLine(r);
        if err != nil {
-               return nil, err;
+               return nil, err
        }
        f := strings.Split(line, " ", 3);
        if len(f) < 3 {
-               return nil, &badStringError{"malformed HTTP response", line};
+               return nil, &badStringError{"malformed HTTP response", line}
        }
        resp.Status = f[1]+" "+f[2];
        resp.StatusCode, err = strconv.Atoi(f[1]);
        if err != nil {
-               return nil, &badStringError{"malformed HTTP status code", f[1]};
+               return nil, &badStringError{"malformed HTTP status code", f[1]}
        }
 
        // Parse the response headers.
        for {
                key, value, err := readKeyValue(r);
                if err != nil {
-                       return nil, err;
+                       return nil, err
                }
                if key == "" {
-                       break;  // end of response header
+                       break   // end of response header
                }
                resp.AddHeader(key, value);
        }
@@ -111,16 +111,16 @@ func ReadResponse(r *bufio.Reader) (*Response, os.Error) {
 // connections, it may no longer make sense to have a method with this signature.
 func send(req *Request) (resp *Response, err os.Error) {
        if req.URL.Scheme != "http" {
-               return nil, &badStringError{"unsupported protocol scheme", req.URL.Scheme};
+               return nil, &badStringError{"unsupported protocol scheme", req.URL.Scheme}
        }
 
        addr := req.URL.Host;
        if !hasPort(addr) {
-               addr += ":http";
+               addr += ":http"
        }
        conn, err := net.Dial("tcp", "", addr);
        if err != nil {
-               return nil, err;
+               return nil, err
        }
 
        err = req.Write(conn);
@@ -138,11 +138,11 @@ func send(req *Request) (resp *Response, err os.Error) {
 
        r := io.Reader(reader);
        if v := resp.GetHeader("Transfer-Encoding"); v == "chunked" {
-               r = newChunkedReader(reader);
+               r = newChunkedReader(reader)
        } else if v := resp.GetHeader("Content-Length"); v != "" {
                n, err := strconv.Atoi64(v);
                if err != nil {
-                       return nil, &badStringError{"invalid Content-Length", v};
+                       return nil, &badStringError{"invalid Content-Length", v}
                }
                r = io.LimitReader(r, n);
        }
@@ -156,7 +156,7 @@ func send(req *Request) (resp *Response, err os.Error) {
 func shouldRedirect(statusCode int) bool {
        switch statusCode {
        case StatusMovedPermanently, StatusFound, StatusSeeOther, StatusTemporaryRedirect:
-               return true;
+               return true
        }
        return false;
 }
@@ -185,10 +185,10 @@ func Get(url string) (r *Response, finalURL string, err os.Error) {
 
                var req Request;
                if req.URL, err = ParseURL(url); err != nil {
-                       break;
+                       break
                }
                if r, err = send(&req); err != nil {
-                       break;
+                       break
                }
                if shouldRedirect(r.StatusCode) {
                        r.Body.Close();
@@ -221,7 +221,7 @@ func Post(url string, bodyType string, body io.Reader) (r *Response, err os.Erro
 
        req.URL, err = ParseURL(url);
        if err != nil {
-               return nil, err;
+               return nil, err
        }
 
        return send(&req);
index 9e353dc26a399dcd6e31883e2512f7d77f030d69..8f52130677f060ccabeed95cbc87a96c2a2a2b80 100644 (file)
@@ -23,8 +23,8 @@ func TestClient(t *testing.T) {
                r.Body.Close();
        }
        if err != nil {
-               t.Error(err);
+               t.Error(err)
        } else if s := string(b); !strings.HasPrefix(s, "User-agent:") {
-               t.Errorf("Incorrect page body (did not begin with User-agent): %q", s);
+               t.Errorf("Incorrect page body (did not begin with User-agent): %q", s)
        }
 }
index bc42f7b6a415a9af99a5da0bcf335685c4596875..8ee4ba18c8511ff018fef06e15585ceab45e86f4 100644 (file)
@@ -33,10 +33,10 @@ func isText(b []byte) bool {
                rune, size := utf8.DecodeRune(b);
                if size == 1 && rune == utf8.RuneError {
                        // decoding error
-                       return false;
+                       return false
                }
                if 0x80 <= rune && rune <= 0x9F {
-                       return false;
+                       return false
                }
                if rune < ' ' {
                        switch rune {
@@ -44,7 +44,7 @@ func isText(b []byte) bool {
                                // okay
                        default:
                                // binary garbage
-                               return false;
+                               return false
                        }
                }
                b = b[size:len(b)];
@@ -57,12 +57,12 @@ func dirList(c *Conn, f *os.File) {
        for {
                dirs, err := f.Readdir(100);
                if err != nil || len(dirs) == 0 {
-                       break;
+                       break
                }
                for _, d := range dirs {
                        name := d.Name;
                        if d.IsDirectory() {
-                               name += "/";
+                               name += "/"
                        }
                        // TODO htmlescape
                        fmt.Fprintf(c, "<a href=\"%s\">%s</a>\n", name, name);
@@ -138,16 +138,16 @@ func serveFileInternal(c *Conn, r *Request, name string, redirect bool) {
        // use extension to find content type.
        ext := path.Ext(name);
        if ctype, ok := contentByExt[ext]; ok {
-               c.SetHeader("Content-Type", ctype);
+               c.SetHeader("Content-Type", ctype)
        } else {
                // read first chunk to decide between utf-8 text and binary
                var buf [1024]byte;
                n, _ := io.ReadFull(f, &buf);
                b := buf[0:n];
                if isText(b) {
-                       c.SetHeader("Content-Type", "text-plain; charset=utf-8");
+                       c.SetHeader("Content-Type", "text-plain; charset=utf-8")
                } else {
-                       c.SetHeader("Content-Type", "application/octet-stream");        // generic binary
+                       c.SetHeader("Content-Type", "application/octet-stream") // generic binary
                }
                c.Write(b);
        }
@@ -156,7 +156,7 @@ func serveFileInternal(c *Conn, r *Request, name string, redirect bool) {
 
 // ServeFile replies to the request with the contents of the named file or directory.
 func ServeFile(c *Conn, r *Request, name string) {
-       serveFileInternal(c, r, name, false);
+       serveFileInternal(c, r, name, false)
 }
 
 type fileHandler struct {
index f430005d4e25097a312567fa24256f1e2ed7393c..008f965708796c3d7a6574f3700e2ed7b7ecdd3d 100644 (file)
@@ -109,13 +109,13 @@ type Request struct {
 // in the request is at least major.minor.
 func (r *Request) ProtoAtLeast(major, minor int) bool {
        return r.ProtoMajor > major ||
-               r.ProtoMajor == major && r.ProtoMinor >= minor;
+               r.ProtoMajor == major && r.ProtoMinor >= minor
 }
 
 // Return value if nonempty, def otherwise.
 func valueOrDefault(value, def string) string {
        if value != "" {
-               return value;
+               return value
        }
        return def;
 }
@@ -136,7 +136,7 @@ const defaultUserAgent = "http.Client"
 func (req *Request) Write(w io.Writer) os.Error {
        uri := URLEscape(req.URL.Path);
        if req.URL.RawQuery != "" {
-               uri += "?" + req.URL.RawQuery;
+               uri += "?" + req.URL.RawQuery
        }
 
        fmt.Fprintf(w, "%s %s HTTP/1.1\r\n", valueOrDefault(req.Method, "GET"), uri);
@@ -144,12 +144,12 @@ func (req *Request) Write(w io.Writer) os.Error {
        fmt.Fprintf(w, "User-Agent: %s\r\n", valueOrDefault(req.UserAgent, defaultUserAgent));
 
        if req.Referer != "" {
-               fmt.Fprintf(w, "Referer: %s\r\n", req.Referer);
+               fmt.Fprintf(w, "Referer: %s\r\n", req.Referer)
        }
 
        if req.Body != nil {
                // Force chunked encoding
-               req.Header["Transfer-Encoding"] = "chunked";
+               req.Header["Transfer-Encoding"] = "chunked"
        }
 
        // TODO: split long values?  (If so, should share code with Conn.Write)
@@ -160,7 +160,7 @@ func (req *Request) Write(w io.Writer) os.Error {
        // Response.{GetHeader,AddHeader} and string constants for "Host",
        // "User-Agent" and "Referer".
        for k, v := range req.Header {
-               io.WriteString(w, k+": "+v+"\r\n");
+               io.WriteString(w, k+": "+v+"\r\n")
        }
 
        io.WriteString(w, "\r\n");
@@ -181,13 +181,13 @@ func (req *Request) Write(w io.Writer) os.Error {
                        switch {
                        case er != nil:
                                if er == os.EOF {
-                                       break Loop;
+                                       break Loop
                                }
                                return er;
                        case ew != nil:
-                               return ew;
+                               return ew
                        case nw < nr:
-                               return io.ErrShortWrite;
+                               return io.ErrShortWrite
                        }
                }
                // last-chunk CRLF
@@ -206,19 +206,19 @@ func readLineBytes(b *bufio.Reader) (p []byte, err os.Error) {
                // We always know when EOF is coming.
                // If the caller asked for a line, there should be a line.
                if err == os.EOF {
-                       err = io.ErrUnexpectedEOF;
+                       err = io.ErrUnexpectedEOF
                }
                return nil, err;
        }
        if len(p) >= maxLineLength {
-               return nil, ErrLineTooLong;
+               return nil, ErrLineTooLong
        }
 
        // Chop off trailing white space.
        var i int;
        for i = len(p); i > 0; i-- {
                if c := p[i-1]; c != ' ' && c != '\r' && c != '\t' && c != '\n' {
-                       break;
+                       break
                }
        }
        return p[0:i], nil;
@@ -228,7 +228,7 @@ func readLineBytes(b *bufio.Reader) (p []byte, err os.Error) {
 func readLine(b *bufio.Reader) (s string, err os.Error) {
        p, e := readLineBytes(b);
        if e != nil {
-               return "", e;
+               return "", e
        }
        return string(p), nil;
 }
@@ -242,28 +242,28 @@ var colon = []byte{':'}
 func readKeyValue(b *bufio.Reader) (key, value string, err os.Error) {
        line, e := readLineBytes(b);
        if e != nil {
-               return "", "", e;
+               return "", "", e
        }
        if len(line) == 0 {
-               return "", "", nil;
+               return "", "", nil
        }
 
        // Scan first line for colon.
        i := bytes.Index(line, colon);
        if i < 0 {
-               goto Malformed;
+               goto Malformed
        }
 
        key = string(line[0:i]);
        if strings.Index(key, " ") >= 0 {
                // Key field has space - no good.
-               goto Malformed;
+               goto Malformed
        }
 
        // Skip initial space before value.
        for i++; i < len(line); i++ {
                if line[i] != ' ' {
-                       break;
+                       break
                }
        }
        value = string(line[i:len(line)]);
@@ -273,7 +273,7 @@ func readKeyValue(b *bufio.Reader) (key, value string, err os.Error) {
                c, e := b.ReadByte();
                if c != ' ' {
                        if e != os.EOF {
-                               b.UnreadByte();
+                               b.UnreadByte()
                        }
                        break;
                }
@@ -282,7 +282,7 @@ func readKeyValue(b *bufio.Reader) (key, value string, err os.Error) {
                for c == ' ' {
                        if c, e = b.ReadByte(); e != nil {
                                if e == os.EOF {
-                                       e = io.ErrUnexpectedEOF;
+                                       e = io.ErrUnexpectedEOF
                                }
                                return "", "", e;
                        }
@@ -291,12 +291,12 @@ func readKeyValue(b *bufio.Reader) (key, value string, err os.Error) {
 
                // Read the rest of the line and add to value.
                if line, e = readLineBytes(b); e != nil {
-                       return "", "", e;
+                       return "", "", e
                }
                value += " "+string(line);
 
                if len(value) >= maxValueLength {
-                       return "", "", &badStringError{"value too long for key", key};
+                       return "", "", &badStringError{"value too long for key", key}
                }
        }
        return key, value, nil;
@@ -311,13 +311,13 @@ Malformed:
 func atoi(s string, i int) (n, i1 int, ok bool) {
        const Big = 1000000;
        if i >= len(s) || s[i] < '0' || s[i] > '9' {
-               return 0, 0, false;
+               return 0, 0, false
        }
        n = 0;
        for ; i < len(s) && '0' <= s[i] && s[i] <= '9'; i++ {
                n = n*10 + int(s[i]-'0');
                if n > Big {
-                       return 0, 0, false;
+                       return 0, 0, false
                }
        }
        return n, i, true;
@@ -326,16 +326,16 @@ func atoi(s string, i int) (n, i1 int, ok bool) {
 // Parse HTTP version: "HTTP/1.2" -> (1, 2, true).
 func parseHTTPVersion(vers string) (int, int, bool) {
        if vers[0:5] != "HTTP/" {
-               return 0, 0, false;
+               return 0, 0, false
        }
        major, i, ok := atoi(vers, 5);
        if !ok || i >= len(vers) || vers[i] != '.' {
-               return 0, 0, false;
+               return 0, 0, false
        }
        var minor int;
        minor, i, ok = atoi(vers, i+1);
        if !ok || i != len(vers) {
-               return 0, 0, false;
+               return 0, 0, false
        }
        return major, minor, true;
 }
@@ -349,7 +349,7 @@ var cmap = make(map[string]string)
 // canonical key for "accept-encoding" is "Accept-Encoding".
 func CanonicalHeaderKey(s string) string {
        if t, ok := cmap[s]; ok {
-               return t;
+               return t
        }
 
        // canonicalize: first letter upper case
@@ -360,14 +360,14 @@ func CanonicalHeaderKey(s string) string {
        upper := true;
        for i, v := range a {
                if upper && 'a' <= v && v <= 'z' {
-                       a[i] = v+'A'-'a';
+                       a[i] = v+'A'-'a'
                }
                if !upper && 'A' <= v && v <= 'Z' {
-                       a[i] = v+'a'-'A';
+                       a[i] = v+'a'-'A'
                }
                upper = false;
                if v == '-' {
-                       upper = true;
+                       upper = true
                }
        }
        t := string(a);
@@ -382,7 +382,7 @@ type chunkedReader struct {
 }
 
 func newChunkedReader(r *bufio.Reader) *chunkedReader {
-       return &chunkedReader{r: r};
+       return &chunkedReader{r: r}
 }
 
 func (cr *chunkedReader) beginChunk() {
@@ -390,21 +390,21 @@ func (cr *chunkedReader) beginChunk() {
        var line string;
        line, cr.err = readLine(cr.r);
        if cr.err != nil {
-               return;
+               return
        }
        cr.n, cr.err = strconv.Btoui64(line, 16);
        if cr.err != nil {
-               return;
+               return
        }
        if cr.n == 0 {
                // trailer CRLF
                for {
                        line, cr.err = readLine(cr.r);
                        if cr.err != nil {
-                               return;
+                               return
                        }
                        if line == "" {
-                               break;
+                               break
                        }
                }
                cr.err = os.EOF;
@@ -413,16 +413,16 @@ func (cr *chunkedReader) beginChunk() {
 
 func (cr *chunkedReader) Read(b []uint8) (n int, err os.Error) {
        if cr.err != nil {
-               return 0, cr.err;
+               return 0, cr.err
        }
        if cr.n == 0 {
                cr.beginChunk();
                if cr.err != nil {
-                       return 0, cr.err;
+                       return 0, cr.err
                }
        }
        if uint64(len(b)) > cr.n {
-               b = b[0 : cr.n];
+               b = b[0 : cr.n]
        }
        n, cr.err = cr.r.Read(b);
        cr.n -= uint64(n);
@@ -431,7 +431,7 @@ func (cr *chunkedReader) Read(b []uint8) (n int, err os.Error) {
                b := make([]byte, 2);
                if _, cr.err = io.ReadFull(cr.r, b); cr.err == nil {
                        if b[0] != '\r' || b[1] != '\n' {
-                               cr.err = os.NewError("malformed chunked encoding");
+                               cr.err = os.NewError("malformed chunked encoding")
                        }
                }
        }
@@ -445,21 +445,21 @@ func ReadRequest(b *bufio.Reader) (req *Request, err os.Error) {
        // First line: GET /index.html HTTP/1.0
        var s string;
        if s, err = readLine(b); err != nil {
-               return nil, err;
+               return nil, err
        }
 
        var f []string;
        if f = strings.Split(s, " ", 3); len(f) < 3 {
-               return nil, &badStringError{"malformed HTTP request", s};
+               return nil, &badStringError{"malformed HTTP request", s}
        }
        req.Method, req.RawURL, req.Proto = f[0], f[1], f[2];
        var ok bool;
        if req.ProtoMajor, req.ProtoMinor, ok = parseHTTPVersion(req.Proto); !ok {
-               return nil, &badStringError{"malformed HTTP version", req.Proto};
+               return nil, &badStringError{"malformed HTTP version", req.Proto}
        }
 
        if req.URL, err = ParseURL(req.RawURL); err != nil {
-               return nil, err;
+               return nil, err
        }
 
        // Subsequent lines: Key: value.
@@ -468,13 +468,13 @@ func ReadRequest(b *bufio.Reader) (req *Request, err os.Error) {
        for {
                var key, value string;
                if key, value, err = readKeyValue(b); err != nil {
-                       return nil, err;
+                       return nil, err
                }
                if key == "" {
-                       break;
+                       break
                }
                if nheader++; nheader >= maxHeaderLines {
-                       return nil, ErrHeaderTooLong;
+                       return nil, ErrHeaderTooLong
                }
 
                key = CanonicalHeaderKey(key);
@@ -484,9 +484,9 @@ func ReadRequest(b *bufio.Reader) (req *Request, err os.Error) {
                // to concatenating the values separated by commas.
                oldvalue, present := req.Header[key];
                if present {
-                       req.Header[key] = oldvalue+","+value;
+                       req.Header[key] = oldvalue+","+value
                } else {
-                       req.Header[key] = value;
+                       req.Header[key] = value
                }
        }
 
@@ -498,7 +498,7 @@ func ReadRequest(b *bufio.Reader) (req *Request, err os.Error) {
        //      Host: doesntmatter
        // the same.  In the second case, any Host line is ignored.
        if v, present := req.Header["Host"]; present && req.URL.Host == "" {
-               req.Host = v;
+               req.Host = v
        }
 
        // RFC2616: Should treat
@@ -507,27 +507,27 @@ func ReadRequest(b *bufio.Reader) (req *Request, err os.Error) {
        //      Cache-Control: no-cache
        if v, present := req.Header["Pragma"]; present && v == "no-cache" {
                if _, presentcc := req.Header["Cache-Control"]; !presentcc {
-                       req.Header["Cache-Control"] = "no-cache";
+                       req.Header["Cache-Control"] = "no-cache"
                }
        }
 
        // Determine whether to hang up after sending the reply.
        if req.ProtoMajor < 1 || (req.ProtoMajor == 1 && req.ProtoMinor < 1) {
-               req.Close = true;
+               req.Close = true
        } else if v, present := req.Header["Connection"]; present {
                // TODO: Should split on commas, toss surrounding white space,
                // and check each field.
                if v == "close" {
-                       req.Close = true;
+                       req.Close = true
                }
        }
 
        // Pull out useful fields as a convenience to clients.
        if v, present := req.Header["Referer"]; present {
-               req.Referer = v;
+               req.Referer = v
        }
        if v, present := req.Header["User-Agent"]; present {
-               req.UserAgent = v;
+               req.UserAgent = v
        }
 
        // TODO: Parse specific header values:
@@ -559,17 +559,17 @@ func ReadRequest(b *bufio.Reader) (req *Request, err os.Error) {
        // A message body exists when either Content-Length or Transfer-Encoding
        // headers are present. Transfer-Encoding trumps Content-Length.
        if v, present := req.Header["Transfer-Encoding"]; present && v == "chunked" {
-               req.Body = newChunkedReader(b);
+               req.Body = newChunkedReader(b)
        } else if v, present := req.Header["Content-Length"]; present {
                length, err := strconv.Btoui64(v, 10);
                if err != nil {
-                       return nil, &badStringError{"invalid Content-Length", v};
+                       return nil, &badStringError{"invalid Content-Length", v}
                }
                // TODO: limit the Content-Length. This is an easy DoS vector.
                raw := make([]byte, length);
                n, err := b.Read(raw);
                if err != nil || uint64(n) < length {
-                       return nil, ErrShortBody;
+                       return nil, ErrShortBody
                }
                req.Body = bytes.NewBuffer(raw);
        }
@@ -586,10 +586,10 @@ func parseForm(query string) (m map[string][]string, err os.Error) {
                var e os.Error;
                key, e = URLUnescape(kvPair[0]);
                if e == nil && len(kvPair) > 1 {
-                       value, e = URLUnescape(kvPair[1]);
+                       value, e = URLUnescape(kvPair[1])
                }
                if e != nil {
-                       err = e;
+                       err = e
                }
 
                vec, ok := data[key];
@@ -602,7 +602,7 @@ func parseForm(query string) (m map[string][]string, err os.Error) {
 
        m = make(map[string][]string);
        for k, vec := range data {
-               m[k] = vec.Data();
+               m[k] = vec.Data()
        }
 
        return;
@@ -612,29 +612,29 @@ func parseForm(query string) (m map[string][]string, err os.Error) {
 // It is idempotent.
 func (r *Request) ParseForm() (err os.Error) {
        if r.Form != nil {
-               return;
+               return
        }
 
        var query string;
 
        switch r.Method {
        case "GET":
-               query = r.URL.RawQuery;
+               query = r.URL.RawQuery
        case "POST":
                if r.Body == nil {
-                       return os.ErrorString("missing form body");
+                       return os.ErrorString("missing form body")
                }
                ct, _ := r.Header["Content-Type"];
                switch strings.Split(ct, ";", 2)[0] {
                case "text/plain", "application/x-www-form-urlencoded", "":
                        var b []byte;
                        if b, err = io.ReadAll(r.Body); err != nil {
-                               return;
+                               return
                        }
                        query = string(b);
                // TODO(dsymonds): Handle multipart/form-data
                default:
-                       return &badStringError{"unknown Content-Type", ct};
+                       return &badStringError{"unknown Content-Type", ct}
                }
        }
        r.Form, err = parseForm(query);
@@ -645,10 +645,10 @@ func (r *Request) ParseForm() (err os.Error) {
 // FormValue calls ParseForm if necessary.
 func (r *Request) FormValue(key string) string {
        if r.Form == nil {
-               r.ParseForm();
+               r.ParseForm()
        }
        if vs, ok := r.Form[key]; ok && len(vs) > 0 {
-               return vs[0];
+               return vs[0]
        }
        return "";
 }
index 391b6cb009d14ac1a94414c624916dc67b3a6e23..200aa14e9f343becef969236a68af046c985a180 100644 (file)
@@ -39,7 +39,7 @@ func TestParseForm(t *testing.T) {
                        continue;
                }
                if len(form) != len(test.out) {
-                       t.Errorf("test %d: len(form) = %d, want %d", i, len(form), len(test.out));
+                       t.Errorf("test %d: len(form) = %d, want %d", i, len(form), len(test.out))
                }
                for k, evs := range test.out {
                        vs, ok := form[k];
@@ -53,7 +53,7 @@ func TestParseForm(t *testing.T) {
                        }
                        for j, ev := range evs {
                                if v := vs[j]; v != ev {
-                                       t.Errorf("test %d: form[%q][%d] = %q, want %q", i, k, j, v, ev);
+                                       t.Errorf("test %d: form[%q][%d] = %q, want %q", i, k, j, v, ev)
                                }
                        }
                }
@@ -64,7 +64,7 @@ func TestQuery(t *testing.T) {
        req := &Request{Method: "GET"};
        req.URL, _ = ParseURL("http://www.google.com/search?q=foo&q=bar");
        if q := req.FormValue("q"); q != "foo" {
-               t.Errorf(`req.FormValue("q") = %q, want "foo"`, q);
+               t.Errorf(`req.FormValue("q") = %q, want "foo"`, q)
        }
 }
 
@@ -93,10 +93,10 @@ func TestPostContentTypeParsing(t *testing.T) {
                };
                err := req.ParseForm();
                if !test.error && err != nil {
-                       t.Errorf("test %d: Unexpected error: %v", i, err);
+                       t.Errorf("test %d: Unexpected error: %v", i, err)
                }
                if test.error && err == nil {
-                       t.Errorf("test %d should have returned error", i);
+                       t.Errorf("test %d should have returned error", i)
                }
        }
 }
@@ -108,10 +108,10 @@ func TestRedirect(t *testing.T) {
        )
        r, url, err := Get(start);
        if err != nil {
-               t.Fatal(err);
+               t.Fatal(err)
        }
        r.Body.Close();
        if r.StatusCode != 200 || url != end {
-               t.Fatalf("Get(%s) got status %d at %s, want 200 at %s", start, r.StatusCode, url, end);
+               t.Fatalf("Get(%s) got status %d at %s, want 200 at %s", start, r.StatusCode, url, end)
        }
 }
index c155b772529134e5204dd9fd2d08d5dc729521a5..9651cee338319f8784f12397446bdfd39695748d 100644 (file)
@@ -59,7 +59,7 @@ type Conn struct {
 func newConn(rwc net.Conn, handler Handler) (c *Conn, err os.Error) {
        c = new(Conn);
        if a := rwc.RemoteAddr(); a != nil {
-               c.RemoteAddr = a.String();
+               c.RemoteAddr = a.String()
        }
        c.handler = handler;
        c.rwc = rwc;
@@ -72,10 +72,10 @@ func newConn(rwc net.Conn, handler Handler) (c *Conn, err os.Error) {
 // Read next request from connection.
 func (c *Conn) readRequest() (req *Request, err os.Error) {
        if c.hijacked {
-               return nil, ErrHijacked;
+               return nil, ErrHijacked
        }
        if req, err = ReadRequest(c.buf.Reader); err != nil {
-               return nil, err;
+               return nil, err
        }
 
        // Reset per-request connection state.
@@ -135,20 +135,20 @@ func (c *Conn) WriteHeader(code int) {
        c.status = code;
        c.written = 0;
        if !c.Req.ProtoAtLeast(1, 0) {
-               return;
+               return
        }
        proto := "HTTP/1.0";
        if c.Req.ProtoAtLeast(1, 1) {
-               proto = "HTTP/1.1";
+               proto = "HTTP/1.1"
        }
        codestring := strconv.Itoa(code);
        text, ok := statusText[code];
        if !ok {
-               text = "status code " + codestring;
+               text = "status code " + codestring
        }
        io.WriteString(c.buf, proto + " " + codestring + " " + text + "\r\n");
        for k, v := range c.header {
-               io.WriteString(c.buf, k+": "+v+"\r\n");
+               io.WriteString(c.buf, k+": "+v+"\r\n")
        }
        io.WriteString(c.buf, "\r\n");
 }
@@ -162,10 +162,10 @@ func (c *Conn) Write(data []byte) (n int, err os.Error) {
                return 0, ErrHijacked;
        }
        if !c.wroteHeader {
-               c.WriteHeader(StatusOK);
+               c.WriteHeader(StatusOK)
        }
        if len(data) == 0 {
-               return 0, nil;
+               return 0, nil
        }
 
        c.written += int64(len(data));  // ignoring errors, for errorKludge
@@ -174,15 +174,15 @@ func (c *Conn) Write(data []byte) (n int, err os.Error) {
        // then there would be fewer chunk headers.
        // On the other hand, it would make hijacking more difficult.
        if c.chunking {
-               fmt.Fprintf(c.buf, "%x\r\n", len(data));        // TODO(rsc): use strconv not fmt
+               fmt.Fprintf(c.buf, "%x\r\n", len(data)) // TODO(rsc): use strconv not fmt
        }
        n, err = c.buf.Write(data);
        if err == nil && c.chunking {
                if n != len(data) {
-                       err = io.ErrShortWrite;
+                       err = io.ErrShortWrite
                }
                if err == nil {
-                       io.WriteString(c.buf, "\r\n");
+                       io.WriteString(c.buf, "\r\n")
                }
        }
 
@@ -201,23 +201,23 @@ func errorKludge(c *Conn, req *Request) {
 
        // Is this an error?
        if kind := c.status / 100; kind != 4 && kind != 5 {
-               return;
+               return
        }
 
        // Did the handler supply any info?  Enough?
        if c.written == 0 || c.written >= min {
-               return;
+               return
        }
 
        // Is it a broken browser?
        var msg string;
        switch agent := req.UserAgent; {
        case strings.Index(agent, "MSIE") >= 0:
-               msg = "Internet Explorer";
+               msg = "Internet Explorer"
        case strings.Index(agent, "Chrome/") >= 0:
-               msg = "Chrome";
+               msg = "Chrome"
        default:
-               return;
+               return
        }
        msg += " would ignore this error page if this text weren't here.\n";
 
@@ -227,20 +227,20 @@ func errorKludge(c *Conn, req *Request) {
        case "text/html":
                io.WriteString(c, "<!-- ");
                for c.written < min {
-                       io.WriteString(c, msg);
+                       io.WriteString(c, msg)
                }
                io.WriteString(c, " -->");
        case "text/plain":
                io.WriteString(c, "\n");
                for c.written < min {
-                       io.WriteString(c, msg);
+                       io.WriteString(c, msg)
                }
        }
 }
 
 func (c *Conn) flush() {
        if !c.wroteHeader {
-               c.WriteHeader(StatusOK);
+               c.WriteHeader(StatusOK)
        }
        errorKludge(c, c.Req);
        if c.chunking {
@@ -268,18 +268,18 @@ func (c *Conn) serve() {
        for {
                req, err := c.readRequest();
                if err != nil {
-                       break;
+                       break
                }
                // HTTP cannot have multiple simultaneous active requests.
                // Until the server replies to this request, it can't read another,
                // so we might as well run the handler in this goroutine.
                c.handler.ServeHTTP(c, req);
                if c.hijacked {
-                       return;
+                       return
                }
                c.flush();
                if c.closeAfterReply {
-                       break;
+                       break
                }
        }
        c.close();
@@ -292,7 +292,7 @@ func (c *Conn) serve() {
 // and close the connection.
 func (c *Conn) Hijack() (rwc io.ReadWriteCloser, buf *bufio.ReadWriter, err os.Error) {
        if c.hijacked {
-               return nil, nil, ErrHijacked;
+               return nil, nil, ErrHijacked
        }
        c.hijacked = true;
        rwc = c.rwc;
@@ -310,7 +310,7 @@ type HandlerFunc func(*Conn, *Request)
 
 // ServeHTTP calls f(c, req).
 func (f HandlerFunc) ServeHTTP(c *Conn, req *Request) {
-       f(c, req);
+       f(c, req)
 }
 
 // Helper handlers
@@ -333,12 +333,12 @@ func Redirect(c *Conn, url string, code int) {
        // response because older user agents may not understand 301/307.
        note := "<a href=\"%v\">" + statusText[code] + "</a>.\n";
        if c.Req.Method == "POST" {
-               note = "";
+               note = ""
        }
 
        u, err := ParseURL(url);
        if err != nil {
-               goto finish;
+               goto finish
        }
 
        // If url was relative, make absolute by
@@ -359,7 +359,7 @@ func Redirect(c *Conn, url string, code int) {
        // So do we.
        oldpath := c.Req.URL.Path;
        if oldpath == "" {      // should not happen, but avoid a crash if it does
-               oldpath = "/";
+               oldpath = "/"
        }
        if u.Scheme == "" {
                // no leading http://server
@@ -373,7 +373,7 @@ func Redirect(c *Conn, url string, code int) {
                trailing := url[len(url)-1] == '/';
                url = path.Clean(url);
                if trailing && url[len(url)-1] != '/' {
-                       url += "/";
+                       url += "/"
                }
        }
 
@@ -390,14 +390,14 @@ type redirectHandler struct {
 }
 
 func (rh *redirectHandler) ServeHTTP(c *Conn, req *Request) {
-       Redirect(c, rh.url, rh.code);
+       Redirect(c, rh.url, rh.code)
 }
 
 // RedirectHandler returns a request handler that redirects
 // each request it receives to the given url using the given
 // status code.
 func RedirectHandler(url string, code int) Handler {
-       return &redirectHandler{url, code};
+       return &redirectHandler{url, code}
 }
 
 // ServeMux is an HTTP request multiplexer.
@@ -438,11 +438,11 @@ var DefaultServeMux = NewServeMux()
 func pathMatch(pattern, path string) bool {
        if len(pattern) == 0 {
                // should not happen
-               return false;
+               return false
        }
        n := len(pattern);
        if pattern[n-1] != '/' {
-               return pattern == path;
+               return pattern == path
        }
        return len(path) >= n && path[0:n] == pattern;
 }
@@ -450,16 +450,16 @@ func pathMatch(pattern, path string) bool {
 // Return the canonical path for p, eliminating . and .. elements.
 func cleanPath(p string) string {
        if p == "" {
-               return "/";
+               return "/"
        }
        if p[0] != '/' {
-               p = "/"+p;
+               p = "/"+p
        }
        np := path.Clean(p);
        // path.Clean removes trailing slash except for root;
        // put the trailing slash back if necessary.
        if p[len(p)-1] == '/' && np != "/" {
-               np += "/";
+               np += "/"
        }
        return np;
 }
@@ -479,7 +479,7 @@ func (mux *ServeMux) ServeHTTP(c *Conn, req *Request) {
        var n = 0;
        for k, v := range mux.m {
                if !pathMatch(k, req.URL.Path) {
-                       continue;
+                       continue
                }
                if h == nil || len(k) > n {
                        n = len(k);
@@ -487,7 +487,7 @@ func (mux *ServeMux) ServeHTTP(c *Conn, req *Request) {
                }
        }
        if h == nil {
-               h = NotFoundHandler();
+               h = NotFoundHandler()
        }
        h.ServeHTTP(c, req);
 }
@@ -495,7 +495,7 @@ func (mux *ServeMux) ServeHTTP(c *Conn, req *Request) {
 // Handle registers the handler for the given pattern.
 func (mux *ServeMux) Handle(pattern string, handler Handler) {
        if pattern == "" || pattern[0] != '/' {
-               panicln("http: invalid pattern", pattern);
+               panicln("http: invalid pattern", pattern)
        }
 
        mux.m[pattern] = handler;
@@ -504,7 +504,7 @@ func (mux *ServeMux) Handle(pattern string, handler Handler) {
        // If pattern is /tree/, insert permanent redirect for /tree.
        n := len(pattern);
        if n > 0 && pattern[n-1] == '/' {
-               mux.m[pattern[0 : n-1]] = RedirectHandler(pattern, StatusMovedPermanently);
+               mux.m[pattern[0 : n-1]] = RedirectHandler(pattern, StatusMovedPermanently)
        }
 }
 
@@ -518,16 +518,16 @@ func Handle(pattern string, handler Handler)      { DefaultServeMux.Handle(pattern, h
 // Handler is typically nil, in which case the DefaultServeMux is used.
 func Serve(l net.Listener, handler Handler) os.Error {
        if handler == nil {
-               handler = DefaultServeMux;
+               handler = DefaultServeMux
        }
        for {
                rw, e := l.Accept();
                if e != nil {
-                       return e;
+                       return e
                }
                c, err := newConn(rw, handler);
                if err != nil {
-                       continue;
+                       continue
                }
                go c.serve();
        }
@@ -563,7 +563,7 @@ func Serve(l net.Listener, handler Handler) os.Error {
 func ListenAndServe(addr string, handler Handler) os.Error {
        l, e := net.Listen("tcp", addr);
        if e != nil {
-               return e;
+               return e
        }
        e = Serve(l, handler);
        l.Close();
index cd983fe6fefb204417250ce19792ab064a43d39d..529a6ebffbf868249055f4fcbcf66709470fd10f 100644 (file)
@@ -38,13 +38,13 @@ func (ctr *Counter) String() string { return fmt.Sprintf("%d", ctr.n) }
 func (ctr *Counter) ServeHTTP(c *http.Conn, req *http.Request) {
        switch req.Method {
        case "GET":
-               ctr.n++;
+               ctr.n++
        case "POST":
                buf := new(bytes.Buffer);
                io.Copy(buf, req.Body);
                body := buf.String();
                if n, err := strconv.Atoi(body); err != nil {
-                       fmt.Fprintf(c, "bad POST: %v\nbody: [%v]\n", err, body);
+                       fmt.Fprintf(c, "bad POST: %v\nbody: [%v]\n", err, body)
                } else {
                        ctr.n = n;
                        fmt.Fprint(c, "counter reset\n");
@@ -80,9 +80,9 @@ func FlagServer(c *http.Conn, req *http.Request) {
        fmt.Fprint(c, "Flags:\n");
        flag.VisitAll(func(f *flag.Flag) {
                if f.Value.String() != f.DefValue {
-                       fmt.Fprintf(c, "%s = %s [default = %s]\n", f.Name, f.Value.String(), f.DefValue);
+                       fmt.Fprintf(c, "%s = %s [default = %s]\n", f.Name, f.Value.String(), f.DefValue)
                } else {
-                       fmt.Fprintf(c, "%s = %s\n", f.Name, f.Value.String());
+                       fmt.Fprintf(c, "%s = %s\n", f.Name, f.Value.String())
                }
        });
 }
@@ -90,7 +90,7 @@ func FlagServer(c *http.Conn, req *http.Request) {
 // simple argument server
 func ArgServer(c *http.Conn, req *http.Request) {
        for i, s := range os.Args {
-               fmt.Fprint(c, s, " ");
+               fmt.Fprint(c, s, " ")
        }
 }
 
@@ -101,14 +101,14 @@ func ChanCreate() Chan {
        c := make(Chan);
        go func(c Chan) {
                for x := 0; ; x++ {
-                       c <- x;
+                       c <- x
                }
        }(c);
        return c;
 }
 
 func (ch Chan) ServeHTTP(c *http.Conn, req *http.Request) {
-       io.WriteString(c, fmt.Sprintf("channel send #%d\n", <-ch));
+       io.WriteString(c, fmt.Sprintf("channel send #%d\n", <-ch))
 }
 
 // exec a program, redirecting output
@@ -154,6 +154,6 @@ func main() {
        http.Handle("/date", http.HandlerFunc(DateServer));
        err := http.ListenAndServe(":12345", nil);
        if err != nil {
-               log.Crash("ListenAndServe: ", err);
+               log.Crash("ListenAndServe: ", err)
        }
 }
index 526c96aa23ebf6e3cf655779a36a93ef709c5c1e..a19e8a5189eafd8b22c6f262ff9bc2d081eee253 100644 (file)
@@ -25,11 +25,11 @@ func (e *URLError) String() string  { return e.Op + " " + e.URL + ": " + e.Error.
 func ishex(c byte) bool {
        switch {
        case '0' <= c && c <= '9':
-               return true;
+               return true
        case 'a' <= c && c <= 'f':
-               return true;
+               return true
        case 'A' <= c && c <= 'F':
-               return true;
+               return true
        }
        return false;
 }
@@ -37,11 +37,11 @@ func ishex(c byte) bool {
 func unhex(c byte) byte {
        switch {
        case '0' <= c && c <= '9':
-               return c-'0';
+               return c-'0'
        case 'a' <= c && c <= 'f':
-               return c-'a'+10;
+               return c-'a'+10
        case 'A' <= c && c <= 'F':
-               return c-'A'+10;
+               return c-'A'+10
        }
        return 0;
 }
@@ -49,7 +49,7 @@ func unhex(c byte) byte {
 type URLEscapeError string
 
 func (e URLEscapeError) String() string {
-       return "invalid URL escape " + strconv.Quote(string(e));
+       return "invalid URL escape " + strconv.Quote(string(e))
 }
 
 // Return true if the specified character should be escaped when appearing in a
@@ -60,7 +60,7 @@ func (e URLEscapeError) String() string {
 func shouldEscape(c byte) bool {
        switch c {
        case ' ', '?', '&', '=', '#', '+', '%':
-               return true;
+               return true
        }
        return false;
 }
@@ -80,7 +80,7 @@ func URLUnescape(s string) (string, os.Error) {
                        if i+2 >= len(s) || !ishex(s[i+1]) || !ishex(s[i+2]) {
                                s = s[i:len(s)];
                                if len(s) > 3 {
-                                       s = s[0:3];
+                                       s = s[0:3]
                                }
                                return "", URLEscapeError(s);
                        }
@@ -89,12 +89,12 @@ func URLUnescape(s string) (string, os.Error) {
                        hasPlus = true;
                        i++;
                default:
-                       i++;
+                       i++
                }
        }
 
        if n == 0 && !hasPlus {
-               return s, nil;
+               return s, nil
        }
 
        t := make([]byte, len(s) - 2*n);
@@ -125,15 +125,15 @@ func URLEscape(s string) string {
                c := s[i];
                if shouldEscape(c) {
                        if c == ' ' {
-                               spaceCount++;
+                               spaceCount++
                        } else {
-                               hexCount++;
+                               hexCount++
                        }
                }
        }
 
        if spaceCount == 0 && hexCount == 0 {
-               return s;
+               return s
        }
 
        t := make([]byte, len(s) + 2*hexCount);
@@ -188,17 +188,17 @@ func getscheme(rawurl string) (scheme, path string, err os.Error) {
                // do nothing
                case '0' <= c && c <= '9' || c == '+' || c == '-' || c == '.':
                        if i == 0 {
-                               return "", rawurl, nil;
+                               return "", rawurl, nil
                        }
                case c == ':':
                        if i == 0 {
-                               return "", "", os.ErrorString("missing protocol scheme");
+                               return "", "", os.ErrorString("missing protocol scheme")
                        }
                        return rawurl[0:i], rawurl[i+1 : len(rawurl)], nil;
                default:
                        // we have encountered an invalid character,
                        // so there is no valid scheme
-                       return "", rawurl, nil;
+                       return "", rawurl, nil
                }
        }
        return "", rawurl, nil;
@@ -211,7 +211,7 @@ func split(s string, c byte, cutc bool) (string, string) {
        for i := 0; i < len(s); i++ {
                if s[i] == c {
                        if cutc {
-                               return s[0:i], s[i+1 : len(s)];
+                               return s[0:i], s[i+1 : len(s)]
                        }
                        return s[0:i], s[i:len(s)];
                }
@@ -240,41 +240,41 @@ func ParseURL(rawurl string) (url *URL, err os.Error) {
        // split off possible leading "http:", "mailto:", etc.
        var path string;
        if url.Scheme, path, err = getscheme(rawurl); err != nil {
-               goto Error;
+               goto Error
        }
        url.RawPath = path;
 
        // RFC 2396: a relative URI (no scheme) has a ?query,
        // but absolute URIs only have query if path begins with /
        if url.Scheme == "" || len(path) > 0 && path[0] == '/' {
-               path, url.RawQuery = split(path, '?', true);
+               path, url.RawQuery = split(path, '?', true)
        }
 
        // Maybe path is //authority/path
        if len(path) > 2 && path[0:2] == "//" {
-               url.Authority, path = split(path[2:len(path)], '/', false);
+               url.Authority, path = split(path[2:len(path)], '/', false)
        }
 
        // If there's no @, split's default is wrong.  Check explicitly.
        if strings.Index(url.Authority, "@") < 0 {
-               url.Host = url.Authority;
+               url.Host = url.Authority
        } else {
-               url.Userinfo, url.Host = split(url.Authority, '@', true);
+               url.Userinfo, url.Host = split(url.Authority, '@', true)
        }
 
        // What's left is the path.
        // TODO: Canonicalize (remove . and ..)?
        if url.Path, err = URLUnescape(path); err != nil {
-               goto Error;
+               goto Error
        }
 
        // Remove escapes from the Authority and Userinfo fields, and verify
        // that Scheme and Host contain no escapes (that would be illegal).
        if url.Authority, err = URLUnescape(url.Authority); err != nil {
-               goto Error;
+               goto Error
        }
        if url.Userinfo, err = URLUnescape(url.Userinfo); err != nil {
-               goto Error;
+               goto Error
        }
        if strings.Index(url.Scheme, "%") >= 0 {
                err = os.ErrorString("hexadecimal escape in scheme");
@@ -297,10 +297,10 @@ func ParseURLReference(rawurlref string) (url *URL, err os.Error) {
        // Cut off #frag.
        rawurl, frag := split(rawurlref, '#', true);
        if url, err = ParseURL(rawurl); err != nil {
-               return nil, err;
+               return nil, err
        }
        if url.Fragment, err = URLUnescape(frag); err != nil {
-               return nil, &URLError{"parse", rawurl, err};
+               return nil, &URLError{"parse", rawurl, err}
        }
        return url, nil;
 }
@@ -313,21 +313,21 @@ func ParseURLReference(rawurlref string) (url *URL, err os.Error) {
 func (url *URL) String() string {
        result := "";
        if url.Scheme != "" {
-               result += url.Scheme + ":";
+               result += url.Scheme + ":"
        }
        if url.Host != "" || url.Userinfo != "" {
                result += "//";
                if url.Userinfo != "" {
-                       result += URLEscape(url.Userinfo) + "@";
+                       result += URLEscape(url.Userinfo) + "@"
                }
                result += url.Host;
        }
        result += URLEscape(url.Path);
        if url.RawQuery != "" {
-               result += "?" + url.RawQuery;
+               result += "?" + url.RawQuery
        }
        if url.Fragment != "" {
-               result += "#" + URLEscape(url.Fragment);
+               result += "#" + URLEscape(url.Fragment)
        }
        return result;
 }
index 90d5bdd00b2335833633b75e8fed58ca6bfad1f1..b8df71971bbff69a95806c9476578cdb59ca4ba5 100644 (file)
@@ -186,7 +186,7 @@ var urlfragtests = []URLTest{
 func ufmt(u *URL) string {
        return fmt.Sprintf("%q, %q, %q, %q, %q, %q, %q, %q, %q",
                u.Raw, u.Scheme, u.RawPath, u.Authority, u.Userinfo,
-               u.Host, u.Path, u.RawQuery, u.Fragment);
+               u.Host, u.Path, u.RawQuery, u.Fragment)
 }
 
 func DoTest(t *testing.T, parse func(string) (*URL, os.Error), name string, tests []URLTest) {
@@ -198,7 +198,7 @@ func DoTest(t *testing.T, parse func(string) (*URL, os.Error), name string, test
                }
                if !reflect.DeepEqual(u, tt.out) {
                        t.Errorf("%s(%q):\n\thave %v\n\twant %v\n",
-                               name, tt.in, ufmt(u), ufmt(tt.out));
+                               name, tt.in, ufmt(u), ufmt(tt.out))
                }
        }
 }
@@ -223,10 +223,10 @@ func DoTestString(t *testing.T, parse func(string) (*URL, os.Error), name string
                s := u.String();
                expected := tt.in;
                if len(tt.roundtrip) > 0 {
-                       expected = tt.roundtrip;
+                       expected = tt.roundtrip
                }
                if s != expected {
-                       t.Errorf("%s(%q).String() == %q (expected %q)", name, tt.in, s, expected);
+                       t.Errorf("%s(%q).String() == %q (expected %q)", name, tt.in, s, expected)
                }
        }
 }
@@ -308,7 +308,7 @@ func TestURLUnescape(t *testing.T) {
        for _, tt := range unescapeTests {
                actual, err := URLUnescape(tt.in);
                if actual != tt.out || (err != nil) != (tt.err != nil) {
-                       t.Errorf("URLUnescape(%q) = %q, %s; want %q, %s", tt.in, actual, err, tt.out, tt.err);
+                       t.Errorf("URLUnescape(%q) = %q, %s; want %q, %s", tt.in, actual, err, tt.out, tt.err)
                }
        }
 }
@@ -345,13 +345,13 @@ func TestURLEscape(t *testing.T) {
        for _, tt := range escapeTests {
                actual := URLEscape(tt.in);
                if tt.out != actual {
-                       t.Errorf("URLEscape(%q) = %q, want %q", tt.in, actual, tt.out);
+                       t.Errorf("URLEscape(%q) = %q, want %q", tt.in, actual, tt.out)
                }
 
                // for bonus points, verify that escape:unescape is an identity.
                roundtrip, err := URLUnescape(actual);
                if roundtrip != tt.in || err != nil {
-                       t.Errorf("URLUnescape(%q) = %q, %s; want %q, %s", actual, roundtrip, err, tt.in, "[no error]");
+                       t.Errorf("URLUnescape(%q) = %q, %s; want %q, %s", actual, roundtrip, err, tt.in, "[no error]")
                }
        }
 }
index 757be84ce02b7e9581c98cd74b85b1dab9ac284a..c3c5e5024638cf4736cdc928aa35e65dab316eb5 100644 (file)
@@ -113,12 +113,12 @@ type ColorModel interface {
 type ColorModelFunc func(Color) Color
 
 func (f ColorModelFunc) Convert(c Color) Color {
-       return f(c);
+       return f(c)
 }
 
 func toRGBAColor(c Color) Color {
        if _, ok := c.(RGBAColor); ok { // no-op conversion
-               return c;
+               return c
        }
        r, g, b, a := c.RGBA();
        return RGBAColor{uint8(r>>24), uint8(g>>24), uint8(b>>24), uint8(a>>24)};
@@ -126,7 +126,7 @@ func toRGBAColor(c Color) Color {
 
 func toRGBA64Color(c Color) Color {
        if _, ok := c.(RGBA64Color); ok {       // no-op conversion
-               return c;
+               return c
        }
        r, g, b, a := c.RGBA();
        return RGBA64Color{uint16(r>>16), uint16(g>>16), uint16(b>>16), uint16(a>>16)};
@@ -134,15 +134,15 @@ func toRGBA64Color(c Color) Color {
 
 func toNRGBAColor(c Color) Color {
        if _, ok := c.(NRGBAColor); ok {        // no-op conversion
-               return c;
+               return c
        }
        r, g, b, a := c.RGBA();
        a >>= 16;
        if a == 0xffff {
-               return NRGBAColor{uint8(r>>24), uint8(g>>24), uint8(b>>24), 0xff};
+               return NRGBAColor{uint8(r>>24), uint8(g>>24), uint8(b>>24), 0xff}
        }
        if a == 0 {
-               return NRGBAColor{0, 0, 0, 0};
+               return NRGBAColor{0, 0, 0, 0}
        }
        r >>= 16;
        g >>= 16;
@@ -156,7 +156,7 @@ func toNRGBAColor(c Color) Color {
 
 func toNRGBA64Color(c Color) Color {
        if _, ok := c.(NRGBA64Color); ok {      // no-op conversion
-               return c;
+               return c
        }
        r, g, b, a := c.RGBA();
        a >>= 16;
@@ -164,10 +164,10 @@ func toNRGBA64Color(c Color) Color {
        g >>= 16;
        b >>= 16;
        if a == 0xffff {
-               return NRGBA64Color{uint16(r), uint16(g), uint16(b), 0xffff};
+               return NRGBA64Color{uint16(r), uint16(g), uint16(b), 0xffff}
        }
        if a == 0 {
-               return NRGBA64Color{0, 0, 0, 0};
+               return NRGBA64Color{0, 0, 0, 0}
        }
        // Since Color.RGBA returns a alpha-premultiplied color, we should have r <= a && g <= a && b <= a.
        r = (r*0xffff)/a;
index 80dbb863677ff4c731476e3aef3b2fcc83ea170a..49d7f5a4d9b589601155d6d1224b186d575b9bfb 100644 (file)
@@ -25,7 +25,7 @@ func (p *RGBA) ColorModel() ColorModel        { return RGBAColorModel }
 
 func (p *RGBA) Width() int {
        if len(p.Pixel) == 0 {
-               return 0;
+               return 0
        }
        return len(p.Pixel[0]);
 }
@@ -40,7 +40,7 @@ func (p *RGBA) Set(x, y int, c Color) { p.Pixel[y][x] = toRGBAColor(c).(RGBAColo
 func NewRGBA(w, h int) *RGBA {
        pixel := make([][]RGBAColor, h);
        for y := 0; y < int(h); y++ {
-               pixel[y] = make([]RGBAColor, w);
+               pixel[y] = make([]RGBAColor, w)
        }
        return &RGBA{pixel};
 }
@@ -55,7 +55,7 @@ func (p *RGBA64) ColorModel() ColorModel      { return RGBA64ColorModel }
 
 func (p *RGBA64) Width() int {
        if len(p.Pixel) == 0 {
-               return 0;
+               return 0
        }
        return len(p.Pixel[0]);
 }
@@ -70,7 +70,7 @@ func (p *RGBA64) Set(x, y int, c Color)       { p.Pixel[y][x] = toRGBA64Color(c).(RGBA
 func NewRGBA64(w, h int) *RGBA64 {
        pixel := make([][]RGBA64Color, h);
        for y := 0; y < int(h); y++ {
-               pixel[y] = make([]RGBA64Color, w);
+               pixel[y] = make([]RGBA64Color, w)
        }
        return &RGBA64{pixel};
 }
@@ -85,7 +85,7 @@ func (p *NRGBA) ColorModel() ColorModel       { return NRGBAColorModel }
 
 func (p *NRGBA) Width() int {
        if len(p.Pixel) == 0 {
-               return 0;
+               return 0
        }
        return len(p.Pixel[0]);
 }
@@ -100,7 +100,7 @@ func (p *NRGBA) Set(x, y int, c Color)      { p.Pixel[y][x] = toNRGBAColor(c).(NRGBAC
 func NewNRGBA(w, h int) *NRGBA {
        pixel := make([][]NRGBAColor, h);
        for y := 0; y < int(h); y++ {
-               pixel[y] = make([]NRGBAColor, w);
+               pixel[y] = make([]NRGBAColor, w)
        }
        return &NRGBA{pixel};
 }
@@ -115,7 +115,7 @@ func (p *NRGBA64) ColorModel() ColorModel   { return NRGBA64ColorModel }
 
 func (p *NRGBA64) Width() int {
        if len(p.Pixel) == 0 {
-               return 0;
+               return 0
        }
        return len(p.Pixel[0]);
 }
@@ -130,7 +130,7 @@ func (p *NRGBA64) Set(x, y int, c Color)    { p.Pixel[y][x] = toNRGBA64Color(c).(NR
 func NewNRGBA64(w, h int) *NRGBA64 {
        pixel := make([][]NRGBA64Color, h);
        for y := 0; y < int(h); y++ {
-               pixel[y] = make([]NRGBA64Color, w);
+               pixel[y] = make([]NRGBA64Color, w)
        }
        return &NRGBA64{pixel};
 }
@@ -140,7 +140,7 @@ type PalettedColorModel []Color
 
 func diff(a, b uint32) uint32 {
        if a > b {
-               return a-b;
+               return a-b
        }
        return b-a;
 }
@@ -148,7 +148,7 @@ func diff(a, b uint32) uint32 {
 // Convert returns the palette color closest to c in Euclidean R,G,B space.
 func (p PalettedColorModel) Convert(c Color) Color {
        if len(p) == 0 {
-               return nil;
+               return nil
        }
        // TODO(nigeltao): Revisit the "pick the palette color which minimizes sum-squared-difference"
        // algorithm when the premultiplied vs unpremultiplied issue is resolved.
@@ -186,7 +186,7 @@ func (p *Paletted) ColorModel() ColorModel  { return p.Palette }
 
 func (p *Paletted) Width() int {
        if len(p.Pixel) == 0 {
-               return 0;
+               return 0
        }
        return len(p.Pixel[0]);
 }
@@ -196,18 +196,18 @@ func (p *Paletted) Height() int   { return len(p.Pixel) }
 func (p *Paletted) At(x, y int) Color  { return p.Palette[p.Pixel[y][x]] }
 
 func (p *Paletted) ColorIndexAt(x, y int) uint8 {
-       return p.Pixel[y][x];
+       return p.Pixel[y][x]
 }
 
 func (p *Paletted) SetColorIndex(x, y int, index uint8) {
-       p.Pixel[y][x] = index;
+       p.Pixel[y][x] = index
 }
 
 // NewPaletted returns a new Paletted with the given width, height and palette.
 func NewPaletted(w, h int, m PalettedColorModel) *Paletted {
        pixel := make([][]uint8, h);
        for y := 0; y < int(h); y++ {
-               pixel[y] = make([]uint8, w);
+               pixel[y] = make([]uint8, w)
        }
        return &Paletted{pixel, m};
 }
index 9ea338d07d0b356131a5ff015f3de9d4bab9c1fb..e8eba566a9d4bb802b72ee5d0efcbfa29c6d09a6 100644 (file)
@@ -81,57 +81,57 @@ func (e UnsupportedError) String() string   { return "unsupported PNG feature: " +
 
 // Big-endian.
 func parseUint32(b []uint8) uint32 {
-       return uint32(b[0])<<24 | uint32(b[1])<<16 | uint32(b[2])<<8 | uint32(b[3]);
+       return uint32(b[0])<<24 | uint32(b[1])<<16 | uint32(b[2])<<8 | uint32(b[3])
 }
 
 func abs(x int) int {
        if x < 0 {
-               return -x;
+               return -x
        }
        return x;
 }
 
 func min(a, b int) int {
        if a < b {
-               return a;
+               return a
        }
        return b;
 }
 
 func (d *decoder) parseIHDR(r io.Reader, crc hash.Hash32, length uint32) os.Error {
        if length != 13 {
-               return FormatError("bad IHDR length");
+               return FormatError("bad IHDR length")
        }
        _, err := io.ReadFull(r, d.tmp[0:13]);
        if err != nil {
-               return err;
+               return err
        }
        crc.Write(d.tmp[0:13]);
        if d.tmp[8] != 8 {
-               return UnsupportedError("bit depth");
+               return UnsupportedError("bit depth")
        }
        if d.tmp[10] != 0 || d.tmp[11] != 0 || d.tmp[12] != 0 {
-               return UnsupportedError("compression, filter or interlace method");
+               return UnsupportedError("compression, filter or interlace method")
        }
        w := int32(parseUint32(d.tmp[0:4]));
        h := int32(parseUint32(d.tmp[4:8]));
        if w < 0 || h < 0 {
-               return FormatError("negative dimension");
+               return FormatError("negative dimension")
        }
        nPixels := int64(w)*int64(h);
        if nPixels != int64(int(nPixels)) {
-               return UnsupportedError("dimension overflow");
+               return UnsupportedError("dimension overflow")
        }
        d.colorType = d.tmp[9];
        switch d.colorType {
        case ctTrueColor:
-               d.image = image.NewRGBA(int(w), int(h));
+               d.image = image.NewRGBA(int(w), int(h))
        case ctPaletted:
-               d.image = image.NewPaletted(int(w), int(h), nil);
+               d.image = image.NewPaletted(int(w), int(h), nil)
        case ctTrueColorAlpha:
-               d.image = image.NewNRGBA(int(w), int(h));
+               d.image = image.NewNRGBA(int(w), int(h))
        default:
-               return UnsupportedError("color type");
+               return UnsupportedError("color type")
        }
        d.width, d.height = int(w), int(h);
        return nil;
@@ -140,26 +140,26 @@ func (d *decoder) parseIHDR(r io.Reader, crc hash.Hash32, length uint32) os.Erro
 func (d *decoder) parsePLTE(r io.Reader, crc hash.Hash32, length uint32) os.Error {
        np := int(length/3);    // The number of palette entries.
        if length%3 != 0 || np <= 0 || np > 256 {
-               return FormatError("bad PLTE length");
+               return FormatError("bad PLTE length")
        }
        n, err := io.ReadFull(r, d.tmp[0 : 3*np]);
        if err != nil {
-               return err;
+               return err
        }
        crc.Write(d.tmp[0:n]);
        switch d.colorType {
        case ctPaletted:
                palette := make([]image.Color, np);
                for i := 0; i < np; i++ {
-                       palette[i] = image.RGBAColor{d.tmp[3*i + 0], d.tmp[3*i + 1], d.tmp[3*i + 2], 0xff};
+                       palette[i] = image.RGBAColor{d.tmp[3*i + 0], d.tmp[3*i + 1], d.tmp[3*i + 2], 0xff}
                }
                d.image.(*image.Paletted).Palette = image.PalettedColorModel(palette);
        case ctTrueColor, ctTrueColorAlpha:
                // As per the PNG spec, a PLTE chunk is optional (and for practical purposes,
                // ignorable) for the ctTrueColor and ctTrueColorAlpha color types (section 4.1.2).
-               return nil;
+               return nil
        default:
-               return FormatError("PLTE, color type mismatch");
+               return FormatError("PLTE, color type mismatch")
        }
        return nil;
 }
@@ -171,9 +171,9 @@ func paeth(a, b, c uint8) uint8 {
        pb := abs(p-int(b));
        pc := abs(p-int(c));
        if pa <= pb && pa <= pc {
-               return a;
+               return a
        } else if pb <= pc {
-               return b;
+               return b
        }
        return c;
 }
@@ -181,7 +181,7 @@ func paeth(a, b, c uint8) uint8 {
 func (d *decoder) idatReader(idat io.Reader) os.Error {
        r, err := zlib.NewInflater(idat);
        if err != nil {
-               return err;
+               return err
        }
        defer r.Close();
        bpp := 0;       // Bytes per pixel.
@@ -212,7 +212,7 @@ func (d *decoder) idatReader(idat io.Reader) os.Error {
                // Read the decompressed bytes.
                _, err := io.ReadFull(r, cr);
                if err != nil {
-                       return err;
+                       return err
                }
 
                // Apply the filter.
@@ -223,46 +223,46 @@ func (d *decoder) idatReader(idat io.Reader) os.Error {
                        // No-op.
                case ftSub:
                        for i := bpp; i < len(cdat); i++ {
-                               cdat[i] += cdat[i-bpp];
+                               cdat[i] += cdat[i-bpp]
                        }
                case ftUp:
                        for i := 0; i < len(cdat); i++ {
-                               cdat[i] += pdat[i];
+                               cdat[i] += pdat[i]
                        }
                case ftAverage:
                        for i := 0; i < bpp; i++ {
-                               cdat[i] += pdat[i]/2;
+                               cdat[i] += pdat[i]/2
                        }
                        for i := bpp; i < len(cdat); i++ {
-                               cdat[i] += uint8((int(cdat[i-bpp])+int(pdat[i]))/2);
+                               cdat[i] += uint8((int(cdat[i-bpp])+int(pdat[i]))/2)
                        }
                case ftPaeth:
                        for i := 0; i < bpp; i++ {
-                               cdat[i] += paeth(0, pdat[i], 0);
+                               cdat[i] += paeth(0, pdat[i], 0)
                        }
                        for i := bpp; i < len(cdat); i++ {
-                               cdat[i] += paeth(cdat[i-bpp], pdat[i], pdat[i-bpp]);
+                               cdat[i] += paeth(cdat[i-bpp], pdat[i], pdat[i-bpp])
                        }
                default:
-                       return FormatError("bad filter type");
+                       return FormatError("bad filter type")
                }
 
                // Convert from bytes to colors.
                switch d.colorType {
                case ctTrueColor:
                        for x := 0; x < d.width; x++ {
-                               rgba.Set(x, y, image.RGBAColor{cdat[3*x + 0], cdat[3*x + 1], cdat[3*x + 2], 0xff});
+                               rgba.Set(x, y, image.RGBAColor{cdat[3*x + 0], cdat[3*x + 1], cdat[3*x + 2], 0xff})
                        }
                case ctPaletted:
                        for x := 0; x < d.width; x++ {
                                if cdat[x] > maxPalette {
-                                       return FormatError("palette index out of range");
+                                       return FormatError("palette index out of range")
                                }
                                paletted.SetColorIndex(x, y, cdat[x]);
                        }
                case ctTrueColorAlpha:
                        for x := 0; x < d.width; x++ {
-                               nrgba.Set(x, y, image.NRGBAColor{cdat[4*x + 0], cdat[4*x + 1], cdat[4*x + 2], cdat[4*x + 3]});
+                               nrgba.Set(x, y, image.NRGBAColor{cdat[4*x + 0], cdat[4*x + 1], cdat[4*x + 2], cdat[4*x + 3]})
                        }
                }
 
@@ -285,7 +285,7 @@ func (d *decoder) parseIDAT(r io.Reader, crc hash.Hash32, length uint32) os.Erro
                go func() {
                        err := d.idatReader(pr);
                        if err == os.EOF {
-                               err = FormatError("too little IDAT");
+                               err = FormatError("too little IDAT")
                        }
                        pr.CloseWithError(FormatError("too much IDAT"));
                        d.idatDone <- err;
@@ -299,10 +299,10 @@ func (d *decoder) parseIDAT(r io.Reader, crc hash.Hash32, length uint32) os.Erro
                // want to report that error, and not the one that made the Read stop.
                n, err2 := d.idatWriter.Write(buf[0:n]);
                if err2 != nil {
-                       return err2;
+                       return err2
                }
                if err1 != nil {
-                       return err1;
+                       return err1
                }
                crc.Write(buf[0:n]);
                length -= uint32(n);
@@ -312,7 +312,7 @@ func (d *decoder) parseIDAT(r io.Reader, crc hash.Hash32, length uint32) os.Erro
 
 func (d *decoder) parseIEND(r io.Reader, crc hash.Hash32, length uint32) os.Error {
        if length != 0 {
-               return FormatError("bad IEND length");
+               return FormatError("bad IEND length")
        }
        return nil;
 }
@@ -321,20 +321,20 @@ func (d *decoder) parseChunk(r io.Reader) os.Error {
        // Read the length.
        n, err := io.ReadFull(r, d.tmp[0:4]);
        if err == os.EOF {
-               return io.ErrUnexpectedEOF;
+               return io.ErrUnexpectedEOF
        }
        if err != nil {
-               return err;
+               return err
        }
        length := parseUint32(d.tmp[0:4]);
 
        // Read the chunk type.
        n, err = io.ReadFull(r, d.tmp[0:4]);
        if err == os.EOF {
-               return io.ErrUnexpectedEOF;
+               return io.ErrUnexpectedEOF
        }
        if err != nil {
-               return err;
+               return err
        }
        crc := crc32.NewIEEE();
        crc.Write(d.tmp[0:4]);
@@ -343,25 +343,25 @@ func (d *decoder) parseChunk(r io.Reader) os.Error {
        switch string(d.tmp[0:4]) {
        case "IHDR":
                if d.stage != dsStart {
-                       return chunkOrderError;
+                       return chunkOrderError
                }
                d.stage = dsSeenIHDR;
                err = d.parseIHDR(r, crc, length);
        case "PLTE":
                if d.stage != dsSeenIHDR {
-                       return chunkOrderError;
+                       return chunkOrderError
                }
                d.stage = dsSeenPLTE;
                err = d.parsePLTE(r, crc, length);
        case "IDAT":
                if d.stage < dsSeenIHDR || d.stage > dsSeenIDAT || (d.colorType == ctPaletted && d.stage == dsSeenIHDR) {
-                       return chunkOrderError;
+                       return chunkOrderError
                }
                d.stage = dsSeenIDAT;
                err = d.parseIDAT(r, crc, length);
        case "IEND":
                if d.stage != dsSeenIDAT {
-                       return chunkOrderError;
+                       return chunkOrderError
                }
                d.stage = dsSeenIEND;
                err = d.parseIEND(r, crc, length);
@@ -371,26 +371,26 @@ func (d *decoder) parseChunk(r io.Reader) os.Error {
                for length > 0 {
                        n, err = io.ReadFull(r, ignored[0 : min(len(ignored), int(length))]);
                        if err != nil {
-                               return err;
+                               return err
                        }
                        crc.Write(ignored[0:n]);
                        length -= uint32(n);
                }
        }
        if err != nil {
-               return err;
+               return err
        }
 
        // Read the checksum.
        n, err = io.ReadFull(r, d.tmp[0:4]);
        if err == os.EOF {
-               return io.ErrUnexpectedEOF;
+               return io.ErrUnexpectedEOF
        }
        if err != nil {
-               return err;
+               return err
        }
        if parseUint32(d.tmp[0:4]) != crc.Sum32() {
-               return FormatError("invalid checksum");
+               return FormatError("invalid checksum")
        }
        return nil;
 }
@@ -398,10 +398,10 @@ func (d *decoder) parseChunk(r io.Reader) os.Error {
 func (d *decoder) checkHeader(r io.Reader) os.Error {
        _, err := io.ReadFull(r, d.tmp[0:8]);
        if err != nil {
-               return err;
+               return err
        }
        if string(d.tmp[0:8]) != pngHeader {
-               return FormatError("not a PNG file");
+               return FormatError("not a PNG file")
        }
        return nil;
 }
@@ -412,23 +412,23 @@ func Decode(r io.Reader) (image.Image, os.Error) {
        var d decoder;
        err := d.checkHeader(r);
        if err != nil {
-               return nil, err;
+               return nil, err
        }
        for d.stage = dsStart; d.stage != dsSeenIEND; {
                err = d.parseChunk(r);
                if err != nil {
-                       break;
+                       break
                }
        }
        if d.idatWriter != nil {
                d.idatWriter.Close();
                err1 := <-d.idatDone;
                if err == nil {
-                       err = err1;
+                       err = err1
                }
        }
        if err != nil {
-               return nil, err;
+               return nil, err
        }
        return d.image, nil;
 }
index 97383fdbd269b4352bb6ad204e9fa86bf1d62def..97b4e8ec6ef3af133feca5b2c9128d16f6cc108a 100644 (file)
@@ -36,7 +36,7 @@ var filenames = []string{
 func readPng(filename string) (image.Image, os.Error) {
        f, err := os.Open(filename, os.O_RDONLY, 0444);
        if err != nil {
-               return nil, err;
+               return nil, err
        }
        defer f.Close();
        return Decode(f);
@@ -56,14 +56,14 @@ func sng(w io.WriteCloser, filename string, png image.Image) {
        cpm, _ := cm.(image.PalettedColorModel);
        switch {
        case cm == image.RGBAColorModel:
-               io.WriteString(w, "    using color;\n");
+               io.WriteString(w, "    using color;\n")
        case cm == image.NRGBAColorModel:
-               io.WriteString(w, "    using color alpha;\n");
+               io.WriteString(w, "    using color alpha;\n")
        case cpm != nil:
                io.WriteString(w, "    using color palette;\n");
                paletted = png.(*image.Paletted);
        default:
-               io.WriteString(w, "unknown PNG decoder color model\n");
+               io.WriteString(w, "unknown PNG decoder color model\n")
        }
        io.WriteString(w, "}\n");
 
@@ -100,7 +100,7 @@ func sng(w io.WriteCloser, filename string, png image.Image) {
                        }
                case cpm != nil:
                        for x := 0; x < png.Width(); x++ {
-                               fmt.Fprintf(w, "%02x", paletted.ColorIndexAt(x, y));
+                               fmt.Fprintf(w, "%02x", paletted.ColorIndexAt(x, y))
                        }
                }
                io.WriteString(w, "\n");
@@ -139,7 +139,7 @@ func TestReader(t *testing.T) {
                        ps, perr := pb.ReadString('\n');
                        ss, serr := sb.ReadString('\n');
                        if perr == os.EOF && serr == os.EOF {
-                               break;
+                               break
                        }
                        if perr != nil {
                                t.Error(fn, perr);
index ceb72598e39a2d55c541afeae4c452d6fd31c355..8c8a415371013eaee751887783e76db8be79b40c 100644 (file)
@@ -38,7 +38,7 @@ func opaque(m image.Image) bool {
                for x := 0; x < m.Width(); x++ {
                        _, _, _, a := m.At(x, y).RGBA();
                        if a != 0xffffffff {
-                               return false;
+                               return false
                        }
                }
        }
@@ -48,14 +48,14 @@ func opaque(m image.Image) bool {
 // The absolute value of a byte interpreted as a signed int8.
 func abs8(d uint8) int {
        if d < 128 {
-               return int(d);
+               return int(d)
        }
        return 256-int(d);
 }
 
 func (e *encoder) writeChunk(b []byte, name string) {
        if e.err != nil {
-               return;
+               return
        }
        n := uint32(len(b));
        if int(n) != len(b) {
@@ -74,11 +74,11 @@ func (e *encoder) writeChunk(b []byte, name string) {
 
        _, e.err = e.w.Write(e.header[0:8]);
        if e.err != nil {
-               return;
+               return
        }
        _, e.err = e.w.Write(b);
        if e.err != nil {
-               return;
+               return
        }
        _, e.err = e.w.Write(e.footer[0:4]);
 }
@@ -125,7 +125,7 @@ func (e *encoder) writePLTE(p image.PalettedColorModel) {
 func (e *encoder) Write(b []byte) (int, os.Error) {
        e.writeChunk(b, "IDAT");
        if e.err != nil {
-               return 0, e.err;
+               return 0, e.err
        }
        return len(b), nil;
 }
@@ -164,7 +164,7 @@ func filter(cr [][]byte, pr []byte, bpp int) int {
                cdat4[i] = cdat0[i] - paeth(cdat0[i-bpp], pdat[i], pdat[i-bpp]);
                sum += abs8(cdat4[i]);
                if sum >= best {
-                       break;
+                       break
                }
        }
        if sum < best {
@@ -177,7 +177,7 @@ func filter(cr [][]byte, pr []byte, bpp int) int {
        for i := 0; i < n; i++ {
                sum += abs8(cdat0[i]);
                if sum >= best {
-                       break;
+                       break
                }
        }
        if sum < best {
@@ -195,7 +195,7 @@ func filter(cr [][]byte, pr []byte, bpp int) int {
                cdat1[i] = cdat0[i]-cdat0[i-bpp];
                sum += abs8(cdat1[i]);
                if sum >= best {
-                       break;
+                       break
                }
        }
        if sum < best {
@@ -213,7 +213,7 @@ func filter(cr [][]byte, pr []byte, bpp int) int {
                cdat3[i] = cdat0[i]-uint8((int(cdat0[i-bpp])+int(pdat[i]))/2);
                sum += abs8(cdat3[i]);
                if sum >= best {
-                       break;
+                       break
                }
        }
        if sum < best {
@@ -227,7 +227,7 @@ func filter(cr [][]byte, pr []byte, bpp int) int {
 func writeImage(w io.Writer, m image.Image, ct uint8) os.Error {
        zw, err := zlib.NewDeflater(w);
        if err != nil {
-               return err;
+               return err
        }
        defer zw.Close();
 
@@ -235,12 +235,12 @@ func writeImage(w io.Writer, m image.Image, ct uint8) os.Error {
        var paletted *image.Paletted;
        switch ct {
        case ctTrueColor:
-               bpp = 3;
+               bpp = 3
        case ctPaletted:
                bpp = 1;
                paletted = m.(*image.Paletted);
        case ctTrueColorAlpha:
-               bpp = 4;
+               bpp = 4
        }
        // cr[*] and pr are the bytes for the current and previous row.
        // cr[0] is unfiltered (or equivalently, filtered with the ftNone filter).
@@ -267,7 +267,7 @@ func writeImage(w io.Writer, m image.Image, ct uint8) os.Error {
                        }
                case ctPaletted:
                        for x := 0; x < m.Width(); x++ {
-                               cr[0][x+1] = paletted.ColorIndexAt(x, y);
+                               cr[0][x+1] = paletted.ColorIndexAt(x, y)
                        }
                case ctTrueColorAlpha:
                        // Convert from image.Image (which is alpha-premultiplied) to PNG's non-alpha-premultiplied.
@@ -286,7 +286,7 @@ func writeImage(w io.Writer, m image.Image, ct uint8) os.Error {
                // Write the compressed bytes.
                _, err = zw.Write(cr[f]);
                if err != nil {
-                       return err;
+                       return err
                }
 
                // The current row for y is the previous row for y+1.
@@ -298,16 +298,16 @@ func writeImage(w io.Writer, m image.Image, ct uint8) os.Error {
 // Write the actual image data to one or more IDAT chunks.
 func (e *encoder) writeIDATs() {
        if e.err != nil {
-               return;
+               return
        }
        var bw *bufio.Writer;
        bw, e.err = bufio.NewWriterSize(e, 1<<15);
        if e.err != nil {
-               return;
+               return
        }
        e.err = writeImage(bw, e.m, e.colorType);
        if e.err != nil {
-               return;
+               return
        }
        e.err = bw.Flush();
 }
@@ -322,7 +322,7 @@ func Encode(w io.Writer, m image.Image) os.Error {
        // also rejected.
        mw, mh := int64(m.Width()), int64(m.Height());
        if mw <= 0 || mh <= 0 || mw >= 1<<32 || mh >= 1<<32 {
-               return FormatError("invalid image size: " + strconv.Itoa64(mw) + "x" + strconv.Itoa64(mw));
+               return FormatError("invalid image size: " + strconv.Itoa64(mw) + "x" + strconv.Itoa64(mw))
        }
 
        var e encoder;
@@ -331,15 +331,15 @@ func Encode(w io.Writer, m image.Image) os.Error {
        e.colorType = uint8(ctTrueColorAlpha);
        pal, _ := m.(*image.Paletted);
        if pal != nil {
-               e.colorType = ctPaletted;
+               e.colorType = ctPaletted
        } else if opaque(m) {
-               e.colorType = ctTrueColor;
+               e.colorType = ctTrueColor
        }
 
        _, e.err = io.WriteString(w, pngHeader);
        e.writeIHDR();
        if pal != nil {
-               e.writePLTE(pal.Palette);
+               e.writePLTE(pal.Palette)
        }
        e.writeIDATs();
        e.writeIEND();
index b832f1c267c98c9c989ba297fb577d5743b1f8cb..db50a98721fda1386b6c1bf323e01eb86c1e26c2 100644 (file)
@@ -14,14 +14,14 @@ import (
 
 func diff(m0, m1 image.Image) os.Error {
        if m0.Width() != m1.Width() || m0.Height() != m1.Height() {
-               return os.NewError(fmt.Sprintf("dimensions differ: %dx%d vs %dx%d", m0.Width(), m0.Height(), m1.Width(), m1.Height()));
+               return os.NewError(fmt.Sprintf("dimensions differ: %dx%d vs %dx%d", m0.Width(), m0.Height(), m1.Width(), m1.Height()))
        }
        for y := 0; y < m0.Height(); y++ {
                for x := 0; x < m0.Width(); x++ {
                        r0, g0, b0, a0 := m0.At(x, y).RGBA();
                        r1, g1, b1, a1 := m1.At(x, y).RGBA();
                        if r0 != r1 || g0 != g1 || b0 != b1 || a0 != a1 {
-                               return os.NewError(fmt.Sprintf("colors differ at (%d, %d): %v vs %v", x, y, m0.At(x, y), m1.At(x, y)));
+                               return os.NewError(fmt.Sprintf("colors differ at (%d, %d): %v vs %v", x, y, m0.At(x, y), m1.At(x, y)))
                        }
                }
        }
index 01157c157e0ec2bf3086235ccb91af4499fc1397..7b71472add3d673ea4f03675db11af95baf83923 100644 (file)
@@ -143,7 +143,7 @@ type WriterAt interface {
 
 // WriteString writes the contents of the string s to w, which accepts an array of bytes.
 func WriteString(w Writer, s string) (n int, err os.Error) {
-       return w.Write(strings.Bytes(s));
+       return w.Write(strings.Bytes(s))
 }
 
 // ReadAtLeast reads from r into buf until it has read at least min bytes.
@@ -156,11 +156,11 @@ func ReadAtLeast(r Reader, buf []byte, min int) (n int, err os.Error) {
        for n < min {
                nn, e := r.Read(buf[n:len(buf)]);
                if nn > 0 {
-                       n += nn;
+                       n += nn
                }
                if e != nil {
                        if e == os.EOF && n > 0 {
-                               e = ErrUnexpectedEOF;
+                               e = ErrUnexpectedEOF
                        }
                        return n, e;
                }
@@ -174,7 +174,7 @@ func ReadAtLeast(r Reader, buf []byte, min int) (n int, err os.Error) {
 // If an EOF happens after reading some but not all the bytes,
 // ReadFull returns ErrUnexpectedEOF.
 func ReadFull(r Reader, buf []byte) (n int, err os.Error) {
-       return ReadAtLeast(r, buf, len(buf));
+       return ReadAtLeast(r, buf, len(buf))
 }
 
 // Copyn copies n bytes (or until an error) from src to dst.
@@ -184,13 +184,13 @@ func Copyn(dst Writer, src Reader, n int64) (written int64, err os.Error) {
        for written < n {
                l := len(buf);
                if d := n-written; d < int64(l) {
-                       l = int(d);
+                       l = int(d)
                }
                nr, er := src.Read(buf[0:l]);
                if nr > 0 {
                        nw, ew := dst.Write(buf[0:nr]);
                        if nw > 0 {
-                               written += int64(nw);
+                               written += int64(nw)
                        }
                        if ew != nil {
                                err = ew;
@@ -219,7 +219,7 @@ func Copy(dst Writer, src Reader) (written int64, err os.Error) {
                if nr > 0 {
                        nw, ew := dst.Write(buf[0:nr]);
                        if nw > 0 {
-                               written += int64(nw);
+                               written += int64(nw)
                        }
                        if ew != nil {
                                err = ew;
@@ -231,7 +231,7 @@ func Copy(dst Writer, src Reader) (written int64, err os.Error) {
                        }
                }
                if er == os.EOF {
-                       break;
+                       break
                }
                if er != nil {
                        err = er;
@@ -252,10 +252,10 @@ type limitedReader struct {
 
 func (l *limitedReader) Read(p []byte) (n int, err os.Error) {
        if l.n <= 0 {
-               return 0, os.EOF;
+               return 0, os.EOF
        }
        if int64(len(p)) > l.n {
-               p = p[0 : l.n];
+               p = p[0 : l.n]
        }
        n, err = l.r.Read(p);
        l.n -= int64(n);
@@ -265,7 +265,7 @@ func (l *limitedReader) Read(p []byte) (n int, err os.Error) {
 // NewSectionReader returns a SectionReader that reads from r
 // starting at offset off and stops with os.EOF after n bytes.
 func NewSectionReader(r ReaderAt, off int64, n int64) *SectionReader {
-       return &SectionReader{r, off, off, off+n};
+       return &SectionReader{r, off, off, off+n}
 }
 
 // SectionReader implements Read, Seek, and ReadAt on a section
@@ -279,10 +279,10 @@ type SectionReader struct {
 
 func (s *SectionReader) Read(p []byte) (n int, err os.Error) {
        if s.off >= s.limit {
-               return 0, os.EOF;
+               return 0, os.EOF
        }
        if max := s.limit - s.off; int64(len(p)) > max {
-               p = p[0:max];
+               p = p[0:max]
        }
        n, err = s.r.ReadAt(p, s.off);
        s.off += int64(n);
@@ -292,16 +292,16 @@ func (s *SectionReader) Read(p []byte) (n int, err os.Error) {
 func (s *SectionReader) Seek(offset int64, whence int) (ret int64, err os.Error) {
        switch whence {
        default:
-               return 0, os.EINVAL;
+               return 0, os.EINVAL
        case 0:
-               offset += s.base;
+               offset += s.base
        case 1:
-               offset += s.off;
+               offset += s.off
        case 2:
-               offset += s.limit;
+               offset += s.limit
        }
        if offset < s.off || offset > s.limit {
-               return 0, os.EINVAL;
+               return 0, os.EINVAL
        }
        s.off = offset;
        return offset - s.base, nil;
@@ -309,11 +309,11 @@ func (s *SectionReader) Seek(offset int64, whence int) (ret int64, err os.Error)
 
 func (s *SectionReader) ReadAt(p []byte, off int64) (n int, err os.Error) {
        if off < 0 || off >= s.limit - s.base {
-               return 0, os.EOF;
+               return 0, os.EOF
        }
        off += s.base;
        if max := s.limit - off; int64(len(p)) > max {
-               p = p[0:max];
+               p = p[0:max]
        }
        return s.r.ReadAt(p, off);
 }
index 743e4c468f907d056c7913ef1782b46a69ced225..2caf21854fef77b8cdc4f231ad711f4e4fa91a1d 100644 (file)
@@ -31,16 +31,16 @@ type pipe struct {
 
 func (p *pipe) Read(data []byte) (n int, err os.Error) {
        if p == nil || p.rclosed {
-               return 0, os.EINVAL;
+               return 0, os.EINVAL
        }
 
        // Wait for next write block if necessary.
        if p.wpend == nil {
                if !p.wclosed {
-                       p.wpend = <-p.cr;
+                       p.wpend = <-p.cr
                }
                if p.wpend == nil {
-                       return 0, p.werr;
+                       return 0, p.werr
                }
                p.wtot = 0;
        }
@@ -48,10 +48,10 @@ func (p *pipe) Read(data []byte) (n int, err os.Error) {
        // Read from current write block.
        n = len(data);
        if n > len(p.wpend) {
-               n = len(p.wpend);
+               n = len(p.wpend)
        }
        for i := 0; i < n; i++ {
-               data[i] = p.wpend[i];
+               data[i] = p.wpend[i]
        }
        p.wtot += n;
        p.wpend = p.wpend[n:len(p.wpend)];
@@ -68,10 +68,10 @@ func (p *pipe) Read(data []byte) (n int, err os.Error) {
 
 func (p *pipe) Write(data []byte) (n int, err os.Error) {
        if p == nil || p.wclosed {
-               return 0, os.EINVAL;
+               return 0, os.EINVAL
        }
        if p.rclosed {
-               return 0, p.rerr;
+               return 0, p.rerr
        }
 
        // Send data to reader.
@@ -84,19 +84,19 @@ func (p *pipe) Write(data []byte) (n int, err os.Error) {
 
 func (p *pipe) CloseReader(rerr os.Error) os.Error {
        if p == nil || p.rclosed {
-               return os.EINVAL;
+               return os.EINVAL
        }
 
        // Stop any future writes.
        p.rclosed = true;
        if rerr == nil {
-               rerr = os.EPIPE;
+               rerr = os.EPIPE
        }
        p.rerr = rerr;
 
        // Stop the current write.
        if !p.wclosed {
-               p.cw <- pipeReturn{p.wtot, rerr};
+               p.cw <- pipeReturn{p.wtot, rerr}
        }
 
        return nil;
@@ -104,10 +104,10 @@ func (p *pipe) CloseReader(rerr os.Error) os.Error {
 
 func (p *pipe) CloseWriter(werr os.Error) os.Error {
        if werr == nil {
-               werr = os.EOF;
+               werr = os.EOF
        }
        if p == nil || p.wclosed {
-               return os.EINVAL;
+               return os.EINVAL
        }
 
        // Stop any future reads.
@@ -116,7 +116,7 @@ func (p *pipe) CloseWriter(werr os.Error) os.Error {
 
        // Stop the current read.
        if !p.rclosed {
-               p.cr <- nil;
+               p.cr <- nil
        }
 
        return nil;
index a7975714c571999b255ce4876f8f5a3fd9773b3b..16c49977bc1806346f4f8f72011157b19c03d779 100644 (file)
@@ -16,10 +16,10 @@ import (
 func checkWrite(t *testing.T, w Writer, data []byte, c chan int) {
        n, err := w.Write(data);
        if err != nil {
-               t.Errorf("write: %v", err);
+               t.Errorf("write: %v", err)
        }
        if n != len(data) {
-               t.Errorf("short write: %d != %d", n, len(data));
+               t.Errorf("short write: %d != %d", n, len(data))
        }
        c <- 0;
 }
@@ -32,9 +32,9 @@ func TestPipe1(t *testing.T) {
        go checkWrite(t, w, strings.Bytes("hello, world"), c);
        n, err := r.Read(buf);
        if err != nil {
-               t.Errorf("read: %v", err);
+               t.Errorf("read: %v", err)
        } else if n != 12 || string(buf[0:12]) != "hello, world" {
-               t.Errorf("bad read: got %q", buf[0:n]);
+               t.Errorf("bad read: got %q", buf[0:n])
        }
        <-c;
        r.Close();
@@ -50,7 +50,7 @@ func reader(t *testing.T, r Reader, c chan int) {
                        break;
                }
                if err != nil {
-                       t.Errorf("read: %v", err);
+                       t.Errorf("read: %v", err)
                }
                c <- n;
        }
@@ -66,20 +66,20 @@ func TestPipe2(t *testing.T) {
                p := buf[0 : 5 + i*10];
                n, err := w.Write(p);
                if n != len(p) {
-                       t.Errorf("wrote %d, got %d", len(p), n);
+                       t.Errorf("wrote %d, got %d", len(p), n)
                }
                if err != nil {
-                       t.Errorf("write: %v", err);
+                       t.Errorf("write: %v", err)
                }
                nn := <-c;
                if nn != n {
-                       t.Errorf("wrote %d, read got %d", n, nn);
+                       t.Errorf("wrote %d, read got %d", n, nn)
                }
        }
        w.Close();
        nn := <-c;
        if nn != 0 {
-               t.Errorf("final read got %d", nn);
+               t.Errorf("final read got %d", nn)
        }
 }
 
@@ -100,7 +100,7 @@ func TestPipe3(t *testing.T) {
        r, w := Pipe();
        var wdat = make([]byte, 128);
        for i := 0; i < len(wdat); i++ {
-               wdat[i] = byte(i);
+               wdat[i] = byte(i)
        }
        go writer(w, wdat, c);
        var rdat = make([]byte, 1024);
@@ -108,34 +108,34 @@ func TestPipe3(t *testing.T) {
        for n := 1; n <= 256; n *= 2 {
                nn, err := r.Read(rdat[tot : tot+n]);
                if err != nil && err != os.EOF {
-                       t.Fatalf("read: %v", err);
+                       t.Fatalf("read: %v", err)
                }
 
                // only final two reads should be short - 1 byte, then 0
                expect := n;
                if n == 128 {
-                       expect = 1;
+                       expect = 1
                } else if n == 256 {
                        expect = 0;
                        if err != os.EOF {
-                               t.Fatalf("read at end: %v", err);
+                               t.Fatalf("read at end: %v", err)
                        }
                }
                if nn != expect {
-                       t.Fatalf("read %d, expected %d, got %d", n, expect, nn);
+                       t.Fatalf("read %d, expected %d, got %d", n, expect, nn)
                }
                tot += nn;
        }
        pr := <-c;
        if pr.n != 128 || pr.err != nil {
-               t.Fatalf("write 128: %d, %v", pr.n, pr.err);
+               t.Fatalf("write 128: %d, %v", pr.n, pr.err)
        }
        if tot != 128 {
-               t.Fatalf("total read %d != 128", tot);
+               t.Fatalf("total read %d != 128", tot)
        }
        for i := 0; i < 128; i++ {
                if rdat[i] != byte(i) {
-                       t.Fatalf("rdat[%d] = %d", i, rdat[i]);
+                       t.Fatalf("rdat[%d] = %d", i, rdat[i])
                }
        }
 }
@@ -154,7 +154,7 @@ type pipeTest struct {
 }
 
 func (p pipeTest) String() string {
-       return fmt.Sprintf("async=%v err=%v closeWithError=%v", p.async, p.err, p.closeWithError);
+       return fmt.Sprintf("async=%v err=%v closeWithError=%v", p.async, p.err, p.closeWithError)
 }
 
 var pipeTests = []pipeTest{
@@ -170,12 +170,12 @@ func delayClose(t *testing.T, cl closer, ch chan int, tt pipeTest) {
        time.Sleep(1e6);        // 1 ms
        var err os.Error;
        if tt.closeWithError {
-               err = cl.CloseWithError(tt.err);
+               err = cl.CloseWithError(tt.err)
        } else {
-               err = cl.Close();
+               err = cl.Close()
        }
        if err != nil {
-               t.Errorf("delayClose: %v", err);
+               t.Errorf("delayClose: %v", err)
        }
        ch <- 0;
 }
@@ -185,25 +185,25 @@ func TestPipeReadClose(t *testing.T) {
                c := make(chan int, 1);
                r, w := Pipe();
                if tt.async {
-                       go delayClose(t, w, c, tt);
+                       go delayClose(t, w, c, tt)
                } else {
-                       delayClose(t, w, c, tt);
+                       delayClose(t, w, c, tt)
                }
                var buf = make([]byte, 64);
                n, err := r.Read(buf);
                <-c;
                want := tt.err;
                if want == nil {
-                       want = os.EOF;
+                       want = os.EOF
                }
                if err != want {
-                       t.Errorf("read from closed pipe: %v want %v", err, want);
+                       t.Errorf("read from closed pipe: %v want %v", err, want)
                }
                if n != 0 {
-                       t.Errorf("read on closed pipe returned %d", n);
+                       t.Errorf("read on closed pipe returned %d", n)
                }
                if err = r.Close(); err != nil {
-                       t.Errorf("r.Close: %v", err);
+                       t.Errorf("r.Close: %v", err)
                }
        }
 }
@@ -215,24 +215,24 @@ func TestPipeWriteClose(t *testing.T) {
                c := make(chan int, 1);
                r, w := Pipe();
                if tt.async {
-                       go delayClose(t, r, c, tt);
+                       go delayClose(t, r, c, tt)
                } else {
-                       delayClose(t, r, c, tt);
+                       delayClose(t, r, c, tt)
                }
                n, err := WriteString(w, "hello, world");
                <-c;
                expect := tt.err;
                if expect == nil {
-                       expect = os.EPIPE;
+                       expect = os.EPIPE
                }
                if err != expect {
-                       t.Errorf("write on closed pipe: %v want %v", err, expect);
+                       t.Errorf("write on closed pipe: %v want %v", err, expect)
                }
                if n != 0 {
-                       t.Errorf("write on closed pipe returned %d", n);
+                       t.Errorf("write on closed pipe returned %d", n)
                }
                if err = w.Close(); err != nil {
-                       t.Errorf("w.Close: %v", err);
+                       t.Errorf("w.Close: %v", err)
                }
        }
 }
index 8c5c710b710956cbe264d24e456a1cf09d117e53..c98521d8021c9d5bd62e08e122a68095ced64d6f 100644 (file)
@@ -23,7 +23,7 @@ func ReadAll(r Reader) ([]byte, os.Error) {
 func ReadFile(filename string) ([]byte, os.Error) {
        f, err := os.Open(filename, os.O_RDONLY, 0);
        if err != nil {
-               return nil, err;
+               return nil, err
        }
        defer f.Close();
        return ReadAll(f);
@@ -35,12 +35,12 @@ func ReadFile(filename string) ([]byte, os.Error) {
 func WriteFile(filename string, data []byte, perm int) os.Error {
        f, err := os.Open(filename, os.O_WRONLY | os.O_CREAT | os.O_TRUNC, perm);
        if err != nil {
-               return err;
+               return err
        }
        n, err := f.Write(data);
        f.Close();
        if err == nil && n < len(data) {
-               err = ErrShortWrite;
+               err = ErrShortWrite
        }
        return err;
 }
@@ -57,16 +57,16 @@ func (d dirList) Swap(i, j int)             { d[i], d[j] = d[j], d[i] }
 func ReadDir(dirname string) ([]*os.Dir, os.Error) {
        f, err := os.Open(dirname, os.O_RDONLY, 0);
        if err != nil {
-               return nil, err;
+               return nil, err
        }
        list, err := f.Readdir(-1);
        f.Close();
        if err != nil {
-               return nil, err;
+               return nil, err
        }
        dirs := make(dirList, len(list));
        for i := range list {
-               dirs[i] = &list[i];
+               dirs[i] = &list[i]
        }
        sort.Sort(dirs);
        return dirs, nil;
index 9be9eeef800d41ed6429cd17d0f909f8cf83a018..b7f6e80f4127a4ab01c522e6df4016d64755ed09 100644 (file)
@@ -14,10 +14,10 @@ import (
 func checkSize(t *testing.T, path string, size uint64) {
        dir, err := os.Stat(path);
        if err != nil {
-               t.Fatalf("Stat %q (looking for size %d): %s", path, size, err);
+               t.Fatalf("Stat %q (looking for size %d): %s", path, size, err)
        }
        if dir.Size != size {
-               t.Errorf("Stat %q: size %d want %d", path, dir.Size, size);
+               t.Errorf("Stat %q: size %d want %d", path, dir.Size, size)
        }
 }
 
@@ -25,13 +25,13 @@ func TestReadFile(t *testing.T) {
        filename := "rumpelstilzchen";
        contents, err := ReadFile(filename);
        if err == nil {
-               t.Fatalf("ReadFile %s: error expected, none found", filename);
+               t.Fatalf("ReadFile %s: error expected, none found", filename)
        }
 
        filename = "utils_test.go";
        contents, err = ReadFile(filename);
        if err != nil {
-               t.Fatalf("ReadFile %s: %v", filename, err);
+               t.Fatalf("ReadFile %s: %v", filename, err)
        }
 
        checkSize(t, filename, uint64(len(contents)));
@@ -44,16 +44,16 @@ func TestWriteFile(t *testing.T) {
                "to produce bigger and better idiots. So far, the Universe is winning.";
 
        if err := WriteFile(filename, strings.Bytes(data), 0644); err != nil {
-               t.Fatalf("WriteFile %s: %v", filename, err);
+               t.Fatalf("WriteFile %s: %v", filename, err)
        }
 
        contents, err := ReadFile(filename);
        if err != nil {
-               t.Fatalf("ReadFile %s: %v", filename, err);
+               t.Fatalf("ReadFile %s: %v", filename, err)
        }
 
        if string(contents) != data {
-               t.Fatalf("contents = %q\nexpected = %q", string(contents), data);
+               t.Fatalf("contents = %q\nexpected = %q", string(contents), data)
        }
 
        // cleanup
@@ -65,13 +65,13 @@ func TestReadDir(t *testing.T) {
        dirname := "rumpelstilzchen";
        _, err := ReadDir(dirname);
        if err == nil {
-               t.Fatalf("ReadDir %s: error expected, none found", dirname);
+               t.Fatalf("ReadDir %s: error expected, none found", dirname)
        }
 
        dirname = ".";
        list, err := ReadDir(dirname);
        if err != nil {
-               t.Fatalf("ReadDir %s: %v", dirname, err);
+               t.Fatalf("ReadDir %s: %v", dirname, err)
        }
 
        foundTest := false;
@@ -79,15 +79,15 @@ func TestReadDir(t *testing.T) {
        for _, dir := range list {
                switch {
                case dir.IsRegular() && dir.Name == "utils_test.go":
-                       foundTest = true;
+                       foundTest = true
                case dir.IsDirectory() && dir.Name == "_obj":
-                       foundObj = true;
+                       foundObj = true
                }
        }
        if !foundTest {
-               t.Fatalf("ReadDir %s: test file not found", dirname);
+               t.Fatalf("ReadDir %s: test file not found", dirname)
        }
        if !foundObj {
-               t.Fatalf("ReadDir %s: _obj directory not found", dirname);
+               t.Fatalf("ReadDir %s: _obj directory not found", dirname)
        }
 }
index a8ee836641f0f9ff07d5b41117243251b43f8ed6..fb97edc19f166dfad25c277034cfdb9b3f9a1239 100644 (file)
@@ -43,10 +43,10 @@ type Json interface {
 // j.String() == `abc`, but JsonToString(j) == `"abc"`.
 func JsonToString(j Json) string {
        if j == nil {
-               return "null";
+               return "null"
        }
        if j.Kind() == StringKind {
-               return Quote(j.String());
+               return Quote(j.String())
        }
        return j.String();
 }
@@ -81,7 +81,7 @@ func (j *_Number) Kind() int          { return NumberKind }
 func (j *_Number) Number() float64     { return j.f }
 func (j *_Number) String() string {
        if math.Floor(j.f) == j.f {
-               return fmt.Sprintf("%.0f", j.f);
+               return fmt.Sprintf("%.0f", j.f)
        }
        return fmt.Sprintf("%g", j.f);
 }
@@ -95,7 +95,7 @@ func (j *_Array) Kind() int   { return ArrayKind }
 func (j *_Array) Len() int     { return j.a.Len() }
 func (j *_Array) Elem(i int) Json {
        if i < 0 || i >= j.a.Len() {
-               return Null;
+               return Null
        }
        return j.a.At(i).(Json);
 }
@@ -103,7 +103,7 @@ func (j *_Array) String() string {
        s := "[";
        for i := 0; i < j.a.Len(); i++ {
                if i > 0 {
-                       s += ",";
+                       s += ","
                }
                s += JsonToString(j.a.At(i).(Json));
        }
@@ -120,7 +120,7 @@ func (j *_Bool) Kind() int  { return BoolKind }
 func (j *_Bool) Bool() bool    { return j.b }
 func (j *_Bool) String() string {
        if j.b {
-               return "true";
+               return "true"
        }
        return "false";
 }
@@ -134,11 +134,11 @@ func (j *_Map) Kind() int { return MapKind }
 func (j *_Map) Len() int       { return len(j.m) }
 func (j *_Map) Get(s string) Json {
        if j.m == nil {
-               return Null;
+               return Null
        }
        v, ok := j.m[s];
        if !ok {
-               return Null;
+               return Null
        }
        return v;
 }
@@ -147,9 +147,9 @@ func (j *_Map) String() string {
        first := true;
        for k, v := range j.m {
                if first {
-                       first = false;
+                       first = false
                } else {
-                       s += ",";
+                       s += ","
                }
                s += Quote(k);
                s += ":";
@@ -181,13 +181,13 @@ func Walk(j Json, path string) Json {
                case ArrayKind:
                        indx, err := strconv.Atoi(elem);
                        if err != nil {
-                               return Null;
+                               return Null
                        }
                        j = j.Elem(indx);
                case MapKind:
-                       j = j.Get(elem);
+                       j = j.Get(elem)
                default:
-                       return Null;
+                       return Null
                }
        }
        return j;
@@ -197,40 +197,40 @@ func Walk(j Json, path string) Json {
 func Equal(a, b Json) bool {
        switch {
        case a == nil && b == nil:
-               return true;
+               return true
        case a == nil || b == nil:
-               return false;
+               return false
        case a.Kind() != b.Kind():
-               return false;
+               return false
        }
 
        switch a.Kind() {
        case NullKind:
-               return true;
+               return true
        case StringKind:
-               return a.String() == b.String();
+               return a.String() == b.String()
        case NumberKind:
-               return a.Number() == b.Number();
+               return a.Number() == b.Number()
        case BoolKind:
-               return a.Bool() == b.Bool();
+               return a.Bool() == b.Bool()
        case ArrayKind:
                if a.Len() != b.Len() {
-                       return false;
+                       return false
                }
                for i := 0; i < a.Len(); i++ {
                        if !Equal(a.Elem(i), b.Elem(i)) {
-                               return false;
+                               return false
                        }
                }
                return true;
        case MapKind:
                m := a.(*_Map).m;
                if len(m) != len(b.(*_Map).m) {
-                       return false;
+                       return false
                }
                for k, v := range m {
                        if !Equal(v, b.Get(k)) {
-                               return false;
+                               return false
                        }
                }
                return true;
@@ -259,22 +259,22 @@ type _JsonBuilder struct {
 func (b *_JsonBuilder) Put(j Json) {
        switch {
        case b.ptr != nil:
-               *b.ptr = j;
+               *b.ptr = j
        case b.a != nil:
-               b.a.Set(b.i, j);
+               b.a.Set(b.i, j)
        case b.m != nil:
-               b.m[b.k] = j;
+               b.m[b.k] = j
        }
 }
 
 func (b *_JsonBuilder) Get() Json {
        switch {
        case b.ptr != nil:
-               return *b.ptr;
+               return *b.ptr
        case b.a != nil:
-               return b.a.At(b.i).(Json);
+               return b.a.At(b.i).(Json)
        case b.m != nil:
-               return b.m[b.k];
+               return b.m[b.k]
        }
        return nil;
 }
@@ -301,7 +301,7 @@ func (b *_JsonBuilder) Elem(i int) Builder {
        bb.a = b.Get().(*_Array).a;
        bb.i = i;
        for i >= bb.a.Len() {
-               bb.a.Push(Null);
+               bb.a.Push(Null)
        }
        return bb;
 }
@@ -327,7 +327,7 @@ func StringToJson(s string) (json Json, ok bool, errtok string) {
        b.ptr = &j;
        ok, _, errtok = Parse(s, b);
        if !ok {
-               return nil, false, errtok;
+               return nil, false, errtok
        }
        return j, true, "";
 }
index 522d82dcd2e65b96abc4cd5b746f0484d633e7a4..ce78a39ee45be3c263a4f7f60a1b55121cce718c 100644 (file)
@@ -44,10 +44,10 @@ func TestJsonMap(t *testing.T) {
        for i := 0; i < len(jsontests); i++ {
                val, ok, errtok := StringToJson(jsontests[i]);
                if !ok {
-                       t.Errorf("StringToJson(%#q) => error near %v", jsontests[i], errtok);
+                       t.Errorf("StringToJson(%#q) => error near %v", jsontests[i], errtok)
                }
                if i > 0 {
-                       mapstr += ",";
+                       mapstr += ","
                }
                values[jsontests[i]] = val;
                mapstr += Quote(jsontests[i]);
@@ -58,18 +58,18 @@ func TestJsonMap(t *testing.T) {
 
        mapv, ok, errtok := StringToJson(mapstr);
        if !ok {
-               t.Fatalf("StringToJson(%#q) => error near %v", mapstr, errtok);
+               t.Fatalf("StringToJson(%#q) => error near %v", mapstr, errtok)
        }
        if mapv == nil {
-               t.Fatalf("StringToJson(%#q) => nil, %v, %v", mapstr, ok, errtok);
+               t.Fatalf("StringToJson(%#q) => nil, %v, %v", mapstr, ok, errtok)
        }
        if cnt := mapv.Len(); cnt != len(jsontests) {
                t.Errorf("StringToJson(%#q).Len() => %v, want %v", mapstr, cnt,
-                       len(jsontests));
+                       len(jsontests))
        }
        for k, v := range values {
                if v1 := mapv.Get(k); !Equal(v1, v) {
-                       t.Errorf("MapTest: Walk(%#q) => %v, want %v", k, v1, v);
+                       t.Errorf("MapTest: Walk(%#q) => %v, want %v", k, v1, v)
                }
        }
 }
index 26c01fe8506a41495262caa738ff417bb85a4765..74208824b43353afc4dcb08234572517222b554b 100644 (file)
@@ -26,18 +26,18 @@ func _UnHex(p string, r, l int) (v int, ok bool) {
        v = 0;
        for i := r; i < l; i++ {
                if i >= len(p) {
-                       return 0, false;
+                       return 0, false
                }
                v *= 16;
                switch {
                case '0' <= p[i] && p[i] <= '9':
-                       v += int(p[i]-'0');
+                       v += int(p[i]-'0')
                case 'a' <= p[i] && p[i] <= 'f':
-                       v += int(p[i]-'a'+10);
+                       v += int(p[i]-'a'+10)
                case 'A' <= p[i] && p[i] <= 'F':
-                       v += int(p[i]-'A'+10);
+                       v += int(p[i]-'A'+10)
                default:
-                       return 0, false;
+                       return 0, false
                }
        }
        return v, true;
@@ -48,7 +48,7 @@ func _UnHex(p string, r, l int) (v int, ok bool) {
 // JSON-quoted string, Unquote returns with ok set to false.
 func Unquote(s string) (t string, ok bool) {
        if len(s) < 2 || s[0] != '"' || s[len(s)-1] != '"' {
-               return;
+               return
        }
        b := make([]byte, len(s));
        w := 0;
@@ -57,11 +57,11 @@ func Unquote(s string) (t string, ok bool) {
                case s[r] == '\\':
                        r++;
                        if r >= len(s)-1 {
-                               return;
+                               return
                        }
                        switch s[r] {
                        default:
-                               return;
+                               return
                        case '"', '\\', '/', '\'':
                                b[w] = s[r];
                                r++;
@@ -90,7 +90,7 @@ func Unquote(s string) (t string, ok bool) {
                                r++;
                                rune, ok := _UnHex(s, r, 4);
                                if !ok {
-                                       return;
+                                       return
                                }
                                r += 4;
                                w += utf8.EncodeRune(rune, b[w:len(b)]);
@@ -180,21 +180,21 @@ type _Lexer struct {
 }
 
 func punct(c byte) bool {
-       return c == '"' || c == '[' || c == ']' || c == ':' || c == '{' || c == '}' || c == ',';
+       return c == '"' || c == '[' || c == ']' || c == ':' || c == '{' || c == '}' || c == ','
 }
 
 func white(c byte) bool        { return c == ' ' || c == '\t' || c == '\n' || c == '\v' }
 
 func skipwhite(p string, i int) int {
        for i < len(p) && white(p[i]) {
-               i++;
+               i++
        }
        return i;
 }
 
 func skiptoken(p string, i int) int {
        for i < len(p) && !punct(p[i]) && !white(p[i]) {
-               i++;
+               i++
        }
        return i;
 }
@@ -202,11 +202,11 @@ func skiptoken(p string, i int) int {
 func skipstring(p string, i int) int {
        for i++; i < len(p) && p[i] != '"'; i++ {
                if p[i] == '\\' {
-                       i++;
+                       i++
                }
        }
        if i >= len(p) {
-               return i;
+               return i
        }
        return i+1;
 }
@@ -304,7 +304,7 @@ func parse(lex *_Lexer, build Builder) bool {
 Switch:
        switch lex.kind {
        case 0:
-               break;
+               break
        case '1':
                // If the number is exactly an integer, use that.
                if i, err := strconv.Atoi64(lex.token); err == nil {
@@ -347,12 +347,12 @@ Switch:
                for lex.kind != ']' {
                        if n > 0 {
                                if lex.kind != ',' {
-                                       break Switch;
+                                       break Switch
                                }
                                lex.Next();
                        }
                        if !parse(lex, build.Elem(n)) {
-                               break Switch;
+                               break Switch
                        }
                        n++;
                }
@@ -366,24 +366,24 @@ Switch:
                for lex.kind != '}' {
                        if n > 0 {
                                if lex.kind != ',' {
-                                       break Switch;
+                                       break Switch
                                }
                                lex.Next();
                        }
                        if lex.kind != '"' {
-                               break Switch;
+                               break Switch
                        }
                        key, ok := Unquote(lex.token);
                        if !ok {
-                               break Switch;
+                               break Switch
                        }
                        lex.Next();
                        if lex.kind != ':' {
-                               break Switch;
+                               break Switch
                        }
                        lex.Next();
                        if !parse(lex, build.Key(key)) {
-                               break Switch;
+                               break Switch
                        }
                        n++;
                }
@@ -391,7 +391,7 @@ Switch:
        }
 
        if ok {
-               lex.Next();
+               lex.Next()
        }
        build.Flush();
        return ok;
@@ -409,7 +409,7 @@ func Parse(s string, builder Builder) (ok bool, errindx int, errtok string) {
        lex.Next();
        if parse(lex, builder) {
                if lex.kind == 0 {      // EOF
-                       return true, 0, "";
+                       return true, 0, ""
                }
        }
        return false, lex.i, lex.token;
index 37728d38bba490531702aec006738b4a95852769..11aaccee9d8b0edfe19194d4e533f36728922900 100644 (file)
@@ -25,7 +25,7 @@ var nobuilder *structBuilder
 func isfloat(v reflect.Value) bool {
        switch v.(type) {
        case *reflect.FloatValue, *reflect.Float32Value, *reflect.Float64Value:
-               return true;
+               return true
        }
        return false;
 }
@@ -33,36 +33,36 @@ func isfloat(v reflect.Value) bool {
 func setfloat(v reflect.Value, f float64) {
        switch v := v.(type) {
        case *reflect.FloatValue:
-               v.Set(float(f));
+               v.Set(float(f))
        case *reflect.Float32Value:
-               v.Set(float32(f));
+               v.Set(float32(f))
        case *reflect.Float64Value:
-               v.Set(float64(f));
+               v.Set(float64(f))
        }
 }
 
 func setint(v reflect.Value, i int64) {
        switch v := v.(type) {
        case *reflect.IntValue:
-               v.Set(int(i));
+               v.Set(int(i))
        case *reflect.Int8Value:
-               v.Set(int8(i));
+               v.Set(int8(i))
        case *reflect.Int16Value:
-               v.Set(int16(i));
+               v.Set(int16(i))
        case *reflect.Int32Value:
-               v.Set(int32(i));
+               v.Set(int32(i))
        case *reflect.Int64Value:
-               v.Set(int64(i));
+               v.Set(int64(i))
        case *reflect.UintValue:
-               v.Set(uint(i));
+               v.Set(uint(i))
        case *reflect.Uint8Value:
-               v.Set(uint8(i));
+               v.Set(uint8(i))
        case *reflect.Uint16Value:
-               v.Set(uint16(i));
+               v.Set(uint16(i))
        case *reflect.Uint32Value:
-               v.Set(uint32(i));
+               v.Set(uint32(i))
        case *reflect.Uint64Value:
-               v.Set(uint64(i));
+               v.Set(uint64(i))
        }
 }
 
@@ -70,46 +70,46 @@ func setint(v reflect.Value, i int64) {
 // copy a changed b.val out to the original.
 func (b *structBuilder) Flush() {
        if b == nil {
-               return;
+               return
        }
        if b.map_ != nil {
-               b.map_.SetElem(b.key, b.val);
+               b.map_.SetElem(b.key, b.val)
        }
 }
 
 func (b *structBuilder) Int64(i int64) {
        if b == nil {
-               return;
+               return
        }
        v := b.val;
        if isfloat(v) {
-               setfloat(v, float64(i));
+               setfloat(v, float64(i))
        } else {
-               setint(v, i);
+               setint(v, i)
        }
 }
 
 func (b *structBuilder) Uint64(i uint64) {
        if b == nil {
-               return;
+               return
        }
        v := b.val;
        if isfloat(v) {
-               setfloat(v, float64(i));
+               setfloat(v, float64(i))
        } else {
-               setint(v, int64(i));
+               setint(v, int64(i))
        }
 }
 
 func (b *structBuilder) Float64(f float64) {
        if b == nil {
-               return;
+               return
        }
        v := b.val;
        if isfloat(v) {
-               setfloat(v, f);
+               setfloat(v, f)
        } else {
-               setint(v, int64(f));
+               setint(v, int64(f))
        }
 }
 
@@ -117,60 +117,60 @@ func (b *structBuilder) Null()    {}
 
 func (b *structBuilder) String(s string) {
        if b == nil {
-               return;
+               return
        }
        if v, ok := b.val.(*reflect.StringValue); ok {
-               v.Set(s);
+               v.Set(s)
        }
 }
 
 func (b *structBuilder) Bool(tf bool) {
        if b == nil {
-               return;
+               return
        }
        if v, ok := b.val.(*reflect.BoolValue); ok {
-               v.Set(tf);
+               v.Set(tf)
        }
 }
 
 func (b *structBuilder) Array() {
        if b == nil {
-               return;
+               return
        }
        if v, ok := b.val.(*reflect.SliceValue); ok {
                if v.IsNil() {
-                       v.Set(reflect.MakeSlice(v.Type().(*reflect.SliceType), 0, 8));
+                       v.Set(reflect.MakeSlice(v.Type().(*reflect.SliceType), 0, 8))
                }
        }
 }
 
 func (b *structBuilder) Elem(i int) Builder {
        if b == nil || i < 0 {
-               return nobuilder;
+               return nobuilder
        }
        switch v := b.val.(type) {
        case *reflect.ArrayValue:
                if i < v.Len() {
-                       return &structBuilder{val: v.Elem(i)};
+                       return &structBuilder{val: v.Elem(i)}
                }
        case *reflect.SliceValue:
                if i > v.Cap() {
                        n := v.Cap();
                        if n < 8 {
-                               n = 8;
+                               n = 8
                        }
                        for n <= i {
-                               n *= 2;
+                               n *= 2
                        }
                        nv := reflect.MakeSlice(v.Type().(*reflect.SliceType), v.Len(), n);
                        reflect.ArrayCopy(nv, v);
                        v.Set(nv);
                }
                if v.Len() <= i && i < v.Cap() {
-                       v.SetLen(i+1);
+                       v.SetLen(i+1)
                }
                if i < v.Len() {
-                       return &structBuilder{val: v.Elem(i)};
+                       return &structBuilder{val: v.Elem(i)}
                }
        }
        return nobuilder;
@@ -178,7 +178,7 @@ func (b *structBuilder) Elem(i int) Builder {
 
 func (b *structBuilder) Map() {
        if b == nil {
-               return;
+               return
        }
        if v, ok := b.val.(*reflect.PtrValue); ok && v.IsNil() {
                if v.IsNil() {
@@ -189,13 +189,13 @@ func (b *structBuilder) Map() {
                b.val = v.Elem();
        }
        if v, ok := b.val.(*reflect.MapValue); ok && v.IsNil() {
-               v.Set(reflect.MakeMap(v.Type().(*reflect.MapType)));
+               v.Set(reflect.MakeMap(v.Type().(*reflect.MapType)))
        }
 }
 
 func (b *structBuilder) Key(k string) Builder {
        if b == nil {
-               return nobuilder;
+               return nobuilder
        }
        switch v := reflect.Indirect(b.val).(type) {
        case *reflect.StructValue:
@@ -204,13 +204,13 @@ func (b *structBuilder) Key(k string) Builder {
                k = strings.ToLower(k);
                for i := 0; i < t.NumField(); i++ {
                        if strings.ToLower(t.Field(i).Name) == k {
-                               return &structBuilder{val: v.Field(i)};
+                               return &structBuilder{val: v.Field(i)}
                        }
                }
        case *reflect.MapValue:
                t := v.Type().(*reflect.MapType);
                if t.Key() != reflect.Typeof(k) {
-                       break;
+                       break
                }
                key := reflect.NewValue(k);
                elem := v.Elem(key);
@@ -286,7 +286,7 @@ func Unmarshal(s string, val interface{}) (ok bool, errtok string) {
        b := &structBuilder{val: reflect.NewValue(val)};
        ok, _, errtok = Parse(s, b);
        if !ok {
-               return false, errtok;
+               return false, errtok
        }
        return true, "";
 }
index ad86d493f9338e45729f4cfc333ea636b00315b1..95a3eb2a4e78bc32721a06e57bbf4646263cdc18 100644 (file)
@@ -58,9 +58,9 @@ var decodedMapPtrStruct = map[string]*myStruct{
 
 func check(t *testing.T, ok bool, name string, v interface{}) {
        if !ok {
-               t.Errorf("%s = %v (BAD)", name, v);
+               t.Errorf("%s = %v (BAD)", name, v)
        } else {
-               t.Logf("%s = %v (good)", name, v);
+               t.Logf("%s = %v (good)", name, v)
        }
 }
 
@@ -69,7 +69,7 @@ func TestUnmarshal(t *testing.T) {
        m.F = true;
        ok, errtok := Unmarshal(encoded, &m);
        if !ok {
-               t.Fatalf("Unmarshal failed near %s", errtok);
+               t.Fatalf("Unmarshal failed near %s", errtok)
        }
        check(t, m.T == true, "t", m.T);
        check(t, m.F == false, "f", m.F);
@@ -95,7 +95,7 @@ func TestUnmarshal(t *testing.T) {
        }
        check(t, m.My != nil, "my", m.My);
        if m.My != nil {
-               check(t, m.My.S == "subguy", "my.s", m.My.S);
+               check(t, m.My.S == "subguy", "my.s", m.My.S)
        }
        check(t, reflect.DeepEqual(m.Map, decodedMap), "map", m.Map);
        check(t, reflect.DeepEqual(m.MapStruct, decodedMapStruct), "mapstruct", m.MapStruct);
index 04b1e4fa9e810b2793109cfdd414a30cc87879dc..0ace84c0a0d4a61960f8119a8919e76d639b3759 100644 (file)
@@ -50,7 +50,7 @@ type Logger struct {
 // The prefix appears at the beginning of each generated log line.
 // The flag argument defines the logging properties.
 func New(out0, out1 io.Writer, prefix string, flag int) *Logger {
-       return &Logger{out0, out1, prefix, flag};
+       return &Logger{out0, out1, prefix, flag}
 }
 
 var (
@@ -66,7 +66,7 @@ var shortnames = make(map[string]string)      // cache of short names to avoid alloca
 func itoa(i int, wid int) string {
        var u uint = uint(i);
        if u == 0 && wid <= 1 {
-               return "0";
+               return "0"
        }
 
        // Assemble decimal in reverse order.
@@ -86,12 +86,12 @@ func (l *Logger) formatHeader(ns int64, calldepth int) string {
        if l.flag & (Ldate | Ltime | Lmicroseconds) != 0 {
                t := time.SecondsToLocalTime(ns/1e9);
                if l.flag & (Ldate) != 0 {
-                       h += itoa(int(t.Year), 4) + "/" + itoa(t.Month, 2) + "/" + itoa(t.Day, 2) + " ";
+                       h += itoa(int(t.Year), 4) + "/" + itoa(t.Month, 2) + "/" + itoa(t.Day, 2) + " "
                }
                if l.flag & (Ltime | Lmicroseconds) != 0 {
                        h += itoa(t.Hour, 2) + ":" + itoa(t.Minute, 2) + ":" + itoa(t.Second, 2);
                        if l.flag & Lmicroseconds != 0 {
-                               h += "." + itoa(int(ns%1e9)/1e3, 6);
+                               h += "." + itoa(int(ns%1e9)/1e3, 6)
                        }
                        h += " ";
                }
@@ -129,18 +129,18 @@ func (l *Logger) Output(calldepth int, s string) {
        now := time.Nanoseconds();      // get this early.
        newline := "\n";
        if len(s) > 0 && s[len(s)-1] == '\n' {
-               newline = "";
+               newline = ""
        }
        s = l.formatHeader(now, calldepth + 1) + s + newline;
        io.WriteString(l.out0, s);
        if l.out1 != nil {
-               io.WriteString(l.out1, s);
+               io.WriteString(l.out1, s)
        }
        switch l.flag & ^lAllBits {
        case Lcrash:
-               panic("log: fatal error");
+               panic("log: fatal error")
        case Lexit:
-               os.Exit(1);
+               os.Exit(1)
        }
 }
 
index f26ce4087edf0859865601f0301e2f77a40cd4b5..66260935db169419466851855f0aa93d01d1f112 100644 (file)
@@ -48,29 +48,29 @@ var tests = []tester{
 func testLog(t *testing.T, flag int, prefix string, pattern string, useLogf bool) {
        r, w, err1 := os.Pipe();
        if err1 != nil {
-               t.Fatal("pipe", err1);
+               t.Fatal("pipe", err1)
        }
        defer r.Close();
        defer w.Close();
        buf := bufio.NewReader(r);
        l := New(w, nil, prefix, flag);
        if useLogf {
-               l.Logf("hello %d world", 23);
+               l.Logf("hello %d world", 23)
        } else {
-               l.Log("hello", 23, "world");
+               l.Log("hello", 23, "world")
        }
        line, err3 := buf.ReadString('\n');
        if err3 != nil {
-               t.Fatal("log error", err3);
+               t.Fatal("log error", err3)
        }
        line = line[0 : len(line)-1];
        pattern = "^" + pattern + "hello 23 world$";
        matched, err4 := regexp.MatchString(pattern, line);
        if err4 != nil {
-               t.Fatal("pattern did not compile:", err4);
+               t.Fatal("pattern did not compile:", err4)
        }
        if !matched {
-               t.Errorf("log output should match %q is %q", pattern, line);
+               t.Errorf("log output should match %q is %q", pattern, line)
        }
 }
 
index 06c5be20073751b4355701f13f7dc3ee4105c56c..7e53044eac14e9fc289e3f627cf262224902f421 100644 (file)
@@ -157,13 +157,13 @@ var tanh = []float64{
 func tolerance(a, b, e float64) bool {
        d := a-b;
        if d < 0 {
-               d = -d;
+               d = -d
        }
 
        if a != 0 {
                e = e*a;
                if e < 0 {
-                       e = -e;
+                       e = -e
                }
        }
        return d < e;
@@ -174,7 +174,7 @@ func veryclose(a, b float64) bool   { return tolerance(a, b, 4e-16) }
 func TestAsin(t *testing.T) {
        for i := 0; i < len(vf); i++ {
                if f := Asin(vf[i]/10); !veryclose(asin[i], f) {
-                       t.Errorf("Asin(%g) = %g, want %g\n", vf[i]/10, f, asin[i]);
+                       t.Errorf("Asin(%g) = %g, want %g\n", vf[i]/10, f, asin[i])
                }
        }
 }
@@ -182,7 +182,7 @@ func TestAsin(t *testing.T) {
 func TestAtan(t *testing.T) {
        for i := 0; i < len(vf); i++ {
                if f := Atan(vf[i]); !veryclose(atan[i], f) {
-                       t.Errorf("Atan(%g) = %g, want %g\n", vf[i], f, atan[i]);
+                       t.Errorf("Atan(%g) = %g, want %g\n", vf[i], f, atan[i])
                }
        }
 }
@@ -190,7 +190,7 @@ func TestAtan(t *testing.T) {
 func TestExp(t *testing.T) {
        for i := 0; i < len(vf); i++ {
                if f := Exp(vf[i]); !veryclose(exp[i], f) {
-                       t.Errorf("Exp(%g) = %g, want %g\n", vf[i], f, exp[i]);
+                       t.Errorf("Exp(%g) = %g, want %g\n", vf[i], f, exp[i])
                }
        }
 }
@@ -198,7 +198,7 @@ func TestExp(t *testing.T) {
 func TestFloor(t *testing.T) {
        for i := 0; i < len(vf); i++ {
                if f := Floor(vf[i]); floor[i] != f {
-                       t.Errorf("Floor(%g) = %g, want %g\n", vf[i], f, floor[i]);
+                       t.Errorf("Floor(%g) = %g, want %g\n", vf[i], f, floor[i])
                }
        }
 }
@@ -207,18 +207,18 @@ func TestLog(t *testing.T) {
        for i := 0; i < len(vf); i++ {
                a := Fabs(vf[i]);
                if f := Log(a); log[i] != f {
-                       t.Errorf("Log(%g) = %g, want %g\n", a, f, log[i]);
+                       t.Errorf("Log(%g) = %g, want %g\n", a, f, log[i])
                }
        }
        if f := Log(10); f != Ln10 {
-               t.Errorf("Log(%g) = %g, want %g\n", 10, f, Ln10);
+               t.Errorf("Log(%g) = %g, want %g\n", 10, f, Ln10)
        }
 }
 
 func TestPow(t *testing.T) {
        for i := 0; i < len(vf); i++ {
                if f := Pow(10, vf[i]); !close(pow[i], f) {
-                       t.Errorf("Pow(10, %.17g) = %.17g, want %.17g\n", vf[i], f, pow[i]);
+                       t.Errorf("Pow(10, %.17g) = %.17g, want %.17g\n", vf[i], f, pow[i])
                }
        }
 }
@@ -226,7 +226,7 @@ func TestPow(t *testing.T) {
 func TestSin(t *testing.T) {
        for i := 0; i < len(vf); i++ {
                if f := Sin(vf[i]); !close(sin[i], f) {
-                       t.Errorf("Sin(%g) = %g, want %g\n", vf[i], f, sin[i]);
+                       t.Errorf("Sin(%g) = %g, want %g\n", vf[i], f, sin[i])
                }
        }
 }
@@ -234,7 +234,7 @@ func TestSin(t *testing.T) {
 func TestSinh(t *testing.T) {
        for i := 0; i < len(vf); i++ {
                if f := Sinh(vf[i]); !veryclose(sinh[i], f) {
-                       t.Errorf("Sinh(%g) = %g, want %g\n", vf[i], f, sinh[i]);
+                       t.Errorf("Sinh(%g) = %g, want %g\n", vf[i], f, sinh[i])
                }
        }
 }
@@ -243,7 +243,7 @@ func TestSqrt(t *testing.T) {
        for i := 0; i < len(vf); i++ {
                a := Fabs(vf[i]);
                if f := Sqrt(a); !veryclose(sqrt[i], f) {
-                       t.Errorf("Sqrt(%g) = %g, want %g\n", a, f, floor[i]);
+                       t.Errorf("Sqrt(%g) = %g, want %g\n", a, f, floor[i])
                }
        }
 }
@@ -251,7 +251,7 @@ func TestSqrt(t *testing.T) {
 func TestTan(t *testing.T) {
        for i := 0; i < len(vf); i++ {
                if f := Tan(vf[i]); !close(tan[i], f) {
-                       t.Errorf("Tan(%g) = %g, want %g\n", vf[i], f, tan[i]);
+                       t.Errorf("Tan(%g) = %g, want %g\n", vf[i], f, tan[i])
                }
        }
 }
@@ -259,7 +259,7 @@ func TestTan(t *testing.T) {
 func TestTanh(t *testing.T) {
        for i := 0; i < len(vf); i++ {
                if f := Tanh(vf[i]); !veryclose(tanh[i], f) {
-                       t.Errorf("Tanh(%g) = %g, want %g\n", vf[i], f, tanh[i]);
+                       t.Errorf("Tanh(%g) = %g, want %g\n", vf[i], f, tanh[i])
                }
        }
 }
@@ -268,7 +268,7 @@ func TestHypot(t *testing.T) {
        for i := 0; i < len(vf); i++ {
                a := Fabs(tanh[i]*Sqrt(2));
                if f := Hypot(tanh[i], tanh[i]); !veryclose(a, f) {
-                       t.Errorf("Hypot(%g, %g) = %g, want %g\n", tanh[i], tanh[i], f, a);
+                       t.Errorf("Hypot(%g, %g) = %g, want %g\n", tanh[i], tanh[i], f, a)
                }
        }
 }
index 38fc365b351b765935126a8e8fb547fd04b2e6f0..c4696e8e3a24d28f71a0d6aabc4d2439a110efbf 100644 (file)
@@ -20,18 +20,18 @@ func Asin(x float64) float64 {
                sign = true;
        }
        if x > 1 {
-               return NaN();
+               return NaN()
        }
 
        temp := Sqrt(1 - x*x);
        if x > 0.7 {
-               temp = Pi/2 - Atan(temp/x);
+               temp = Pi/2 - Atan(temp/x)
        } else {
-               temp = Atan(x/temp);
+               temp = Atan(x/temp)
        }
 
        if sign {
-               temp = -temp;
+               temp = -temp
        }
        return temp;
 }
@@ -39,7 +39,7 @@ func Asin(x float64) float64 {
 // Acos returns the arc cosine of x.
 func Acos(x float64) float64 {
        if x > 1 || x < -1 {
-               return NaN();
+               return NaN()
        }
        return Pi/2 - Asin(x);
 }
index 37b49c7842d2a044b88a595ca6b4900b055538d4..641f905518f4be2d3f3c94ed13ddc8f64c3288f2 100644 (file)
@@ -43,10 +43,10 @@ func xatan(arg float64) float64 {
  */
 func satan(arg float64) float64 {
        if arg < Sqrt2-1 {
-               return xatan(arg);
+               return xatan(arg)
        }
        if arg > Sqrt2+1 {
-               return Pi/2 - xatan(1/arg);
+               return Pi/2 - xatan(1/arg)
        }
        return Pi/4 + xatan((arg-1)/(arg+1));
 }
@@ -59,7 +59,7 @@ func satan(arg float64) float64 {
 // Atan returns the arc tangent of x.
 func Atan(x float64) float64 {
        if x > 0 {
-               return satan(x);
+               return satan(x)
        }
        return -satan(-x);
 }
index 5ded1a412fb97df56e52f2824be9cb61d6d55efa..95226b9d8df5553088fefe15414160782629312c 100644 (file)
@@ -12,14 +12,14 @@ func Atan2(x, y float64) float64 {
        // Determine the quadrant and call atan.
        if x+y == x {
                if x >= 0 {
-                       return Pi/2;
+                       return Pi/2
                }
                return -Pi / 2;
        }
        q := Atan(x/y);
        if y < 0 {
                if q <= 0 {
-                       return q+Pi;
+                       return q+Pi
                }
                return q-Pi;
        }
index 3084ed508f9741d31cfc81a525b956f3e42f827e..b1bf2da46ebb33cd013c65d2f1ed824751242c66 100644 (file)
@@ -17,9 +17,9 @@ const (
 func Inf(sign int) float64 {
        var v uint64;
        if sign >= 0 {
-               v = uvinf;
+               v = uvinf
        } else {
-               v = uvneginf;
+               v = uvneginf
        }
        return Float64frombits(v);
 }
@@ -48,7 +48,7 @@ func IsInf(f float64, sign int) bool {
 // with the absolute value of frac in the interval [½, 1).
 func Frexp(f float64) (frac float64, exp int) {
        if f == 0 {
-               return;
+               return
        }
        x := Float64bits(f);
        exp = int((x>>shift)&mask)-bias;
@@ -64,11 +64,11 @@ func Ldexp(frac float64, exp int) float64 {
        x := Float64bits(frac);
        exp += int(x>>shift)&mask;
        if exp <= 0 {
-               return 0;       // underflow
+               return 0        // underflow
        }
        if exp >= mask {        // overflow
                if frac < 0 {
-                       return Inf(-1);
+                       return Inf(-1)
                }
                return Inf(1);
        }
@@ -94,7 +94,7 @@ func Modf(f float64) (int float64, frac float64) {
 
        // Keep the top 11+e bits, the integer part; clear the rest.
        if e < 64-11 {
-               x &^= 1<<(64-11-e) - 1;
+               x &^= 1<<(64-11-e) - 1
        }
        int = Float64frombits(x);
        frac = f-int;
index 2bf80bcdd675aee3ae602979625bea3b2e94b5c3..a5f562031abde1dce2cb6238854c50dae1ad03ad 100644 (file)
@@ -107,24 +107,24 @@ func Exp(x float64) float64 {
        // special cases
        switch {
        case IsNaN(x) || IsInf(x, 1):
-               return x;
+               return x
        case IsInf(x, -1):
-               return 0;
+               return 0
        case x > Overflow:
-               return Inf(1);
+               return Inf(1)
        case x < Underflow:
-               return 0;
+               return 0
        case -NearZero < x && x < NearZero:
-               return 1;
+               return 1
        }
 
        // reduce; computed as r = hi - lo for extra precision.
        var k int;
        switch {
        case x < 0:
-               k = int(Log2e*x - 0.5);
+               k = int(Log2e*x - 0.5)
        case x > 0:
-               k = int(Log2e*x + 0.5);
+               k = int(Log2e*x + 0.5)
        }
        hi := x - float64(k)*Ln2Hi;
        lo := float64(k)*Ln2Lo;
index 254756cc4e7bcc7c4b8dba3638c505076db6f7d1..752133e0cb3150f73267d9ccd64a1bb0a2e45f80 100644 (file)
@@ -7,7 +7,7 @@ package math
 // Fabs returns the absolute value of x.
 func Fabs(x float64) float64 {
        if x < 0 {
-               return -x;
+               return -x
        }
        return x;
 }
index cb3110fb2efc796f6da9b8edf2d792758a501080..7a999852d77c781d38b26f8028d694ab9fae420e 100644 (file)
@@ -10,7 +10,7 @@ func Floor(x float64) float64 {
        if x < 0 {
                d, fract := Modf(-x);
                if fract != 0.0 {
-                       d = d+1;
+                       d = d+1
                }
                return -d;
        }
index a01c257d9b7ae12a64e65bd97a39bd8ca9e08fde..34fbfbdb762133b7f409467e4fe190a72e5334db 100644 (file)
@@ -12,10 +12,10 @@ package math
 // Fmod returns the floating-point remainder of x/y.
 func Fmod(x, y float64) float64 {
        if y == 0 {
-               return x;
+               return x
        }
        if y < 0 {
-               y = -y;
+               y = -y
        }
 
        yfr, yexp := Frexp(y);
@@ -29,12 +29,12 @@ func Fmod(x, y float64) float64 {
        for r >= y {
                rfr, rexp := Frexp(r);
                if rfr < yfr {
-                       rexp = rexp-1;
+                       rexp = rexp-1
                }
                r = r - Ldexp(y, rexp-yexp);
        }
        if sign {
-               r = -r;
+               r = -r
        }
        return r;
 }
index 6ba8fb7946b4361cde1d937e373e146bd3716efc..7ff8f4badb1b3e13ebb825a60cf11b395f7cab32 100644 (file)
@@ -16,18 +16,18 @@ package math
 // unnecessary overflow and underflow.
 func Hypot(p, q float64) float64 {
        if p < 0 {
-               p = -p;
+               p = -p
        }
        if q < 0 {
-               q = -q;
+               q = -q
        }
 
        if p < q {
-               p, q = q, p;
+               p, q = q, p
        }
 
        if p == 0 {
-               return 0;
+               return 0
        }
 
        pfac := p;
@@ -38,7 +38,7 @@ func Hypot(p, q float64) float64 {
                r = r*r;
                s := r+4;
                if s == 4 {
-                       return p*pfac;
+                       return p*pfac
                }
                r = r/s;
                p = p + 2*r*p;
index 22df7ac1b0bb6a5105d5a714f58f1241e00a6fb7..bf8b49a7af190f754c530669beb2a0cd9745767d 100644 (file)
@@ -90,11 +90,11 @@ func Log(x float64) float64 {
        // special cases
        switch {
        case IsNaN(x) || IsInf(x, 1):
-               return x;
+               return x
        case x < 0:
-               return NaN();
+               return NaN()
        case x == 0:
-               return Inf(-1);
+               return Inf(-1)
        }
 
        // reduce
@@ -121,7 +121,7 @@ func Log(x float64) float64 {
 // The special cases are the same as for Log.
 func Log10(x float64) float64 {
        if x <= 0 {
-               return NaN();
+               return NaN()
        }
        return Log(x)*(1/Ln10);
 }
index b5364fe7f7b2d2c587134f9235b094489ce54c0d..9754809364e636ebffb4b7932f7c306bc57fc5f3 100644 (file)
@@ -10,17 +10,17 @@ func Pow(x, y float64) float64 {
        // TODO: x or y NaN, Â±Inf, maybe Â±0.
        switch {
        case y == 0:
-               return 1;
+               return 1
        case y == 1:
-               return x;
+               return x
        case x == 0 && y > 0:
-               return 0;
+               return 0
        case x == 0 && y < 0:
-               return Inf(1);
+               return Inf(1)
        case y == 0.5:
-               return Sqrt(x);
+               return Sqrt(x)
        case y == -0.5:
-               return 1/Sqrt(x);
+               return 1/Sqrt(x)
        }
 
        absy := y;
@@ -31,10 +31,10 @@ func Pow(x, y float64) float64 {
        }
        yi, yf := Modf(absy);
        if yf != 0 && x < 0 {
-               return NaN();
+               return NaN()
        }
        if yi >= 1<<63 {
-               return Exp(y*Log(x));
+               return Exp(y*Log(x))
        }
 
        // ans = a1 * 2^ae (= 1 for now).
index b9b074bb4d9401d1e4fbc4704d325c314a71bbcb..1ae6dcd73887866423e6e224db76b49c1cc4f5be 100644 (file)
@@ -18,10 +18,10 @@ var pow10tab [70]float64
 // Pow10 returns 10**x, the base-10 exponential of x.
 func Pow10(e int) float64 {
        if e < 0 {
-               return 1/Pow10(-e);
+               return 1/Pow10(-e)
        }
        if e < len(pow10tab) {
-               return pow10tab[e];
+               return pow10tab[e]
        }
        m := e/2;
        return Pow10(m)*Pow10(e-m);
index 740d6778bd3af6dd5a1dd2cdffc1dc90403a623e..2c6f0079e5f35b9bfd2591c2ccccedae14bd1858 100644 (file)
@@ -37,10 +37,10 @@ func sinus(x float64, quad int) float64 {
        }
 
        if quad&1 != 0 {
-               y = 1-y;
+               y = 1-y
        }
        if quad > 1 {
-               y = -y;
+               y = -y
        }
 
        yy := y*y;
@@ -52,7 +52,7 @@ func sinus(x float64, quad int) float64 {
 // Cos returns the cosine of x.
 func Cos(x float64) float64 {
        if x < 0 {
-               x = -x;
+               x = -x
        }
        return sinus(x, 1);
 }
index 6974b59865158e2bc01fb8730b6efdcd4c194157..72775da8fc92c8615e1848806f6a585ab630862f 100644 (file)
@@ -39,10 +39,10 @@ func Sinh(x float64) float64 {
        var temp float64;
        switch true {
        case x > 21:
-               temp = Exp(x)/2;
+               temp = Exp(x)/2
 
        case x > 0.5:
-               temp = (Exp(x)-Exp(-x))/2;
+               temp = (Exp(x)-Exp(-x))/2
 
        default:
                sq := x*x;
@@ -51,7 +51,7 @@ func Sinh(x float64) float64 {
        }
 
        if sign {
-               temp = -temp;
+               temp = -temp
        }
        return temp;
 }
@@ -59,10 +59,10 @@ func Sinh(x float64) float64 {
 // Cosh returns the hyperbolic cosine of x.
 func Cosh(x float64) float64 {
        if x < 0 {
-               x = -x;
+               x = -x
        }
        if x > 21 {
-               return Exp(x)/2;
+               return Exp(x)/2
        }
        return (Exp(x)+Exp(-x))/2;
 }
index b7fd4ee6048c928c7c57269f33ac881f3286ebd4..7a5b69a4238a80b40af778ec43bb8fb892c01dd9 100644 (file)
@@ -20,12 +20,12 @@ package math
 //     Sqrt(x < 0) = NaN
 func Sqrt(x float64) float64 {
        if IsInf(x, 1) {
-               return x;
+               return x
        }
 
        if x <= 0 {
                if x < 0 {
-                       return NaN();
+                       return NaN()
                }
                return 0;
        }
@@ -59,7 +59,7 @@ func Sqrt(x float64) float64 {
        }
 
        for i := 0; i <= 4; i++ {
-               temp = 0.5*(temp + x/temp);
+               temp = 0.5*(temp + x/temp)
        }
        return temp;
 }
index 7287d80efea716de656569d256c85cd8041f60db..cc57155d1bbe2962382a300a4ce4160343fe232f 100644 (file)
@@ -54,12 +54,12 @@ func Tan(x float64) float64 {
 
        if flag {
                if temp == 0 {
-                       panic(NaN());
+                       panic(NaN())
                }
                temp = 1/temp;
        }
        if sign {
-               temp = -temp;
+               temp = -temp
        }
        return temp;
 }
index dd403a4e0567d291249fee76c40e901160481dcf..e6d4da87ba346428d933e2649d76212f13d1c225 100644 (file)
@@ -18,12 +18,12 @@ func Tanh(x float64) float64 {
        if x < 0 {
                x = -x;
                if x > 21 {
-                       return -1;
+                       return -1
                }
                return -Sinh(x) / Cosh(x);
        }
        if x > 21 {
-               return 1;
+               return 1
        }
        return Sinh(x)/Cosh(x);
 }
index 037684c79623a250d31b1d4265eefb6cb5620e5b..8d8848b04ff61e9f8ba31fb51e56da0cb8219891 100644 (file)
@@ -58,13 +58,13 @@ var googleaddrs = []string{
 func TestDialGoogle(t *testing.T) {
        // If no ipv6 tunnel, don't try the last address.
        if !*ipv6 {
-               googleaddrs[len(googleaddrs)-1] = "";
+               googleaddrs[len(googleaddrs)-1] = ""
        }
 
        for i := 0; i < len(googleaddrs); i++ {
                addr := googleaddrs[i];
                if addr == "" {
-                       continue;
+                       continue
                }
                t.Logf("-- %s --", addr);
                doDial(t, "tcp", addr);
index 4a3b7dcc11c56e975c3e94aa6119d37b68fe1eb1..bea31c3ceb132d8cea985a04fbc5fd645925fca2 100644 (file)
@@ -29,7 +29,7 @@ type DNSError struct {
 func (e *DNSError) String() string {
        s := "lookup " + e.Name;
        if e.Server != "" {
-               s += " on " + e.Server;
+               s += " on " + e.Server
        }
        s += ": " + e.Error;
        return s;
@@ -41,7 +41,7 @@ const noSuchHost = "no such host"
 // Up to cfg.attempts attempts.
 func _Exchange(cfg *_DNS_Config, c Conn, name string) (m *_DNS_Msg, err os.Error) {
        if len(name) >= 256 {
-               return nil, &DNSError{"name too long", name, ""};
+               return nil, &DNSError{"name too long", name, ""}
        }
        out := new(_DNS_Msg);
        out.id = 0x1234;
@@ -51,13 +51,13 @@ func _Exchange(cfg *_DNS_Config, c Conn, name string) (m *_DNS_Msg, err os.Error
        out.recursion_desired = true;
        msg, ok := out.Pack();
        if !ok {
-               return nil, &DNSError{"internal error - cannot pack message", name, ""};
+               return nil, &DNSError{"internal error - cannot pack message", name, ""}
        }
 
        for attempt := 0; attempt < cfg.attempts; attempt++ {
                n, err := c.Write(msg);
                if err != nil {
-                       return nil, err;
+                       return nil, err
                }
 
                c.SetReadTimeout(1e9);  // nanoseconds
@@ -69,18 +69,18 @@ func _Exchange(cfg *_DNS_Config, c Conn, name string) (m *_DNS_Msg, err os.Error
                        continue;
                }
                if err != nil {
-                       return nil, err;
+                       return nil, err
                }
                buf = buf[0:n];
                in := new(_DNS_Msg);
                if !in.Unpack(buf) || in.id != out.id {
-                       continue;
+                       continue
                }
                return in, nil;
        }
        var server string;
        if a := c.RemoteAddr(); a != nil {
-               server = a.String();
+               server = a.String()
        }
        return nil, &DNSError{"no answer from server", name, server};
 }
@@ -92,14 +92,14 @@ func answer(name, server string, dns *_DNS_Msg) (addrs []string, err *DNSError)
        addrs = make([]string, 0, len(dns.answer));
 
        if dns.rcode == _DNS_RcodeNameError && dns.recursion_available {
-               return nil, &DNSError{noSuchHost, name, ""};
+               return nil, &DNSError{noSuchHost, name, ""}
        }
        if dns.rcode != _DNS_RcodeSuccess {
                // None of the error codes make sense
                // for the query we sent.  If we didn't get
                // a name error and we didn't get success,
                // the server is behaving incorrectly.
-               return nil, &DNSError{"server misbehaving", name, server};
+               return nil, &DNSError{"server misbehaving", name, server}
        }
 
        // Look for the name.
@@ -128,7 +128,7 @@ Cname:
                        }
                }
                if len(addrs) == 0 {
-                       return nil, &DNSError{noSuchHost, name, server};
+                       return nil, &DNSError{noSuchHost, name, server}
                }
                return addrs, nil;
        }
@@ -140,7 +140,7 @@ Cname:
 // (otherwise answer will not find the answers).
 func tryOneName(cfg *_DNS_Config, name string) (addrs []string, err os.Error) {
        if len(cfg.servers) == 0 {
-               return nil, &DNSError{"no DNS servers", name, ""};
+               return nil, &DNSError{"no DNS servers", name, ""}
        }
        for i := 0; i < len(cfg.servers); i++ {
                // Calling Dial here is scary -- we have to be sure
@@ -164,12 +164,12 @@ func tryOneName(cfg *_DNS_Config, name string) (addrs []string, err os.Error) {
                var dnserr *DNSError;
                addrs, dnserr = answer(name, server, msg);
                if dnserr != nil {
-                       err = dnserr;
+                       err = dnserr
                } else {
-                       err = nil;      // nil os.Error, not nil *DNSError
+                       err = nil       // nil os.Error, not nil *DNSError
                }
                if dnserr == nil || dnserr.Error == noSuchHost {
-                       break;
+                       break
                }
        }
        return;
@@ -190,10 +190,10 @@ func isDomainName(s string) bool {
        //        but RFC 3696 says this has been relaxed to allow digits too.
        //        still, there must be a letter somewhere in the entire name.
        if len(s) == 0 {
-               return false;
+               return false
        }
        if s[len(s)-1] != '.' { // simplify checking loop: make name end in dot
-               s += ".";
+               s += "."
        }
 
        last := byte('.');
@@ -202,20 +202,20 @@ func isDomainName(s string) bool {
                c := s[i];
                switch {
                default:
-                       return false;
+                       return false
                case 'a' <= c && c <= 'z' || 'A' <= c && c <= 'Z':
-                       ok = true;
+                       ok = true
                case '0' <= c && c <= '9':
                        // fine
                case c == '-':
                        // byte before dash cannot be dot
                        if last == '.' {
-                               return false;
+                               return false
                        }
                case c == '.':
                        // byte before dot cannot be dot, dash
                        if last == '.' || last == '-' {
-                               return false;
+                               return false
                        }
                }
                last = c;
@@ -229,7 +229,7 @@ func isDomainName(s string) bool {
 // host's addresses.
 func LookupHost(name string) (cname string, addrs []string, err os.Error) {
        if !isDomainName(name) {
-               return name, nil, &DNSError{"invalid domain name", name, ""};
+               return name, nil, &DNSError{"invalid domain name", name, ""}
        }
        once.Do(loadConfig);
        if dnserr != nil || cfg == nil {
@@ -243,7 +243,7 @@ func LookupHost(name string) (cname string, addrs []string, err os.Error) {
        if rooted || count(name, '.') >= cfg.ndots {
                rname := name;
                if !rooted {
-                       rname += ".";
+                       rname += "."
                }
                // Can try as ordinary name.
                addrs, err = tryOneName(cfg, rname);
@@ -253,14 +253,14 @@ func LookupHost(name string) (cname string, addrs []string, err os.Error) {
                }
        }
        if rooted {
-               return;
+               return
        }
 
        // Otherwise, try suffixes.
        for i := 0; i < len(cfg.search); i++ {
                rname := name + "." + cfg.search[i];
                if rname[len(rname)-1] != '.' {
-                       rname += ".";
+                       rname += "."
                }
                addrs, err = tryOneName(cfg, rname);
                if err == nil {
index b13b1b90a645ed8ff2f0d6cda0f4ab8cab186df2..243a4b431af4973e8bd9a14bb19dcfbe3c21df30 100644 (file)
@@ -26,7 +26,7 @@ var _DNS_configError os.Error
 func _DNS_ReadConfig() (*_DNS_Config, os.Error) {
        file, err := open("/etc/resolv.conf");
        if err != nil {
-               return nil, err;
+               return nil, err
        }
        conf := new(_DNS_Config);
        conf.servers = make([]string, 3)[0:0];  // small, but the standard limit
@@ -38,7 +38,7 @@ func _DNS_ReadConfig() (*_DNS_Config, os.Error) {
        for line, ok := file.readLine(); ok; line, ok = file.readLine() {
                f := getFields(line);
                if len(f) < 1 {
-                       continue;
+                       continue
                }
                switch f[0] {
                case "nameserver":      // add one name server
@@ -61,13 +61,13 @@ func _DNS_ReadConfig() (*_DNS_Config, os.Error) {
                                conf.search = make([]string, 1);
                                conf.search[0] = f[1];
                        } else {
-                               conf.search = make([]string, 0);
+                               conf.search = make([]string, 0)
                        }
 
                case "search":  // set search path to given servers
                        conf.search = make([]string, len(f)-1);
                        for i := 0; i < len(conf.search); i++ {
-                               conf.search[i] = f[i+1];
+                               conf.search[i] = f[i+1]
                        }
 
                case "options": // magic options
@@ -77,23 +77,23 @@ func _DNS_ReadConfig() (*_DNS_Config, os.Error) {
                                case len(s) >= 6 && s[0:6] == "ndots:":
                                        n, _, _ := dtoi(s, 6);
                                        if n < 1 {
-                                               n = 1;
+                                               n = 1
                                        }
                                        conf.ndots = n;
                                case len(s) >= 8 && s[0:8] == "timeout:":
                                        n, _, _ := dtoi(s, 8);
                                        if n < 1 {
-                                               n = 1;
+                                               n = 1
                                        }
                                        conf.timeout = n;
                                case len(s) >= 8 && s[0:9] == "attempts:":
                                        n, _, _ := dtoi(s, 9);
                                        if n < 1 {
-                                               n = 1;
+                                               n = 1
                                        }
                                        conf.attempts = n;
                                case s == "rotate":
-                                       conf.rotate = true;
+                                       conf.rotate = true
                                }
                        }
                }
index c7c27e3441cd7e6a711a0785298cbbdd65a42f51..179c0f35425b479eeca31ee3a70d82ace3febf5c 100644 (file)
@@ -108,7 +108,7 @@ type _DNS_RR_Header struct {
 }
 
 func (h *_DNS_RR_Header) Header() *_DNS_RR_Header {
-       return h;
+       return h
 }
 
 type _DNS_RR interface {
@@ -124,7 +124,7 @@ type _DNS_RR_CNAME struct {
 }
 
 func (rr *_DNS_RR_CNAME) Header() *_DNS_RR_Header {
-       return &rr.Hdr;
+       return &rr.Hdr
 }
 
 type _DNS_RR_HINFO struct {
@@ -134,7 +134,7 @@ type _DNS_RR_HINFO struct {
 }
 
 func (rr *_DNS_RR_HINFO) Header() *_DNS_RR_Header {
-       return &rr.Hdr;
+       return &rr.Hdr
 }
 
 type _DNS_RR_MB struct {
@@ -143,7 +143,7 @@ type _DNS_RR_MB struct {
 }
 
 func (rr *_DNS_RR_MB) Header() *_DNS_RR_Header {
-       return &rr.Hdr;
+       return &rr.Hdr
 }
 
 type _DNS_RR_MG struct {
@@ -152,7 +152,7 @@ type _DNS_RR_MG struct {
 }
 
 func (rr *_DNS_RR_MG) Header() *_DNS_RR_Header {
-       return &rr.Hdr;
+       return &rr.Hdr
 }
 
 type _DNS_RR_MINFO struct {
@@ -162,7 +162,7 @@ type _DNS_RR_MINFO struct {
 }
 
 func (rr *_DNS_RR_MINFO) Header() *_DNS_RR_Header {
-       return &rr.Hdr;
+       return &rr.Hdr
 }
 
 type _DNS_RR_MR struct {
@@ -171,7 +171,7 @@ type _DNS_RR_MR struct {
 }
 
 func (rr *_DNS_RR_MR) Header() *_DNS_RR_Header {
-       return &rr.Hdr;
+       return &rr.Hdr
 }
 
 type _DNS_RR_MX struct {
@@ -181,7 +181,7 @@ type _DNS_RR_MX struct {
 }
 
 func (rr *_DNS_RR_MX) Header() *_DNS_RR_Header {
-       return &rr.Hdr;
+       return &rr.Hdr
 }
 
 type _DNS_RR_NS struct {
@@ -190,7 +190,7 @@ type _DNS_RR_NS struct {
 }
 
 func (rr *_DNS_RR_NS) Header() *_DNS_RR_Header {
-       return &rr.Hdr;
+       return &rr.Hdr
 }
 
 type _DNS_RR_PTR struct {
@@ -199,7 +199,7 @@ type _DNS_RR_PTR struct {
 }
 
 func (rr *_DNS_RR_PTR) Header() *_DNS_RR_Header {
-       return &rr.Hdr;
+       return &rr.Hdr
 }
 
 type _DNS_RR_SOA struct {
@@ -214,7 +214,7 @@ type _DNS_RR_SOA struct {
 }
 
 func (rr *_DNS_RR_SOA) Header() *_DNS_RR_Header {
-       return &rr.Hdr;
+       return &rr.Hdr
 }
 
 type _DNS_RR_TXT struct {
@@ -223,7 +223,7 @@ type _DNS_RR_TXT struct {
 }
 
 func (rr *_DNS_RR_TXT) Header() *_DNS_RR_Header {
-       return &rr.Hdr;
+       return &rr.Hdr
 }
 
 type _DNS_RR_A struct {
@@ -264,7 +264,7 @@ var rr_mk = map[int]func() _DNS_RR{
 func packDomainName(s string, msg []byte, off int) (off1 int, ok bool) {
        // Add trailing dot to canonicalize name.
        if n := len(s); n == 0 || s[n-1] != '.' {
-               s += ".";
+               s += "."
        }
 
        // Each dot ends a segment of the name.
@@ -273,7 +273,7 @@ func packDomainName(s string, msg []byte, off int) (off1 int, ok bool) {
        // Check that we have all the space we need.
        tot := len(s)+1;
        if off+tot > len(msg) {
-               return len(msg), false;
+               return len(msg), false
        }
 
        // Emit sequence of counted strings, chopping at dots.
@@ -281,7 +281,7 @@ func packDomainName(s string, msg []byte, off int) (off1 int, ok bool) {
        for i := 0; i < len(s); i++ {
                if s[i] == '.' {
                        if i-begin >= 1<<6 {    // top two bits of length must be clear
-                               return len(msg), false;
+                               return len(msg), false
                        }
                        msg[off] = byte(i-begin);
                        off++;
@@ -316,7 +316,7 @@ func unpackDomainName(msg []byte, off int) (s string, off1 int, ok bool) {
 Loop:
        for {
                if off >= len(msg) {
-                       return "", len(msg), false;
+                       return "", len(msg), false
                }
                c := int(msg[off]);
                off++;
@@ -324,11 +324,11 @@ Loop:
                case 0x00:
                        if c == 0x00 {
                                // end of name
-                               break Loop;
+                               break Loop
                        }
                        // literal string
                        if off+c > len(msg) {
-                               return "", len(msg), false;
+                               return "", len(msg), false
                        }
                        s += string(msg[off : off+c])+".";
                        off += c;
@@ -339,24 +339,24 @@ Loop:
                        // also, don't follow too many pointers --
                        // maybe there's a loop.
                        if off >= len(msg) {
-                               return "", len(msg), false;
+                               return "", len(msg), false
                        }
                        c1 := msg[off];
                        off++;
                        if ptr == 0 {
-                               off1 = off;
+                               off1 = off
                        }
                        if ptr++; ptr > 10 {
-                               return "", len(msg), false;
+                               return "", len(msg), false
                        }
                        off = (c^0xC0)<<8 | int(c1);
                default:
                        // 0x80 and 0x40 are reserved
-                       return "", len(msg), false;
+                       return "", len(msg), false
                }
        }
        if ptr == 0 {
-               off1 = off;
+               off1 = off
        }
        return s, off1, true;
 }
@@ -372,11 +372,11 @@ func packStructValue(val *reflect.StructValue, msg []byte, off int) (off1 int, o
                        fmt.Fprintf(os.Stderr, "net: dns: unknown packing type %v", f.Type);
                        return len(msg), false;
                case *reflect.StructValue:
-                       off, ok = packStructValue(fv, msg, off);
+                       off, ok = packStructValue(fv, msg, off)
                case *reflect.Uint16Value:
                        i := fv.Get();
                        if off+2 > len(msg) {
-                               return len(msg), false;
+                               return len(msg), false
                        }
                        msg[off] = byte(i>>8);
                        msg[off+1] = byte(i);
@@ -384,7 +384,7 @@ func packStructValue(val *reflect.StructValue, msg []byte, off int) (off1 int, o
                case *reflect.Uint32Value:
                        i := fv.Get();
                        if off+4 > len(msg) {
-                               return len(msg), false;
+                               return len(msg), false
                        }
                        msg[off] = byte(i>>24);
                        msg[off+1] = byte(i>>16);
@@ -402,17 +402,17 @@ func packStructValue(val *reflect.StructValue, msg []byte, off int) (off1 int, o
                        case "domain-name":
                                off, ok = packDomainName(s, msg, off);
                                if !ok {
-                                       return len(msg), false;
+                                       return len(msg), false
                                }
                        case "":
                                // Counted string: 1 byte length.
                                if len(s) > 255 || off+1+len(s) > len(msg) {
-                                       return len(msg), false;
+                                       return len(msg), false
                                }
                                msg[off] = byte(len(s));
                                off++;
                                for i := 0; i < len(s); i++ {
-                                       msg[off+i] = s[i];
+                                       msg[off+i] = s[i]
                                }
                                off += len(s);
                        }
@@ -422,7 +422,7 @@ func packStructValue(val *reflect.StructValue, msg []byte, off int) (off1 int, o
 }
 
 func structValue(any interface{}) *reflect.StructValue {
-       return reflect.NewValue(any).(*reflect.PtrValue).Elem().(*reflect.StructValue);
+       return reflect.NewValue(any).(*reflect.PtrValue).Elem().(*reflect.StructValue)
 }
 
 func packStruct(any interface{}, msg []byte, off int) (off1 int, ok bool) {
@@ -441,17 +441,17 @@ func unpackStructValue(val *reflect.StructValue, msg []byte, off int) (off1 int,
                        fmt.Fprintf(os.Stderr, "net: dns: unknown packing type %v", f.Type);
                        return len(msg), false;
                case *reflect.StructValue:
-                       off, ok = unpackStructValue(fv, msg, off);
+                       off, ok = unpackStructValue(fv, msg, off)
                case *reflect.Uint16Value:
                        if off+2 > len(msg) {
-                               return len(msg), false;
+                               return len(msg), false
                        }
                        i := uint16(msg[off])<<8 | uint16(msg[off+1]);
                        fv.Set(i);
                        off += 2;
                case *reflect.Uint32Value:
                        if off+4 > len(msg) {
-                               return len(msg), false;
+                               return len(msg), false
                        }
                        i := uint32(msg[off])<<24 | uint32(msg[off+1])<<16 | uint32(msg[off+2])<<8 | uint32(msg[off+3]);
                        fv.Set(i);
@@ -465,17 +465,17 @@ func unpackStructValue(val *reflect.StructValue, msg []byte, off int) (off1 int,
                        case "domain-name":
                                s, off, ok = unpackDomainName(msg, off);
                                if !ok {
-                                       return len(msg), false;
+                                       return len(msg), false
                                }
                        case "":
                                if off >= len(msg) || off+1+int(msg[off]) > len(msg) {
-                                       return len(msg), false;
+                                       return len(msg), false
                                }
                                n := int(msg[off]);
                                off++;
                                b := make([]byte, n);
                                for i := 0; i < n; i++ {
-                                       b[i] = msg[off+i];
+                                       b[i] = msg[off+i]
                                }
                                off += n;
                                s = string(b);
@@ -499,20 +499,20 @@ func printStructValue(val *reflect.StructValue) string {
        s := "{";
        for i := 0; i < val.NumField(); i++ {
                if i > 0 {
-                       s += ", ";
+                       s += ", "
                }
                f := val.Type().(*reflect.StructType).Field(i);
                if !f.Anonymous {
-                       s += f.Name + "=";
+                       s += f.Name + "="
                }
                fval := val.Field(i);
                if fv, ok := fval.(*reflect.StructValue); ok {
-                       s += printStructValue(fv);
+                       s += printStructValue(fv)
                } else if fv, ok := fval.(*reflect.Uint32Value); ok && f.Tag == "ipv4" {
                        i := fv.Get();
                        s += IPv4(byte(i>>24), byte(i>>16), byte(i>>8), byte(i)).String();
                } else {
-                       s += fmt.Sprint(fval.Interface());
+                       s += fmt.Sprint(fval.Interface())
                }
        }
        s += "}";
@@ -532,7 +532,7 @@ func packRR(rr _DNS_RR, msg []byte, off int) (off2 int, ok bool) {
        off1, ok = packStruct(rr.Header(), msg, off);
        off2, ok = packStruct(rr, msg, off);
        if !ok {
-               return len(msg), false;
+               return len(msg), false
        }
        // pack a third time; redo header with correct data length
        rr.Header().Rdlength = uint16(off2-off1);
@@ -546,7 +546,7 @@ func unpackRR(msg []byte, off int) (rr _DNS_RR, off1 int, ok bool) {
        var h _DNS_RR_Header;
        off0 := off;
        if off, ok = unpackStruct(&h, msg, off); !ok {
-               return nil, len(msg), false;
+               return nil, len(msg), false
        }
        end := off+int(h.Rdlength);
 
@@ -554,12 +554,12 @@ func unpackRR(msg []byte, off int) (rr _DNS_RR, off1 int, ok bool) {
        // again inefficient but doesn't need to be fast.
        mk, known := rr_mk[int(h.Rrtype)];
        if !known {
-               return &h, end, true;
+               return &h, end, true
        }
        rr = mk();
        off, ok = unpackStruct(rr, msg, off0);
        if off != end {
-               return &h, end, true;
+               return &h, end, true
        }
        return rr, off, ok;
 }
@@ -595,19 +595,19 @@ func (dns *_DNS_Msg) Pack() (msg []byte, ok bool) {
        dh.Id = dns.id;
        dh.Bits = uint16(dns.opcode)<<11 | uint16(dns.rcode);
        if dns.recursion_available {
-               dh.Bits |= _RA;
+               dh.Bits |= _RA
        }
        if dns.recursion_desired {
-               dh.Bits |= _RD;
+               dh.Bits |= _RD
        }
        if dns.truncated {
-               dh.Bits |= _TC;
+               dh.Bits |= _TC
        }
        if dns.authoritative {
-               dh.Bits |= _AA;
+               dh.Bits |= _AA
        }
        if dns.response {
-               dh.Bits |= _QR;
+               dh.Bits |= _QR
        }
 
        // Prepare variable sized arrays.
@@ -630,19 +630,19 @@ func (dns *_DNS_Msg) Pack() (msg []byte, ok bool) {
        off := 0;
        off, ok = packStruct(&dh, msg, off);
        for i := 0; i < len(question); i++ {
-               off, ok = packStruct(&question[i], msg, off);
+               off, ok = packStruct(&question[i], msg, off)
        }
        for i := 0; i < len(answer); i++ {
-               off, ok = packStruct(answer[i], msg, off);
+               off, ok = packStruct(answer[i], msg, off)
        }
        for i := 0; i < len(ns); i++ {
-               off, ok = packStruct(ns[i], msg, off);
+               off, ok = packStruct(ns[i], msg, off)
        }
        for i := 0; i < len(extra); i++ {
-               off, ok = packStruct(extra[i], msg, off);
+               off, ok = packStruct(extra[i], msg, off)
        }
        if !ok {
-               return nil, false;
+               return nil, false
        }
        return msg[0:off], true;
 }
@@ -653,7 +653,7 @@ func (dns *_DNS_Msg) Unpack(msg []byte) bool {
        off := 0;
        var ok bool;
        if off, ok = unpackStruct(&dh, msg, off); !ok {
-               return false;
+               return false
        }
        dns.id = dh.Id;
        dns.response = (dh.Bits & _QR) != 0;
@@ -671,19 +671,19 @@ func (dns *_DNS_Msg) Unpack(msg []byte) bool {
        dns.extra = make([]_DNS_RR, dh.Arcount);
 
        for i := 0; i < len(dns.question); i++ {
-               off, ok = unpackStruct(&dns.question[i], msg, off);
+               off, ok = unpackStruct(&dns.question[i], msg, off)
        }
        for i := 0; i < len(dns.answer); i++ {
-               dns.answer[i], off, ok = unpackRR(msg, off);
+               dns.answer[i], off, ok = unpackRR(msg, off)
        }
        for i := 0; i < len(dns.ns); i++ {
-               dns.ns[i], off, ok = unpackRR(msg, off);
+               dns.ns[i], off, ok = unpackRR(msg, off)
        }
        for i := 0; i < len(dns.extra); i++ {
-               dns.extra[i], off, ok = unpackRR(msg, off);
+               dns.extra[i], off, ok = unpackRR(msg, off)
        }
        if !ok {
-               return false;
+               return false
        }
        //      if off != len(msg) {
        //              println("extra bytes in dns packet", off, "<", len(msg));
@@ -696,25 +696,25 @@ func (dns *_DNS_Msg) String() string {
        if len(dns.question) > 0 {
                s += "-- Questions\n";
                for i := 0; i < len(dns.question); i++ {
-                       s += printStruct(&dns.question[i]) + "\n";
+                       s += printStruct(&dns.question[i]) + "\n"
                }
        }
        if len(dns.answer) > 0 {
                s += "-- Answers\n";
                for i := 0; i < len(dns.answer); i++ {
-                       s += printStruct(dns.answer[i]) + "\n";
+                       s += printStruct(dns.answer[i]) + "\n"
                }
        }
        if len(dns.ns) > 0 {
                s += "-- Name servers\n";
                for i := 0; i < len(dns.ns); i++ {
-                       s += printStruct(dns.ns[i]) + "\n";
+                       s += printStruct(dns.ns[i]) + "\n"
                }
        }
        if len(dns.extra) > 0 {
                s += "-- Extra\n";
                for i := 0; i < len(dns.extra); i++ {
-                       s += printStruct(dns.extra[i]) + "\n";
+                       s += printStruct(dns.extra[i]) + "\n"
                }
        }
        return s;
index bcb7372125f1bbd040212d8165bcf69f52175b10..0f4c30a4b41ba56e6679bb6e808937988d55b719 100644 (file)
@@ -80,7 +80,7 @@ func newPollServer() (s *pollServer, err os.Error) {
        s.cr = make(chan *netFD, 1);
        s.cw = make(chan *netFD, 1);
        if s.pr, s.pw, err = os.Pipe(); err != nil {
-               return nil, err;
+               return nil, err
        }
        var e int;
        if e = syscall.SetNonblock(s.pr.Fd(), true); e != 0 {
@@ -92,10 +92,10 @@ func newPollServer() (s *pollServer, err os.Error) {
                return nil, err;
        }
        if e = syscall.SetNonblock(s.pw.Fd(), true); e != 0 {
-               goto Errno;
+               goto Errno
        }
        if s.poll, err = newpollster(); err != nil {
-               goto Error;
+               goto Error
        }
        if err = s.poll.AddFD(s.pr.Fd(), 'r', true); err != nil {
                s.poll.Close();
@@ -122,9 +122,9 @@ func (s *pollServer) AddFD(fd *netFD, mode int) {
        if intfd < 0 {
                // fd closed underfoot
                if mode == 'r' {
-                       fd.cr <- fd;
+                       fd.cr <- fd
                } else {
-                       fd.cw <- fd;
+                       fd.cw <- fd
                }
                return;
        }
@@ -145,18 +145,18 @@ func (s *pollServer) AddFD(fd *netFD, mode int) {
        }
        s.pending[key] = fd;
        if t > 0 && (s.deadline == 0 || t < s.deadline) {
-               s.deadline = t;
+               s.deadline = t
        }
 }
 
 func (s *pollServer) LookupFD(fd int, mode int) *netFD {
        key := fd<<1;
        if mode == 'w' {
-               key++;
+               key++
        }
        netfd, ok := s.pending[key];
        if !ok {
-               return nil;
+               return nil
        }
        s.pending[key] = nil, false;
        return netfd;
@@ -179,7 +179,7 @@ func (s *pollServer) WakeFD(fd *netFD, mode int) {
 func (s *pollServer) Now() int64 {
        sec, nsec, err := os.Time();
        if err != nil {
-               panic("net: os.Time: ", err.String());
+               panic("net: os.Time: ", err.String())
        }
        nsec += sec*1e9;
        return nsec;
@@ -195,14 +195,14 @@ func (s *pollServer) CheckDeadlines() {
                var t int64;
                var mode int;
                if key&1 == 0 {
-                       mode = 'r';
+                       mode = 'r'
                } else {
-                       mode = 'w';
+                       mode = 'w'
                }
                if mode == 'r' {
-                       t = fd.rdeadline;
+                       t = fd.rdeadline
                } else {
-                       t = fd.wdeadline;
+                       t = fd.wdeadline
                }
                if t > 0 {
                        if t <= now {
@@ -216,7 +216,7 @@ func (s *pollServer) CheckDeadlines() {
                                }
                                s.WakeFD(fd, mode);
                        } else if next_deadline == 0 || t < next_deadline {
-                               next_deadline = t;
+                               next_deadline = t
                        }
                }
        }
@@ -247,15 +247,15 @@ func (s *pollServer) Run() {
                if fd == s.pr.Fd() {
                        // Drain our wakeup pipe.
                        for nn, _ := s.pr.Read(&scratch); nn > 0; {
-                               nn, _ = s.pr.Read(&scratch);
+                               nn, _ = s.pr.Read(&scratch)
                        }
 
                        // Read from channels
                        for fd, ok := <-s.cr; ok; fd, ok = <-s.cr {
-                               s.AddFD(fd, 'r');
+                               s.AddFD(fd, 'r')
                        }
                        for fd, ok := <-s.cw; ok; fd, ok = <-s.cw {
-                               s.AddFD(fd, 'w');
+                               s.AddFD(fd, 'w')
                        }
                } else {
                        netfd := s.LookupFD(fd, mode);
@@ -293,7 +293,7 @@ var pollserver *pollServer
 func startServer() {
        p, err := newPollServer();
        if err != nil {
-               print("Start pollServer: ", err.String(), "\n");
+               print("Start pollServer: ", err.String(), "\n")
        }
        pollserver = p;
 }
@@ -301,7 +301,7 @@ func startServer() {
 func newFD(fd, family, proto int, net string, laddr, raddr Addr) (f *netFD, err os.Error) {
        once.Do(startServer);
        if e := syscall.SetNonblock(fd, true); e != 0 {
-               return nil, &OpError{"setnonblock", net, laddr, os.Errno(e)};
+               return nil, &OpError{"setnonblock", net, laddr, os.Errno(e)}
        }
        f = &netFD{
                fd: fd,
@@ -313,10 +313,10 @@ func newFD(fd, family, proto int, net string, laddr, raddr Addr) (f *netFD, err
        };
        var ls, rs string;
        if laddr != nil {
-               ls = laddr.String();
+               ls = laddr.String()
        }
        if raddr != nil {
-               rs = raddr.String();
+               rs = raddr.String()
        }
        f.file = os.NewFile(fd, net+":"+ls+"->"+rs);
        f.cr = make(chan *netFD, 1);
@@ -326,14 +326,14 @@ func newFD(fd, family, proto int, net string, laddr, raddr Addr) (f *netFD, err
 
 func isEAGAIN(e os.Error) bool {
        if e1, ok := e.(*os.PathError); ok {
-               return e1.Error == os.EAGAIN;
+               return e1.Error == os.EAGAIN
        }
        return e == os.EAGAIN;
 }
 
 func (fd *netFD) Close() os.Error {
        if fd == nil || fd.file == nil {
-               return os.EINVAL;
+               return os.EINVAL
        }
 
        // In case the user has set linger,
@@ -352,14 +352,14 @@ func (fd *netFD) Close() os.Error {
 
 func (fd *netFD) Read(p []byte) (n int, err os.Error) {
        if fd == nil || fd.file == nil {
-               return 0, os.EINVAL;
+               return 0, os.EINVAL
        }
        fd.rio.Lock();
        defer fd.rio.Unlock();
        if fd.rdeadline_delta > 0 {
-               fd.rdeadline = pollserver.Now() + fd.rdeadline_delta;
+               fd.rdeadline = pollserver.Now() + fd.rdeadline_delta
        } else {
-               fd.rdeadline = 0;
+               fd.rdeadline = 0
        }
        for {
                n, err = fd.file.Read(p);
@@ -374,31 +374,31 @@ func (fd *netFD) Read(p []byte) (n int, err os.Error) {
 
 func (fd *netFD) Write(p []byte) (n int, err os.Error) {
        if fd == nil || fd.file == nil {
-               return 0, os.EINVAL;
+               return 0, os.EINVAL
        }
        fd.wio.Lock();
        defer fd.wio.Unlock();
        if fd.wdeadline_delta > 0 {
-               fd.wdeadline = pollserver.Now() + fd.wdeadline_delta;
+               fd.wdeadline = pollserver.Now() + fd.wdeadline_delta
        } else {
-               fd.wdeadline = 0;
+               fd.wdeadline = 0
        }
        err = nil;
        nn := 0;
        for nn < len(p) {
                n, err = fd.file.Write(p[nn:len(p)]);
                if n > 0 {
-                       nn += n;
+                       nn += n
                }
                if nn == len(p) {
-                       break;
+                       break
                }
                if isEAGAIN(err) && fd.wdeadline >= 0 {
                        pollserver.WaitWrite(fd);
                        continue;
                }
                if n == 0 || err != nil {
-                       break;
+                       break
                }
        }
        return nn, err;
@@ -406,7 +406,7 @@ func (fd *netFD) Write(p []byte) (n int, err os.Error) {
 
 func (fd *netFD) accept(toAddr func(syscall.Sockaddr) Addr) (nfd *netFD, err os.Error) {
        if fd == nil || fd.file == nil {
-               return nil, os.EINVAL;
+               return nil, os.EINVAL
        }
 
        // See ../syscall/exec.go for description of ForkLock.
@@ -418,7 +418,7 @@ func (fd *netFD) accept(toAddr func(syscall.Sockaddr) Addr) (nfd *netFD, err os.
        for {
                s, sa, e = syscall.Accept(fd.fd);
                if e != syscall.EAGAIN {
-                       break;
+                       break
                }
                syscall.ForkLock.RUnlock();
                pollserver.WaitRead(fd);
index 45acad6995f4342309ed3a010fda96e6f7916fae..36cb513a9a22f0535d3ee81bd3b6aa66805b0f9d 100644 (file)
@@ -21,7 +21,7 @@ func newpollster() (p *pollster, err os.Error) {
        p = new(pollster);
        var e int;
        if p.kq, e = syscall.Kqueue(); e != 0 {
-               return nil, os.NewSyscallError("kqueue", e);
+               return nil, os.NewSyscallError("kqueue", e)
        }
        p.events = p.eventbuf[0:0];
        return p, nil;
@@ -30,9 +30,9 @@ func newpollster() (p *pollster, err os.Error) {
 func (p *pollster) AddFD(fd int, mode int, repeat bool) os.Error {
        var kmode int;
        if mode == 'r' {
-               kmode = syscall.EVFILT_READ;
+               kmode = syscall.EVFILT_READ
        } else {
-               kmode = syscall.EVFILT_WRITE;
+               kmode = syscall.EVFILT_WRITE
        }
        var events [1]syscall.Kevent_t;
        ev := &events[0];
@@ -42,19 +42,19 @@ func (p *pollster) AddFD(fd int, mode int, repeat bool) os.Error {
        // EV_ONESHOT - delete the event the first time it triggers
        flags := syscall.EV_ADD | syscall.EV_RECEIPT;
        if !repeat {
-               flags |= syscall.EV_ONESHOT;
+               flags |= syscall.EV_ONESHOT
        }
        syscall.SetKevent(ev, fd, kmode, flags);
 
        n, e := syscall.Kevent(p.kq, &events, &events, nil);
        if e != 0 {
-               return os.NewSyscallError("kevent", e);
+               return os.NewSyscallError("kevent", e)
        }
        if n != 1 || (ev.Flags & syscall.EV_ERROR) == 0 || int(ev.Ident) != fd || int(ev.Filter) != kmode {
-               return os.ErrorString("kqueue phase error");
+               return os.ErrorString("kqueue phase error")
        }
        if ev.Data != 0 {
-               return os.Errno(int(ev.Data));
+               return os.Errno(int(ev.Data))
        }
        return nil;
 }
@@ -62,9 +62,9 @@ func (p *pollster) AddFD(fd int, mode int, repeat bool) os.Error {
 func (p *pollster) DelFD(fd int, mode int) {
        var kmode int;
        if mode == 'r' {
-               kmode = syscall.EVFILT_READ;
+               kmode = syscall.EVFILT_READ
        } else {
-               kmode = syscall.EVFILT_WRITE;
+               kmode = syscall.EVFILT_WRITE
        }
        var events [1]syscall.Kevent_t;
        ev := &events[0];
@@ -80,19 +80,19 @@ func (p *pollster) WaitFD(nsec int64) (fd int, mode int, err os.Error) {
        for len(p.events) == 0 {
                if nsec > 0 {
                        if t == nil {
-                               t = new(syscall.Timespec);
+                               t = new(syscall.Timespec)
                        }
                        *t = syscall.NsecToTimespec(nsec);
                }
                nn, e := syscall.Kevent(p.kq, nil, &p.eventbuf, t);
                if e != 0 {
                        if e == syscall.EINTR {
-                               continue;
+                               continue
                        }
                        return -1, 0, os.NewSyscallError("kevent", e);
                }
                if nn == 0 {
-                       return -1, 0, nil;
+                       return -1, 0, nil
                }
                p.events = p.eventbuf[0:nn];
        }
@@ -100,9 +100,9 @@ func (p *pollster) WaitFD(nsec int64) (fd int, mode int, err os.Error) {
        p.events = p.events[1:len(p.events)];
        fd = int(ev.Ident);
        if ev.Filter == syscall.EVFILT_READ {
-               mode = 'r';
+               mode = 'r'
        } else {
-               mode = 'w';
+               mode = 'w'
        }
        return fd, mode, nil;
 }
index 47ae4f1c38295627a0a70a291b4450898a8c4ad1..ddde33ee41aafebd8fe57e5a981794f67b5081e1 100644 (file)
@@ -31,7 +31,7 @@ func newpollster() (p *pollster, err os.Error) {
        // about the number of FDs we will care about.
        // We don't know.
        if p.epfd, e = syscall.EpollCreate(16); e != 0 {
-               return nil, os.NewSyscallError("epoll_create", e);
+               return nil, os.NewSyscallError("epoll_create", e)
        }
        p.events = make(map[int]uint32);
        return p, nil;
@@ -43,22 +43,22 @@ func (p *pollster) AddFD(fd int, mode int, repeat bool) os.Error {
        ev.Fd = int32(fd);
        ev.Events, already = p.events[fd];
        if !repeat {
-               ev.Events |= syscall.EPOLLONESHOT;
+               ev.Events |= syscall.EPOLLONESHOT
        }
        if mode == 'r' {
-               ev.Events |= readFlags;
+               ev.Events |= readFlags
        } else {
-               ev.Events |= writeFlags;
+               ev.Events |= writeFlags
        }
 
        var op int;
        if already {
-               op = syscall.EPOLL_CTL_MOD;
+               op = syscall.EPOLL_CTL_MOD
        } else {
-               op = syscall.EPOLL_CTL_ADD;
+               op = syscall.EPOLL_CTL_ADD
        }
        if e := syscall.EpollCtl(p.epfd, op, fd, &ev); e != 0 {
-               return os.NewSyscallError("epoll_ctl", e);
+               return os.NewSyscallError("epoll_ctl", e)
        }
        p.events[fd] = ev.Events;
        return nil;
@@ -74,7 +74,7 @@ func (p *pollster) StopWaiting(fd int, bits uint) {
        // If syscall.EPOLLONESHOT is not set, the wait
        // is a repeating wait, so don't change it.
        if events & syscall.EPOLLONESHOT == 0 {
-               return;
+               return
        }
 
        // Disable the given bits.
@@ -86,12 +86,12 @@ func (p *pollster) StopWaiting(fd int, bits uint) {
                ev.Fd = int32(fd);
                ev.Events = events;
                if e := syscall.EpollCtl(p.epfd, syscall.EPOLL_CTL_MOD, fd, &ev); e != 0 {
-                       print("Epoll modify fd=", fd, ": ", os.Errno(e).String(), "\n");
+                       print("Epoll modify fd=", fd, ": ", os.Errno(e).String(), "\n")
                }
                p.events[fd] = events;
        } else {
                if e := syscall.EpollCtl(p.epfd, syscall.EPOLL_CTL_DEL, fd, nil); e != 0 {
-                       print("Epoll delete fd=", fd, ": ", os.Errno(e).String(), "\n");
+                       print("Epoll delete fd=", fd, ": ", os.Errno(e).String(), "\n")
                }
                p.events[fd] = 0, false;
        }
@@ -99,9 +99,9 @@ func (p *pollster) StopWaiting(fd int, bits uint) {
 
 func (p *pollster) DelFD(fd int, mode int) {
        if mode == 'r' {
-               p.StopWaiting(fd, readFlags);
+               p.StopWaiting(fd, readFlags)
        } else {
-               p.StopWaiting(fd, writeFlags);
+               p.StopWaiting(fd, writeFlags)
        }
 }
 
@@ -111,17 +111,17 @@ func (p *pollster) WaitFD(nsec int64) (fd int, mode int, err os.Error) {
        ev := &evarray[0];
        var msec int = -1;
        if nsec > 0 {
-               msec = int((nsec+1e6-1)/1e6);
+               msec = int((nsec+1e6-1)/1e6)
        }
        n, e := syscall.EpollWait(p.epfd, &evarray, msec);
        for e == syscall.EAGAIN || e == syscall.EINTR {
-               n, e = syscall.EpollWait(p.epfd, &evarray, msec);
+               n, e = syscall.EpollWait(p.epfd, &evarray, msec)
        }
        if e != 0 {
-               return -1, 0, os.NewSyscallError("epoll_wait", e);
+               return -1, 0, os.NewSyscallError("epoll_wait", e)
        }
        if n == 0 {
-               return -1, 0, nil;
+               return -1, 0, nil
        }
        fd = int(ev.Fd);
 
@@ -145,5 +145,5 @@ func (p *pollster) WaitFD(nsec int64) (fd int, mode int, err os.Error) {
 }
 
 func (p *pollster) Close() os.Error {
-       return os.NewSyscallError("close", syscall.Close(p.epfd));
+       return os.NewSyscallError("close", syscall.Close(p.epfd))
 }
index 31679648678148394a73e9ee522535d262dbe888..22700fbedb249c17ab4f75e8792fe9a78e93925f 100644 (file)
@@ -12,7 +12,7 @@ import (
 type pollster struct{}
 
 func newpollster() (p *pollster, err os.Error) {
-       return nil, os.NewSyscallError("networking", syscall.ENACL);
+       return nil, os.NewSyscallError("networking", syscall.ENACL)
 }
 
 func (p *pollster) AddFD(fd int, mode int, repeat bool) os.Error {
index 3178db02158855737f67f0b7e21bd21884ed6394..5d2a1fc8596922272d4524b3254a1f8a2dd3c9bd 100644 (file)
@@ -40,7 +40,7 @@ type IPMask []byte
 func IPv4(a, b, c, d byte) IP {
        p := make(IP, IPv6len);
        for i := 0; i < 10; i++ {
-               p[i] = 0;
+               p[i] = 0
        }
        p[10] = 0xff;
        p[11] = 0xff;
@@ -68,7 +68,7 @@ var (
 func isZeros(p IP) bool {
        for i := 0; i < len(p); i++ {
                if p[i] != 0 {
-                       return false;
+                       return false
                }
        }
        return true;
@@ -78,13 +78,13 @@ func isZeros(p IP) bool {
 // If ip is not an IPv4 address, To4 returns nil.
 func (ip IP) To4() IP {
        if len(ip) == IPv4len {
-               return ip;
+               return ip
        }
        if len(ip) == IPv6len &&
                isZeros(ip[0:10]) &&
                ip[10] == 0xff &&
                ip[11] == 0xff {
-               return ip[12:16];
+               return ip[12:16]
        }
        return nil;
 }
@@ -93,10 +93,10 @@ func (ip IP) To4() IP {
 // If ip is not an IP address (it is the wrong length), To16 returns nil.
 func (ip IP) To16() IP {
        if len(ip) == IPv4len {
-               return IPv4(ip[0], ip[1], ip[2], ip[3]);
+               return IPv4(ip[0], ip[1], ip[2], ip[3])
        }
        if len(ip) == IPv6len {
-               return ip;
+               return ip
        }
        return nil;
 }
@@ -113,15 +113,15 @@ var (
 // nil if ip is not a valid IPv4 address.
 func (ip IP) DefaultMask() IPMask {
        if ip = ip.To4(); ip == nil {
-               return nil;
+               return nil
        }
        switch true {
        case ip[0] < 0x80:
-               return classAMask;
+               return classAMask
        case ip[0] < 0xC0:
-               return classBMask;
+               return classBMask
        default:
-               return classCMask;
+               return classCMask
        }
        return nil;     // not reached
 }
@@ -130,11 +130,11 @@ func (ip IP) DefaultMask() IPMask {
 func (ip IP) Mask(mask IPMask) IP {
        n := len(ip);
        if n != len(mask) {
-               return nil;
+               return nil
        }
        out := make(IP, n);
        for i := 0; i < n; i++ {
-               out[i] = ip[i]&mask[i];
+               out[i] = ip[i]&mask[i]
        }
        return out;
 }
@@ -142,7 +142,7 @@ func (ip IP) Mask(mask IPMask) IP {
 // Convert i to decimal string.
 func itod(i uint) string {
        if i == 0 {
-               return "0";
+               return "0"
        }
 
        // Assemble decimal in reverse order.
@@ -159,7 +159,7 @@ func itod(i uint) string {
 // Convert i to hexadecimal string.
 func itox(i uint) string {
        if i == 0 {
-               return "0";
+               return "0"
        }
 
        // Assemble hexadecimal in reverse order.
@@ -181,7 +181,7 @@ func (ip IP) String() string {
        p := ip;
 
        if len(ip) == 0 {
-               return "";
+               return ""
        }
 
        // If IPv4, use dotted notation.
@@ -189,10 +189,10 @@ func (ip IP) String() string {
                return itod(uint(p4[0])) + "." +
                        itod(uint(p4[1])) + "." +
                        itod(uint(p4[2])) + "." +
-                       itod(uint(p4[3]));
+                       itod(uint(p4[3]))
        }
        if len(p) != IPv6len {
-               return "?";
+               return "?"
        }
 
        // Find longest run of zeros.
@@ -201,7 +201,7 @@ func (ip IP) String() string {
        for i := 0; i < 16; i += 2 {
                j := i;
                for j < 16 && p[j] == 0 && p[j+1] == 0 {
-                       j += 2;
+                       j += 2
                }
                if j > i && j-i > e1-e0 {
                        e0 = i;
@@ -216,10 +216,10 @@ func (ip IP) String() string {
                        s += "::";
                        i = e1;
                        if i >= 16 {
-                               break;
+                               break
                        }
                } else if i > 0 {
-                       s += ":";
+                       s += ":"
                }
                s += itox((uint(p[i])<<8)|uint(p[i+1]));
        }
@@ -232,7 +232,7 @@ func simpleMaskLength(mask IPMask) int {
        var i int;
        for i = 0; i < len(mask); i++ {
                if mask[i] != 0xFF {
-                       break;
+                       break
                }
        }
        n := 8*i;
@@ -242,11 +242,11 @@ func simpleMaskLength(mask IPMask) int {
                v <<= 1;
        }
        if v != 0 {
-               return -1;
+               return -1
        }
        for i++; i < len(mask); i++ {
                if mask[i] != 0 {
-                       return -1;
+                       return -1
                }
        }
        return n;
@@ -262,12 +262,12 @@ func (mask IPMask) String() string {
        case 4:
                n := simpleMaskLength(mask);
                if n >= 0 {
-                       return itod(uint(n + (IPv6len-IPv4len)*8));
+                       return itod(uint(n + (IPv6len-IPv4len)*8))
                }
        case 16:
                n := simpleMaskLength(mask);
                if n >= 0 {
-                       return itod(uint(n));
+                       return itod(uint(n))
                }
        }
        return IP(mask).String();
@@ -280,7 +280,7 @@ func parseIPv4(s string) IP {
        for j := 0; j < IPv4len; j++ {
                if j > 0 {
                        if s[i] != '.' {
-                               return nil;
+                               return nil
                        }
                        i++;
                }
@@ -290,12 +290,12 @@ func parseIPv4(s string) IP {
                )
                n, i, ok = dtoi(s, i);
                if !ok || n > 0xFF {
-                       return nil;
+                       return nil
                }
                p[j] = byte(n);
        }
        if i != len(s) {
-               return nil;
+               return nil
        }
        return IPv4(p[0], p[1], p[2], p[3]);
 }
@@ -319,7 +319,7 @@ func parseIPv6(s string) IP {
                i = 2;
                // Might be only ellipsis
                if i == len(s) {
-                       return p;
+                       return p
                }
        }
 
@@ -329,22 +329,22 @@ L:        for j < IPv6len {
                // Hex number.
                n, i1, ok := xtoi(s, i);
                if !ok || n > 0xFFFF {
-                       return nil;
+                       return nil
                }
 
                // If followed by dot, might be in trailing IPv4.
                if i1 < len(s) && s[i1] == '.' {
                        if ellipsis < 0 && j != IPv6len-IPv4len {
                                // Not the right place.
-                               return nil;
+                               return nil
                        }
                        if j+IPv4len > IPv6len {
                                // Not enough room.
-                               return nil;
+                               return nil
                        }
                        p4 := parseIPv4(s[i:len(s)]);
                        if p4 == nil {
-                               return nil;
+                               return nil
                        }
                        p[j] = p4[12];
                        p[j+1] = p4[13];
@@ -363,43 +363,43 @@ L:        for j < IPv6len {
                // Stop at end of string.
                i = i1;
                if i == len(s) {
-                       break;
+                       break
                }
 
                // Otherwise must be followed by colon and more.
                if s[i] != ':' && i+1 == len(s) {
-                       return nil;
+                       return nil
                }
                i++;
 
                // Look for ellipsis.
                if s[i] == ':' {
                        if ellipsis >= 0 {      // already have one
-                               return nil;
+                               return nil
                        }
                        ellipsis = j;
                        if i++; i == len(s) {   // can be at end
-                               break;
+                               break
                        }
                }
        }
 
        // Must have used entire string.
        if i != len(s) {
-               return nil;
+               return nil
        }
 
        // If didn't parse enough, expand ellipsis.
        if j < IPv6len {
                if ellipsis < 0 {
-                       return nil;
+                       return nil
                }
                n := IPv6len-j;
                for k := j-1; k >= ellipsis; k-- {
-                       p[k+n] = p[k];
+                       p[k+n] = p[k]
                }
                for k := ellipsis+n-1; k >= ellipsis; k-- {
-                       p[k] = 0;
+                       p[k] = 0
                }
        }
        return p;
@@ -413,7 +413,7 @@ L:  for j < IPv6len {
 func ParseIP(s string) IP {
        p := parseIPv4(s);
        if p != nil {
-               return p;
+               return p
        }
        return parseIPv6(s);
 }
index d23eaff3ac54ef4475fa603039e11146554636cf..7cca831b59303c5dbf84bc512e9de2d03e142920 100644 (file)
@@ -10,14 +10,14 @@ import (
 
 func isEqual(a, b IP) bool {
        if a == nil && b == nil {
-               return true;
+               return true
        }
        if a == nil || b == nil || len(a) != len(b) {
-               return false;
+               return false
        }
        for i := 0; i < len(a); i++ {
                if a[i] != b[i] {
-                       return false;
+                       return false
                }
        }
        return true;
@@ -46,7 +46,7 @@ func TestParseIP(t *testing.T) {
        for i := 0; i < len(parseiptests); i++ {
                tt := parseiptests[i];
                if out := ParseIP(tt.in); !isEqual(out, tt.out) {
-                       t.Errorf("ParseIP(%#q) = %v, want %v", tt.in, out, tt.out);
+                       t.Errorf("ParseIP(%#q) = %v, want %v", tt.in, out, tt.out)
                }
        }
 }
index fd37155a2c1a2623413b8f75237d8286805b48c7..fc0db9b4ad8b6ef1aa7d26f463e5d11f2a33ba3e 100644 (file)
@@ -20,7 +20,7 @@ import (
 func kernelSupportsIPv6() bool {
        fd, e := syscall.Socket(syscall.AF_INET6, syscall.SOCK_STREAM, syscall.IPPROTO_TCP);
        if fd >= 0 {
-               syscall.Close(fd);
+               syscall.Close(fd)
        }
        return e == 0;
 }
@@ -48,7 +48,7 @@ func internetSocket(net string, laddr, raddr sockaddr, proto int, mode string, t
        family := syscall.AF_INET6;
        switch net[len(net)-1] {
        case '4':
-               family = syscall.AF_INET;
+               family = syscall.AF_INET
        case '6':
                // nothing to do
        default:
@@ -57,31 +57,31 @@ func internetSocket(net string, laddr, raddr sockaddr, proto int, mode string, t
                if preferIPv4 &&
                        (laddr == nil || laddr.family() == syscall.AF_INET) &&
                        (raddr == nil || raddr.family() == syscall.AF_INET) {
-                       family = syscall.AF_INET;
+                       family = syscall.AF_INET
                }
        }
 
        var la, ra syscall.Sockaddr;
        if laddr != nil {
                if la, err = laddr.sockaddr(family); err != nil {
-                       goto Error;
+                       goto Error
                }
        }
        if raddr != nil {
                if ra, err = raddr.sockaddr(family); err != nil {
-                       goto Error;
+                       goto Error
                }
        }
        fd, err = socket(net, family, proto, 0, la, ra, toAddr);
        if err != nil {
-               goto Error;
+               goto Error
        }
        return fd, nil;
 
 Error:
        addr := raddr;
        if mode == "listen" {
-               addr = laddr;
+               addr = laddr
        }
        return nil, &OpError{mode, net, addr, err};
 }
@@ -92,15 +92,15 @@ func getip(fd int, remote bool) (ip []byte, port int, ok bool) {
        // caller won't report them anyway.
        var sa syscall.Sockaddr;
        if remote {
-               sa, _ = syscall.Getpeername(fd);
+               sa, _ = syscall.Getpeername(fd)
        } else {
-               sa, _ = syscall.Getsockname(fd);
+               sa, _ = syscall.Getsockname(fd)
        }
        switch sa := sa.(type) {
        case *syscall.SockaddrInet4:
-               return &sa.Addr, sa.Port, true;
+               return &sa.Addr, sa.Port, true
        case *syscall.SockaddrInet6:
-               return &sa.Addr, sa.Port, true;
+               return &sa.Addr, sa.Port, true
        }
        return;
 }
@@ -109,33 +109,33 @@ func ipToSockaddr(family int, ip IP, port int) (syscall.Sockaddr, os.Error) {
        switch family {
        case syscall.AF_INET:
                if len(ip) == 0 {
-                       ip = IPv4zero;
+                       ip = IPv4zero
                }
                if ip = ip.To4(); ip == nil {
-                       return nil, os.EINVAL;
+                       return nil, os.EINVAL
                }
                s := new(syscall.SockaddrInet4);
                for i := 0; i < IPv4len; i++ {
-                       s.Addr[i] = ip[i];
+                       s.Addr[i] = ip[i]
                }
                s.Port = port;
                return s, nil;
        case syscall.AF_INET6:
                if len(ip) == 0 {
-                       ip = IPzero;
+                       ip = IPzero
                }
                // IPv4 callers use 0.0.0.0 to mean "announce on any available address".
                // In IPv6 mode, Linux treats that as meaning "announce on 0.0.0.0",
                // which it refuses to do.  Rewrite to the IPv6 all zeros.
                if p4 := ip.To4(); p4 != nil && p4[0] == 0 && p4[1] == 0 && p4[2] == 0 && p4[3] == 0 {
-                       ip = IPzero;
+                       ip = IPzero
                }
                if ip = ip.To16(); ip == nil {
-                       return nil, os.EINVAL;
+                       return nil, os.EINVAL
                }
                s := new(syscall.SockaddrInet6);
                for i := 0; i < IPv6len; i++ {
-                       s.Addr[i] = ip[i];
+                       s.Addr[i] = ip[i]
                }
                s.Port = port;
                return s, nil;
@@ -157,7 +157,7 @@ func splitHostPort(hostport string) (host, port string, err os.Error) {
 
        // Can put brackets around host ...
        if len(host) > 0 && host[0] == '[' && host[len(host)-1] == ']' {
-               host = host[1 : len(host)-1];
+               host = host[1 : len(host)-1]
        } else {
                // ... but if there are no brackets, no colons.
                if byteIndex(host, ':') >= 0 {
@@ -173,7 +173,7 @@ func splitHostPort(hostport string) (host, port string, err os.Error) {
 func joinHostPort(host, port string) string {
        // If host has colons, have to bracket it.
        if byteIndex(host, ':') >= 0 {
-               return "["+host+"]:"+port;
+               return "["+host+"]:"+port
        }
        return host+":"+port;
 }
@@ -182,7 +182,7 @@ func joinHostPort(host, port string) string {
 func hostPortToIP(net, hostport string) (ip IP, iport int, err os.Error) {
        host, port, err := splitHostPort(hostport);
        if err != nil {
-               goto Error;
+               goto Error
        }
 
        var addr IP;
@@ -209,7 +209,7 @@ func hostPortToIP(net, hostport string) (ip IP, iport int, err os.Error) {
        if !ok || i != len(port) {
                p, err = LookupPort(net, port);
                if err != nil {
-                       goto Error;
+                       goto Error
                }
        }
        if p < 0 || p > 0xFFFF {
index cc5e27ea043661ae6ea60dbf6a4a0a6344ac384c..6f75261d3d030456e350ec87fbf1b417238cae9d 100644 (file)
@@ -126,12 +126,12 @@ func Dial(net, laddr, raddr string) (c Conn, err os.Error) {
                var la, ra *TCPAddr;
                if laddr != "" {
                        if la, err = ResolveTCPAddr(laddr); err != nil {
-                               goto Error;
+                               goto Error
                        }
                }
                if raddr != "" {
                        if ra, err = ResolveTCPAddr(raddr); err != nil {
-                               goto Error;
+                               goto Error
                        }
                }
                return DialTCP(net, la, ra);
@@ -139,12 +139,12 @@ func Dial(net, laddr, raddr string) (c Conn, err os.Error) {
                var la, ra *UDPAddr;
                if laddr != "" {
                        if la, err = ResolveUDPAddr(laddr); err != nil {
-                               goto Error;
+                               goto Error
                        }
                }
                if raddr != "" {
                        if ra, err = ResolveUDPAddr(raddr); err != nil {
-                               goto Error;
+                               goto Error
                        }
                }
                return DialUDP(net, la, ra);
@@ -152,12 +152,12 @@ func Dial(net, laddr, raddr string) (c Conn, err os.Error) {
                var la, ra *UnixAddr;
                if raddr != "" {
                        if ra, err = ResolveUnixAddr(net, raddr); err != nil {
-                               goto Error;
+                               goto Error
                        }
                }
                if laddr != "" {
                        if la, err = ResolveUnixAddr(net, laddr); err != nil {
-                               goto Error;
+                               goto Error
                        }
                }
                return DialUnix(net, la, ra);
@@ -176,24 +176,24 @@ func Listen(net, laddr string) (l Listener, err os.Error) {
                var la *TCPAddr;
                if laddr != "" {
                        if la, err = ResolveTCPAddr(laddr); err != nil {
-                               return nil, err;
+                               return nil, err
                        }
                }
                l, err := ListenTCP(net, la);
                if err != nil {
-                       return nil, err;
+                       return nil, err
                }
                return l, nil;
        case "unix":
                var la *UnixAddr;
                if laddr != "" {
                        if la, err = ResolveUnixAddr(net, laddr); err != nil {
-                               return nil, err;
+                               return nil, err
                        }
                }
                l, err := ListenUnix(net, la);
                if err != nil {
-                       return nil, err;
+                       return nil, err
                }
                return l, nil;
        }
@@ -209,24 +209,24 @@ func ListenPacket(net, laddr string) (c PacketConn, err os.Error) {
                var la *UDPAddr;
                if laddr != "" {
                        if la, err = ResolveUDPAddr(laddr); err != nil {
-                               return nil, err;
+                               return nil, err
                        }
                }
                c, err := ListenUDP(net, la);
                if err != nil {
-                       return nil, err;
+                       return nil, err
                }
                return c, nil;
        case "unixgram":
                var la *UnixAddr;
                if laddr != "" {
                        if la, err = ResolveUnixAddr(net, laddr); err != nil {
-                               return nil, err;
+                               return nil, err
                        }
                }
                c, err := DialUnix(net, la, nil);
                if err != nil {
-                       return nil, err;
+                       return nil, err
                }
                return c, nil;
        }
@@ -245,10 +245,10 @@ type OpError struct {
 func (e *OpError) String() string {
        s := e.Op;
        if e.Net != "" {
-               s += " " + e.Net;
+               s += " " + e.Net
        }
        if e.Addr != nil {
-               s += " " + e.Addr.String();
+               s += " " + e.Addr.String()
        }
        s += ": " + e.Error.String();
        return s;
@@ -262,7 +262,7 @@ type AddrError struct {
 func (e *AddrError) String() string {
        s := e.Error;
        if e.Addr != "" {
-               s += " " + e.Addr;
+               s += " " + e.Addr
        }
        return s;
 }
index 70577ecbc7a20add009dcf4ffca91bba0d229f71..532a62b985ca0b8fdf84fd1d3ada3c76115ad4f9 100644 (file)
@@ -55,7 +55,7 @@ func TestDialError(t *testing.T) {
        for i, tt := range dialErrorTests {
                c, e := Dial(tt.Net, tt.Laddr, tt.Raddr);
                if c != nil {
-                       c.Close();
+                       c.Close()
                }
                if e == nil {
                        t.Errorf("#%d: nil error, want match for %#q", i, tt.Pattern);
@@ -64,7 +64,7 @@ func TestDialError(t *testing.T) {
                s := e.String();
                match, _ := regexp.MatchString(tt.Pattern, s);
                if !match {
-                       t.Errorf("#%d: %q, want match for %#q", i, s, tt.Pattern);
+                       t.Errorf("#%d: %q, want match for %#q", i, s, tt.Pattern)
                }
        }
 }
index 9ed3f2dbdae71cb33bb1c989ae4f95b23dd86626..aa5bbf39d6007da4efba30b3f8d789198147e4cd 100644 (file)
@@ -29,7 +29,7 @@ func (f *file) getLineFromData() (s string, ok bool) {
                        i++;
                        n := len(data)-i;
                        for j := 0; j < n; j++ {
-                               data[j] = data[i+j];
+                               data[j] = data[i+j]
                        }
                        f.data = data[0:n];
                        return;
@@ -40,13 +40,13 @@ func (f *file) getLineFromData() (s string, ok bool) {
 
 func (f *file) readLine() (s string, ok bool) {
        if s, ok = f.getLineFromData(); ok {
-               return;
+               return
        }
        if len(f.data) < cap(f.data) {
                ln := len(f.data);
                n, _ := io.ReadFull(f.file, f.data[ln:cap(f.data)]);
                if n >= 0 {
-                       f.data = f.data[0 : ln+n];
+                       f.data = f.data[0 : ln+n]
                }
        }
        s, ok = f.getLineFromData();
@@ -56,7 +56,7 @@ func (f *file) readLine() (s string, ok bool) {
 func open(name string) (*file, os.Error) {
        fd, err := os.Open(name, os.O_RDONLY, 0);
        if err != nil {
-               return nil, err;
+               return nil, err
        }
        return &file{fd, make([]byte, 1024)[0:0]}, nil;
 }
@@ -64,7 +64,7 @@ func open(name string) (*file, os.Error) {
 func byteIndex(s string, c byte) int {
        for i := 0; i < len(s); i++ {
                if s[i] == c {
-                       return i;
+                       return i
                }
        }
        return -1;
@@ -75,7 +75,7 @@ func countAnyByte(s string, t string) int {
        n := 0;
        for i := 0; i < len(s); i++ {
                if byteIndex(t, s[i]) >= 0 {
-                       n++;
+                       n++
                }
        }
        return n;
@@ -114,11 +114,11 @@ func dtoi(s string, i0 int) (n int, i int, ok bool) {
        for i = i0; i < len(s) && '0' <= s[i] && s[i] <= '9'; i++ {
                n = n*10 + int(s[i]-'0');
                if n >= big {
-                       return 0, i, false;
+                       return 0, i, false
                }
        }
        if i == i0 {
-               return 0, i, false;
+               return 0, i, false
        }
        return n, i, true;
 }
@@ -138,14 +138,14 @@ func xtoi(s string, i0 int) (n int, i int, ok bool) {
                        n *= 16;
                        n += int(s[i]-'A')+10;
                } else {
-                       break;
+                       break
                }
                if n >= big {
-                       return 0, i, false;
+                       return 0, i, false
                }
        }
        if i == i0 {
-               return 0, i, false;
+               return 0, i, false
        }
        return n, i, true;
 }
@@ -177,7 +177,7 @@ func count(s string, b byte) int {
        n := 0;
        for i := 0; i < len(s); i++ {
                if s[i] == b {
-                       n++;
+                       n++
                }
        }
        return n;
@@ -188,7 +188,7 @@ func last(s string, b byte) int {
        i := len(s);
        for i--; i >= 0; i-- {
                if s[i] == b {
-                       break;
+                       break
                }
        }
        return i;
index e187ee76c5d50485d95a558d53b27ca09bb10ea8..ae94a88c488630ffa40f277c3862cf89edfa208b 100644 (file)
@@ -15,14 +15,14 @@ func TestReadLine(t *testing.T) {
 
        fd, err := os.Open(filename, os.O_RDONLY, 0);
        if err != nil {
-               t.Fatalf("open %s: %v", filename, err);
+               t.Fatalf("open %s: %v", filename, err)
        }
        br := bufio.NewReader(fd);
 
        var file *file;
        file, err = open(filename);
        if file == nil {
-               t.Fatalf("net.open(%s) = nil", filename);
+               t.Fatalf("net.open(%s) = nil", filename)
        }
 
        lineno := 1;
@@ -30,15 +30,15 @@ func TestReadLine(t *testing.T) {
        for {
                bline, berr := br.ReadString('\n');
                if n := len(bline); n > 0 {
-                       bline = bline[0 : n-1];
+                       bline = bline[0 : n-1]
                }
                line, ok := file.readLine();
                if (berr != nil) != !ok || bline != line {
                        t.Fatalf("%s:%d (#%d)\nbufio => %q, %v\nnet => %q, %v",
-                               filename, lineno, byteno, bline, berr, line, ok);
+                               filename, lineno, byteno, bline, berr, line, ok)
                }
                if !ok {
-                       break;
+                       break
                }
                lineno++;
                byteno += len(line)+1;
index 32879d90f9408d9f623b3b09074de6000c66fc01..d43a7347d6470cfd38a0f3f0c8f7576401cc7613 100644 (file)
@@ -21,16 +21,16 @@ func readServices() {
        for line, ok := file.readLine(); ok; line, ok = file.readLine() {
                // "http 80/tcp www www-http # World Wide Web HTTP"
                if i := byteIndex(line, '#'); i >= 0 {
-                       line = line[0:i];
+                       line = line[0:i]
                }
                f := getFields(line);
                if len(f) < 2 {
-                       continue;
+                       continue
                }
                portnet := f[1];        // "tcp/80"
                port, j, ok := dtoi(portnet, 0);
                if !ok || port <= 0 || j >= len(portnet) || portnet[j] != '/' {
-                       continue;
+                       continue
                }
                netw := portnet[j+1 : len(portnet)];    // "tcp"
                m, ok1 := services[netw];
@@ -40,7 +40,7 @@ func readServices() {
                }
                for i := 0; i < len(f); i++ {
                        if i != 1 {     // f[1] was port/net
-                               m[f[i]] = port;
+                               m[f[i]] = port
                        }
                }
        }
@@ -53,14 +53,14 @@ func LookupPort(network, service string) (port int, err os.Error) {
 
        switch network {
        case "tcp4", "tcp6":
-               network = "tcp";
+               network = "tcp"
        case "udp4", "udp6":
-               network = "udp";
+               network = "udp"
        }
 
        if m, ok := services[network]; ok {
                if port, ok = m[service]; ok {
-                       return;
+                       return
                }
        }
        return 0, &AddrError{"unknown port", network+"/"+service};
index 0d0f4fe48e92cd6bdd5fad6a2ea842a39b21ea56..9a58d3731efdf9b0f53ad986615c90a013b12875 100644 (file)
@@ -52,7 +52,7 @@ func TestLookupPort(t *testing.T) {
                tt := porttests[i];
                if port, err := LookupPort(tt.netw, tt.name); port != tt.port || (err == nil) != tt.ok {
                        t.Errorf("LookupPort(%q, %q) = %v, %s; want %v",
-                               tt.netw, tt.name, port, err, tt.port);
+                               tt.netw, tt.name, port, err, tt.port)
                }
        }
 }
index 6a7c479f35aa52095b0b28bdba5f7bb66d6f7807..21ee92891dbab9370180ba9f56fb08c252ce1ec1 100644 (file)
@@ -18,7 +18,7 @@ func runEcho(fd io.ReadWriter, done chan<- int) {
        for {
                n, err := fd.Read(&buf);
                if err != nil || n == 0 {
-                       break;
+                       break
                }
                fd.Write(buf[0:n]);
        }
@@ -28,14 +28,14 @@ func runEcho(fd io.ReadWriter, done chan<- int) {
 func runServe(t *testing.T, network, addr string, listening chan<- string, done chan<- int) {
        l, err := Listen(network, addr);
        if err != nil {
-               t.Fatalf("net.Listen(%q, %q) = _, %v", network, addr, err);
+               t.Fatalf("net.Listen(%q, %q) = _, %v", network, addr, err)
        }
        listening <- l.Addr().String();
 
        for {
                fd, err := l.Accept();
                if err != nil {
-                       break;
+                       break
                }
                echodone := make(chan int);
                go runEcho(fd, echodone);
@@ -48,11 +48,11 @@ func runServe(t *testing.T, network, addr string, listening chan<- string, done
 func connect(t *testing.T, network, addr string) {
        var laddr string;
        if network == "unixgram" {
-               laddr = addr+".local";
+               laddr = addr+".local"
        }
        fd, err := Dial(network, laddr, addr);
        if err != nil {
-               t.Fatalf("net.Dial(%q, %q, %q) = _, %v", network, laddr, addr, err);
+               t.Fatalf("net.Dial(%q, %q, %q) = _, %v", network, laddr, addr, err)
        }
 
        b := strings.Bytes("hello, world\n");
@@ -60,12 +60,12 @@ func connect(t *testing.T, network, addr string) {
 
        n, errno := fd.Write(b);
        if n != len(b) {
-               t.Fatalf("fd.Write(%q) = %d, %v", b, n, errno);
+               t.Fatalf("fd.Write(%q) = %d, %v", b, n, errno)
        }
 
        n, errno = fd.Read(&b1);
        if n != len(b) {
-               t.Fatalf("fd.Read() = %d, %v", n, errno);
+               t.Fatalf("fd.Read() = %d, %v", n, errno)
        }
        fd.Close();
 }
@@ -75,12 +75,12 @@ func doTest(t *testing.T, network, listenaddr, dialaddr string) {
        listening := make(chan string);
        done := make(chan int);
        if network == "tcp" {
-               listenaddr += ":0";     // any available port
+               listenaddr += ":0"      // any available port
        }
        go runServe(t, network, listenaddr, listening, done);
        addr := <-listening;    // wait for server to start
        if network == "tcp" {
-               dialaddr += addr[strings.LastIndex(addr, ":") : len(addr)];
+               dialaddr += addr[strings.LastIndex(addr, ":") : len(addr)]
        }
        connect(t, network, dialaddr);
        <-done; // make sure server stopped
@@ -100,14 +100,14 @@ func TestUnixServer(t *testing.T) {
        os.Remove("/tmp/gotest.net");
        if syscall.OS == "linux" {
                // Test abstract unix domain socket, a Linux-ism
-               doTest(t, "unix", "@gotest/net", "@gotest/net");
+               doTest(t, "unix", "@gotest/net", "@gotest/net")
        }
 }
 
 func runPacket(t *testing.T, network, addr string, listening chan<- string, done chan<- int) {
        c, err := ListenPacket(network, addr);
        if err != nil {
-               t.Fatalf("net.ListenPacket(%q, %q) = _, %v", network, addr, err);
+               t.Fatalf("net.ListenPacket(%q, %q) = _, %v", network, addr, err)
        }
        listening <- c.LocalAddr().String();
        c.SetReadTimeout(10e6); // 10ms
@@ -116,15 +116,15 @@ func runPacket(t *testing.T, network, addr string, listening chan<- string, done
                n, addr, err := c.ReadFrom(&buf);
                if err == os.EAGAIN {
                        if done <- 1 {
-                               break;
+                               break
                        }
                        continue;
                }
                if err != nil {
-                       break;
+                       break
                }
                if _, err = c.WriteTo(buf[0:n], addr); err != nil {
-                       t.Fatalf("WriteTo %v: %v", addr, err);
+                       t.Fatalf("WriteTo %v: %v", addr, err)
                }
        }
        c.Close();
@@ -136,12 +136,12 @@ func doTestPacket(t *testing.T, network, listenaddr, dialaddr string) {
        listening := make(chan string);
        done := make(chan int);
        if network == "udp" {
-               listenaddr += ":0";     // any available port
+               listenaddr += ":0"      // any available port
        }
        go runPacket(t, network, listenaddr, listening, done);
        addr := <-listening;    // wait for server to start
        if network == "udp" {
-               dialaddr += addr[strings.LastIndex(addr, ":") : len(addr)];
+               dialaddr += addr[strings.LastIndex(addr, ":") : len(addr)]
        }
        connect(t, network, dialaddr);
        <-done; // tell server to stop
@@ -164,6 +164,6 @@ func TestUnixDatagramServer(t *testing.T) {
        os.Remove("/tmp/gotest1.net.local");
        if syscall.OS == "linux" {
                // Test abstract unix domain socket, a Linux-ism
-               doTestPacket(t, "unixgram", "@gotest1/net", "@gotest1/net");
+               doTestPacket(t, "unixgram", "@gotest1/net", "@gotest1/net")
        }
 }
index a078f4c44f202f6dad960b8d7d50b95639ff1609..c670aa21e7e1b53dd46f47c48a595b8dc40f33ba 100644 (file)
@@ -15,7 +15,7 @@ import (
 // Boolean to int.
 func boolint(b bool) int {
        if b {
-               return 1;
+               return 1
        }
        return 0;
 }
@@ -66,7 +66,7 @@ func socket(net string, f, p, t int, la, ra syscall.Sockaddr, toAddr func(syscal
 }
 
 func setsockoptInt(fd, level, opt int, value int) os.Error {
-       return os.NewSyscallError("setsockopt", syscall.SetsockoptInt(fd, level, opt, value));
+       return os.NewSyscallError("setsockopt", syscall.SetsockoptInt(fd, level, opt, value))
 }
 
 func setsockoptNsec(fd, level, opt int, nsec int64) os.Error {
@@ -75,11 +75,11 @@ func setsockoptNsec(fd, level, opt int, nsec int64) os.Error {
 }
 
 func setReadBuffer(fd *netFD, bytes int) os.Error {
-       return setsockoptInt(fd.fd, syscall.SOL_SOCKET, syscall.SO_RCVBUF, bytes);
+       return setsockoptInt(fd.fd, syscall.SOL_SOCKET, syscall.SO_RCVBUF, bytes)
 }
 
 func setWriteBuffer(fd *netFD, bytes int) os.Error {
-       return setsockoptInt(fd.fd, syscall.SOL_SOCKET, syscall.SO_SNDBUF, bytes);
+       return setsockoptInt(fd.fd, syscall.SOL_SOCKET, syscall.SO_SNDBUF, bytes)
 }
 
 func setReadTimeout(fd *netFD, nsec int64) os.Error {
@@ -94,26 +94,26 @@ func setWriteTimeout(fd *netFD, nsec int64) os.Error {
 
 func setTimeout(fd *netFD, nsec int64) os.Error {
        if e := setReadTimeout(fd, nsec); e != nil {
-               return e;
+               return e
        }
        return setWriteTimeout(fd, nsec);
 }
 
 func setReuseAddr(fd *netFD, reuse bool) os.Error {
-       return setsockoptInt(fd.fd, syscall.SOL_SOCKET, syscall.SO_REUSEADDR, boolint(reuse));
+       return setsockoptInt(fd.fd, syscall.SOL_SOCKET, syscall.SO_REUSEADDR, boolint(reuse))
 }
 
 func bindToDevice(fd *netFD, dev string) os.Error {
        // TODO(rsc): call setsockopt with null-terminated string pointer
-       return os.EINVAL;
+       return os.EINVAL
 }
 
 func setDontRoute(fd *netFD, dontroute bool) os.Error {
-       return setsockoptInt(fd.fd, syscall.SOL_SOCKET, syscall.SO_DONTROUTE, boolint(dontroute));
+       return setsockoptInt(fd.fd, syscall.SOL_SOCKET, syscall.SO_DONTROUTE, boolint(dontroute))
 }
 
 func setKeepAlive(fd *netFD, keepalive bool) os.Error {
-       return setsockoptInt(fd.fd, syscall.SOL_SOCKET, syscall.SO_KEEPALIVE, boolint(keepalive));
+       return setsockoptInt(fd.fd, syscall.SOL_SOCKET, syscall.SO_KEEPALIVE, boolint(keepalive))
 }
 
 func setLinger(fd *netFD, sec int) os.Error {
@@ -134,17 +134,17 @@ type UnknownSocketError struct {
 }
 
 func (e *UnknownSocketError) String() string {
-       return "unknown socket address type " + reflect.Typeof(e.sa).String();
+       return "unknown socket address type " + reflect.Typeof(e.sa).String()
 }
 
 func sockaddrToString(sa syscall.Sockaddr) (name string, err os.Error) {
        switch a := sa.(type) {
        case *syscall.SockaddrInet4:
-               return joinHostPort(IP(&a.Addr).String(), itoa(a.Port)), nil;
+               return joinHostPort(IP(&a.Addr).String(), itoa(a.Port)), nil
        case *syscall.SockaddrInet6:
-               return joinHostPort(IP(&a.Addr).String(), itoa(a.Port)), nil;
+               return joinHostPort(IP(&a.Addr).String(), itoa(a.Port)), nil
        case *syscall.SockaddrUnix:
-               return a.Name, nil;
+               return a.Name, nil
        }
 
        return "", &UnknownSocketError{sa};
index a49a73d1b07baa385f84e50fcb30c5a0e0fbb06b..2633196266c34c6eb0eb7660ecea32201b2c2415 100644 (file)
@@ -14,9 +14,9 @@ import (
 func sockaddrToTCP(sa syscall.Sockaddr) Addr {
        switch sa := sa.(type) {
        case *syscall.SockaddrInet4:
-               return &TCPAddr{&sa.Addr, sa.Port};
+               return &TCPAddr{&sa.Addr, sa.Port}
        case *syscall.SockaddrInet6:
-               return &TCPAddr{&sa.Addr, sa.Port};
+               return &TCPAddr{&sa.Addr, sa.Port}
        }
        return nil;
 }
@@ -34,21 +34,21 @@ func (a *TCPAddr) String() string   { return joinHostPort(a.IP.String(), itoa(a.Po
 
 func (a *TCPAddr) family() int {
        if a == nil || len(a.IP) <= 4 {
-               return syscall.AF_INET;
+               return syscall.AF_INET
        }
        if ip := a.IP.To4(); ip != nil {
-               return syscall.AF_INET;
+               return syscall.AF_INET
        }
        return syscall.AF_INET6;
 }
 
 func (a *TCPAddr) sockaddr(family int) (syscall.Sockaddr, os.Error) {
-       return ipToSockaddr(family, a.IP, a.Port);
+       return ipToSockaddr(family, a.IP, a.Port)
 }
 
 func (a *TCPAddr) toAddr() sockaddr {
        if a == nil {   // nil *TCPAddr
-               return nil;     // nil interface
+               return nil      // nil interface
        }
        return a;
 }
@@ -60,7 +60,7 @@ func (a *TCPAddr) toAddr() sockaddr {
 func ResolveTCPAddr(addr string) (*TCPAddr, os.Error) {
        ip, port, err := hostPortToIP("tcp", addr);
        if err != nil {
-               return nil, err;
+               return nil, err
        }
        return &TCPAddr{ip, port}, nil;
 }
@@ -87,7 +87,7 @@ func (c *TCPConn) ok() bool   { return c != nil && c.fd != nil }
 // after a fixed time limit; see SetTimeout and SetReadTimeout.
 func (c *TCPConn) Read(b []byte) (n int, err os.Error) {
        if !c.ok() {
-               return 0, os.EINVAL;
+               return 0, os.EINVAL
        }
        return c.fd.Read(b);
 }
@@ -98,7 +98,7 @@ func (c *TCPConn) Read(b []byte) (n int, err os.Error) {
 // after a fixed time limit; see SetTimeout and SetReadTimeout.
 func (c *TCPConn) Write(b []byte) (n int, err os.Error) {
        if !c.ok() {
-               return 0, os.EINVAL;
+               return 0, os.EINVAL
        }
        return c.fd.Write(b);
 }
@@ -106,7 +106,7 @@ func (c *TCPConn) Write(b []byte) (n int, err os.Error) {
 // Close closes the TCP connection.
 func (c *TCPConn) Close() os.Error {
        if !c.ok() {
-               return os.EINVAL;
+               return os.EINVAL
        }
        err := c.fd.Close();
        c.fd = nil;
@@ -116,7 +116,7 @@ func (c *TCPConn) Close() os.Error {
 // LocalAddr returns the local network address, a *TCPAddr.
 func (c *TCPConn) LocalAddr() Addr {
        if !c.ok() {
-               return nil;
+               return nil
        }
        return c.fd.laddr;
 }
@@ -124,7 +124,7 @@ func (c *TCPConn) LocalAddr() Addr {
 // RemoteAddr returns the remote network address, a *TCPAddr.
 func (c *TCPConn) RemoteAddr() Addr {
        if !c.ok() {
-               return nil;
+               return nil
        }
        return c.fd.raddr;
 }
@@ -133,7 +133,7 @@ func (c *TCPConn) RemoteAddr() Addr {
 // with the connection.
 func (c *TCPConn) SetTimeout(nsec int64) os.Error {
        if !c.ok() {
-               return os.EINVAL;
+               return os.EINVAL
        }
        return setTimeout(c.fd, nsec);
 }
@@ -143,7 +143,7 @@ func (c *TCPConn) SetTimeout(nsec int64) os.Error {
 // Setting nsec == 0 (the default) disables the deadline.
 func (c *TCPConn) SetReadTimeout(nsec int64) os.Error {
        if !c.ok() {
-               return os.EINVAL;
+               return os.EINVAL
        }
        return setReadTimeout(c.fd, nsec);
 }
@@ -155,7 +155,7 @@ func (c *TCPConn) SetReadTimeout(nsec int64) os.Error {
 // some of the data was successfully written.
 func (c *TCPConn) SetWriteTimeout(nsec int64) os.Error {
        if !c.ok() {
-               return os.EINVAL;
+               return os.EINVAL
        }
        return setWriteTimeout(c.fd, nsec);
 }
@@ -164,7 +164,7 @@ func (c *TCPConn) SetWriteTimeout(nsec int64) os.Error {
 // receive buffer associated with the connection.
 func (c *TCPConn) SetReadBuffer(bytes int) os.Error {
        if !c.ok() {
-               return os.EINVAL;
+               return os.EINVAL
        }
        return setReadBuffer(c.fd, bytes);
 }
@@ -173,7 +173,7 @@ func (c *TCPConn) SetReadBuffer(bytes int) os.Error {
 // transmit buffer associated with the connection.
 func (c *TCPConn) SetWriteBuffer(bytes int) os.Error {
        if !c.ok() {
-               return os.EINVAL;
+               return os.EINVAL
        }
        return setWriteBuffer(c.fd, bytes);
 }
@@ -191,7 +191,7 @@ func (c *TCPConn) SetWriteBuffer(bytes int) os.Error {
 // data to be sent and acknowledged.
 func (c *TCPConn) SetLinger(sec int) os.Error {
        if !c.ok() {
-               return os.EINVAL;
+               return os.EINVAL
        }
        return setLinger(c.fd, sec);
 }
@@ -200,7 +200,7 @@ func (c *TCPConn) SetLinger(sec int) os.Error {
 // keepalive messages on the connection.
 func (c *TCPConn) SetKeepAlive(keepalive bool) os.Error {
        if !c.ok() {
-               return os.EINVAL;
+               return os.EINVAL
        }
        return setKeepAlive(c.fd, keepalive);
 }
@@ -209,11 +209,11 @@ func (c *TCPConn) SetKeepAlive(keepalive bool) os.Error {
 // and returns a TCPConn structure.
 func DialTCP(net string, laddr, raddr *TCPAddr) (c *TCPConn, err os.Error) {
        if raddr == nil {
-               return nil, &OpError{"dial", "tcp", nil, errMissingAddress};
+               return nil, &OpError{"dial", "tcp", nil, errMissingAddress}
        }
        fd, e := internetSocket(net, laddr.toAddr(), raddr.toAddr(), syscall.SOCK_STREAM, "dial", sockaddrToTCP);
        if e != nil {
-               return nil, e;
+               return nil, e
        }
        return newTCPConn(fd), nil;
 }
@@ -232,7 +232,7 @@ type TCPListener struct {
 func ListenTCP(net string, laddr *TCPAddr) (l *TCPListener, err os.Error) {
        fd, err := internetSocket(net, laddr.toAddr(), nil, syscall.SOCK_STREAM, "listen", sockaddrToTCP);
        if err != nil {
-               return nil, err;
+               return nil, err
        }
        errno := syscall.Listen(fd.fd, listenBacklog());
        if errno != 0 {
@@ -248,11 +248,11 @@ func ListenTCP(net string, laddr *TCPAddr) (l *TCPListener, err os.Error) {
 // and the remote address.
 func (l *TCPListener) AcceptTCP() (c *TCPConn, err os.Error) {
        if l == nil || l.fd == nil || l.fd.fd < 0 {
-               return nil, os.EINVAL;
+               return nil, os.EINVAL
        }
        fd, err := l.fd.accept(sockaddrToTCP);
        if err != nil {
-               return nil, err;
+               return nil, err
        }
        return newTCPConn(fd), nil;
 }
@@ -262,7 +262,7 @@ func (l *TCPListener) AcceptTCP() (c *TCPConn, err os.Error) {
 func (l *TCPListener) Accept() (c Conn, err os.Error) {
        c1, err := l.AcceptTCP();
        if err != nil {
-               return nil, err;
+               return nil, err
        }
        return c1, nil;
 }
@@ -271,7 +271,7 @@ func (l *TCPListener) Accept() (c Conn, err os.Error) {
 // Already Accepted connections are not closed.
 func (l *TCPListener) Close() os.Error {
        if l == nil || l.fd == nil {
-               return os.EINVAL;
+               return os.EINVAL
        }
        return l.fd.Close();
 }
index acac3c75db8b5e2dc24bca41081c5ad144e271b0..57bfa090c0a9b96f8508ee3347ce0fd6524c72e3 100644 (file)
@@ -13,7 +13,7 @@ func testTimeout(t *testing.T, network, addr string) {
        fd, err := Dial(network, "", addr);
        defer fd.Close();
        if err != nil {
-               t.Errorf("dial %s %s failed: %v", network, addr, err);
+               t.Errorf("dial %s %s failed: %v", network, addr, err)
        }
        t0 := time.Nanoseconds();
        fd.SetReadTimeout(1e8); // 100ms
@@ -21,10 +21,10 @@ func testTimeout(t *testing.T, network, addr string) {
        n, err1 := fd.Read(&b);
        t1 := time.Nanoseconds();
        if n != 0 || !isEAGAIN(err1) {
-               t.Errorf("fd.Read on %s %s did not return 0, EAGAIN: %v, %v", network, addr, n, err1);
+               t.Errorf("fd.Read on %s %s did not return 0, EAGAIN: %v, %v", network, addr, n, err1)
        }
        if t1-t0 < 0.5e8 || t1-t0 > 1.5e8 {
-               t.Errorf("fd.Read on %s %s took %f seconds, expected 0.1", network, addr, float64(t1-t0)/1e9);
+               t.Errorf("fd.Read on %s %s took %f seconds, expected 0.1", network, addr, float64(t1-t0)/1e9)
        }
 }
 
@@ -34,5 +34,5 @@ func TestTimeoutTCP(t *testing.T) {
        // 74.125.19.99 is www.google.com.
        // could use dns, but dns depends on
        // timeouts and this is the timeout test.
-       testTimeout(t, "tcp", "74.125.19.99:80");
+       testTimeout(t, "tcp", "74.125.19.99:80")
 }
index 4449e837931daa0c10c7690ca4e424b365b54f8e..32c7c734cfa403678e76ccaa851e98fd9baddc45 100644 (file)
@@ -14,9 +14,9 @@ import (
 func sockaddrToUDP(sa syscall.Sockaddr) Addr {
        switch sa := sa.(type) {
        case *syscall.SockaddrInet4:
-               return &UDPAddr{&sa.Addr, sa.Port};
+               return &UDPAddr{&sa.Addr, sa.Port}
        case *syscall.SockaddrInet6:
-               return &UDPAddr{&sa.Addr, sa.Port};
+               return &UDPAddr{&sa.Addr, sa.Port}
        }
        return nil;
 }
@@ -34,21 +34,21 @@ func (a *UDPAddr) String() string   { return joinHostPort(a.IP.String(), itoa(a.Po
 
 func (a *UDPAddr) family() int {
        if a == nil || len(a.IP) <= 4 {
-               return syscall.AF_INET;
+               return syscall.AF_INET
        }
        if ip := a.IP.To4(); ip != nil {
-               return syscall.AF_INET;
+               return syscall.AF_INET
        }
        return syscall.AF_INET6;
 }
 
 func (a *UDPAddr) sockaddr(family int) (syscall.Sockaddr, os.Error) {
-       return ipToSockaddr(family, a.IP, a.Port);
+       return ipToSockaddr(family, a.IP, a.Port)
 }
 
 func (a *UDPAddr) toAddr() sockaddr {
        if a == nil {   // nil *UDPAddr
-               return nil;     // nil interface
+               return nil      // nil interface
        }
        return a;
 }
@@ -60,7 +60,7 @@ func (a *UDPAddr) toAddr() sockaddr {
 func ResolveUDPAddr(addr string) (*UDPAddr, os.Error) {
        ip, port, err := hostPortToIP("udp", addr);
        if err != nil {
-               return nil, err;
+               return nil, err
        }
        return &UDPAddr{ip, port}, nil;
 }
@@ -85,7 +85,7 @@ func (c *UDPConn) ok() bool   { return c != nil && c.fd != nil }
 // after a fixed time limit; see SetTimeout and SetReadTimeout.
 func (c *UDPConn) Read(b []byte) (n int, err os.Error) {
        if !c.ok() {
-               return 0, os.EINVAL;
+               return 0, os.EINVAL
        }
        return c.fd.Read(b);
 }
@@ -96,7 +96,7 @@ func (c *UDPConn) Read(b []byte) (n int, err os.Error) {
 // after a fixed time limit; see SetTimeout and SetReadTimeout.
 func (c *UDPConn) Write(b []byte) (n int, err os.Error) {
        if !c.ok() {
-               return 0, os.EINVAL;
+               return 0, os.EINVAL
        }
        return c.fd.Write(b);
 }
@@ -104,7 +104,7 @@ func (c *UDPConn) Write(b []byte) (n int, err os.Error) {
 // Close closes the UDP connection.
 func (c *UDPConn) Close() os.Error {
        if !c.ok() {
-               return os.EINVAL;
+               return os.EINVAL
        }
        err := c.fd.Close();
        c.fd = nil;
@@ -114,7 +114,7 @@ func (c *UDPConn) Close() os.Error {
 // LocalAddr returns the local network address.
 func (c *UDPConn) LocalAddr() Addr {
        if !c.ok() {
-               return nil;
+               return nil
        }
        return c.fd.laddr;
 }
@@ -122,7 +122,7 @@ func (c *UDPConn) LocalAddr() Addr {
 // RemoteAddr returns the remote network address, a *UDPAddr.
 func (c *UDPConn) RemoteAddr() Addr {
        if !c.ok() {
-               return nil;
+               return nil
        }
        return c.fd.raddr;
 }
@@ -131,7 +131,7 @@ func (c *UDPConn) RemoteAddr() Addr {
 // with the connection.
 func (c *UDPConn) SetTimeout(nsec int64) os.Error {
        if !c.ok() {
-               return os.EINVAL;
+               return os.EINVAL
        }
        return setTimeout(c.fd, nsec);
 }
@@ -141,7 +141,7 @@ func (c *UDPConn) SetTimeout(nsec int64) os.Error {
 // Setting nsec == 0 (the default) disables the deadline.
 func (c *UDPConn) SetReadTimeout(nsec int64) os.Error {
        if !c.ok() {
-               return os.EINVAL;
+               return os.EINVAL
        }
        return setReadTimeout(c.fd, nsec);
 }
@@ -153,7 +153,7 @@ func (c *UDPConn) SetReadTimeout(nsec int64) os.Error {
 // some of the data was successfully written.
 func (c *UDPConn) SetWriteTimeout(nsec int64) os.Error {
        if !c.ok() {
-               return os.EINVAL;
+               return os.EINVAL
        }
        return setWriteTimeout(c.fd, nsec);
 }
@@ -162,7 +162,7 @@ func (c *UDPConn) SetWriteTimeout(nsec int64) os.Error {
 // receive buffer associated with the connection.
 func (c *UDPConn) SetReadBuffer(bytes int) os.Error {
        if !c.ok() {
-               return os.EINVAL;
+               return os.EINVAL
        }
        return setReadBuffer(c.fd, bytes);
 }
@@ -171,7 +171,7 @@ func (c *UDPConn) SetReadBuffer(bytes int) os.Error {
 // transmit buffer associated with the connection.
 func (c *UDPConn) SetWriteBuffer(bytes int) os.Error {
        if !c.ok() {
-               return os.EINVAL;
+               return os.EINVAL
        }
        return setWriteBuffer(c.fd, bytes);
 }
@@ -186,17 +186,17 @@ func (c *UDPConn) SetWriteBuffer(bytes int) os.Error {
 // after a fixed time limit; see SetTimeout and SetReadTimeout.
 func (c *UDPConn) ReadFromUDP(b []byte) (n int, addr *UDPAddr, err os.Error) {
        if !c.ok() {
-               return 0, nil, os.EINVAL;
+               return 0, nil, os.EINVAL
        }
        n, sa, errno := syscall.Recvfrom(c.fd.fd, b, 0);
        if errno != 0 {
-               err = os.Errno(errno);
+               err = os.Errno(errno)
        }
        switch sa := sa.(type) {
        case *syscall.SockaddrInet4:
-               addr = &UDPAddr{&sa.Addr, sa.Port};
+               addr = &UDPAddr{&sa.Addr, sa.Port}
        case *syscall.SockaddrInet6:
-               addr = &UDPAddr{&sa.Addr, sa.Port};
+               addr = &UDPAddr{&sa.Addr, sa.Port}
        }
        return;
 }
@@ -209,7 +209,7 @@ func (c *UDPConn) ReadFromUDP(b []byte) (n int, addr *UDPAddr, err os.Error) {
 // after a fixed time limit; see SetTimeout and SetReadTimeout.
 func (c *UDPConn) ReadFrom(b []byte) (n int, addr Addr, err os.Error) {
        if !c.ok() {
-               return 0, nil, os.EINVAL;
+               return 0, nil, os.EINVAL
        }
        n, uaddr, err := c.ReadFromUDP(b);
        return n, uaddr.toAddr(), err;
@@ -222,14 +222,14 @@ func (c *UDPConn) ReadFrom(b []byte) (n int, addr Addr, err os.Error) {
 // On packet-oriented connections such as UDP, write timeouts are rare.
 func (c *UDPConn) WriteToUDP(b []byte, addr *UDPAddr) (n int, err os.Error) {
        if !c.ok() {
-               return 0, os.EINVAL;
+               return 0, os.EINVAL
        }
        sa, err := addr.sockaddr(c.fd.family);
        if err != nil {
-               return 0, err;
+               return 0, err
        }
        if errno := syscall.Sendto(c.fd.fd, b, 0, sa); errno != 0 {
-               return 0, os.Errno(errno);
+               return 0, os.Errno(errno)
        }
        return len(b), nil;
 }
@@ -241,11 +241,11 @@ func (c *UDPConn) WriteToUDP(b []byte, addr *UDPAddr) (n int, err os.Error) {
 // On packet-oriented connections such as UDP, write timeouts are rare.
 func (c *UDPConn) WriteTo(b []byte, addr Addr) (n int, err os.Error) {
        if !c.ok() {
-               return 0, os.EINVAL;
+               return 0, os.EINVAL
        }
        a, ok := addr.(*UDPAddr);
        if !ok {
-               return 0, &OpError{"writeto", "udp", addr, os.EINVAL};
+               return 0, &OpError{"writeto", "udp", addr, os.EINVAL}
        }
        return c.WriteToUDP(b, a);
 }
@@ -257,14 +257,14 @@ func DialUDP(net string, laddr, raddr *UDPAddr) (c *UDPConn, err os.Error) {
        switch net {
        case "udp", "udp4", "udp6":
        default:
-               return nil, UnknownNetworkError(net);
+               return nil, UnknownNetworkError(net)
        }
        if raddr == nil {
-               return nil, &OpError{"dial", "udp", nil, errMissingAddress};
+               return nil, &OpError{"dial", "udp", nil, errMissingAddress}
        }
        fd, e := internetSocket(net, laddr.toAddr(), raddr.toAddr(), syscall.SOCK_DGRAM, "dial", sockaddrToUDP);
        if e != nil {
-               return nil, e;
+               return nil, e
        }
        return newUDPConn(fd), nil;
 }
@@ -277,14 +277,14 @@ func ListenUDP(net string, laddr *UDPAddr) (c *UDPConn, err os.Error) {
        switch net {
        case "udp", "udp4", "udp6":
        default:
-               return nil, UnknownNetworkError(net);
+               return nil, UnknownNetworkError(net)
        }
        if laddr == nil {
-               return nil, &OpError{"listen", "udp", nil, errMissingAddress};
+               return nil, &OpError{"listen", "udp", nil, errMissingAddress}
        }
        fd, e := internetSocket(net, laddr.toAddr(), nil, syscall.SOCK_DGRAM, "dial", sockaddrToUDP);
        if e != nil {
-               return nil, e;
+               return nil, e
        }
        return newUDPConn(fd), nil;
 }
index 033f650c3bcd7772e3021a1408facdb4e5fa048c..f5631d800597d0b29b0d93479db40cbfa33e9862 100644 (file)
@@ -15,52 +15,52 @@ func unixSocket(net string, laddr, raddr *UnixAddr, mode string) (fd *netFD, err
        var proto int;
        switch net {
        default:
-               return nil, UnknownNetworkError(net);
+               return nil, UnknownNetworkError(net)
        case "unix":
-               proto = syscall.SOCK_STREAM;
+               proto = syscall.SOCK_STREAM
        case "unixgram":
-               proto = syscall.SOCK_DGRAM;
+               proto = syscall.SOCK_DGRAM
        }
 
        var la, ra syscall.Sockaddr;
        switch mode {
        default:
-               panic("unixSocket", mode);
+               panic("unixSocket", mode)
 
        case "dial":
                if laddr != nil {
-                       la = &syscall.SockaddrUnix{Name: laddr.Name};
+                       la = &syscall.SockaddrUnix{Name: laddr.Name}
                }
                if raddr != nil {
-                       ra = &syscall.SockaddrUnix{Name: raddr.Name};
+                       ra = &syscall.SockaddrUnix{Name: raddr.Name}
                } else if proto != syscall.SOCK_DGRAM || laddr == nil {
-                       return nil, &OpError{mode, net, nil, errMissingAddress};
+                       return nil, &OpError{mode, net, nil, errMissingAddress}
                }
 
        case "listen":
                if laddr == nil {
-                       return nil, &OpError{mode, net, nil, errMissingAddress};
+                       return nil, &OpError{mode, net, nil, errMissingAddress}
                }
                la = &syscall.SockaddrUnix{Name: laddr.Name};
                if raddr != nil {
-                       return nil, &OpError{mode, net, raddr, &AddrError{"unexpected remote address", raddr.String()}};
+                       return nil, &OpError{mode, net, raddr, &AddrError{"unexpected remote address", raddr.String()}}
                }
        }
 
        f := sockaddrToUnix;
        if proto != syscall.SOCK_STREAM {
-               f = sockaddrToUnixgram;
+               f = sockaddrToUnixgram
        }
        fd, err = socket(net, syscall.AF_UNIX, proto, 0, la, ra, f);
        if err != nil {
-               goto Error;
+               goto Error
        }
        return fd, nil;
 
 Error:
        addr := raddr;
        if mode == "listen" {
-               addr = laddr;
+               addr = laddr
        }
        return nil, &OpError{mode, net, addr, err};
 }
@@ -73,14 +73,14 @@ type UnixAddr struct {
 
 func sockaddrToUnix(sa syscall.Sockaddr) Addr {
        if s, ok := sa.(*syscall.SockaddrUnix); ok {
-               return &UnixAddr{s.Name, false};
+               return &UnixAddr{s.Name, false}
        }
        return nil;
 }
 
 func sockaddrToUnixgram(sa syscall.Sockaddr) Addr {
        if s, ok := sa.(*syscall.SockaddrUnix); ok {
-               return &UnixAddr{s.Name, true};
+               return &UnixAddr{s.Name, true}
        }
        return nil;
 }
@@ -88,21 +88,21 @@ func sockaddrToUnixgram(sa syscall.Sockaddr) Addr {
 // Network returns the address's network name, "unix" or "unixgram".
 func (a *UnixAddr) Network() string {
        if a == nil || !a.Datagram {
-               return "unix";
+               return "unix"
        }
        return "unixgram";
 }
 
 func (a *UnixAddr) String() string {
        if a == nil {
-               return "<nil>";
+               return "<nil>"
        }
        return a.Name;
 }
 
 func (a *UnixAddr) toAddr() Addr {
        if a == nil {   // nil *UnixAddr
-               return nil;     // nil interface
+               return nil      // nil interface
        }
        return a;
 }
@@ -114,9 +114,9 @@ func ResolveUnixAddr(net, addr string) (*UnixAddr, os.Error) {
        switch net {
        case "unix":
        case "unixgram":
-               datagram = true;
+               datagram = true
        default:
-               return nil, UnknownNetworkError(net);
+               return nil, UnknownNetworkError(net)
        }
        return &UnixAddr{addr, datagram}, nil;
 }
@@ -139,7 +139,7 @@ func (c *UnixConn) ok() bool        { return c != nil && c.fd != nil }
 // after a fixed time limit; see SetTimeout and SetReadTimeout.
 func (c *UnixConn) Read(b []byte) (n int, err os.Error) {
        if !c.ok() {
-               return 0, os.EINVAL;
+               return 0, os.EINVAL
        }
        return c.fd.Read(b);
 }
@@ -150,7 +150,7 @@ func (c *UnixConn) Read(b []byte) (n int, err os.Error) {
 // after a fixed time limit; see SetTimeout and SetReadTimeout.
 func (c *UnixConn) Write(b []byte) (n int, err os.Error) {
        if !c.ok() {
-               return 0, os.EINVAL;
+               return 0, os.EINVAL
        }
        return c.fd.Write(b);
 }
@@ -158,7 +158,7 @@ func (c *UnixConn) Write(b []byte) (n int, err os.Error) {
 // Close closes the Unix domain connection.
 func (c *UnixConn) Close() os.Error {
        if !c.ok() {
-               return os.EINVAL;
+               return os.EINVAL
        }
        err := c.fd.Close();
        c.fd = nil;
@@ -169,7 +169,7 @@ func (c *UnixConn) Close() os.Error {
 // Unlike in other protocols, LocalAddr is usually nil for dialed connections.
 func (c *UnixConn) LocalAddr() Addr {
        if !c.ok() {
-               return nil;
+               return nil
        }
        return c.fd.laddr;
 }
@@ -179,7 +179,7 @@ func (c *UnixConn) LocalAddr() Addr {
 // accepted by a listener.
 func (c *UnixConn) RemoteAddr() Addr {
        if !c.ok() {
-               return nil;
+               return nil
        }
        return c.fd.raddr;
 }
@@ -188,7 +188,7 @@ func (c *UnixConn) RemoteAddr() Addr {
 // with the connection.
 func (c *UnixConn) SetTimeout(nsec int64) os.Error {
        if !c.ok() {
-               return os.EINVAL;
+               return os.EINVAL
        }
        return setTimeout(c.fd, nsec);
 }
@@ -198,7 +198,7 @@ func (c *UnixConn) SetTimeout(nsec int64) os.Error {
 // Setting nsec == 0 (the default) disables the deadline.
 func (c *UnixConn) SetReadTimeout(nsec int64) os.Error {
        if !c.ok() {
-               return os.EINVAL;
+               return os.EINVAL
        }
        return setReadTimeout(c.fd, nsec);
 }
@@ -210,7 +210,7 @@ func (c *UnixConn) SetReadTimeout(nsec int64) os.Error {
 // some of the data was successfully written.
 func (c *UnixConn) SetWriteTimeout(nsec int64) os.Error {
        if !c.ok() {
-               return os.EINVAL;
+               return os.EINVAL
        }
        return setWriteTimeout(c.fd, nsec);
 }
@@ -219,7 +219,7 @@ func (c *UnixConn) SetWriteTimeout(nsec int64) os.Error {
 // receive buffer associated with the connection.
 func (c *UnixConn) SetReadBuffer(bytes int) os.Error {
        if !c.ok() {
-               return os.EINVAL;
+               return os.EINVAL
        }
        return setReadBuffer(c.fd, bytes);
 }
@@ -228,7 +228,7 @@ func (c *UnixConn) SetReadBuffer(bytes int) os.Error {
 // transmit buffer associated with the connection.
 func (c *UnixConn) SetWriteBuffer(bytes int) os.Error {
        if !c.ok() {
-               return os.EINVAL;
+               return os.EINVAL
        }
        return setWriteBuffer(c.fd, bytes);
 }
@@ -241,15 +241,15 @@ func (c *UnixConn) SetWriteBuffer(bytes int) os.Error {
 // after a fixed time limit; see SetTimeout and SetReadTimeout.
 func (c *UnixConn) ReadFromUnix(b []byte) (n int, addr *UnixAddr, err os.Error) {
        if !c.ok() {
-               return 0, nil, os.EINVAL;
+               return 0, nil, os.EINVAL
        }
        n, sa, errno := syscall.Recvfrom(c.fd.fd, b, 0);
        if errno != 0 {
-               err = os.Errno(errno);
+               err = os.Errno(errno)
        }
        switch sa := sa.(type) {
        case *syscall.SockaddrUnix:
-               addr = &UnixAddr{sa.Name, c.fd.proto == syscall.SOCK_DGRAM};
+               addr = &UnixAddr{sa.Name, c.fd.proto == syscall.SOCK_DGRAM}
        }
        return;
 }
@@ -262,7 +262,7 @@ func (c *UnixConn) ReadFromUnix(b []byte) (n int, addr *UnixAddr, err os.Error)
 // after a fixed time limit; see SetTimeout and SetReadTimeout.
 func (c *UnixConn) ReadFrom(b []byte) (n int, addr Addr, err os.Error) {
        if !c.ok() {
-               return 0, nil, os.EINVAL;
+               return 0, nil, os.EINVAL
        }
        n, uaddr, err := c.ReadFromUnix(b);
        return n, uaddr.toAddr(), err;
@@ -275,14 +275,14 @@ func (c *UnixConn) ReadFrom(b []byte) (n int, addr Addr, err os.Error) {
 // On packet-oriented connections such as UDP, write timeouts are rare.
 func (c *UnixConn) WriteToUnix(b []byte, addr *UnixAddr) (n int, err os.Error) {
        if !c.ok() {
-               return 0, os.EINVAL;
+               return 0, os.EINVAL
        }
        if addr.Datagram != (c.fd.proto == syscall.SOCK_DGRAM) {
-               return 0, os.EAFNOSUPPORT;
+               return 0, os.EAFNOSUPPORT
        }
        sa := &syscall.SockaddrUnix{Name: addr.Name};
        if errno := syscall.Sendto(c.fd.fd, b, 0, sa); errno != 0 {
-               return 0, os.Errno(errno);
+               return 0, os.Errno(errno)
        }
        return len(b), nil;
 }
@@ -294,11 +294,11 @@ func (c *UnixConn) WriteToUnix(b []byte, addr *UnixAddr) (n int, err os.Error) {
 // On packet-oriented connections such as UDP, write timeouts are rare.
 func (c *UnixConn) WriteTo(b []byte, addr Addr) (n int, err os.Error) {
        if !c.ok() {
-               return 0, os.EINVAL;
+               return 0, os.EINVAL
        }
        a, ok := addr.(*UnixAddr);
        if !ok {
-               return 0, &OpError{"writeto", "unix", addr, os.EINVAL};
+               return 0, &OpError{"writeto", "unix", addr, os.EINVAL}
        }
        return c.WriteToUnix(b, a);
 }
@@ -309,7 +309,7 @@ func (c *UnixConn) WriteTo(b []byte, addr Addr) (n int, err os.Error) {
 func DialUnix(net string, laddr, raddr *UnixAddr) (c *UnixConn, err os.Error) {
        fd, e := unixSocket(net, laddr, raddr, "dial");
        if e != nil {
-               return nil, e;
+               return nil, e
        }
        return newUnixConn(fd), nil;
 }
@@ -326,15 +326,15 @@ type UnixListener struct {
 // Net must be "unix" (stream sockets).
 func ListenUnix(net string, laddr *UnixAddr) (l *UnixListener, err os.Error) {
        if net != "unix" && net != "unixgram" {
-               return nil, UnknownNetworkError(net);
+               return nil, UnknownNetworkError(net)
        }
        if laddr != nil {
-               laddr = &UnixAddr{laddr.Name, net == "unixgram"};       // make our own copy
+               laddr = &UnixAddr{laddr.Name, net == "unixgram"}        // make our own copy
        }
        fd, e := unixSocket(net, laddr, nil, "listen");
        if e != nil {
                if pe, ok := e.(*os.PathError); ok {
-                       e = pe.Error;
+                       e = pe.Error
                }
                return nil, e;
        }
@@ -350,11 +350,11 @@ func ListenUnix(net string, laddr *UnixAddr) (l *UnixListener, err os.Error) {
 // and the remote address.
 func (l *UnixListener) AcceptUnix() (c *UnixConn, err os.Error) {
        if l == nil || l.fd == nil || l.fd.fd < 0 {
-               return nil, os.EINVAL;
+               return nil, os.EINVAL
        }
        fd, e := l.fd.accept(sockaddrToUnix);
        if e != nil {
-               return nil, e;
+               return nil, e
        }
        c = newUnixConn(fd);
        return c, nil;
@@ -365,7 +365,7 @@ func (l *UnixListener) AcceptUnix() (c *UnixConn, err os.Error) {
 func (l *UnixListener) Accept() (c Conn, err os.Error) {
        c1, err := l.AcceptUnix();
        if err != nil {
-               return nil, err;
+               return nil, err
        }
        return c1, nil;
 }
@@ -374,7 +374,7 @@ func (l *UnixListener) Accept() (c Conn, err os.Error) {
 // Already accepted connections are not closed.
 func (l *UnixListener) Close() os.Error {
        if l == nil || l.fd == nil {
-               return os.EINVAL;
+               return os.EINVAL
        }
 
        // The operating system doesn't clean up
@@ -388,7 +388,7 @@ func (l *UnixListener) Close() os.Error {
        // sequence in ListenUnix.  It's only non-Go
        // programs that can mess us up.
        if l.path[0] != '@' {
-               syscall.Unlink(l.path);
+               syscall.Unlink(l.path)
        }
        err := l.fd.Close();
        l.fd = nil;
@@ -406,14 +406,14 @@ func ListenUnixgram(net string, laddr *UnixAddr) (c *UDPConn, err os.Error) {
        switch net {
        case "unixgram":
        default:
-               return nil, UnknownNetworkError(net);
+               return nil, UnknownNetworkError(net)
        }
        if laddr == nil {
-               return nil, &OpError{"listen", "unixgram", nil, errMissingAddress};
+               return nil, &OpError{"listen", "unixgram", nil, errMissingAddress}
        }
        fd, e := unixSocket(net, laddr, nil, "listen");
        if e != nil {
-               return nil, e;
+               return nil, e
        }
        return newUDPConn(fd), nil;
 }
index e89e05e81d319877e9359e41916adf69051c4db7..e31bcc278fba2f98ce1a3e427526174e0efc491e 100644 (file)
@@ -17,14 +17,14 @@ func TestDo(t *testing.T) {
        ncall = 0;
        once.Do(call);
        if ncall != 1 {
-               t.Fatalf("once.Do(call) didn't call(): ncall=%d", ncall);
+               t.Fatalf("once.Do(call) didn't call(): ncall=%d", ncall)
        }
        once.Do(call);
        if ncall != 1 {
-               t.Fatalf("second once.Do(call) did call(): ncall=%d", ncall);
+               t.Fatalf("second once.Do(call) did call(): ncall=%d", ncall)
        }
        once.Do(call);
        if ncall != 1 {
-               t.Fatalf("third once.Do(call) did call(): ncall=%d", ncall);
+               t.Fatalf("third once.Do(call) did call(): ncall=%d", ncall)
        }
 }
index c207a19fd407f6d7f42537308ee4640315a39857..74781ae5b4d5d971ded0abc294c89a2861d85d9c 100644 (file)
@@ -29,7 +29,7 @@ func (file *File) Readdirnames(count int) (names []string, err Error) {
        d := file.dirinfo;
        size := count;
        if size < 0 {
-               size = 100;
+               size = 100
        }
        names = make([]string, 0, size);        // Empty with room to grow.
        for count != 0 {
@@ -44,7 +44,7 @@ func (file *File) Readdirnames(count int) (names []string, err Error) {
                                return names, NewSyscallError("getdirentries", errno);
                        }
                        if d.nbuf <= 0 {
-                               break;  // EOF
+                               break   // EOF
                        }
                }
                // Drain the buffer
@@ -56,18 +56,18 @@ func (file *File) Readdirnames(count int) (names []string, err Error) {
                        }
                        d.bufp += int(dirent.Reclen);
                        if dirent.Ino == 0 {    // File absent in directory.
-                               continue;
+                               continue
                        }
                        bytes := (*[len(dirent.Name)]byte)(unsafe.Pointer(&dirent.Name[0]));
                        var name = string(bytes[0 : dirent.Namlen]);
                        if name == "." || name == ".." {        // Useless names
-                               continue;
+                               continue
                        }
                        count--;
                        if len(names) == cap(names) {
                                nnames := make([]string, len(names), 2*len(names));
                                for i := 0; i < len(names); i++ {
-                                       nnames[i] = names[i];
+                                       nnames[i] = names[i]
                                }
                                names = nnames;
                        }
index d6e77016ccbf61a8e5543478576db2c86685ac68..0e73fefd6589670092c70fd72a971debe378390b 100644 (file)
@@ -16,7 +16,7 @@ const (
 func clen(n []byte) int {
        for i := 0; i < len(n); i++ {
                if n[i] == 0 {
-                       return i;
+                       return i
                }
        }
        return len(n);
@@ -33,7 +33,7 @@ func (file *File) Readdirnames(count int) (names []string, err Error) {
        d := file.dirinfo;
        size := count;
        if size < 0 {
-               size = 100;
+               size = 100
        }
        names = make([]string, 0, size);        // Empty with room to grow.
        for count != 0 {
@@ -42,10 +42,10 @@ func (file *File) Readdirnames(count int) (names []string, err Error) {
                        var errno int;
                        d.nbuf, errno = syscall.Getdents(file.fd, d.buf);
                        if errno != 0 {
-                               return names, NewSyscallError("getdents", errno);
+                               return names, NewSyscallError("getdents", errno)
                        }
                        if d.nbuf <= 0 {
-                               break;  // EOF
+                               break   // EOF
                        }
                        d.bufp = 0;
                }
@@ -54,18 +54,18 @@ func (file *File) Readdirnames(count int) (names []string, err Error) {
                        dirent := (*syscall.Dirent)(unsafe.Pointer(&d.buf[d.bufp]));
                        d.bufp += int(dirent.Reclen);
                        if dirent.Ino == 0 {    // File absent in directory.
-                               continue;
+                               continue
                        }
                        bytes := (*[len(dirent.Name)]byte)(unsafe.Pointer(&dirent.Name[0]));
                        var name = string(bytes[0:clen(bytes)]);
                        if name == "." || name == ".." {        // Useless names
-                               continue;
+                               continue
                        }
                        count--;
                        if len(names) == cap(names) {
                                nnames := make([]string, len(names), 2*len(names));
                                for i := 0; i < len(names); i++ {
-                                       nnames[i] = names[i];
+                                       nnames[i] = names[i]
                                }
                                names = nnames;
                        }
index d6e77016ccbf61a8e5543478576db2c86685ac68..0e73fefd6589670092c70fd72a971debe378390b 100644 (file)
@@ -16,7 +16,7 @@ const (
 func clen(n []byte) int {
        for i := 0; i < len(n); i++ {
                if n[i] == 0 {
-                       return i;
+                       return i
                }
        }
        return len(n);
@@ -33,7 +33,7 @@ func (file *File) Readdirnames(count int) (names []string, err Error) {
        d := file.dirinfo;
        size := count;
        if size < 0 {
-               size = 100;
+               size = 100
        }
        names = make([]string, 0, size);        // Empty with room to grow.
        for count != 0 {
@@ -42,10 +42,10 @@ func (file *File) Readdirnames(count int) (names []string, err Error) {
                        var errno int;
                        d.nbuf, errno = syscall.Getdents(file.fd, d.buf);
                        if errno != 0 {
-                               return names, NewSyscallError("getdents", errno);
+                               return names, NewSyscallError("getdents", errno)
                        }
                        if d.nbuf <= 0 {
-                               break;  // EOF
+                               break   // EOF
                        }
                        d.bufp = 0;
                }
@@ -54,18 +54,18 @@ func (file *File) Readdirnames(count int) (names []string, err Error) {
                        dirent := (*syscall.Dirent)(unsafe.Pointer(&d.buf[d.bufp]));
                        d.bufp += int(dirent.Reclen);
                        if dirent.Ino == 0 {    // File absent in directory.
-                               continue;
+                               continue
                        }
                        bytes := (*[len(dirent.Name)]byte)(unsafe.Pointer(&dirent.Name[0]));
                        var name = string(bytes[0:clen(bytes)]);
                        if name == "." || name == ".." {        // Useless names
-                               continue;
+                               continue
                        }
                        count--;
                        if len(names) == cap(names) {
                                nnames := make([]string, len(names), 2*len(names));
                                for i := 0; i < len(names); i++ {
-                                       nnames[i] = names[i];
+                                       nnames[i] = names[i]
                                }
                                names = nnames;
                        }
index 3523f57e4129671a6bc97b52f022aca6d07a4b25..e8586499282e1f2a15d40833a0557b243d699f19 100644 (file)
@@ -34,11 +34,11 @@ func Getenverror(key string) (value string, err Error) {
        once.Do(copyenv);
 
        if len(key) == 0 {
-               return "", EINVAL;
+               return "", EINVAL
        }
        v, ok := env[key];
        if !ok {
-               return "", ENOENV;
+               return "", ENOENV
        }
        return v, nil;
 }
@@ -56,7 +56,7 @@ func Setenv(key, value string) Error {
        once.Do(copyenv);
 
        if len(key) == 0 {
-               return EINVAL;
+               return EINVAL
        }
        env[key] = value;
        return nil;
index 6bbf5371edb3aa3920e74fa1058ad1e898019739..34f88de8d130ae2b2120819189d6943d4eae55dc 100644 (file)
@@ -97,7 +97,7 @@ func (e *SyscallError) String() string        { return e.Syscall + ": " + e.Errno.Strin
 // As a convenience, if errno is 0, NewSyscallError returns nil.
 func NewSyscallError(syscall string, errno int) Error {
        if errno == 0 {
-               return nil;
+               return nil
        }
        return &SyscallError{syscall, Errno(errno)};
 }
index a279bf428e9bd50538a7426cc34bf8685355d939..80c2913f07a47815bfdceb7e52e813cf263609a8 100644 (file)
@@ -20,15 +20,15 @@ func ForkExec(argv0 string, argv []string, envv []string, dir string, fd []*File
        intfd := make([]int, len(fd));
        for i, f := range fd {
                if f == nil {
-                       intfd[i] = -1;
+                       intfd[i] = -1
                } else {
-                       intfd[i] = f.Fd();
+                       intfd[i] = f.Fd()
                }
        }
 
        p, e := syscall.ForkExec(argv0, argv, envv, dir, intfd);
        if e != 0 {
-               return 0, &PathError{"fork/exec", argv0, Errno(e)};
+               return 0, &PathError{"fork/exec", argv0, Errno(e)}
        }
        return p, nil;
 }
@@ -39,11 +39,11 @@ func ForkExec(argv0 string, argv []string, envv []string, dir string, fd []*File
 // ForkExec is almost always a better way to execute a program.
 func Exec(argv0 string, argv []string, envv []string) Error {
        if envv == nil {
-               envv = Environ();
+               envv = Environ()
        }
        e := syscall.Exec(argv0, argv, envv);
        if e != 0 {
-               return &PathError{"exec", argv0, Errno(e)};
+               return &PathError{"exec", argv0, Errno(e)}
        }
        return nil;
 }
@@ -86,7 +86,7 @@ func Wait(pid int, options int) (w *Waitmsg, err Error) {
        }
        pid1, e := syscall.Wait4(pid, &status, options, rusage);
        if e != 0 {
-               return nil, NewSyscallError("wait", e);
+               return nil, NewSyscallError("wait", e)
        }
        w = new(Waitmsg);
        w.Pid = pid1;
@@ -98,12 +98,12 @@ func Wait(pid int, options int) (w *Waitmsg, err Error) {
 // Convert i to decimal string.
 func itod(i int) string {
        if i == 0 {
-               return "0";
+               return "0"
        }
 
        u := uint64(i);
        if i < 0 {
-               u = -u;
+               u = -u
        }
 
        // Assemble decimal in reverse order.
@@ -127,19 +127,19 @@ func (w Waitmsg) String() string {
        res := "";
        switch {
        case w.Exited():
-               res = "exit status " + itod(w.ExitStatus());
+               res = "exit status " + itod(w.ExitStatus())
        case w.Signaled():
-               res = "signal " + itod(w.Signal());
+               res = "signal " + itod(w.Signal())
        case w.Stopped():
                res = "stop signal " + itod(w.StopSignal());
                if w.StopSignal() == syscall.SIGTRAP && w.TrapCause() != 0 {
-                       res += " (trap " + itod(w.TrapCause()) + ")";
+                       res += " (trap " + itod(w.TrapCause()) + ")"
                }
        case w.Continued():
-               res = "continued";
+               res = "continued"
        }
        if w.CoreDump() {
-               res += " (core dumped)";
+               res += " (core dumped)"
        }
        return res;
 }
index 0afdca39cc305bcd819ff0de49c831056d5c432a..d378b702542410d0ced5a26ba8a49850d9c54297 100644 (file)
@@ -34,7 +34,7 @@ func (file *File) Name() string       { return file.name }
 // NewFile returns a new File with the given file descriptor and name.
 func NewFile(fd int, name string) *File {
        if fd < 0 {
-               return nil;
+               return nil
        }
        return &File{fd, name, nil, 0};
 }
@@ -70,13 +70,13 @@ const (
 func Open(name string, flag int, perm int) (file *File, err Error) {
        r, e := syscall.Open(name, flag | syscall.O_CLOEXEC, perm);
        if e != 0 {
-               return nil, &PathError{"open", name, Errno(e)};
+               return nil, &PathError{"open", name, Errno(e)}
        }
 
        // There's a race here with fork/exec, which we are
        // content to live with.  See ../syscall/exec.go
        if syscall.O_CLOEXEC == 0 {     // O_CLOEXEC not supported
-               syscall.CloseOnExec(r);
+               syscall.CloseOnExec(r)
        }
 
        return NewFile(r, name), nil;
@@ -86,11 +86,11 @@ func Open(name string, flag int, perm int) (file *File, err Error) {
 // It returns an Error, if any.
 func (file *File) Close() Error {
        if file == nil {
-               return EINVAL;
+               return EINVAL
        }
        var err Error;
        if e := syscall.Close(file.fd); e != 0 {
-               err = &PathError{"close", file.name, Errno(e)};
+               err = &PathError{"close", file.name, Errno(e)}
        }
        file.fd = -1;   // so it can't be closed again
        return err;
@@ -112,17 +112,17 @@ var EOF Error = eofError(0)
 // EOF is signaled by a zero count with err set to EOF.
 func (file *File) Read(b []byte) (n int, err Error) {
        if file == nil {
-               return 0, EINVAL;
+               return 0, EINVAL
        }
        n, e := syscall.Read(file.fd, b);
        if n < 0 {
-               n = 0;
+               n = 0
        }
        if n == 0 && e == 0 {
-               return 0, EOF;
+               return 0, EOF
        }
        if e != 0 {
-               err = &PathError{"read", file.name, Errno(e)};
+               err = &PathError{"read", file.name, Errno(e)}
        }
        return n, err;
 }
@@ -133,7 +133,7 @@ func (file *File) Read(b []byte) (n int, err Error) {
 // ReadAt always returns a non-nil Error when n != len(b).
 func (file *File) ReadAt(b []byte, off int64) (n int, err Error) {
        if file == nil {
-               return 0, EINVAL;
+               return 0, EINVAL
        }
        for len(b) > 0 {
                m, e := syscall.Pread(file.fd, b, off);
@@ -153,22 +153,22 @@ func (file *File) ReadAt(b []byte, off int64) (n int, err Error) {
 // Write returns a non-nil Error when n != len(b).
 func (file *File) Write(b []byte) (n int, err Error) {
        if file == nil {
-               return 0, EINVAL;
+               return 0, EINVAL
        }
        n, e := syscall.Write(file.fd, b);
        if n < 0 {
-               n = 0;
+               n = 0
        }
        if e == syscall.EPIPE {
                file.nepipe++;
                if file.nepipe >= 10 {
-                       Exit(syscall.EPIPE);
+                       Exit(syscall.EPIPE)
                }
        } else {
-               file.nepipe = 0;
+               file.nepipe = 0
        }
        if e != 0 {
-               err = &PathError{"write", file.name, Errno(e)};
+               err = &PathError{"write", file.name, Errno(e)}
        }
        return n, err;
 }
@@ -178,7 +178,7 @@ func (file *File) Write(b []byte) (n int, err Error) {
 // WriteAt returns a non-nil Error when n != len(b).
 func (file *File) WriteAt(b []byte, off int64) (n int, err Error) {
        if file == nil {
-               return 0, EINVAL;
+               return 0, EINVAL
        }
        for len(b) > 0 {
                m, e := syscall.Pwrite(file.fd, b, off);
@@ -200,10 +200,10 @@ func (file *File) WriteAt(b []byte, off int64) (n int, err Error) {
 func (file *File) Seek(offset int64, whence int) (ret int64, err Error) {
        r, e := syscall.Seek(file.fd, offset, whence);
        if e == 0 && file.dirinfo != nil && r != 0 {
-               e = syscall.EISDIR;
+               e = syscall.EISDIR
        }
        if e != 0 {
-               return 0, &PathError{"seek", file.name, Errno(e)};
+               return 0, &PathError{"seek", file.name, Errno(e)}
        }
        return r, nil;
 }
@@ -212,7 +212,7 @@ func (file *File) Seek(offset int64, whence int) (ret int64, err Error) {
 // an array of bytes.
 func (file *File) WriteString(s string) (ret int, err Error) {
        if file == nil {
-               return 0, EINVAL;
+               return 0, EINVAL
        }
        b := syscall.StringByteSlice(s);
        b = b[0 : len(b)-1];
@@ -243,7 +243,7 @@ func Pipe() (r *File, w *File, err Error) {
 func Mkdir(name string, perm int) Error {
        e := syscall.Mkdir(name, perm);
        if e != 0 {
-               return &PathError{"mkdir", name, Errno(e)};
+               return &PathError{"mkdir", name, Errno(e)}
        }
        return nil;
 }
@@ -257,13 +257,13 @@ func Stat(name string) (dir *Dir, err Error) {
        var lstat, stat syscall.Stat_t;
        e := syscall.Lstat(name, &lstat);
        if e != 0 {
-               return nil, &PathError{"stat", name, Errno(e)};
+               return nil, &PathError{"stat", name, Errno(e)}
        }
        statp := &lstat;
        if lstat.Mode & syscall.S_IFMT == syscall.S_IFLNK {
                e := syscall.Stat(name, &stat);
                if e == 0 {
-                       statp = &stat;
+                       statp = &stat
                }
        }
        return dirFromStat(name, new(Dir), &lstat, statp), nil;
@@ -275,7 +275,7 @@ func (file *File) Stat() (dir *Dir, err Error) {
        var stat syscall.Stat_t;
        e := syscall.Fstat(file.fd, &stat);
        if e != 0 {
-               return nil, &PathError{"stat", file.name, Errno(e)};
+               return nil, &PathError{"stat", file.name, Errno(e)}
        }
        return dirFromStat(file.name, new(Dir), &stat, &stat), nil;
 }
@@ -287,7 +287,7 @@ func Lstat(name string) (dir *Dir, err Error) {
        var stat syscall.Stat_t;
        e := syscall.Lstat(name, &stat);
        if e != 0 {
-               return nil, &PathError{"lstat", name, Errno(e)};
+               return nil, &PathError{"lstat", name, Errno(e)}
        }
        return dirFromStat(name, new(Dir), &stat, &stat), nil;
 }
@@ -300,20 +300,20 @@ func Lstat(name string) (dir *Dir, err Error) {
 func (file *File) Readdir(count int) (dirs []Dir, err Error) {
        dirname := file.name;
        if dirname == "" {
-               dirname = ".";
+               dirname = "."
        }
        dirname += "/";
        names, err1 := file.Readdirnames(count);
        if err1 != nil {
-               return nil, err1;
+               return nil, err1
        }
        dirs = make([]Dir, len(names));
        for i, filename := range names {
                dirp, err := Lstat(dirname+filename);
                if dirp == nil || err != nil {
-                       dirs[i].Name = filename;        // rest is already zeroed out
+                       dirs[i].Name = filename // rest is already zeroed out
                } else {
-                       dirs[i] = *dirp;
+                       dirs[i] = *dirp
                }
        }
        return;
@@ -322,7 +322,7 @@ func (file *File) Readdir(count int) (dirs []Dir, err Error) {
 // Chdir changes the current working directory to the named directory.
 func Chdir(dir string) Error {
        if e := syscall.Chdir(dir); e != 0 {
-               return &PathError{"chdir", dir, Errno(e)};
+               return &PathError{"chdir", dir, Errno(e)}
        }
        return nil;
 }
@@ -331,7 +331,7 @@ func Chdir(dir string) Error {
 // which must be a directory.
 func (f *File) Chdir() Error {
        if e := syscall.Fchdir(f.fd); e != 0 {
-               return &PathError{"chdir", f.name, Errno(e)};
+               return &PathError{"chdir", f.name, Errno(e)}
        }
        return nil;
 }
@@ -344,11 +344,11 @@ func Remove(name string) Error {
        // doing a Stat plus the right one.
        e := syscall.Unlink(name);
        if e == 0 {
-               return nil;
+               return nil
        }
        e1 := syscall.Rmdir(name);
        if e1 == 0 {
-               return nil;
+               return nil
        }
 
        // Both failed: figure out which error to return.
@@ -361,7 +361,7 @@ func Remove(name string) Error {
        // both errors will be ENOTDIR, so it's okay to
        // use the error from unlink.
        if e1 != syscall.ENOTDIR {
-               e = e1;
+               e = e1
        }
        return &PathError{"remove", name, Errno(e)};
 }
@@ -376,14 +376,14 @@ type LinkError struct {
 }
 
 func (e *LinkError) String() string {
-       return e.Op + " " + e.Old + " " + e.New + ": " + e.Error.String();
+       return e.Op + " " + e.Old + " " + e.New + ": " + e.Error.String()
 }
 
 // Link creates a hard link.
 func Link(oldname, newname string) Error {
        e := syscall.Link(oldname, newname);
        if e != 0 {
-               return &LinkError{"link", oldname, newname, Errno(e)};
+               return &LinkError{"link", oldname, newname, Errno(e)}
        }
        return nil;
 }
@@ -392,7 +392,7 @@ func Link(oldname, newname string) Error {
 func Symlink(oldname, newname string) Error {
        e := syscall.Symlink(oldname, newname);
        if e != 0 {
-               return &LinkError{"symlink", oldname, newname, Errno(e)};
+               return &LinkError{"symlink", oldname, newname, Errno(e)}
        }
        return nil;
 }
@@ -404,10 +404,10 @@ func Readlink(name string) (string, Error) {
                b := make([]byte, len);
                n, e := syscall.Readlink(name, b);
                if e != 0 {
-                       return "", &PathError{"readlink", name, Errno(e)};
+                       return "", &PathError{"readlink", name, Errno(e)}
                }
                if n < len {
-                       return string(b[0:n]), nil;
+                       return string(b[0:n]), nil
                }
        }
        // Silence 6g.
@@ -418,7 +418,7 @@ func Readlink(name string) (string, Error) {
 // If the file is a symbolic link, it changes the uid and gid of the link's target.
 func Chmod(name string, mode int) Error {
        if e := syscall.Chmod(name, mode); e != 0 {
-               return &PathError{"chmod", name, Errno(e)};
+               return &PathError{"chmod", name, Errno(e)}
        }
        return nil;
 }
@@ -426,7 +426,7 @@ func Chmod(name string, mode int) Error {
 // Chmod changes the mode of the file to mode.
 func (f *File) Chmod(mode int) Error {
        if e := syscall.Fchmod(f.fd, mode); e != 0 {
-               return &PathError{"chmod", f.name, Errno(e)};
+               return &PathError{"chmod", f.name, Errno(e)}
        }
        return nil;
 }
@@ -435,7 +435,7 @@ func (f *File) Chmod(mode int) Error {
 // If the file is a symbolic link, it changes the uid and gid of the link's target.
 func Chown(name string, uid, gid int) Error {
        if e := syscall.Chown(name, uid, gid); e != 0 {
-               return &PathError{"chown", name, Errno(e)};
+               return &PathError{"chown", name, Errno(e)}
        }
        return nil;
 }
@@ -444,7 +444,7 @@ func Chown(name string, uid, gid int) Error {
 // If the file is a symbolic link, it changes the uid and gid of the link itself.
 func Lchown(name string, uid, gid int) Error {
        if e := syscall.Lchown(name, uid, gid); e != 0 {
-               return &PathError{"lchown", name, Errno(e)};
+               return &PathError{"lchown", name, Errno(e)}
        }
        return nil;
 }
@@ -452,7 +452,7 @@ func Lchown(name string, uid, gid int) Error {
 // Chown changes the numeric uid and gid of the named file.
 func (f *File) Chown(uid, gid int) Error {
        if e := syscall.Fchown(f.fd, uid, gid); e != 0 {
-               return &PathError{"chown", f.name, Errno(e)};
+               return &PathError{"chown", f.name, Errno(e)}
        }
        return nil;
 }
@@ -461,7 +461,7 @@ func (f *File) Chown(uid, gid int) Error {
 // If the file is a symbolic link, it changes the size of the link's target.
 func Truncate(name string, size int64) Error {
        if e := syscall.Truncate(name, size); e != 0 {
-               return &PathError{"truncate", name, Errno(e)};
+               return &PathError{"truncate", name, Errno(e)}
        }
        return nil;
 }
@@ -470,7 +470,7 @@ func Truncate(name string, size int64) Error {
 // It does not change the I/O offset.
 func (f *File) Truncate(size int64) Error {
        if e := syscall.Ftruncate(f.fd, size); e != 0 {
-               return &PathError{"truncate", f.name, Errno(e)};
+               return &PathError{"truncate", f.name, Errno(e)}
        }
        return nil;
 }
index bb8637b2be016309b581af88071bcd5ed3715afc..1f7580d22787e897931a7951b9d5c755e2601f11 100644 (file)
@@ -22,7 +22,7 @@ func Getwd() (string, Error) {
        // Otherwise, we're trying to find our way back to ".".
        dot, err := Stat(".");
        if err != nil {
-               return "", err;
+               return "", err
        }
 
        // Clumsy but widespread kludge:
@@ -31,7 +31,7 @@ func Getwd() (string, Error) {
        if len(pwd) > 0 && pwd[0] == '/' {
                d, err := Stat(pwd);
                if err == nil && d.Dev == dot.Dev && d.Ino == dot.Ino {
-                       return pwd, nil;
+                       return pwd, nil
                }
        }
 
@@ -40,10 +40,10 @@ func Getwd() (string, Error) {
        root, err := Stat("/");
        if err != nil {
                // Can't stat root - no hope.
-               return "", err;
+               return "", err
        }
        if root.Dev == dot.Dev && root.Ino == dot.Ino {
-               return "/", nil;
+               return "/", nil
        }
 
        // General algorithm: find name in parent
@@ -52,11 +52,11 @@ func Getwd() (string, Error) {
        pwd = "";
        for parent := ".."; ; parent = "../"+parent {
                if len(parent) >= 1024 {        // Sanity check
-                       return "", ENAMETOOLONG;
+                       return "", ENAMETOOLONG
                }
                fd, err := Open(parent, O_RDONLY, 0);
                if err != nil {
-                       return "", err;
+                       return "", err
                }
 
                for {
@@ -79,11 +79,11 @@ func Getwd() (string, Error) {
        Found:
                pd, err := fd.Stat();
                if err != nil {
-                       return "", err;
+                       return "", err
                }
                fd.Close();
                if pd.Dev == root.Dev && pd.Ino == root.Ino {
-                       break;
+                       break
                }
                // Set up for next round.
                dot = pd;
index 832ce608332112dff116f7b0097e131fd2a13d73..9eb032768c73353135f844e00fb53d0bbf17c820 100644 (file)
@@ -36,7 +36,7 @@ func size(name string, t *testing.T) uint64 {
        file, err := Open(name, O_RDONLY, 0);
        defer file.Close();
        if err != nil {
-               t.Fatal("open failed:", err);
+               t.Fatal("open failed:", err)
        }
        var buf [100]byte;
        len := 0;
@@ -44,10 +44,10 @@ func size(name string, t *testing.T) uint64 {
                n, e := file.Read(&buf);
                len += n;
                if e == EOF {
-                       break;
+                       break
                }
                if e != nil {
-                       t.Fatal("read failed:", err);
+                       t.Fatal("read failed:", err)
                }
        }
        return uint64(len);
@@ -56,14 +56,14 @@ func size(name string, t *testing.T) uint64 {
 func TestStat(t *testing.T) {
        dir, err := Stat("/etc/passwd");
        if err != nil {
-               t.Fatal("stat failed:", err);
+               t.Fatal("stat failed:", err)
        }
        if dir.Name != "passwd" {
-               t.Error("name should be passwd; is", dir.Name);
+               t.Error("name should be passwd; is", dir.Name)
        }
        filesize := size("/etc/passwd", t);
        if dir.Size != filesize {
-               t.Error("size should be", filesize, "; is", dir.Size);
+               t.Error("size should be", filesize, "; is", dir.Size)
        }
 }
 
@@ -71,32 +71,32 @@ func TestFstat(t *testing.T) {
        file, err1 := Open("/etc/passwd", O_RDONLY, 0);
        defer file.Close();
        if err1 != nil {
-               t.Fatal("open failed:", err1);
+               t.Fatal("open failed:", err1)
        }
        dir, err2 := file.Stat();
        if err2 != nil {
-               t.Fatal("fstat failed:", err2);
+               t.Fatal("fstat failed:", err2)
        }
        if dir.Name != "passwd" {
-               t.Error("name should be passwd; is", dir.Name);
+               t.Error("name should be passwd; is", dir.Name)
        }
        filesize := size("/etc/passwd", t);
        if dir.Size != filesize {
-               t.Error("size should be", filesize, "; is", dir.Size);
+               t.Error("size should be", filesize, "; is", dir.Size)
        }
 }
 
 func TestLstat(t *testing.T) {
        dir, err := Lstat("/etc/passwd");
        if err != nil {
-               t.Fatal("lstat failed:", err);
+               t.Fatal("lstat failed:", err)
        }
        if dir.Name != "passwd" {
-               t.Error("name should be passwd; is", dir.Name);
+               t.Error("name should be passwd; is", dir.Name)
        }
        filesize := size("/etc/passwd", t);
        if dir.Size != filesize {
-               t.Error("size should be", filesize, "; is", dir.Size);
+               t.Error("size should be", filesize, "; is", dir.Size)
        }
 }
 
@@ -104,27 +104,27 @@ func testReaddirnames(dir string, contents []string, t *testing.T) {
        file, err := Open(dir, O_RDONLY, 0);
        defer file.Close();
        if err != nil {
-               t.Fatalf("open %q failed: %v", dir, err);
+               t.Fatalf("open %q failed: %v", dir, err)
        }
        s, err2 := file.Readdirnames(-1);
        if err2 != nil {
-               t.Fatalf("readdirnames %q failed: %v", err2);
+               t.Fatalf("readdirnames %q failed: %v", err2)
        }
        for _, m := range contents {
                found := false;
                for _, n := range s {
                        if n == "." || n == ".." {
-                               t.Errorf("got %s in directory", n);
+                               t.Errorf("got %s in directory", n)
                        }
                        if m == n {
                                if found {
-                                       t.Error("present twice:", m);
+                                       t.Error("present twice:", m)
                                }
                                found = true;
                        }
                }
                if !found {
-                       t.Error("could not find", m);
+                       t.Error("could not find", m)
                }
        }
 }
@@ -133,24 +133,24 @@ func testReaddir(dir string, contents []string, t *testing.T) {
        file, err := Open(dir, O_RDONLY, 0);
        defer file.Close();
        if err != nil {
-               t.Fatalf("open %q failed: %v", dir, err);
+               t.Fatalf("open %q failed: %v", dir, err)
        }
        s, err2 := file.Readdir(-1);
        if err2 != nil {
-               t.Fatalf("readdir %q failed: %v", dir, err2);
+               t.Fatalf("readdir %q failed: %v", dir, err2)
        }
        for _, m := range contents {
                found := false;
                for _, n := range s {
                        if m == n.Name {
                                if found {
-                                       t.Error("present twice:", m);
+                                       t.Error("present twice:", m)
                                }
                                found = true;
                        }
                }
                if !found {
-                       t.Error("could not find", m);
+                       t.Error("could not find", m)
                }
        }
 }
@@ -172,10 +172,10 @@ func smallReaddirnames(file *File, length int, t *testing.T) []string {
        for {
                d, err := file.Readdirnames(1);
                if err != nil {
-                       t.Fatalf("readdir %q failed: %v", file.Name(), err);
+                       t.Fatalf("readdir %q failed: %v", file.Name(), err)
                }
                if len(d) == 0 {
-                       break;
+                       break
                }
                names[count] = d[0];
                count++;
@@ -190,20 +190,20 @@ func TestReaddirnamesOneAtATime(t *testing.T) {
        file, err := Open(dir, O_RDONLY, 0);
        defer file.Close();
        if err != nil {
-               t.Fatalf("open %q failed: %v", dir, err);
+               t.Fatalf("open %q failed: %v", dir, err)
        }
        all, err1 := file.Readdirnames(-1);
        if err1 != nil {
-               t.Fatalf("readdirnames %q failed: %v", dir, err1);
+               t.Fatalf("readdirnames %q failed: %v", dir, err1)
        }
        file1, err2 := Open(dir, O_RDONLY, 0);
        if err2 != nil {
-               t.Fatalf("open %q failed: %v", dir, err2);
+               t.Fatalf("open %q failed: %v", dir, err2)
        }
        small := smallReaddirnames(file1, len(all)+100, t);     // +100 in case we screw up
        for i, n := range all {
                if small[i] != n {
-                       t.Errorf("small read %q %q mismatch: %v", small[i], n);
+                       t.Errorf("small read %q %q mismatch: %v", small[i], n)
                }
        }
 }
@@ -213,27 +213,27 @@ func TestHardLink(t *testing.T) {
        Remove(from);   // Just in case.
        file, err := Open(to, O_CREAT|O_WRONLY, 0666);
        if err != nil {
-               t.Fatalf("open %q failed: %v", to, err);
+               t.Fatalf("open %q failed: %v", to, err)
        }
        defer Remove(to);
        if err = file.Close(); err != nil {
-               t.Errorf("close %q failed: %v", to, err);
+               t.Errorf("close %q failed: %v", to, err)
        }
        err = Link(to, from);
        if err != nil {
-               t.Fatalf("link %q, %q failed: %v", to, from, err);
+               t.Fatalf("link %q, %q failed: %v", to, from, err)
        }
        defer Remove(from);
        tostat, err := Stat(to);
        if err != nil {
-               t.Fatalf("stat %q failed: %v", to, err);
+               t.Fatalf("stat %q failed: %v", to, err)
        }
        fromstat, err := Stat(from);
        if err != nil {
-               t.Fatalf("stat %q failed: %v", from, err);
+               t.Fatalf("stat %q failed: %v", from, err)
        }
        if tostat.Dev != fromstat.Dev || tostat.Ino != fromstat.Ino {
-               t.Errorf("link %q, %q did not create hard link", to, from);
+               t.Errorf("link %q, %q did not create hard link", to, from)
        }
 }
 
@@ -242,55 +242,55 @@ func TestSymLink(t *testing.T) {
        Remove(from);   // Just in case.
        file, err := Open(to, O_CREAT|O_WRONLY, 0666);
        if err != nil {
-               t.Fatalf("open %q failed: %v", to, err);
+               t.Fatalf("open %q failed: %v", to, err)
        }
        defer Remove(to);
        if err = file.Close(); err != nil {
-               t.Errorf("close %q failed: %v", to, err);
+               t.Errorf("close %q failed: %v", to, err)
        }
        err = Symlink(to, from);
        if err != nil {
-               t.Fatalf("symlink %q, %q failed: %v", to, from, err);
+               t.Fatalf("symlink %q, %q failed: %v", to, from, err)
        }
        defer Remove(from);
        tostat, err := Stat(to);
        if err != nil {
-               t.Fatalf("stat %q failed: %v", to, err);
+               t.Fatalf("stat %q failed: %v", to, err)
        }
        if tostat.FollowedSymlink {
-               t.Fatalf("stat %q claims to have followed a symlink", to);
+               t.Fatalf("stat %q claims to have followed a symlink", to)
        }
        fromstat, err := Stat(from);
        if err != nil {
-               t.Fatalf("stat %q failed: %v", from, err);
+               t.Fatalf("stat %q failed: %v", from, err)
        }
        if tostat.Dev != fromstat.Dev || tostat.Ino != fromstat.Ino {
-               t.Errorf("symlink %q, %q did not create symlink", to, from);
+               t.Errorf("symlink %q, %q did not create symlink", to, from)
        }
        fromstat, err = Lstat(from);
        if err != nil {
-               t.Fatalf("lstat %q failed: %v", from, err);
+               t.Fatalf("lstat %q failed: %v", from, err)
        }
        if !fromstat.IsSymlink() {
-               t.Fatalf("symlink %q, %q did not create symlink", to, from);
+               t.Fatalf("symlink %q, %q did not create symlink", to, from)
        }
        fromstat, err = Stat(from);
        if err != nil {
-               t.Fatalf("stat %q failed: %v", from, err);
+               t.Fatalf("stat %q failed: %v", from, err)
        }
        if !fromstat.FollowedSymlink {
-               t.Fatalf("stat %q did not follow symlink");
+               t.Fatalf("stat %q did not follow symlink")
        }
        s, err := Readlink(from);
        if err != nil {
-               t.Fatalf("readlink %q failed: %v", from, err);
+               t.Fatalf("readlink %q failed: %v", from, err)
        }
        if s != to {
-               t.Fatalf("after symlink %q != %q", s, to);
+               t.Fatalf("after symlink %q != %q", s, to)
        }
        file, err = Open(from, O_RDONLY, 0);
        if err != nil {
-               t.Fatalf("open %q failed: %v", from, err);
+               t.Fatalf("open %q failed: %v", from, err)
        }
        file.Close();
 }
@@ -301,26 +301,26 @@ func TestLongSymlink(t *testing.T) {
        from := "longsymlinktestfrom";
        err := Symlink(s, from);
        if err != nil {
-               t.Fatalf("symlink %q, %q failed: %v", s, from, err);
+               t.Fatalf("symlink %q, %q failed: %v", s, from, err)
        }
        defer Remove(from);
        r, err := Readlink(from);
        if err != nil {
-               t.Fatalf("readlink %q failed: %v", from, err);
+               t.Fatalf("readlink %q failed: %v", from, err)
        }
        if r != s {
-               t.Fatalf("after symlink %q != %q", r, s);
+               t.Fatalf("after symlink %q != %q", r, s)
        }
 }
 
 func TestForkExec(t *testing.T) {
        r, w, err := Pipe();
        if err != nil {
-               t.Fatalf("Pipe: %v", err);
+               t.Fatalf("Pipe: %v", err)
        }
        pid, err := ForkExec("/bin/pwd", []string{"pwd"}, nil, "/", []*File{nil, w, Stderr});
        if err != nil {
-               t.Fatalf("ForkExec: %v", err);
+               t.Fatalf("ForkExec: %v", err)
        }
        w.Close();
 
@@ -329,7 +329,7 @@ func TestForkExec(t *testing.T) {
        output := b.String();
        expect := "/\n";
        if output != expect {
-               t.Errorf("exec /bin/pwd returned %q wanted %q", output, expect);
+               t.Errorf("exec /bin/pwd returned %q wanted %q", output, expect)
        }
        Wait(pid, 0);
 }
@@ -337,10 +337,10 @@ func TestForkExec(t *testing.T) {
 func checkMode(t *testing.T, path string, mode uint32) {
        dir, err := Stat(path);
        if err != nil {
-               t.Fatalf("Stat %q (looking for mode %#o): %s", path, mode, err);
+               t.Fatalf("Stat %q (looking for mode %#o): %s", path, mode, err)
        }
        if dir.Mode & 0777 != mode {
-               t.Errorf("Stat %q: mode %#o want %#o", path, dir.Mode, 0777);
+               t.Errorf("Stat %q: mode %#o want %#o", path, dir.Mode, 0777)
        }
 }
 
@@ -349,16 +349,16 @@ func TestChmod(t *testing.T) {
        const Path = "_obj/_TestChmod_";
        fd, err := Open(Path, O_WRONLY|O_CREAT, 0666);
        if err != nil {
-               t.Fatalf("create %s: %s", Path, err);
+               t.Fatalf("create %s: %s", Path, err)
        }
 
        if err = Chmod(Path, 0456); err != nil {
-               t.Fatalf("chmod %s 0456: %s", Path, err);
+               t.Fatalf("chmod %s 0456: %s", Path, err)
        }
        checkMode(t, Path, 0456);
 
        if err = fd.Chmod(0123); err != nil {
-               t.Fatalf("fchmod %s 0123: %s", Path, err);
+               t.Fatalf("fchmod %s 0123: %s", Path, err)
        }
        checkMode(t, Path, 0123);
 
@@ -369,13 +369,13 @@ func TestChmod(t *testing.T) {
 func checkUidGid(t *testing.T, path string, uid, gid int) {
        dir, err := Stat(path);
        if err != nil {
-               t.Fatalf("Stat %q (looking for uid/gid %d/%d): %s", path, uid, gid, err);
+               t.Fatalf("Stat %q (looking for uid/gid %d/%d): %s", path, uid, gid, err)
        }
        if dir.Uid != uint32(uid) {
-               t.Errorf("Stat %q: uid %d want %d", path, dir.Uid, uid);
+               t.Errorf("Stat %q: uid %d want %d", path, dir.Uid, uid)
        }
        if dir.Gid != uint32(gid) {
-               t.Errorf("Stat %q: gid %d want %d", path, dir.Gid, gid);
+               t.Errorf("Stat %q: gid %d want %d", path, dir.Gid, gid)
        }
 }
 
@@ -388,11 +388,11 @@ func TestChown(t *testing.T) {
        const Path = "/tmp/_TestChown_";
        fd, err := Open(Path, O_WRONLY|O_CREAT, 0666);
        if err != nil {
-               t.Fatalf("create %s: %s", Path, err);
+               t.Fatalf("create %s: %s", Path, err)
        }
        dir, err := fd.Stat();
        if err != nil {
-               t.Fatalf("fstat %s: %s", Path, err);
+               t.Fatalf("fstat %s: %s", Path, err)
        }
        defer fd.Close();
        defer Remove(Path);
@@ -402,25 +402,25 @@ func TestChown(t *testing.T) {
        gid := Getgid();
        t.Log("gid:", gid);
        if err = Chown(Path, -1, gid); err != nil {
-               t.Fatalf("chown %s -1 %d: %s", Path, gid, err);
+               t.Fatalf("chown %s -1 %d: %s", Path, gid, err)
        }
        checkUidGid(t, Path, int(dir.Uid), gid);
 
        // Then try all the auxiliary groups.
        groups, err := Getgroups();
        if err != nil {
-               t.Fatalf("getgroups: %s", err);
+               t.Fatalf("getgroups: %s", err)
        }
        t.Log("groups: ", groups);
        for _, g := range groups {
                if err = Chown(Path, -1, g); err != nil {
-                       t.Fatalf("chown %s -1 %d: %s", Path, g, err);
+                       t.Fatalf("chown %s -1 %d: %s", Path, g, err)
                }
                checkUidGid(t, Path, int(dir.Uid), g);
 
                // change back to gid to test fd.Chown
                if err = fd.Chown(-1, gid); err != nil {
-                       t.Fatalf("fchown %s -1 %d: %s", Path, gid, err);
+                       t.Fatalf("fchown %s -1 %d: %s", Path, gid, err)
                }
                checkUidGid(t, Path, int(dir.Uid), gid);
        }
@@ -429,10 +429,10 @@ func TestChown(t *testing.T) {
 func checkSize(t *testing.T, path string, size uint64) {
        dir, err := Stat(path);
        if err != nil {
-               t.Fatalf("Stat %q (looking for size %d): %s", path, size, err);
+               t.Fatalf("Stat %q (looking for size %d): %s", path, size, err)
        }
        if dir.Size != size {
-               t.Errorf("Stat %q: size %d want %d", path, dir.Size, size);
+               t.Errorf("Stat %q: size %d want %d", path, dir.Size, size)
        }
 }
 
@@ -441,7 +441,7 @@ func TestTruncate(t *testing.T) {
        const Path = "_obj/_TestTruncate_";
        fd, err := Open(Path, O_WRONLY|O_CREAT, 0666);
        if err != nil {
-               t.Fatalf("create %s: %s", Path, err);
+               t.Fatalf("create %s: %s", Path, err)
        }
 
        checkSize(t, Path, 0);
@@ -462,7 +462,7 @@ func TestTruncate(t *testing.T) {
 func TestChdirAndGetwd(t *testing.T) {
        fd, err := Open(".", O_RDONLY, 0);
        if err != nil {
-               t.Fatalf("Open .: %s", err);
+               t.Fatalf("Open .: %s", err)
        }
        // These are chosen carefully not to be symlinks on a Mac
        // (unlike, say, /var, /etc, and /tmp).
@@ -470,7 +470,7 @@ func TestChdirAndGetwd(t *testing.T) {
        for mode := 0; mode < 2; mode++ {
                for _, d := range dirs {
                        if mode == 0 {
-                               err = Chdir(d);
+                               err = Chdir(d)
                        } else {
                                fd1, err := Open(d, O_RDONLY, 0);
                                if err != nil {
@@ -515,14 +515,14 @@ func TestTime(t *testing.T) {
        // 365.24*86400 is an integer.
        sec, nsec, err := Time();
        if sec < (2009-1970)*36524*864 {
-               t.Errorf("Time() = %d, %d, %s; not plausible", sec, nsec, err);
+               t.Errorf("Time() = %d, %d, %s; not plausible", sec, nsec, err)
        }
 }
 
 func TestSeek(t *testing.T) {
        f, err := Open("_obj/seektest", O_CREAT|O_RDWR|O_TRUNC, 0666);
        if err != nil {
-               t.Fatalf("open _obj/seektest: %s", err);
+               t.Fatalf("open _obj/seektest: %s", err)
        }
 
        const data = "hello, world\n";
@@ -546,7 +546,7 @@ func TestSeek(t *testing.T) {
        for i, tt := range tests {
                off, err := f.Seek(tt.in, tt.whence);
                if off != tt.out || err != nil {
-                       t.Errorf("#%d: Seek(%v, %v) = %v, %v want %v, nil", i, tt.in, tt.whence, off, err, tt.out);
+                       t.Errorf("#%d: Seek(%v, %v) = %v, %v want %v, nil", i, tt.in, tt.whence, off, err, tt.out)
                }
        }
        f.Close();
@@ -585,7 +585,7 @@ func TestOpenError(t *testing.T) {
                        continue;
                }
                if s := err.String(); s != tt.error {
-                       t.Errorf("Open(%q, %d) = _, %q; want %q", tt.path, tt.mode, s, tt.error);
+                       t.Errorf("Open(%q, %d) = _, %q; want %q", tt.path, tt.mode, s, tt.error)
                }
        }
 }
@@ -594,11 +594,11 @@ func run(t *testing.T, cmd []string) string {
        // Run /bin/hostname and collect output.
        r, w, err := Pipe();
        if err != nil {
-               t.Fatal(err);
+               t.Fatal(err)
        }
        pid, err := ForkExec("/bin/hostname", []string{"hostname"}, nil, "/", []*File{nil, w, Stderr});
        if err != nil {
-               t.Fatal(err);
+               t.Fatal(err)
        }
        w.Close();
 
@@ -607,10 +607,10 @@ func run(t *testing.T, cmd []string) string {
        Wait(pid, 0);
        output := b.String();
        if n := len(output); n > 0 && output[n-1] == '\n' {
-               output = output[0 : n-1];
+               output = output[0 : n-1]
        }
        if output == "" {
-               t.Fatalf("%v produced no output", cmd);
+               t.Fatalf("%v produced no output", cmd)
        }
 
        return output;
@@ -621,18 +621,18 @@ func TestHostname(t *testing.T) {
        // Check internal Hostname() against the output of /bin/hostname.
        hostname, err := Hostname();
        if err != nil {
-               t.Fatalf("%v", err);
+               t.Fatalf("%v", err)
        }
        want := run(t, []string{"/bin/hostname"});
        if hostname != want {
-               t.Errorf("Hostname() = %q, want %q", hostname, want);
+               t.Errorf("Hostname() = %q, want %q", hostname, want)
        }
 }
 
 func TestReadAt(t *testing.T) {
        f, err := Open("_obj/readtest", O_CREAT|O_RDWR|O_TRUNC, 0666);
        if err != nil {
-               t.Fatalf("open _obj/readtest: %s", err);
+               t.Fatalf("open _obj/readtest: %s", err)
        }
        const data = "hello, world\n";
        io.WriteString(f, data);
@@ -640,31 +640,31 @@ func TestReadAt(t *testing.T) {
        b := make([]byte, 5);
        n, err := f.ReadAt(b, 7);
        if err != nil || n != len(b) {
-               t.Fatalf("ReadAt 7: %d, %r", n, err);
+               t.Fatalf("ReadAt 7: %d, %r", n, err)
        }
        if string(b) != "world" {
-               t.Fatalf("ReadAt 7: have %q want %q", string(b), "world");
+               t.Fatalf("ReadAt 7: have %q want %q", string(b), "world")
        }
 }
 
 func TestWriteAt(t *testing.T) {
        f, err := Open("_obj/writetest", O_CREAT|O_RDWR|O_TRUNC, 0666);
        if err != nil {
-               t.Fatalf("open _obj/writetest: %s", err);
+               t.Fatalf("open _obj/writetest: %s", err)
        }
        const data = "hello, world\n";
        io.WriteString(f, data);
 
        n, err := f.WriteAt(strings.Bytes("WORLD"), 7);
        if err != nil || n != 5 {
-               t.Fatalf("WriteAt 7: %d, %v", n, err);
+               t.Fatalf("WriteAt 7: %d, %v", n, err)
        }
 
        b, err := io.ReadFile("_obj/writetest");
        if err != nil {
-               t.Fatalf("ReadFile _obj/writetest: %v", err);
+               t.Fatalf("ReadFile _obj/writetest: %v", err)
        }
        if string(b) != "hello, WORLD\n" {
-               t.Fatalf("after write: have %q want %q", string(b), "hello, WORLD\n");
+               t.Fatalf("after write: have %q want %q", string(b), "hello, WORLD\n")
        }
 }
index de4b020d4002ef00555fd536abec23ac9dc2fe3b..057b20b05503e18f311b08537e33734445d4d3c9 100644 (file)
@@ -17,7 +17,7 @@ func MkdirAll(path string, perm int) Error {
        dir, err := Lstat(path);
        if err == nil {
                if dir.IsDirectory() {
-                       return nil;
+                       return nil
                }
                return &PathError{"mkdir", path, ENOTDIR};
        }
@@ -25,19 +25,19 @@ func MkdirAll(path string, perm int) Error {
        // Doesn't already exist; make sure parent does.
        i := len(path);
        for i > 0 && path[i-1] == '/' { // Skip trailing slashes.
-               i--;
+               i--
        }
 
        j := i;
        for j > 0 && path[j-1] != '/' { // Scan backward over element.
-               j--;
+               j--
        }
 
        if j > 0 {
                // Create parent
                err = MkdirAll(path[0 : j-1], perm);
                if err != nil {
-                       return err;
+                       return err
                }
        }
 
@@ -48,7 +48,7 @@ func MkdirAll(path string, perm int) Error {
                // double-checking that directory doesn't exist.
                dir, err1 := Lstat(path);
                if err1 == nil && dir.IsDirectory() {
-                       return nil;
+                       return nil
                }
                return err;
        }
@@ -63,26 +63,26 @@ func RemoveAll(path string) Error {
        // Simple case: if Remove works, we're done.
        err := Remove(path);
        if err == nil {
-               return nil;
+               return nil
        }
 
        // Otherwise, is this a directory we need to recurse into?
        dir, serr := Lstat(path);
        if serr != nil {
                if serr, ok := serr.(*PathError); ok && serr.Error == ENOENT {
-                       return nil;
+                       return nil
                }
                return serr;
        }
        if !dir.IsDirectory() {
                // Not a directory; return the error from Remove.
-               return err;
+               return err
        }
 
        // Directory.
        fd, err := Open(path, O_RDONLY, 0);
        if err != nil {
-               return err;
+               return err
        }
        defer fd.Close();
 
@@ -93,22 +93,22 @@ func RemoveAll(path string) Error {
                for _, name := range names {
                        err1 := RemoveAll(path+"/"+name);
                        if err == nil {
-                               err = err1;
+                               err = err1
                        }
                }
                // If Readdirnames returned an error, use it.
                if err == nil {
-                       err = err1;
+                       err = err1
                }
                if len(names) == 0 {
-                       break;
+                       break
                }
        }
 
        // Remove directory.
        err1 := Remove(path);
        if err == nil {
-               err = err1;
+               err = err1
        }
        return err;
 }
index 61cba30ee8a0f786762e325fc2b3996e7f048288..2dce2c5973540888e66e10d3b2c5e1c0db1ce660 100644 (file)
@@ -15,47 +15,47 @@ func TestMkdirAll(t *testing.T) {
        path := "_obj/_TestMkdirAll_/dir/./dir2";
        err := MkdirAll(path, 0777);
        if err != nil {
-               t.Fatalf("MkdirAll %q: %s", path, err);
+               t.Fatalf("MkdirAll %q: %s", path, err)
        }
 
        // Already exists, should succeed.
        err = MkdirAll(path, 0777);
        if err != nil {
-               t.Fatalf("MkdirAll %q (second time): %s", path, err);
+               t.Fatalf("MkdirAll %q (second time): %s", path, err)
        }
 
        // Make file.
        fpath := path+"/file";
        _, err = Open(fpath, O_WRONLY|O_CREAT, 0666);
        if err != nil {
-               t.Fatalf("create %q: %s", fpath, err);
+               t.Fatalf("create %q: %s", fpath, err)
        }
 
        // Can't make directory named after file.
        err = MkdirAll(fpath, 0777);
        if err == nil {
-               t.Fatalf("MkdirAll %q: no error");
+               t.Fatalf("MkdirAll %q: no error")
        }
        perr, ok := err.(*PathError);
        if !ok {
-               t.Fatalf("MkdirAll %q returned %T, not *PathError", fpath, err);
+               t.Fatalf("MkdirAll %q returned %T, not *PathError", fpath, err)
        }
        if perr.Path != fpath {
-               t.Fatalf("MkdirAll %q returned wrong error path: %q not %q", fpath, perr.Path, fpath);
+               t.Fatalf("MkdirAll %q returned wrong error path: %q not %q", fpath, perr.Path, fpath)
        }
 
        // Can't make subdirectory of file.
        ffpath := fpath + "/subdir";
        err = MkdirAll(ffpath, 0777);
        if err == nil {
-               t.Fatalf("MkdirAll %q: no error");
+               t.Fatalf("MkdirAll %q: no error")
        }
        perr, ok = err.(*PathError);
        if !ok {
-               t.Fatalf("MkdirAll %q returned %T, not *PathError", ffpath, err);
+               t.Fatalf("MkdirAll %q returned %T, not *PathError", ffpath, err)
        }
        if perr.Path != fpath {
-               t.Fatalf("MkdirAll %q returned wrong error path: %q not %q", ffpath, perr.Path, fpath);
+               t.Fatalf("MkdirAll %q returned wrong error path: %q not %q", ffpath, perr.Path, fpath)
        }
 
        RemoveAll("_obj/_TestMkdirAll_");
@@ -69,82 +69,82 @@ func TestRemoveAll(t *testing.T) {
 
        // Make directory with 1 file and remove.
        if err := MkdirAll(path, 0777); err != nil {
-               t.Fatalf("MkdirAll %q: %s", path, err);
+               t.Fatalf("MkdirAll %q: %s", path, err)
        }
        fd, err := Open(fpath, O_WRONLY|O_CREAT, 0666);
        if err != nil {
-               t.Fatalf("create %q: %s", fpath, err);
+               t.Fatalf("create %q: %s", fpath, err)
        }
        fd.Close();
        if err = RemoveAll(path); err != nil {
-               t.Fatalf("RemoveAll %q (first): %s", path, err);
+               t.Fatalf("RemoveAll %q (first): %s", path, err)
        }
        if _, err := Lstat(path); err == nil {
-               t.Fatalf("Lstat %q succeeded after RemoveAll (first)", path);
+               t.Fatalf("Lstat %q succeeded after RemoveAll (first)", path)
        }
 
        // Make directory with file and subdirectory and remove.
        if err = MkdirAll(dpath, 0777); err != nil {
-               t.Fatalf("MkdirAll %q: %s", dpath, err);
+               t.Fatalf("MkdirAll %q: %s", dpath, err)
        }
        fd, err = Open(fpath, O_WRONLY|O_CREAT, 0666);
        if err != nil {
-               t.Fatalf("create %q: %s", fpath, err);
+               t.Fatalf("create %q: %s", fpath, err)
        }
        fd.Close();
        fd, err = Open(dpath+"/file", O_WRONLY|O_CREAT, 0666);
        if err != nil {
-               t.Fatalf("create %q: %s", fpath, err);
+               t.Fatalf("create %q: %s", fpath, err)
        }
        fd.Close();
        if err = RemoveAll(path); err != nil {
-               t.Fatalf("RemoveAll %q (second): %s", path, err);
+               t.Fatalf("RemoveAll %q (second): %s", path, err)
        }
        if _, err := Lstat(path); err == nil {
-               t.Fatalf("Lstat %q succeeded after RemoveAll (second)", path);
+               t.Fatalf("Lstat %q succeeded after RemoveAll (second)", path)
        }
 
        // Make directory with file and subdirectory and trigger error.
        if err = MkdirAll(dpath, 0777); err != nil {
-               t.Fatalf("MkdirAll %q: %s", dpath, err);
+               t.Fatalf("MkdirAll %q: %s", dpath, err)
        }
 
        for _, s := range []string{fpath, dpath+"/file1", path+"/zzz"} {
                fd, err = Open(s, O_WRONLY|O_CREAT, 0666);
                if err != nil {
-                       t.Fatalf("create %q: %s", s, err);
+                       t.Fatalf("create %q: %s", s, err)
                }
                fd.Close();
        }
        if err = Chmod(dpath, 0); err != nil {
-               t.Fatalf("Chmod %q 0: %s", dpath, err);
+               t.Fatalf("Chmod %q 0: %s", dpath, err)
        }
        if err = RemoveAll(path); err == nil {
                _, err := Lstat(path);
                if err == nil {
-                       t.Errorf("Can lstat %q after supposed RemoveAll", path);
+                       t.Errorf("Can lstat %q after supposed RemoveAll", path)
                }
                t.Fatalf("RemoveAll %q succeeded with chmod 0 subdirectory", path, err);
        }
        perr, ok := err.(*PathError);
        if !ok {
-               t.Fatalf("RemoveAll %q returned %T not *PathError", path, err);
+               t.Fatalf("RemoveAll %q returned %T not *PathError", path, err)
        }
        if perr.Path != dpath {
-               t.Fatalf("RemoveAll %q failed at %q not %q", path, perr.Path, dpath);
+               t.Fatalf("RemoveAll %q failed at %q not %q", path, perr.Path, dpath)
        }
        if err = Chmod(dpath, 0777); err != nil {
-               t.Fatalf("Chmod %q 0777: %s", dpath, err);
+               t.Fatalf("Chmod %q 0777: %s", dpath, err)
        }
        for _, s := range []string{fpath, path+"/zzz"} {
                if _, err := Lstat(s); err == nil {
-                       t.Fatalf("Lstat %q succeeded after partial RemoveAll", s);
+                       t.Fatalf("Lstat %q succeeded after partial RemoveAll", s)
                }
        }
        if err = RemoveAll(path); err != nil {
-               t.Fatalf("RemoveAll %q after partial RemoveAll: %s", path, err);
+               t.Fatalf("RemoveAll %q after partial RemoveAll: %s", path, err)
        }
        if _, err := Lstat(path); err == nil {
-               t.Fatalf("Lstat %q succeeded after RemoveAll (final)", path);
+               t.Fatalf("Lstat %q succeeded after RemoveAll (final)", path)
        }
 }
index 6ba402fa6ce2a53038d63e96c4604c2d0bca400b..d712ee8e2a00990fa83a68863a47fe6523ba76a3 100644 (file)
@@ -7,7 +7,7 @@ package os
 import "syscall"
 
 func isSymlink(stat *syscall.Stat_t) bool {
-       return stat.Mode & syscall.S_IFMT == syscall.S_IFLNK;
+       return stat.Mode & syscall.S_IFMT == syscall.S_IFLNK
 }
 
 func dirFromStat(name string, dir *Dir, lstat, stat *syscall.Stat_t) *Dir {
@@ -32,7 +32,7 @@ func dirFromStat(name string, dir *Dir, lstat, stat *syscall.Stat_t) *Dir {
        }
        dir.Name = name;
        if isSymlink(lstat) && !isSymlink(stat) {
-               dir.FollowedSymlink = true;
+               dir.FollowedSymlink = true
        }
        return dir;
 }
index fe4193a5b8663bcdac68beb26e44523016d0e531..c63697df72c32764194b1aee2fe23230f45cb739 100644 (file)
@@ -7,7 +7,7 @@ package os
 import "syscall"
 
 func isSymlink(stat *syscall.Stat_t) bool {
-       return stat.Mode & syscall.S_IFMT == syscall.S_IFLNK;
+       return stat.Mode & syscall.S_IFMT == syscall.S_IFLNK
 }
 
 func dirFromStat(name string, dir *Dir, lstat, stat *syscall.Stat_t) *Dir {
@@ -32,7 +32,7 @@ func dirFromStat(name string, dir *Dir, lstat, stat *syscall.Stat_t) *Dir {
        }
        dir.Name = name;
        if isSymlink(lstat) && !isSymlink(stat) {
-               dir.FollowedSymlink = true;
+               dir.FollowedSymlink = true
        }
        return dir;
 }
index 5295106df781144d4a52afd4f94e68bb13665ff2..a5007d08cdb2ba2d42d0788630ca7f0cee9489d3 100644 (file)
@@ -7,7 +7,7 @@ package os
 import "syscall"
 
 func isSymlink(stat *syscall.Stat_t) bool {
-       return stat.Mode & syscall.S_IFMT == syscall.S_IFLNK;
+       return stat.Mode & syscall.S_IFMT == syscall.S_IFLNK
 }
 
 func dirFromStat(name string, dir *Dir, lstat, stat *syscall.Stat_t) *Dir {
@@ -32,7 +32,7 @@ func dirFromStat(name string, dir *Dir, lstat, stat *syscall.Stat_t) *Dir {
        }
        dir.Name = name;
        if isSymlink(lstat) && !isSymlink(stat) {
-               dir.FollowedSymlink = true;
+               dir.FollowedSymlink = true
        }
        return dir;
 }
index fb57f1733bdfaa3c4d6c28983e8a8bfec12799d3..c92845578be216048298c1c7081475404b1d777f 100644 (file)
@@ -12,7 +12,7 @@ func Hostname() (name string, err Error) {
        var errno int;
        name, errno = syscall.Sysctl("kern.hostname");
        if errno != 0 {
-               return "", NewSyscallError("sysctl kern.hostname", errno);
+               return "", NewSyscallError("sysctl kern.hostname", errno)
        }
        return name, nil;
 }
index 12a99dff329c3ecf15b43beaea8b9d9e868e3b00..896be164de602d4c893bc180037c84e0cb20ffd4 100644 (file)
@@ -11,18 +11,18 @@ package os
 func Hostname() (name string, err Error) {
        f, err := Open("/proc/sys/kernel/hostname", O_RDONLY, 0);
        if err != nil {
-               return "", err;
+               return "", err
        }
        defer f.Close();
 
        var buf [512]byte;      // Enough for a DNS name.
        n, err := f.Read(&buf);
        if err != nil {
-               return "", err;
+               return "", err
        }
 
        if n > 0 && buf[n-1] == '\n' {
-               n--;
+               n--
        }
        return string(buf[0:n]), nil;
 }
index 21d4df7333d143f8d377013641a1c8333daa007e..a82a39382ec999406ca5a48a96103210b56160b0 100644 (file)
@@ -14,7 +14,7 @@ import "syscall"
 func Time() (sec int64, nsec int64, err Error) {
        var tv syscall.Timeval;
        if errno := syscall.Gettimeofday(&tv); errno != 0 {
-               return 0, 0, NewSyscallError("gettimeofday", errno);
+               return 0, 0, NewSyscallError("gettimeofday", errno)
        }
        return int64(tv.Sec), int64(tv.Usec)*1000, err;
 }
index 15413302861bdd1f21c2e418725f35c2406b35fe..fc82f93cc8abd7d405841bb0c9fc1eb19c89154f 100644 (file)
@@ -40,12 +40,12 @@ func (set *Set) Apply(readFile func(string) ([]byte, os.Error)) ([]Op, os.Error)
                        if f.Src != "" {
                                old, err = readFile(f.Src);
                                if err != nil {
-                                       return nil, &os.PathError{string(f.Verb), f.Src, err};
+                                       return nil, &os.PathError{string(f.Verb), f.Src, err}
                                }
                        }
                        o.Data, err = f.Diff.Apply(old);
                        if err != nil {
-                               return nil, &os.PathError{string(f.Verb), f.Src, err};
+                               return nil, &os.PathError{string(f.Verb), f.Src, err}
                        }
                }
        }
index fd03f4a92bd1806b0ded99e15438169dade3cea8..f9335cc45b221e5108f31e5766adbd0b1f39e25c 100644 (file)
@@ -17,7 +17,7 @@ import (
 func gitSHA1(data []byte) []byte {
        if len(data) == 0 {
                // special case: 0 length is all zeros sum
-               return make([]byte, 20);
+               return make([]byte, 20)
        }
        h := sha1.New();
        fmt.Fprintf(h, "blob %d\x00", len(data));
@@ -36,7 +36,7 @@ type GITBinaryLiteral struct {
 // Apply implements the Diff interface's Apply method.
 func (d *GITBinaryLiteral) Apply(old []byte) ([]byte, os.Error) {
        if sum := gitSHA1(old); !bytes.HasPrefix(sum, d.OldSHA1) {
-               return nil, ErrPatchFailure;
+               return nil, ErrPatchFailure
        }
        return d.New, nil;
 }
@@ -44,11 +44,11 @@ func (d *GITBinaryLiteral) Apply(old []byte) ([]byte, os.Error) {
 func unhex(c byte) uint8 {
        switch {
        case '0' <= c && c <= '9':
-               return c-'0';
+               return c-'0'
        case 'a' <= c && c <= 'f':
-               return c-'a'+10;
+               return c-'a'+10
        case 'A' <= c && c <= 'F':
-               return c-'A'+10;
+               return c-'A'+10
        }
        return 255;
 }
@@ -56,12 +56,12 @@ func unhex(c byte) uint8 {
 func getHex(s []byte) (data []byte, rest []byte) {
        n := 0;
        for n < len(s) && unhex(s[n]) != 255 {
-               n++;
+               n++
        }
        n &^= 1;        // Only take an even number of hex digits.
        data = make([]byte, n/2);
        for i := range data {
-               data[i] = unhex(s[2*i])<<4 | unhex(s[2*i + 1]);
+               data[i] = unhex(s[2*i])<<4 | unhex(s[2*i + 1])
        }
        rest = s[n:len(s)];
        return;
@@ -79,7 +79,7 @@ func ParseGITBinary(raw []byte) (Diff, os.Error) {
                if s, ok := skip(first, "index "); ok {
                        oldSHA1, s = getHex(s);
                        if s, ok = skip(s, ".."); !ok {
-                               continue;
+                               continue
                        }
                        newSHA1, s = getHex(s);
                        continue;
@@ -93,28 +93,28 @@ func ParseGITBinary(raw []byte) (Diff, os.Error) {
                        d := git85.NewDecoder(bytes.NewBuffer(raw));
                        z, err := zlib.NewInflater(d);
                        if err != nil {
-                               return nil, err;
+                               return nil, err
                        }
                        defer z.Close();
                        if _, err = io.ReadFull(z, data); err != nil {
                                if err == os.EOF {
-                                       err = io.ErrUnexpectedEOF;
+                                       err = io.ErrUnexpectedEOF
                                }
                                return nil, err;
                        }
                        var buf [1]byte;
                        m, err := z.Read(&buf);
                        if m != 0 || err != os.EOF {
-                               return nil, os.NewError("GIT binary literal longer than expected");
+                               return nil, os.NewError("GIT binary literal longer than expected")
                        }
 
                        if sum := gitSHA1(data); !bytes.HasPrefix(sum, newSHA1) {
-                               return nil, os.NewError("GIT binary literal SHA1 mismatch");
+                               return nil, os.NewError("GIT binary literal SHA1 mismatch")
                        }
                        return &GITBinaryLiteral{oldSHA1, data}, nil;
                }
                if !sawBinary {
-                       return nil, os.NewError("unexpected GIT patch header: " + string(first));
+                       return nil, os.NewError("unexpected GIT patch header: " + string(first))
                }
        }
        panic("unreachable");
index e8ed627f7e9af7ec5b2c558e53c71cc0429a89cb..25f03fe6106b91600876a7bc6e20557a80a33f4e 100644 (file)
@@ -57,7 +57,7 @@ var NoDiff Diff = noDiffType(0)
 type noDiffType int
 
 func (noDiffType) Apply(old []byte) ([]byte, os.Error) {
-       return old, nil;
+       return old, nil
 }
 
 // A SyntaxError represents a syntax error encountered while parsing a patch.
@@ -84,7 +84,7 @@ func Parse(text []byte) (*Set, os.Error) {
        // First look for Index: lines.  If none, fall back on diff lines.
        text, files := sections(text, "Index: ");
        if len(files) == 0 {
-               text, files = sections(text, "diff ");
+               text, files = sections(text, "diff ")
        }
 
        set := &Set{string(text), make([]*File, len(files))};
@@ -114,7 +114,7 @@ func Parse(text []byte) (*Set, os.Error) {
        HaveName:
                p.Dst = path.Clean(p.Dst);
                if strings.HasPrefix(p.Dst, "../") || strings.HasPrefix(p.Dst, "/") {
-                       return nil, SyntaxError("invalid path: " + p.Dst);
+                       return nil, SyntaxError("invalid path: " + p.Dst)
                }
 
                // Parse header lines giving file information:
@@ -180,29 +180,29 @@ func Parse(text []byte) (*Set, os.Error) {
                                // Hg prints
                                //      Binary file foo has changed
                                // when deleting a binary file.
-                               continue;
+                               continue
                        }
                        if s, ok := skip(l, "RCS file: "); ok && len(s) > 0 {
                                // CVS prints
                                //      RCS file: /cvs/plan9/bin/yesterday,v
                                //      retrieving revision 1.1
                                // for each file.
-                               continue;
+                               continue
                        }
                        if s, ok := skip(l, "retrieving revision "); ok && len(s) > 0 {
                                // CVS prints
                                //      RCS file: /cvs/plan9/bin/yesterday,v
                                //      retrieving revision 1.1
                                // for each file.
-                               continue;
+                               continue
                        }
                        if hasPrefix(l, "===") || hasPrefix(l, "---") || hasPrefix(l, "+++") || hasPrefix(l, "diff ") {
-                               continue;
+                               continue
                        }
                        if hasPrefix(l, "@@ -") {
                                diff, err := ParseTextDiff(oldraw);
                                if err != nil {
-                                       return nil, err;
+                                       return nil, err
                                }
                                p.Diff = diff;
                                break;
@@ -210,7 +210,7 @@ func Parse(text []byte) (*Set, os.Error) {
                        if hasPrefix(l, "index ") || hasPrefix(l, "GIT binary patch") {
                                diff, err := ParseGITBinary(oldraw);
                                if err != nil {
-                                       return nil, err;
+                                       return nil, err
                                }
                                p.Diff = diff;
                                break;
@@ -218,10 +218,10 @@ func Parse(text []byte) (*Set, os.Error) {
                        return nil, SyntaxError("unexpected patch header line: " + string(l));
                }
                if p.Diff == nil {
-                       p.Diff = NoDiff;
+                       p.Diff = NoDiff
                }
                if p.Verb == Edit {
-                       p.Src = p.Dst;
+                       p.Src = p.Dst
                }
        }
 
@@ -254,11 +254,11 @@ func sections(text []byte, prefix string) ([]byte, [][]byte) {
        n := 0;
        for b := text; ; {
                if hasPrefix(b, prefix) {
-                       n++;
+                       n++
                }
                nl := bytes.Index(b, newline);
                if nl < 0 {
-                       break;
+                       break
                }
                b = b[nl+1 : len(b)];
        }
@@ -285,7 +285,7 @@ func sections(text []byte, prefix string) ([]byte, [][]byte) {
 // s with that prefix removed and ok == true.
 func skip(s []byte, t string) (ss []byte, ok bool) {
        if len(s) < len(t) || string(s[0:len(t)]) != t {
-               return nil, false;
+               return nil, false
        }
        return s[len(t):len(s)], true;
 }
@@ -296,14 +296,14 @@ func skip(s []byte, t string) (ss []byte, ok bool) {
 // prefix and the digits removed.
 func atoi(s []byte, t string, base int) (n int, ss []byte, ok bool) {
        if s, ok = skip(s, t); !ok {
-               return;
+               return
        }
        var i int;
        for i = 0; i < len(s) && '0' <= s[i] && s[i] <= byte('0'+base-1); i++ {
-               n = n*base + int(s[i]-'0');
+               n = n*base + int(s[i]-'0')
        }
        if i == 0 {
-               return;
+               return
        }
        return n, s[i:len(s)], true;
 }
index b4c64b31b7df634a6377274f4fdf6836172e52b0..dd610eed67e8047c280eed2175e132483c4503a1 100644 (file)
@@ -34,7 +34,7 @@ func TestFileApply(t *testing.T) {
                        continue;
                }
                if s := string(new); s != test.out {
-                       t.Errorf("#%d:\n--- have\n%s--- want\n%s", i, s, test.out);
+                       t.Errorf("#%d:\n--- have\n%s--- want\n%s", i, s, test.out)
                }
        }
 }
index db8527682409fce274bc27d28579b5b3207beb0c..ddf3b260666829e0e36efbd3821ec33b17e036f0 100644 (file)
@@ -32,32 +32,32 @@ func ParseTextDiff(raw []byte) (TextDiff, os.Error) {
                s := chunkHeader;
                if oldLine, s, ok = atoi(s, "@@ -", 10); !ok {
                ErrChunkHdr:
-                       return nil, SyntaxError("unexpected chunk header line: " + string(chunkHeader));
+                       return nil, SyntaxError("unexpected chunk header line: " + string(chunkHeader))
                }
                if len(s) == 0 || s[0] != ',' {
-                       oldCount = 1;
+                       oldCount = 1
                } else if oldCount, s, ok = atoi(s, ",", 10); !ok {
-                       goto ErrChunkHdr;
+                       goto ErrChunkHdr
                }
                if newLine, s, ok = atoi(s, " +", 10); !ok {
-                       goto ErrChunkHdr;
+                       goto ErrChunkHdr
                }
                if len(s) == 0 || s[0] != ',' {
-                       newCount = 1;
+                       newCount = 1
                } else if newCount, s, ok = atoi(s, ",", 10); !ok {
-                       goto ErrChunkHdr;
+                       goto ErrChunkHdr
                }
                if !hasPrefix(s, " @@") {
-                       goto ErrChunkHdr;
+                       goto ErrChunkHdr
                }
 
                // Special case: for created or deleted files, the empty half
                // is given as starting at line 0.  Translate to line 1.
                if oldCount == 0 && oldLine == 0 {
-                       oldLine = 1;
+                       oldLine = 1
                }
                if newCount == 0 && newLine == 0 {
-                       newLine = 1;
+                       newLine = 1
                }
 
                // Count lines in text
@@ -68,18 +68,18 @@ func ParseTextDiff(raw []byte) (TextDiff, os.Error) {
                for _, l := range chunk {
                        if nold == oldCount && nnew == newCount && (len(l) == 0 || l[0] != '\\') {
                                if len(bytes.TrimSpace(l)) != 0 {
-                                       return nil, SyntaxError("too many chunk lines");
+                                       return nil, SyntaxError("too many chunk lines")
                                }
                                continue;
                        }
                        if len(l) == 0 {
-                               return nil, SyntaxError("empty chunk line");
+                               return nil, SyntaxError("empty chunk line")
                        }
                        switch l[0] {
                        case '+':
-                               nnew++;
+                               nnew++
                        case '-':
-                               nold++;
+                               nold++
                        case ' ':
                                nnew++;
                                nold++;
@@ -87,30 +87,30 @@ func ParseTextDiff(raw []byte) (TextDiff, os.Error) {
                                if _, ok := skip(l, "\\ No newline at end of file"); ok {
                                        switch lastch {
                                        case '-':
-                                               dropOldNL = true;
+                                               dropOldNL = true
                                        case '+':
-                                               dropNewNL = true;
+                                               dropNewNL = true
                                        case ' ':
                                                dropOldNL = true;
                                                dropNewNL = true;
                                        default:
-                                               return nil, SyntaxError("message `\\ No newline at end of file' out of context");
+                                               return nil, SyntaxError("message `\\ No newline at end of file' out of context")
                                        }
                                        break;
                                }
                                fallthrough;
                        default:
-                               return nil, SyntaxError("unexpected chunk line: " + string(l));
+                               return nil, SyntaxError("unexpected chunk line: " + string(l))
                        }
                        lastch = l[0];
                }
 
                // Does it match the header?
                if nold != oldCount || nnew != newCount {
-                       return nil, SyntaxError("chunk header does not match line count: " + string(chunkHeader));
+                       return nil, SyntaxError("chunk header does not match line count: " + string(chunkHeader))
                }
                if oldLine+delta != newLine {
-                       return nil, SyntaxError("chunk delta is out of sync with previous chunks");
+                       return nil, SyntaxError("chunk delta is out of sync with previous chunks")
                }
                delta += nnew-nold;
                c.Line = oldLine;
@@ -120,11 +120,11 @@ func ParseTextDiff(raw []byte) (TextDiff, os.Error) {
                nnew = 0;
                for _, l := range chunk {
                        if nold == oldCount && nnew == newCount {
-                               break;
+                               break
                        }
                        ch, l := l[0], l[1:len(l)];
                        if ch == '\\' {
-                               continue;
+                               continue
                        }
                        if ch != '+' {
                                old.Write(l);
@@ -138,10 +138,10 @@ func ParseTextDiff(raw []byte) (TextDiff, os.Error) {
                c.Old = old.Bytes();
                c.New = new.Bytes();
                if dropOldNL {
-                       c.Old = c.Old[0 : len(c.Old)-1];
+                       c.Old = c.Old[0 : len(c.Old)-1]
                }
                if dropNewNL {
-                       c.New = c.New[0 : len(c.New)-1];
+                       c.New = c.New[0 : len(c.New)-1]
                }
        }
        return diff, nil;
@@ -159,7 +159,7 @@ func (d TextDiff) Apply(data []byte) ([]byte, os.Error) {
                var prefix []byte;
                prefix, data, ok = getLine(data, c.Line - line);
                if !ok || !bytes.HasPrefix(data, c.Old) {
-                       return nil, ErrPatchFailure;
+                       return nil, ErrPatchFailure
                }
                buf.Write(prefix);
                data = data[len(c.Old):len(data)];
index 3f4bf0fd562c5b00294cb16327c43e2ee5191225..b7190571290c0d76ba4e052e50405a2c36bd7352 100644 (file)
@@ -31,7 +31,7 @@ import (
 // http://plan9.bell-labs.com/sys/doc/lexnames.html
 func Clean(path string) string {
        if path == "" {
-               return ".";
+               return "."
        }
 
        rooted := path[0] == '/';
@@ -45,17 +45,17 @@ func Clean(path string) string {
        buf := strings.Bytes(path);
        r, w, dotdot := 0, 0, 0;
        if rooted {
-               r, w, dotdot = 1, 1, 1;
+               r, w, dotdot = 1, 1, 1
        }
 
        for r < n {
                switch {
                case path[r] == '/':
                        // empty path element
-                       r++;
+                       r++
                case path[r] == '.' && (r+1 == n || path[r+1] == '/'):
                        // . element
-                       r++;
+                       r++
                case path[r] == '.' && path[r+1] == '.' && (r+2 == n || path[r+2] == '/'):
                        // .. element: remove to last /
                        r += 2;
@@ -64,7 +64,7 @@ func Clean(path string) string {
                                // can backtrack
                                w--;
                                for w > dotdot && buf[w] != '/' {
-                                       w--;
+                                       w--
                                }
                        case !rooted:
                                // cannot backtrack, but not rooted, so append .. element.
@@ -109,7 +109,7 @@ func Clean(path string) string {
 func Split(path string) (dir, file string) {
        for i := len(path)-1; i >= 0; i-- {
                if path[i] == '/' {
-                       return path[0 : i+1], path[i+1 : len(path)];
+                       return path[0 : i+1], path[i+1 : len(path)]
                }
        }
        return "", path;
@@ -119,7 +119,7 @@ func Split(path string) (dir, file string) {
 // slash if necessary.  If dir is empty, it returns file.
 func Join(dir, file string) string {
        if dir == "" {
-               return file;
+               return file
        }
        return Clean(dir+"/"+file);
 }
@@ -131,7 +131,7 @@ func Join(dir, file string) string {
 func Ext(path string) string {
        for i := len(path)-1; i >= 0 && path[i] != '/'; i-- {
                if path[i] == '.' {
-                       return path[i:len(path)];
+                       return path[i:len(path)]
                }
        }
        return "";
@@ -152,18 +152,18 @@ func walk(path string, d *os.Dir, v Visitor, errors chan<- os.Error) {
        }
 
        if !v.VisitDir(path, d) {
-               return; // skip directory entries
+               return  // skip directory entries
        }
 
        list, err := io.ReadDir(path);
        if err != nil {
                if errors != nil {
-                       errors <- err;
+                       errors <- err
                }
        }
 
        for _, e := range list {
-               walk(Join(path, e.Name), e, v, errors);
+               walk(Join(path, e.Name), e, v, errors)
        }
 }
 
@@ -178,7 +178,7 @@ func Walk(root string, v Visitor, errors chan<- os.Error) {
        d, err := os.Lstat(root);
        if err != nil {
                if errors != nil {
-                       errors <- err;
+                       errors <- err
                }
                return; // can't progress
        }
index 396d6db7de3a858266af572191222786f9f0de3f..b5cc33f18249f8bef071f01726fefd6a339c35c1 100644 (file)
@@ -66,7 +66,7 @@ var cleantests = []CleanTest{
 func TestClean(t *testing.T) {
        for _, test := range cleantests {
                if s := Clean(test.path); s != test.clean {
-                       t.Errorf("Clean(%q) = %q, want %q", test.path, s, test.clean);
+                       t.Errorf("Clean(%q) = %q, want %q", test.path, s, test.clean)
                }
        }
 }
@@ -86,7 +86,7 @@ var splittests = []SplitTest{
 func TestSplit(t *testing.T) {
        for _, test := range splittests {
                if d, f := Split(test.path); d != test.dir || f != test.file {
-                       t.Errorf("Split(%q) = %q, %q, want %q, %q", test.path, d, f, test.dir, test.file);
+                       t.Errorf("Split(%q) = %q, %q, want %q, %q", test.path, d, f, test.dir, test.file)
                }
        }
 }
@@ -108,7 +108,7 @@ var jointests = []JoinTest{
 func TestJoin(t *testing.T) {
        for _, test := range jointests {
                if p := Join(test.dir, test.file); p != test.path {
-                       t.Errorf("Join(%q, %q) = %q, want %q", test.dir, test.file, p, test.path);
+                       t.Errorf("Join(%q, %q) = %q, want %q", test.dir, test.file, p, test.path)
                }
        }
 }
@@ -128,7 +128,7 @@ var exttests = []ExtTest{
 func TestExt(t *testing.T) {
        for _, test := range exttests {
                if x := Ext(test.path); x != test.ext {
-                       t.Errorf("Ext(%q) = %q, want %q", test.path, x, test.ext);
+                       t.Errorf("Ext(%q) = %q, want %q", test.path, x, test.ext)
                }
        }
 }
@@ -168,7 +168,7 @@ var tree = &Node{
 func walkTree(n *Node, path string, f func(path string, n *Node)) {
        f(path, n);
        for _, e := range n.entries {
-               walkTree(e, Join(path, e.name), f);
+               walkTree(e, Join(path, e.name), f)
        }
 }
 
@@ -177,13 +177,13 @@ func makeTree(t *testing.T) {
                if n.entries == nil {
                        fd, err := os.Open(path, os.O_CREAT, 0660);
                        if err != nil {
-                               t.Errorf("makeTree: %v", err);
+                               t.Errorf("makeTree: %v", err)
                        }
                        fd.Close();
                } else {
-                       os.Mkdir(path, 0770);
+                       os.Mkdir(path, 0770)
                }
-       });
+       })
 }
 
 func markTree(n *Node) { walkTree(n, "", func(path string, n *Node) { n.mark++ }) }
@@ -191,19 +191,19 @@ func markTree(n *Node)    { walkTree(n, "", func(path string, n *Node) { n.mark++ }
 func checkMarks(t *testing.T) {
        walkTree(tree, tree.name, func(path string, n *Node) {
                if n.mark != 1 {
-                       t.Errorf("node %s mark = %d; expected 1", path, n.mark);
+                       t.Errorf("node %s mark = %d; expected 1", path, n.mark)
                }
                n.mark = 0;
-       });
+       })
 }
 
 // Assumes that each node name is unique. Good enough for a test.
 func mark(name string) {
        walkTree(tree, tree.name, func(path string, n *Node) {
                if n.name == name {
-                       n.mark++;
+                       n.mark++
                }
-       });
+       })
 }
 
 type TestVisitor struct{}
@@ -214,7 +214,7 @@ func (v *TestVisitor) VisitDir(path string, d *os.Dir) bool {
 }
 
 func (v *TestVisitor) VisitFile(path string, d *os.Dir) {
-       mark(d.Name);
+       mark(d.Name)
 }
 
 func TestWalk(t *testing.T) {
@@ -229,7 +229,7 @@ func TestWalk(t *testing.T) {
        errors := make(chan os.Error, 64);
        Walk(tree.name, v, errors);
        if err, ok := <-errors; ok {
-               t.Errorf("no error expected, found: s", err);
+               t.Errorf("no error expected, found: s", err)
        }
        checkMarks(t);
 
@@ -254,7 +254,7 @@ func TestWalk(t *testing.T) {
                }
        }
        if err, ok := <-errors; ok {
-               t.Errorf("only two errors expected, found 3rd: %v", err);
+               t.Errorf("only two errors expected, found 3rd: %v", err)
        }
        // the inaccessible subtrees were marked manually
        checkMarks(t);
@@ -263,6 +263,6 @@ func TestWalk(t *testing.T) {
        os.Chmod(Join(tree.name, tree.entries[1].name), 0770);
        os.Chmod(Join(tree.name, tree.entries[3].name), 0770);
        if err := os.RemoveAll(tree.name); err != nil {
-               t.Errorf("removeTree: %v", err);
+               t.Errorf("removeTree: %v", err)
        }
 }
index a55f361741f97205d22f2f08e7cfffbbd88da4e9..b4b1f01bec5bbbe807fedf032a747171eb0e75b6 100644 (file)
@@ -34,13 +34,13 @@ func (r *Rand) ExpFloat64() float64 {
                i := j&0xFF;
                x := float64(j)*float64(we[i]);
                if j < ke[i] {
-                       return x;
+                       return x
                }
                if i == 0 {
-                       return re - math.Log(r.Float64());
+                       return re - math.Log(r.Float64())
                }
                if fe[i] + float32(r.Float64())*(fe[i-1]-fe[i]) < float32(math.Exp(-x)) {
-                       return x;
+                       return x
                }
        }
        panic("unreachable");
index a2504007e8f84980b64e9ced7b5ad2f992dd6568..f4444dc68a800798ce3eefdaafba6692baf40fd8 100644 (file)
@@ -22,7 +22,7 @@ const (
 
 func absInt32(i int32) uint32 {
        if i < 0 {
-               return uint32(-i);
+               return uint32(-i)
        }
        return uint32(i);
 }
@@ -42,7 +42,7 @@ func (r *Rand) NormFloat64() float64 {
                x := float64(j)*float64(wn[i]);
                if absInt32(j) < kn[i] {
                        // This case should be hit better than 99% of the time.
-                       return x;
+                       return x
                }
 
                if i == 0 {
@@ -51,16 +51,16 @@ func (r *Rand) NormFloat64() float64 {
                                x = -math.Log(r.Float64()) * (1.0/rn);
                                y := -math.Log(r.Float64());
                                if y+y >= x*x {
-                                       break;
+                                       break
                                }
                        }
                        if j > 0 {
-                               return rn+x;
+                               return rn+x
                        }
                        return -rn - x;
                }
                if fn[i] + float32(r.Float64())*(fn[i-1]-fn[i]) < float32(math.Exp(-.5 * x * x)) {
-                       return x;
+                       return x
                }
        }
        panic("unreachable");
index 65b14cd1816ca19621ddb8d3d627f3a1d4aa8c9d..0d69490f361aeb57102d5889bd0bab403b18ea95 100644 (file)
@@ -49,12 +49,12 @@ func (r *Rand) Int() int {
 // Int63n returns, as an int64, a non-negative pseudo-random number in [0,n).
 func (r *Rand) Int63n(n int64) int64 {
        if n <= 0 {
-               return 0;
+               return 0
        }
        max := int64((1<<63) - 1 - (1<<63)%uint64(n));
        v := r.Int63();
        for v > max {
-               v = r.Int63();
+               v = r.Int63()
        }
        return v%n;
 }
@@ -78,7 +78,7 @@ func (r *Rand) Float() float  { return float(r.Float64()) }
 func (r *Rand) Perm(n int) []int {
        m := make([]int, n);
        for i := 0; i < n; i++ {
-               m[i] = i;
+               m[i] = i
        }
        for i := 0; i < n; i++ {
                j := r.Intn(i+1);
index 7a9980ecafe684b0b901f60e931b1a7978f6e865..3aea72acd0e0f230c5504c75e974c79367f16210 100644 (file)
@@ -24,7 +24,7 @@ type statsResults struct {
 
 func max(a, b float64) float64 {
        if a > b {
-               return a;
+               return a
        }
        return b;
 }
@@ -32,7 +32,7 @@ func max(a, b float64) float64 {
 func nearEqual(a, b, closeEnough, maxError float64) bool {
        absDiff := math.Fabs(a-b);
        if absDiff < closeEnough {      // Necessary when one value is zero and one value is close to zero.
-               return true;
+               return true
        }
        return absDiff / max(math.Fabs(a), math.Fabs(b)) < maxError;
 }
@@ -59,12 +59,12 @@ func getStatsResults(samples []float64) *statsResults {
        res := new(statsResults);
        var sum float64;
        for i := range samples {
-               sum += samples[i];
+               sum += samples[i]
        }
        res.mean = sum/float64(len(samples));
        var devsum float64;
        for i := range samples {
-               devsum += math.Pow(samples[i] - res.mean, 2);
+               devsum += math.Pow(samples[i] - res.mean, 2)
        }
        res.stddev = math.Sqrt(devsum/float64(len(samples)));
        return res;
@@ -74,7 +74,7 @@ func checkSampleDistribution(t *testing.T, samples []float64, expected *statsRes
        actual := getStatsResults(samples);
        err := actual.checkSimilarDistribution(expected);
        if err != nil {
-               t.Errorf(err.String());
+               t.Errorf(err.String())
        }
 }
 
@@ -84,9 +84,9 @@ func checkSampleSliceDistributions(t *testing.T, samples []float64, nslices int,
                low := i*chunk;
                var high int;
                if i == nslices-1 {
-                       high = len(samples)-1;
+                       high = len(samples)-1
                } else {
-                       high = (i+1)*chunk;
+                       high = (i+1)*chunk
                }
                checkSampleDistribution(t, samples[low:high], expected);
        }
@@ -100,7 +100,7 @@ func generateNormalSamples(nsamples int, mean, stddev float64, seed int64) []flo
        r := New(NewSource(seed));
        samples := make([]float64, nsamples);
        for i := range samples {
-               samples[i] = r.NormFloat64() * stddev + mean;
+               samples[i] = r.NormFloat64() * stddev + mean
        }
        return samples;
 }
@@ -126,7 +126,7 @@ func testNormalDistribution(t *testing.T, nsamples int, mean, stddev float64, se
 
 func TestStandardNormalValues(t *testing.T) {
        for _, seed := range testSeeds {
-               testNormalDistribution(t, numTestSamples, 0, 1, seed);
+               testNormalDistribution(t, numTestSamples, 0, 1, seed)
        }
 }
 
@@ -134,7 +134,7 @@ func TestNonStandardNormalValues(t *testing.T) {
        for sd := float64(0.5); sd < 1000; sd *= 2 {
                for m := float64(0.5); m < 1000; m *= 2 {
                        for _, seed := range testSeeds {
-                               testNormalDistribution(t, numTestSamples, m, sd, seed);
+                               testNormalDistribution(t, numTestSamples, m, sd, seed)
                        }
                }
        }
@@ -148,7 +148,7 @@ func generateExponentialSamples(nsamples int, rate float64, seed int64) []float6
        r := New(NewSource(seed));
        samples := make([]float64, nsamples);
        for i := range samples {
-               samples[i] = r.ExpFloat64() / rate;
+               samples[i] = r.ExpFloat64() / rate
        }
        return samples;
 }
@@ -177,14 +177,14 @@ func testExponentialDistribution(t *testing.T, nsamples int, rate float64, seed
 
 func TestStandardExponentialValues(t *testing.T) {
        for _, seed := range testSeeds {
-               testExponentialDistribution(t, numTestSamples, 1, seed);
+               testExponentialDistribution(t, numTestSamples, 1, seed)
        }
 }
 
 func TestNonStandardExponentialValues(t *testing.T) {
        for rate := float64(0.05); rate < 10; rate *= 2 {
                for _, seed := range testSeeds {
-                       testExponentialDistribution(t, numTestSamples, rate, seed);
+                       testExponentialDistribution(t, numTestSamples, rate, seed)
                }
        }
 }
@@ -257,13 +257,13 @@ func initExp() (testKe []uint32, testWe, testFe []float32) {
 func compareUint32Slices(s1, s2 []uint32) int {
        if len(s1) != len(s2) {
                if len(s1) > len(s2) {
-                       return len(s2)+1;
+                       return len(s2)+1
                }
                return len(s1)+1;
        }
        for i := range s1 {
                if s1[i] != s2[i] {
-                       return i;
+                       return i
                }
        }
        return -1;
@@ -275,13 +275,13 @@ func compareUint32Slices(s1, s2 []uint32) int {
 func compareFloat32Slices(s1, s2 []float32) int {
        if len(s1) != len(s2) {
                if len(s1) > len(s2) {
-                       return len(s2)+1;
+                       return len(s2)+1
                }
                return len(s1)+1;
        }
        for i := range s1 {
                if !nearEqual(float64(s1[i]), float64(s2[i]), 0, 1e-7) {
-                       return i;
+                       return i
                }
        }
        return -1;
@@ -290,25 +290,25 @@ func compareFloat32Slices(s1, s2 []float32) int {
 func TestNormTables(t *testing.T) {
        testKn, testWn, testFn := initNorm();
        if i := compareUint32Slices(kn[0:len(kn)], testKn); i >= 0 {
-               t.Errorf("kn disagrees at index %v; %v != %v\n", i, kn[i], testKn[i]);
+               t.Errorf("kn disagrees at index %v; %v != %v\n", i, kn[i], testKn[i])
        }
        if i := compareFloat32Slices(wn[0:len(wn)], testWn); i >= 0 {
-               t.Errorf("wn disagrees at index %v; %v != %v\n", i, wn[i], testWn[i]);
+               t.Errorf("wn disagrees at index %v; %v != %v\n", i, wn[i], testWn[i])
        }
        if i := compareFloat32Slices(fn[0:len(fn)], testFn); i >= 0 {
-               t.Errorf("fn disagrees at index %v; %v != %v\n", i, fn[i], testFn[i]);
+               t.Errorf("fn disagrees at index %v; %v != %v\n", i, fn[i], testFn[i])
        }
 }
 
 func TestExpTables(t *testing.T) {
        testKe, testWe, testFe := initExp();
        if i := compareUint32Slices(ke[0:len(ke)], testKe); i >= 0 {
-               t.Errorf("ke disagrees at index %v; %v != %v\n", i, ke[i], testKe[i]);
+               t.Errorf("ke disagrees at index %v; %v != %v\n", i, ke[i], testKe[i])
        }
        if i := compareFloat32Slices(we[0:len(we)], testWe); i >= 0 {
-               t.Errorf("we disagrees at index %v; %v != %v\n", i, we[i], testWe[i]);
+               t.Errorf("we disagrees at index %v; %v != %v\n", i, we[i], testWe[i])
        }
        if i := compareFloat32Slices(fe[0:len(fe)], testFe); i >= 0 {
-               t.Errorf("fe disagrees at index %v; %v != %v\n", i, fe[i], testFe[i]);
+               t.Errorf("fe disagrees at index %v; %v != %v\n", i, fe[i], testFe[i])
        }
 }
index 10b4ac78fc9a1494067cedd8afccae4bc8d4123d..808e9238c789e0a805cb653d7ff530c267e4143c 100644 (file)
@@ -194,7 +194,7 @@ func seedrand(x int32) int32 {
        lo := x%_Q;
        x = _A*lo - _R*hi;
        if x < 0 {
-               x += _M;
+               x += _M
        }
        return x;
 }
@@ -206,10 +206,10 @@ func (rng *rngSource) Seed(seed int64) {
 
        seed = seed%_M;
        if seed < 0 {
-               seed += _M;
+               seed += _M
        }
        if seed == 0 {
-               seed = 89482311;
+               seed = 89482311
        }
 
        x := int32(seed);
@@ -232,12 +232,12 @@ func (rng *rngSource) Seed(seed int64) {
 func (rng *rngSource) Int63() int64 {
        rng.tap--;
        if rng.tap < 0 {
-               rng.tap += _LEN;
+               rng.tap += _LEN
        }
 
        rng.feed--;
        if rng.feed < 0 {
-               rng.feed += _LEN;
+               rng.feed += _LEN
        }
 
        x := (rng.vec[rng.feed] + rng.vec[rng.tap])&_MASK;
index f2e2f92bce2dff5f1000148fc70e8510546c104b..b0ed9e41181992a1ddf4f2e8e8698d6a2cfff6a9 100644 (file)
@@ -29,7 +29,7 @@ func isDigit(c uint8) bool    { return '0' <= c && c <= '9' }
 
 func assert(t *testing.T, s, want string) {
        if s != want {
-               t.Errorf("have %#q want %#q", s, want);
+               t.Errorf("have %#q want %#q", s, want)
        }
 }
 
@@ -202,13 +202,13 @@ var valueTests = []pair{
 func testType(t *testing.T, i int, typ Type, want string) {
        s := typ.String();
        if s != want {
-               t.Errorf("#%d: have %#q, want %#q", i, s, want);
+               t.Errorf("#%d: have %#q, want %#q", i, s, want)
        }
 }
 
 func TestTypes(t *testing.T) {
        for i, tt := range typeTests {
-               testType(t, i, NewValue(tt.i).(*StructValue).Field(0).Type(), tt.s);
+               testType(t, i, NewValue(tt.i).(*StructValue).Field(0).Type(), tt.s)
        }
 }
 
@@ -217,39 +217,39 @@ func TestSet(t *testing.T) {
                v := NewValue(tt.i);
                switch v := v.(type) {
                case *IntValue:
-                       v.Set(132);
+                       v.Set(132)
                case *Int8Value:
-                       v.Set(8);
+                       v.Set(8)
                case *Int16Value:
-                       v.Set(16);
+                       v.Set(16)
                case *Int32Value:
-                       v.Set(32);
+                       v.Set(32)
                case *Int64Value:
-                       v.Set(64);
+                       v.Set(64)
                case *UintValue:
-                       v.Set(132);
+                       v.Set(132)
                case *Uint8Value:
-                       v.Set(8);
+                       v.Set(8)
                case *Uint16Value:
-                       v.Set(16);
+                       v.Set(16)
                case *Uint32Value:
-                       v.Set(32);
+                       v.Set(32)
                case *Uint64Value:
-                       v.Set(64);
+                       v.Set(64)
                case *FloatValue:
-                       v.Set(3200.0);
+                       v.Set(3200.0)
                case *Float32Value:
-                       v.Set(32.1);
+                       v.Set(32.1)
                case *Float64Value:
-                       v.Set(64.2);
+                       v.Set(64.2)
                case *StringValue:
-                       v.Set("stringy cheese");
+                       v.Set("stringy cheese")
                case *BoolValue:
-                       v.Set(true);
+                       v.Set(true)
                }
                s := valueToString(v);
                if s != tt.s {
-                       t.Errorf("#%d: have %#q, want %#q", i, s, tt.s);
+                       t.Errorf("#%d: have %#q, want %#q", i, s, tt.s)
                }
        }
 }
@@ -259,39 +259,39 @@ func TestSetValue(t *testing.T) {
                v := NewValue(tt.i);
                switch v := v.(type) {
                case *IntValue:
-                       v.SetValue(NewValue(int(132)));
+                       v.SetValue(NewValue(int(132)))
                case *Int8Value:
-                       v.SetValue(NewValue(int8(8)));
+                       v.SetValue(NewValue(int8(8)))
                case *Int16Value:
-                       v.SetValue(NewValue(int16(16)));
+                       v.SetValue(NewValue(int16(16)))
                case *Int32Value:
-                       v.SetValue(NewValue(int32(32)));
+                       v.SetValue(NewValue(int32(32)))
                case *Int64Value:
-                       v.SetValue(NewValue(int64(64)));
+                       v.SetValue(NewValue(int64(64)))
                case *UintValue:
-                       v.SetValue(NewValue(uint(132)));
+                       v.SetValue(NewValue(uint(132)))
                case *Uint8Value:
-                       v.SetValue(NewValue(uint8(8)));
+                       v.SetValue(NewValue(uint8(8)))
                case *Uint16Value:
-                       v.SetValue(NewValue(uint16(16)));
+                       v.SetValue(NewValue(uint16(16)))
                case *Uint32Value:
-                       v.SetValue(NewValue(uint32(32)));
+                       v.SetValue(NewValue(uint32(32)))
                case *Uint64Value:
-                       v.SetValue(NewValue(uint64(64)));
+                       v.SetValue(NewValue(uint64(64)))
                case *FloatValue:
-                       v.SetValue(NewValue(float(3200.0)));
+                       v.SetValue(NewValue(float(3200.0)))
                case *Float32Value:
-                       v.SetValue(NewValue(float32(32.1)));
+                       v.SetValue(NewValue(float32(32.1)))
                case *Float64Value:
-                       v.SetValue(NewValue(float64(64.2)));
+                       v.SetValue(NewValue(float64(64.2)))
                case *StringValue:
-                       v.SetValue(NewValue("stringy cheese"));
+                       v.SetValue(NewValue("stringy cheese"))
                case *BoolValue:
-                       v.SetValue(NewValue(true));
+                       v.SetValue(NewValue(true))
                }
                s := valueToString(v);
                if s != tt.s {
-                       t.Errorf("#%d: have %#q, want %#q", i, s, tt.s);
+                       t.Errorf("#%d: have %#q, want %#q", i, s, tt.s)
                }
        }
 }
@@ -315,7 +315,7 @@ func TestValueToString(t *testing.T) {
        for i, test := range valueToStringTests {
                s := valueToString(NewValue(test.i));
                if s != test.s {
-                       t.Errorf("#%d: have %#q, want %#q", i, s, test.s);
+                       t.Errorf("#%d: have %#q, want %#q", i, s, test.s)
                }
        }
 }
@@ -326,7 +326,7 @@ func TestArrayElemSet(t *testing.T) {
        s := valueToString(v);
        const want = "[10]int{1, 2, 3, 4, 123, 6, 7, 8, 9, 10}";
        if s != want {
-               t.Errorf("[10]int: have %#q want %#q", s, want);
+               t.Errorf("[10]int: have %#q want %#q", s, want)
        }
 
        v = NewValue([]int{1, 2, 3, 4, 5, 6, 7, 8, 9, 10});
@@ -334,7 +334,7 @@ func TestArrayElemSet(t *testing.T) {
        s = valueToString(v);
        const want1 = "[]int{1, 2, 3, 4, 123, 6, 7, 8, 9, 10}";
        if s != want1 {
-               t.Errorf("[]int: have %#q want %#q", s, want1);
+               t.Errorf("[]int: have %#q want %#q", s, want1)
        }
 }
 
@@ -345,7 +345,7 @@ func TestPtrPointTo(t *testing.T) {
        vi := NewValue(i);
        vip.(*PtrValue).Elem().(*PtrValue).PointTo(vi);
        if *ip != 1234 {
-               t.Errorf("got %d, want 1234", *ip);
+               t.Errorf("got %d, want 1234", *ip)
        }
 }
 
@@ -366,13 +366,13 @@ func TestAll(t *testing.T) {
 
        f, present := styp.FieldByName("d");
        if !present {
-               t.Errorf("FieldByName says present field is absent");
+               t.Errorf("FieldByName says present field is absent")
        }
        testType(t, 6, f.Type, "float32");
 
        f, present = styp.FieldByName("absent");
        if present {
-               t.Errorf("FieldByName says absent field is present");
+               t.Errorf("FieldByName says absent field is present")
        }
 
        typ = Typeof([32]int32{});
@@ -422,14 +422,14 @@ func TestInterfaceValue(t *testing.T) {
 
        i3 := v2.Interface();
        if _, ok := i3.(float); !ok {
-               t.Error("v2.Interface() did not return float, got ", Typeof(i3));
+               t.Error("v2.Interface() did not return float, got ", Typeof(i3))
        }
 }
 
 func TestFunctionValue(t *testing.T) {
        v := NewValue(func() {});
        if v.Interface() != v.Interface() {
-               t.Fatalf("TestFunction != itself");
+               t.Fatalf("TestFunction != itself")
        }
        assert(t, v.Type().String(), "func()");
 }
@@ -442,7 +442,7 @@ func TestCopyArray(t *testing.T) {
        vb := NewValue(&b);
        for i := 0; i < len(b); i++ {
                if b[i] != c[i] {
-                       t.Fatalf("b != c before test");
+                       t.Fatalf("b != c before test")
                }
        }
        aa := va.(*PtrValue).Elem().(*SliceValue);
@@ -454,20 +454,20 @@ func TestCopyArray(t *testing.T) {
                for i := 0; i < tocopy; i++ {
                        if a[i] != b[i] {
                                t.Errorf("(i) tocopy=%d a[%d]=%d, b[%d]=%d",
-                                       tocopy, i, a[i], i, b[i]);
+                                       tocopy, i, a[i], i, b[i])
                        }
                }
                for i := tocopy; i < len(b); i++ {
                        if b[i] != c[i] {
                                if i < len(a) {
                                        t.Errorf("(ii) tocopy=%d a[%d]=%d, b[%d]=%d, c[%d]=%d",
-                                               tocopy, i, a[i], i, b[i], i, c[i]);
+                                               tocopy, i, a[i], i, b[i], i, c[i])
                                } else {
                                        t.Errorf("(iii) tocopy=%d b[%d]=%d, c[%d]=%d",
-                                               tocopy, i, b[i], i, c[i]);
+                                               tocopy, i, b[i], i, c[i])
                                }
                        } else {
-                               t.Logf("tocopy=%d elem %d is okay\n", tocopy, i);
+                               t.Logf("tocopy=%d elem %d is okay\n", tocopy, i)
                        }
                }
        }
@@ -480,7 +480,7 @@ func TestBigUnnamedStruct(t *testing.T) {
                a, b, c, d int64;
        });
        if b1.a != b.a || b1.b != b.b || b1.c != b.c || b1.d != b.d {
-               t.Errorf("NewValue(%v).Interface().(*Big) = %v", b, b1);
+               t.Errorf("NewValue(%v).Interface().(*Big) = %v", b, b1)
        }
 }
 
@@ -493,7 +493,7 @@ func TestBigStruct(t *testing.T) {
        v := NewValue(b);
        b1 := v.Interface().(big);
        if b1.a != b.a || b1.b != b.b || b1.c != b.c || b1.d != b.d || b1.e != b.e {
-               t.Errorf("NewValue(%v).Interface().(big) = %v", b, b1);
+               t.Errorf("NewValue(%v).Interface().(big) = %v", b, b1)
        }
 }
 
@@ -552,7 +552,7 @@ var deepEqualTests = []DeepEqualTest{
 func TestDeepEqual(t *testing.T) {
        for _, test := range deepEqualTests {
                if r := DeepEqual(test.a, test.b); r != test.eq {
-                       t.Errorf("DeepEqual(%v, %v) = %v, want %v", test.a, test.b, r, test.eq);
+                       t.Errorf("DeepEqual(%v, %v) = %v, want %v", test.a, test.b, r, test.eq)
                }
        }
 }
@@ -561,11 +561,11 @@ func TestTypeof(t *testing.T) {
        for _, test := range deepEqualTests {
                v := NewValue(test.a);
                if v == nil {
-                       continue;
+                       continue
                }
                typ := Typeof(test.a);
                if typ != v.Type() {
-                       t.Errorf("Typeof(%v) = %v, but NewValue(%v).Type() = %v", test.a, typ, test.a, v.Type());
+                       t.Errorf("Typeof(%v) = %v, but NewValue(%v).Type() = %v", test.a, typ, test.a, v.Type())
                }
        }
 }
@@ -580,7 +580,7 @@ func TestDeepEqualRecursiveStruct(t *testing.T) {
        *a = Recursive{12, a};
        *b = Recursive{12, b};
        if !DeepEqual(a, b) {
-               t.Error("DeepEqual(recursive same) = false, want true");
+               t.Error("DeepEqual(recursive same) = false, want true")
        }
 }
 
@@ -598,7 +598,7 @@ func TestDeepEqualComplexStruct(t *testing.T) {
        *a = Complex{5, [3]*Complex{a, b, a}, &stra, m};
        *b = Complex{5, [3]*Complex{b, a, a}, &strb, m};
        if !DeepEqual(a, b) {
-               t.Error("DeepEqual(complex same) = false, want true");
+               t.Error("DeepEqual(complex same) = false, want true")
        }
 }
 
@@ -609,7 +609,7 @@ func TestDeepEqualComplexStructInequality(t *testing.T) {
        *a = Complex{5, [3]*Complex{a, b, a}, &stra, m};
        *b = Complex{5, [3]*Complex{b, a, a}, &strb, m};
        if DeepEqual(a, b) {
-               t.Error("DeepEqual(complex different) = true, want false");
+               t.Error("DeepEqual(complex different) = true, want false")
        }
 }
 
@@ -618,7 +618,7 @@ func check2ndField(x interface{}, offs uintptr, t *testing.T) {
        s := NewValue(x).(*StructValue);
        f := s.Type().(*StructType).Field(1);
        if f.Offset != offs {
-               t.Error("mismatched offsets in structure alignment:", f.Offset, offs);
+               t.Error("mismatched offsets in structure alignment:", f.Offset, offs)
        }
 }
 
@@ -654,14 +654,14 @@ type IsNiller interface {
 func Nil(a interface{}, t *testing.T) {
        n := NewValue(a).(*StructValue).Field(0).(IsNiller);
        if !n.IsNil() {
-               t.Errorf("%v should be nil", a);
+               t.Errorf("%v should be nil", a)
        }
 }
 
 func NotNil(a interface{}, t *testing.T) {
        n := NewValue(a).(*StructValue).Field(0).(IsNiller);
        if n.IsNil() {
-               t.Errorf("value of type %v should not be nil", NewValue(a).Type().String());
+               t.Errorf("value of type %v should not be nil", NewValue(a).Type().String())
        }
 }
 
@@ -672,7 +672,7 @@ func TestIsNil(t *testing.T) {
                ty := Typeof(ts);
                v := MakeZero(ty);
                if _, ok := v.(IsNiller); ok {
-                       t.Errorf("%s is nilable; should not be", ts);
+                       t.Errorf("%s is nilable; should not be", ts)
                }
        }
 
@@ -690,7 +690,7 @@ func TestIsNil(t *testing.T) {
                ty := Typeof(ts).(*StructType).Field(0).Type;
                v := MakeZero(ty);
                if _, ok := v.(IsNiller); !ok {
-                       t.Errorf("%s %T is not nilable; should be", ts, v);
+                       t.Errorf("%s %T is not nilable; should be", ts, v)
                }
        }
 
@@ -746,7 +746,7 @@ func TestInterfaceExtraction(t *testing.T) {
        s.w = os.Stdout;
        v := Indirect(NewValue(&s)).(*StructValue).Field(0).Interface();
        if v != s.w.(interface{}) {
-               t.Error("Interface() on interface: ", v, s.w);
+               t.Error("Interface() on interface: ", v, s.w)
        }
 }
 
@@ -766,7 +766,7 @@ func TestInterfaceEditing(t *testing.T) {
        // not change the value stored in i.
        v.(*StringValue).Set("bye");
        if i.(string) != "hello" {
-               t.Errorf(`Set("bye") changed i to %s`, i.(string));
+               t.Errorf(`Set("bye") changed i to %s`, i.(string))
        }
 
        // the same should be true of smaller items.
@@ -774,14 +774,14 @@ func TestInterfaceEditing(t *testing.T) {
        v = NewValue(i);
        v.(*IntValue).Set(234);
        if i.(int) != 123 {
-               t.Errorf("Set(234) changed i to %d", i.(int));
+               t.Errorf("Set(234) changed i to %d", i.(int))
        }
 }
 
 func TestNilPtrValueSub(t *testing.T) {
        var pi *int;
        if pv := NewValue(pi).(*PtrValue); pv.Elem() != nil {
-               t.Error("NewValue((*int)(nil)).(*PtrValue).Elem() != nil");
+               t.Error("NewValue((*int)(nil)).(*PtrValue).Elem() != nil")
        }
 }
 
@@ -789,7 +789,7 @@ func TestMap(t *testing.T) {
        m := map[string]int{"a": 1, "b": 2};
        mv := NewValue(m).(*MapValue);
        if n := mv.Len(); n != len(m) {
-               t.Errorf("Len = %d, want %d", n, len(m));
+               t.Errorf("Len = %d, want %d", n, len(m))
        }
        keys := mv.Keys();
        i := 0;
@@ -800,16 +800,16 @@ func TestMap(t *testing.T) {
                // but they are in this implementation, which makes
                // the test easier.
                if i >= len(keys) {
-                       t.Errorf("Missing key #%d %q", i, k);
+                       t.Errorf("Missing key #%d %q", i, k)
                } else if kv := keys[i].(*StringValue); kv.Get() != k {
-                       t.Errorf("Keys[%d] = %q, want %q", i, kv.Get(), k);
+                       t.Errorf("Keys[%d] = %q, want %q", i, kv.Get(), k)
                }
                i++;
 
                // Check that value lookup is correct.
                vv := mv.Elem(NewValue(k));
                if vi := vv.(*IntValue).Get(); vi != v {
-                       t.Errorf("Key %q: have value %d, want %d", vi, v);
+                       t.Errorf("Key %q: have value %d, want %d", vi, v)
                }
 
                // Copy into new map.
@@ -817,25 +817,25 @@ func TestMap(t *testing.T) {
        }
        vv := mv.Elem(NewValue("not-present"));
        if vv != nil {
-               t.Errorf("Invalid key: got non-nil value %s", valueToString(vv));
+               t.Errorf("Invalid key: got non-nil value %s", valueToString(vv))
        }
 
        newm := newmap.Interface().(map[string]int);
        if len(newm) != len(m) {
-               t.Errorf("length after copy: newm=%d, m=%d", newm, m);
+               t.Errorf("length after copy: newm=%d, m=%d", newm, m)
        }
 
        for k, v := range newm {
                mv, ok := m[k];
                if mv != v {
-                       t.Errorf("newm[%q] = %d, but m[%q] = %d, %v", k, v, k, mv, ok);
+                       t.Errorf("newm[%q] = %d, but m[%q] = %d, %v", k, v, k, mv, ok)
                }
        }
 
        newmap.SetElem(NewValue("a"), nil);
        v, ok := newm["a"];
        if ok {
-               t.Errorf("newm[\"a\"] = %d after delete", v);
+               t.Errorf("newm[\"a\"] = %d after delete", v)
        }
 }
 
@@ -857,28 +857,28 @@ func TestChan(t *testing.T) {
                // Send
                cv.Send(NewValue(2));
                if i := <-c; i != 2 {
-                       t.Errorf("reflect Send 2, native recv %d", i);
+                       t.Errorf("reflect Send 2, native recv %d", i)
                }
 
                // Recv
                c <- 3;
                if i := cv.Recv().(*IntValue).Get(); i != 3 {
-                       t.Errorf("native send 3, reflect Recv %d", i);
+                       t.Errorf("native send 3, reflect Recv %d", i)
                }
 
                // TryRecv fail
                val := cv.TryRecv();
                if val != nil {
-                       t.Errorf("TryRecv on empty chan: %s", valueToString(val));
+                       t.Errorf("TryRecv on empty chan: %s", valueToString(val))
                }
 
                // TryRecv success
                c <- 4;
                val = cv.TryRecv();
                if val == nil {
-                       t.Errorf("TryRecv on ready chan got nil");
+                       t.Errorf("TryRecv on ready chan got nil")
                } else if i := val.(*IntValue).Get(); i != 4 {
-                       t.Errorf("native send 4, TryRecv %d", i);
+                       t.Errorf("native send 4, TryRecv %d", i)
                }
 
                // TrySend fail
@@ -886,16 +886,16 @@ func TestChan(t *testing.T) {
                ok := cv.TrySend(NewValue(5));
                i := <-c;
                if ok {
-                       t.Errorf("TrySend on full chan succeeded: value %d", i);
+                       t.Errorf("TrySend on full chan succeeded: value %d", i)
                }
 
                // TrySend success
                ok = cv.TrySend(NewValue(6));
                if !ok {
-                       t.Errorf("TrySend on empty chan failed");
+                       t.Errorf("TrySend on empty chan failed")
                } else {
                        if i = <-c; i != 6 {
-                               t.Errorf("TrySend 6, recv %d", i);
+                               t.Errorf("TrySend 6, recv %d", i)
                        }
                }
 
@@ -903,19 +903,19 @@ func TestChan(t *testing.T) {
                c <- 123;
                cv.Close();
                if cv.Closed() {
-                       t.Errorf("closed too soon - 1");
+                       t.Errorf("closed too soon - 1")
                }
                if i := cv.Recv().(*IntValue).Get(); i != 123 {
-                       t.Errorf("send 123 then close; Recv %d", i);
+                       t.Errorf("send 123 then close; Recv %d", i)
                }
                if cv.Closed() {
-                       t.Errorf("closed too soon - 2");
+                       t.Errorf("closed too soon - 2")
                }
                if i := cv.Recv().(*IntValue).Get(); i != 0 {
-                       t.Errorf("after close Recv %d", i);
+                       t.Errorf("after close Recv %d", i)
                }
                if !cv.Closed() {
-                       t.Errorf("not closed");
+                       t.Errorf("not closed")
                }
        }
 
@@ -924,20 +924,20 @@ func TestChan(t *testing.T) {
        cv := MakeChan(Typeof(c).(*ChanType), 0);
        c = cv.Interface().(chan int);
        if cv.TrySend(NewValue(7)) {
-               t.Errorf("TrySend on sync chan succeeded");
+               t.Errorf("TrySend on sync chan succeeded")
        }
        if cv.TryRecv() != nil {
-               t.Errorf("TryRecv on sync chan succeeded");
+               t.Errorf("TryRecv on sync chan succeeded")
        }
 
        // len/cap
        cv = MakeChan(Typeof(c).(*ChanType), 10);
        c = cv.Interface().(chan int);
        for i := 0; i < 3; i++ {
-               c <- i;
+               c <- i
        }
        if l, m := cv.Len(), cv.Cap(); l != len(c) || m != cap(c) {
-               t.Errorf("Len/Cap = %d/%d want %d/%d", l, m, len(c), cap(c));
+               t.Errorf("Len/Cap = %d/%d want %d/%d", l, m, len(c), cap(c))
        }
 
 }
@@ -945,20 +945,20 @@ func TestChan(t *testing.T) {
 // Difficult test for function call because of
 // implicit padding between arguments.
 func dummy(b byte, c int, d byte) (i byte, j int, k byte) {
-       return b, c, d;
+       return b, c, d
 }
 
 func TestFunc(t *testing.T) {
        ret := NewValue(dummy).(*FuncValue).Call([]Value{NewValue(byte(10)), NewValue(20), NewValue(byte(30))});
        if len(ret) != 3 {
-               t.Fatalf("Call returned %d values, want 3", len(ret));
+               t.Fatalf("Call returned %d values, want 3", len(ret))
        }
 
        i := ret[0].(*Uint8Value).Get();
        j := ret[1].(*IntValue).Get();
        k := ret[2].(*Uint8Value).Get();
        if i != 10 || j != 20 || k != 30 {
-               t.Errorf("Call returned %d, %d, %d; want 10, 20, 30", i, j, k);
+               t.Errorf("Call returned %d, %d, %d; want 10, 20, 30", i, j, k)
        }
 }
 
@@ -973,13 +973,13 @@ func TestMethod(t *testing.T) {
        p := Point{3, 4};
        i := Typeof(p).Method(0).Func.Call([]Value{NewValue(p), NewValue(10)})[0].(*IntValue).Get();
        if i != 250 {
-               t.Errorf("Type Method returned %d; want 250", i);
+               t.Errorf("Type Method returned %d; want 250", i)
        }
 
        // Curried method of value.
        i = NewValue(p).Method(0).Call([]Value{NewValue(10)})[0].(*IntValue).Get();
        if i != 250 {
-               t.Errorf("Value Method returned %d; want 250", i);
+               t.Errorf("Value Method returned %d; want 250", i)
        }
 
        // Curried method of interface value.
@@ -994,7 +994,7 @@ func TestMethod(t *testing.T) {
        pv := NewValue(s).(*StructValue).Field(0);
        i = pv.Method(0).Call([]Value{NewValue(10)})[0].(*IntValue).Get();
        if i != 250 {
-               t.Errorf("Interface Method returned %d; want 250", i);
+               t.Errorf("Interface Method returned %d; want 250", i)
        }
 }
 
@@ -1010,18 +1010,18 @@ func TestInterfaceSet(t *testing.T) {
        sv := NewValue(&s).(*PtrValue).Elem().(*StructValue);
        sv.Field(0).(*InterfaceValue).Set(NewValue(p));
        if q := s.I.(*Point); q != p {
-               t.Errorf("i: have %p want %p", q, p);
+               t.Errorf("i: have %p want %p", q, p)
        }
 
        pv := sv.Field(1).(*InterfaceValue);
        pv.Set(NewValue(p));
        if q := s.P.(*Point); q != p {
-               t.Errorf("i: have %p want %p", q, p);
+               t.Errorf("i: have %p want %p", q, p)
        }
 
        i := pv.Method(0).Call([]Value{NewValue(10)})[0].(*IntValue).Get();
        if i != 250 {
-               t.Errorf("Interface Method returned %d; want 250", i);
+               t.Errorf("Interface Method returned %d; want 250", i)
        }
 }
 
@@ -1036,10 +1036,10 @@ func TestAnonymousFields(t *testing.T) {
        var t1 T1;
        type1 := Typeof(t1).(*StructType);
        if field, ok = type1.FieldByName("int"); !ok {
-               t.Error("no field 'int'");
+               t.Error("no field 'int'")
        }
        if field.Index[0] != 1 {
-               t.Error("field index should be 1; is", field.Index);
+               t.Error("field index should be 1; is", field.Index)
        }
 }
 
@@ -1123,13 +1123,13 @@ func TestFieldByIndex(t *testing.T) {
                if f.Name != "" {
                        if test.index != nil {
                                if f.Name != test.name {
-                                       t.Errorf("%s.%s found; want %s", s.Name(), f.Name, test.name);
+                                       t.Errorf("%s.%s found; want %s", s.Name(), f.Name, test.name)
                                }
                        } else {
-                               t.Errorf("%s.%s found", s.Name(), f.Name);
+                               t.Errorf("%s.%s found", s.Name(), f.Name)
                        }
                } else if len(test.index) > 0 {
-                       t.Errorf("%s.%s not found", s.Name(), test.name);
+                       t.Errorf("%s.%s not found", s.Name(), test.name)
                }
 
                if test.value != 0 {
@@ -1137,13 +1137,13 @@ func TestFieldByIndex(t *testing.T) {
                        if v != nil {
                                if x, ok := v.Interface().(int); ok {
                                        if x != test.value {
-                                               t.Errorf("%s%v is %d; want %d", s.Name(), test.index, x, test.value);
+                                               t.Errorf("%s%v is %d; want %d", s.Name(), test.index, x, test.value)
                                        }
                                } else {
-                                       t.Errorf("%s%v value not an int", s.Name(), test.index);
+                                       t.Errorf("%s%v value not an int", s.Name(), test.index)
                                }
                        } else {
-                               t.Errorf("%s%v value not found", s.Name(), test.index);
+                               t.Errorf("%s%v value not found", s.Name(), test.index)
                        }
                }
        }
@@ -1157,19 +1157,19 @@ func TestFieldByName(t *testing.T) {
                        if test.index != nil {
                                // Verify field depth and index.
                                if len(f.Index) != len(test.index) {
-                                       t.Errorf("%s.%s depth %d; want %d", s.Name(), test.name, len(f.Index), len(test.index));
+                                       t.Errorf("%s.%s depth %d; want %d", s.Name(), test.name, len(f.Index), len(test.index))
                                } else {
                                        for i, x := range f.Index {
                                                if x != test.index[i] {
-                                                       t.Errorf("%s.%s.Index[%d] is %d; want %d", s.Name(), test.name, i, x, test.index[i]);
+                                                       t.Errorf("%s.%s.Index[%d] is %d; want %d", s.Name(), test.name, i, x, test.index[i])
                                                }
                                        }
                                }
                        } else {
-                               t.Errorf("%s.%s found", s.Name(), f.Name);
+                               t.Errorf("%s.%s found", s.Name(), f.Name)
                        }
                } else if len(test.index) > 0 {
-                       t.Errorf("%s.%s not found", s.Name(), test.name);
+                       t.Errorf("%s.%s not found", s.Name(), test.name)
                }
 
                if test.value != 0 {
@@ -1177,13 +1177,13 @@ func TestFieldByName(t *testing.T) {
                        if v != nil {
                                if x, ok := v.Interface().(int); ok {
                                        if x != test.value {
-                                               t.Errorf("%s.%s is %d; want %d", s.Name(), test.name, x, test.value);
+                                               t.Errorf("%s.%s is %d; want %d", s.Name(), test.name, x, test.value)
                                        }
                                } else {
-                                       t.Errorf("%s.%s value not an int", s.Name(), test.name);
+                                       t.Errorf("%s.%s value not an int", s.Name(), test.name)
                                }
                        } else {
-                               t.Errorf("%s.%s value not found", s.Name(), test.name);
+                               t.Errorf("%s.%s value not found", s.Name(), test.name)
                        }
                }
        }
index 9d1d14c89786ff2650683e6d8d7ca47ba84d4958..f3e13f85c1f12d92fbf4623826c45e12e3ffb660 100644 (file)
@@ -23,10 +23,10 @@ type visit struct {
 // recursive types.
 func deepValueEqual(v1, v2 Value, visited map[uintptr]*visit, depth int) bool {
        if v1 == nil || v2 == nil {
-               return v1 == v2;
+               return v1 == v2
        }
        if v1.Type() != v2.Type() {
-               return false;
+               return false
        }
 
        // if depth > 10 { panic("deepValueEqual") }    // for debugging
@@ -35,12 +35,12 @@ func deepValueEqual(v1, v2 Value, visited map[uintptr]*visit, depth int) bool {
        addr2 := v2.Addr();
        if addr1 > addr2 {
                // Canonicalize order to reduce number of entries in visited.
-               addr1, addr2 = addr2, addr1;
+               addr1, addr2 = addr2, addr1
        }
 
        // Short circuit if references are identical ...
        if addr1 == addr2 {
-               return true;
+               return true
        }
 
        // ... or already seen
@@ -49,7 +49,7 @@ func deepValueEqual(v1, v2 Value, visited map[uintptr]*visit, depth int) bool {
        typ := v1.Type();
        for p := seen; p != nil; p = p.next {
                if p.a1 == addr1 && p.a2 == addr2 && p.typ == typ {
-                       return true;
+                       return true
                }
        }
 
@@ -61,11 +61,11 @@ func deepValueEqual(v1, v2 Value, visited map[uintptr]*visit, depth int) bool {
                arr1 := v;
                arr2 := v2.(*ArrayValue);
                if arr1.Len() != arr2.Len() {
-                       return false;
+                       return false
                }
                for i := 0; i < arr1.Len(); i++ {
                        if !deepValueEqual(arr1.Elem(i), arr2.Elem(i), visited, depth+1) {
-                               return false;
+                               return false
                        }
                }
                return true;
@@ -73,11 +73,11 @@ func deepValueEqual(v1, v2 Value, visited map[uintptr]*visit, depth int) bool {
                arr1 := v;
                arr2 := v2.(*SliceValue);
                if arr1.Len() != arr2.Len() {
-                       return false;
+                       return false
                }
                for i := 0; i < arr1.Len(); i++ {
                        if !deepValueEqual(arr1.Elem(i), arr2.Elem(i), visited, depth+1) {
-                               return false;
+                               return false
                        }
                }
                return true;
@@ -85,17 +85,17 @@ func deepValueEqual(v1, v2 Value, visited map[uintptr]*visit, depth int) bool {
                i1 := v.Interface();
                i2 := v2.Interface();
                if i1 == nil || i2 == nil {
-                       return i1 == i2;
+                       return i1 == i2
                }
                return deepValueEqual(NewValue(i1), NewValue(i2), visited, depth+1);
        case *PtrValue:
-               return deepValueEqual(v.Elem(), v2.(*PtrValue).Elem(), visited, depth+1);
+               return deepValueEqual(v.Elem(), v2.(*PtrValue).Elem(), visited, depth+1)
        case *StructValue:
                struct1 := v;
                struct2 := v2.(*StructValue);
                for i, n := 0, v.NumField(); i < n; i++ {
                        if !deepValueEqual(struct1.Field(i), struct2.Field(i), visited, depth+1) {
-                               return false;
+                               return false
                        }
                }
                return true;
@@ -103,17 +103,17 @@ func deepValueEqual(v1, v2 Value, visited map[uintptr]*visit, depth int) bool {
                map1 := v;
                map2 := v2.(*MapValue);
                if map1.Len() != map2.Len() {
-                       return false;
+                       return false
                }
                for _, k := range map1.Keys() {
                        if !deepValueEqual(map1.Elem(k), map2.Elem(k), visited, depth+1) {
-                               return false;
+                               return false
                        }
                }
                return true;
        default:
                // Normal equality suffices
-               return v1.Interface() == v2.Interface();
+               return v1.Interface() == v2.Interface()
        }
 
        panic("Not reached");
@@ -124,12 +124,12 @@ func deepValueEqual(v1, v2 Value, visited map[uintptr]*visit, depth int) bool {
 // handles recursive types.
 func DeepEqual(a1, a2 interface{}) bool {
        if a1 == nil || a2 == nil {
-               return a1 == a2;
+               return a1 == a2
        }
        v1 := NewValue(a1);
        v2 := NewValue(a2);
        if v1.Type() != v2.Type() {
-               return false;
+               return false
        }
        return deepValueEqual(v1, v2, make(map[uintptr]*visit), 0);
 }
index 2ec5aa9ac855c801bcaace7e10e2ab77dcd333fb..4a9e75793ba85ec02314a6270cd866de5abf62a9 100644 (file)
@@ -18,55 +18,55 @@ import (
 func valueToString(val Value) string {
        var str string;
        if val == nil {
-               return "<nil>";
+               return "<nil>"
        }
        typ := val.Type();
        switch val := val.(type) {
        case *IntValue:
-               return strconv.Uitoa64(uint64(val.Get()));
+               return strconv.Uitoa64(uint64(val.Get()))
        case *Int8Value:
-               return strconv.Itoa64(int64(val.Get()));
+               return strconv.Itoa64(int64(val.Get()))
        case *Int16Value:
-               return strconv.Itoa64(int64(val.Get()));
+               return strconv.Itoa64(int64(val.Get()))
        case *Int32Value:
-               return strconv.Itoa64(int64(val.Get()));
+               return strconv.Itoa64(int64(val.Get()))
        case *Int64Value:
-               return strconv.Itoa64(int64(val.Get()));
+               return strconv.Itoa64(int64(val.Get()))
        case *UintValue:
-               return strconv.Itoa64(int64(val.Get()));
+               return strconv.Itoa64(int64(val.Get()))
        case *Uint8Value:
-               return strconv.Itoa64(int64(val.Get()));
+               return strconv.Itoa64(int64(val.Get()))
        case *Uint16Value:
-               return strconv.Itoa64(int64(val.Get()));
+               return strconv.Itoa64(int64(val.Get()))
        case *Uint32Value:
-               return strconv.Itoa64(int64(val.Get()));
+               return strconv.Itoa64(int64(val.Get()))
        case *Uint64Value:
-               return strconv.Uitoa64(uint64(val.Get()));
+               return strconv.Uitoa64(uint64(val.Get()))
        case *FloatValue:
                if strconv.FloatSize == 32 {
-                       return strconv.Ftoa32(float32(val.Get()), 'g', -1);
+                       return strconv.Ftoa32(float32(val.Get()), 'g', -1)
                } else {
-                       return strconv.Ftoa64(float64(val.Get()), 'g', -1);
+                       return strconv.Ftoa64(float64(val.Get()), 'g', -1)
                }
        case *Float32Value:
-               return strconv.Ftoa32(val.Get(), 'g', -1);
+               return strconv.Ftoa32(val.Get(), 'g', -1)
        case *Float64Value:
-               return strconv.Ftoa64(val.Get(), 'g', -1);
+               return strconv.Ftoa64(val.Get(), 'g', -1)
        case *StringValue:
-               return val.Get();
+               return val.Get()
        case *BoolValue:
                if val.Get() {
-                       return "true";
+                       return "true"
                } else {
-                       return "false";
+                       return "false"
                }
        case *PtrValue:
                v := val;
                str = typ.String() + "(";
                if v.IsNil() {
-                       str += "0";
+                       str += "0"
                } else {
-                       str += "&" + valueToString(v.Elem());
+                       str += "&" + valueToString(v.Elem())
                }
                str += ")";
                return str;
@@ -76,7 +76,7 @@ func valueToString(val Value) string {
                str += "{";
                for i := 0; i < v.Len(); i++ {
                        if i > 0 {
-                               str += ", ";
+                               str += ", "
                        }
                        str += valueToString(v.Elem(i));
                }
@@ -99,19 +99,19 @@ func valueToString(val Value) string {
                str += "{";
                for i, n := 0, v.NumField(); i < n; i++ {
                        if i > 0 {
-                               str += ", ";
+                               str += ", "
                        }
                        str += valueToString(v.Field(i));
                }
                str += "}";
                return str;
        case *InterfaceValue:
-               return typ.String() + "(" + valueToString(val.Elem()) + ")";
+               return typ.String() + "(" + valueToString(val.Elem()) + ")"
        case *FuncValue:
                v := val;
                return typ.String() + "(" + strconv.Itoa64(int64(v.Get())) + ")";
        default:
-               panicln("valueToString: can't print type ", typ.String());
+               panicln("valueToString: can't print type ", typ.String())
        }
        return "valueToString: can't happen";
 }
index 53ce76a2c9bd1eadf357c558c35f4ddc967c1be8..afb146cef1d64a259073cd79ead33a1b2ef9d710 100644 (file)
@@ -285,19 +285,19 @@ type Type interface {
 }
 
 func (t *uncommonType) uncommon() *uncommonType {
-       return t;
+       return t
 }
 
 func (t *uncommonType) PkgPath() string {
        if t == nil || t.pkgPath == nil {
-               return "";
+               return ""
        }
        return *t.pkgPath;
 }
 
 func (t *uncommonType) Name() string {
        if t == nil || t.name == nil {
-               return "";
+               return ""
        }
        return *t.name;
 }
@@ -312,14 +312,14 @@ func (t *commonType) FieldAlign() int     { return int(t.fieldAlign) }
 
 func (t *uncommonType) Method(i int) (m Method) {
        if t == nil || i < 0 || i >= len(t.methods) {
-               return;
+               return
        }
        p := &t.methods[i];
        if p.name != nil {
-               m.Name = *p.name;
+               m.Name = *p.name
        }
        if p.pkgPath != nil {
-               m.PkgPath = *p.pkgPath;
+               m.PkgPath = *p.pkgPath
        }
        m.Type = toType(*p.typ).(*FuncType);
        fn := p.tfn;
@@ -329,7 +329,7 @@ func (t *uncommonType) Method(i int) (m Method) {
 
 func (t *uncommonType) NumMethod() int {
        if t == nil {
-               return 0;
+               return 0
        }
        return len(t.methods);
 }
@@ -360,11 +360,11 @@ func (t *ChanType) Elem() Type    { return toType(*t.elem) }
 func (d ChanDir) String() string {
        switch d {
        case SendDir:
-               return "chan<-";
+               return "chan<-"
        case RecvDir:
-               return "<-chan";
+               return "<-chan"
        case BothDir:
-               return "chan";
+               return "chan"
        }
        return "ChanDir" + strconv.Itoa(int(d));
 }
@@ -372,7 +372,7 @@ func (d ChanDir) String() string {
 // In returns the type of the i'th function input parameter.
 func (t *FuncType) In(i int) Type {
        if i < 0 || i >= len(t.in) {
-               return nil;
+               return nil
        }
        return toType(*t.in[i]);
 }
@@ -383,7 +383,7 @@ func (t *FuncType) NumIn() int      { return len(t.in) }
 // Out returns the type of the i'th function output parameter.
 func (t *FuncType) Out(i int) Type {
        if i < 0 || i >= len(t.out) {
-               return nil;
+               return nil
        }
        return toType(*t.out[i]);
 }
@@ -394,12 +394,12 @@ func (t *FuncType) NumOut() int   { return len(t.out) }
 // Method returns the i'th interface method.
 func (t *InterfaceType) Method(i int) (m Method) {
        if i < 0 || i >= len(t.methods) {
-               return;
+               return
        }
        p := &t.methods[i];
        m.Name = *p.name;
        if p.pkgPath != nil {
-               m.PkgPath = *p.pkgPath;
+               m.PkgPath = *p.pkgPath
        }
        m.Type = toType(*p.typ).(*FuncType);
        return;
@@ -433,25 +433,25 @@ type StructField struct {
 // Field returns the i'th struct field.
 func (t *StructType) Field(i int) (f StructField) {
        if i < 0 || i >= len(t.fields) {
-               return;
+               return
        }
        p := t.fields[i];
        f.Type = toType(*p.typ);
        if p.name != nil {
-               f.Name = *p.name;
+               f.Name = *p.name
        } else {
                t := f.Type;
                if pt, ok := t.(*PtrType); ok {
-                       t = pt.Elem();
+                       t = pt.Elem()
                }
                f.Name = t.Name();
                f.Anonymous = true;
        }
        if p.pkgPath != nil {
-               f.PkgPath = *p.pkgPath;
+               f.PkgPath = *p.pkgPath
        }
        if p.tag != nil {
-               f.Tag = *p.tag;
+               f.Tag = *p.tag
        }
        f.Offset = p.offset;
        f.Index = []int{i};
@@ -467,10 +467,10 @@ func (t *StructType) FieldByIndex(index []int) (f StructField) {
                if i > 0 {
                        ft := f.Type;
                        if pt, ok := ft.(*PtrType); ok {
-                               ft = pt.Elem();
+                               ft = pt.Elem()
                        }
                        if st, ok := ft.(*StructType); ok {
-                               t = st;
+                               t = st
                        } else {
                                var f0 StructField;
                                f = f0;
@@ -489,7 +489,7 @@ func (t *StructType) fieldByName(name string, mark map[*StructType]bool, depth i
 
        if _, marked := mark[t]; marked {
                // Struct already seen.
-               return;
+               return
        }
        mark[t] = true;
 
@@ -501,20 +501,20 @@ L:        for i, _ := range t.fields {
                switch {
                case f.Name == name:
                        // Matching top-level field.
-                       d = depth;
+                       d = depth
                case f.Anonymous:
                        ft := f.Type;
                        if pt, ok := ft.(*PtrType); ok {
-                               ft = pt.Elem();
+                               ft = pt.Elem()
                        }
                        switch {
                        case ft.Name() == name:
                                // Matching anonymous top-level field.
-                               d = depth;
+                               d = depth
                        case fd > depth:
                                // No top-level field yet; look inside nested structs.
                                if st, ok := ft.(*StructType); ok {
-                                       f, d = st.fieldByName(name, mark, depth+1);
+                                       f, d = st.fieldByName(name, mark, depth+1)
                                }
                        }
                }
@@ -530,7 +530,7 @@ L:  for i, _ := range t.fields {
                        n++;
                        if d == depth {
                                // Impossible to find a field at lower depth.
-                               break L;
+                               break L
                        }
                }
        }
@@ -538,12 +538,12 @@ L:        for i, _ := range t.fields {
        if n == 1 {
                // Found matching field.
                if len(ff.Index) <= depth {
-                       ff.Index = make([]int, depth+1);
+                       ff.Index = make([]int, depth+1)
                }
                ff.Index[depth] = fi;
        } else {
                // None or more than one matching field found.
-               fd = inf;
+               fd = inf
        }
 
        mark[t] = false, false;
@@ -568,57 +568,57 @@ func (t *StructType) NumField() int       { return len(t.fields) }
 func toType(i interface{}) Type {
        switch v := i.(type) {
        case *runtime.BoolType:
-               return (*BoolType)(unsafe.Pointer(v));
+               return (*BoolType)(unsafe.Pointer(v))
        case *runtime.DotDotDotType:
-               return (*DotDotDotType)(unsafe.Pointer(v));
+               return (*DotDotDotType)(unsafe.Pointer(v))
        case *runtime.FloatType:
-               return (*FloatType)(unsafe.Pointer(v));
+               return (*FloatType)(unsafe.Pointer(v))
        case *runtime.Float32Type:
-               return (*Float32Type)(unsafe.Pointer(v));
+               return (*Float32Type)(unsafe.Pointer(v))
        case *runtime.Float64Type:
-               return (*Float64Type)(unsafe.Pointer(v));
+               return (*Float64Type)(unsafe.Pointer(v))
        case *runtime.IntType:
-               return (*IntType)(unsafe.Pointer(v));
+               return (*IntType)(unsafe.Pointer(v))
        case *runtime.Int8Type:
-               return (*Int8Type)(unsafe.Pointer(v));
+               return (*Int8Type)(unsafe.Pointer(v))
        case *runtime.Int16Type:
-               return (*Int16Type)(unsafe.Pointer(v));
+               return (*Int16Type)(unsafe.Pointer(v))
        case *runtime.Int32Type:
-               return (*Int32Type)(unsafe.Pointer(v));
+               return (*Int32Type)(unsafe.Pointer(v))
        case *runtime.Int64Type:
-               return (*Int64Type)(unsafe.Pointer(v));
+               return (*Int64Type)(unsafe.Pointer(v))
        case *runtime.StringType:
-               return (*StringType)(unsafe.Pointer(v));
+               return (*StringType)(unsafe.Pointer(v))
        case *runtime.UintType:
-               return (*UintType)(unsafe.Pointer(v));
+               return (*UintType)(unsafe.Pointer(v))
        case *runtime.Uint8Type:
-               return (*Uint8Type)(unsafe.Pointer(v));
+               return (*Uint8Type)(unsafe.Pointer(v))
        case *runtime.Uint16Type:
-               return (*Uint16Type)(unsafe.Pointer(v));
+               return (*Uint16Type)(unsafe.Pointer(v))
        case *runtime.Uint32Type:
-               return (*Uint32Type)(unsafe.Pointer(v));
+               return (*Uint32Type)(unsafe.Pointer(v))
        case *runtime.Uint64Type:
-               return (*Uint64Type)(unsafe.Pointer(v));
+               return (*Uint64Type)(unsafe.Pointer(v))
        case *runtime.UintptrType:
-               return (*UintptrType)(unsafe.Pointer(v));
+               return (*UintptrType)(unsafe.Pointer(v))
        case *runtime.UnsafePointerType:
-               return (*UnsafePointerType)(unsafe.Pointer(v));
+               return (*UnsafePointerType)(unsafe.Pointer(v))
        case *runtime.ArrayType:
-               return (*ArrayType)(unsafe.Pointer(v));
+               return (*ArrayType)(unsafe.Pointer(v))
        case *runtime.ChanType:
-               return (*ChanType)(unsafe.Pointer(v));
+               return (*ChanType)(unsafe.Pointer(v))
        case *runtime.FuncType:
-               return (*FuncType)(unsafe.Pointer(v));
+               return (*FuncType)(unsafe.Pointer(v))
        case *runtime.InterfaceType:
-               return (*InterfaceType)(unsafe.Pointer(v));
+               return (*InterfaceType)(unsafe.Pointer(v))
        case *runtime.MapType:
-               return (*MapType)(unsafe.Pointer(v));
+               return (*MapType)(unsafe.Pointer(v))
        case *runtime.PtrType:
-               return (*PtrType)(unsafe.Pointer(v));
+               return (*PtrType)(unsafe.Pointer(v))
        case *runtime.SliceType:
-               return (*SliceType)(unsafe.Pointer(v));
+               return (*SliceType)(unsafe.Pointer(v))
        case *runtime.StructType:
-               return (*StructType)(unsafe.Pointer(v));
+               return (*StructType)(unsafe.Pointer(v))
        }
        panicln("toType", i);
 }
index 3935e635386317d7dda59529cc710080eb452861..4ebd49fb2b55f4a422e3c67f48274bfa1dca1362 100644 (file)
@@ -30,12 +30,12 @@ func memmove(adst, asrc addr, n uintptr) {
        case (n|src|dst)&(ptrSize-1) != 0:
                // byte copy forward
                for i := uintptr(0); i < n; i++ {
-                       *(*byte)(addr(dst+i)) = *(*byte)(addr(src+i));
+                       *(*byte)(addr(dst+i)) = *(*byte)(addr(src+i))
                }
        default:
                // word copy forward
                for i := uintptr(0); i < n; i += ptrSize {
-                       *(*uintptr)(addr(dst+i)) = *(*uintptr)(addr(src+i));
+                       *(*uintptr)(addr(dst+i)) = *(*uintptr)(addr(src+i))
                }
        }
 }
@@ -94,7 +94,7 @@ func (v *value) Interface() interface{} {
                // to extract correctly.
                if typ.NumMethod() == 0 {
                        // Extract as interface value without methods.
-                       return *(*interface{})(v.addr);
+                       return *(*interface{})(v.addr)
                }
                // Extract from v.addr as interface value with methods.
                return *(*interface {
@@ -121,7 +121,7 @@ func (v *BoolValue) Get() bool      { return *(*bool)(v.addr) }
 // Set sets v to the value x.
 func (v *BoolValue) Set(x bool) {
        if !v.canSet {
-               panic(cannotSet);
+               panic(cannotSet)
        }
        *(*bool)(v.addr) = x;
 }
@@ -140,7 +140,7 @@ func (v *FloatValue) Get() float    { return *(*float)(v.addr) }
 // Set sets v to the value x.
 func (v *FloatValue) Set(x float) {
        if !v.canSet {
-               panic(cannotSet);
+               panic(cannotSet)
        }
        *(*float)(v.addr) = x;
 }
@@ -159,7 +159,7 @@ func (v *Float32Value) Get() float32        { return *(*float32)(v.addr) }
 // Set sets v to the value x.
 func (v *Float32Value) Set(x float32) {
        if !v.canSet {
-               panic(cannotSet);
+               panic(cannotSet)
        }
        *(*float32)(v.addr) = x;
 }
@@ -178,7 +178,7 @@ func (v *Float64Value) Get() float64        { return *(*float64)(v.addr) }
 // Set sets v to the value x.
 func (v *Float64Value) Set(x float64) {
        if !v.canSet {
-               panic(cannotSet);
+               panic(cannotSet)
        }
        *(*float64)(v.addr) = x;
 }
@@ -197,7 +197,7 @@ func (v *IntValue) Get() int        { return *(*int)(v.addr) }
 // Set sets v to the value x.
 func (v *IntValue) Set(x int) {
        if !v.canSet {
-               panic(cannotSet);
+               panic(cannotSet)
        }
        *(*int)(v.addr) = x;
 }
@@ -216,7 +216,7 @@ func (v *Int8Value) Get() int8      { return *(*int8)(v.addr) }
 // Set sets v to the value x.
 func (v *Int8Value) Set(x int8) {
        if !v.canSet {
-               panic(cannotSet);
+               panic(cannotSet)
        }
        *(*int8)(v.addr) = x;
 }
@@ -235,7 +235,7 @@ func (v *Int16Value) Get() int16    { return *(*int16)(v.addr) }
 // Set sets v to the value x.
 func (v *Int16Value) Set(x int16) {
        if !v.canSet {
-               panic(cannotSet);
+               panic(cannotSet)
        }
        *(*int16)(v.addr) = x;
 }
@@ -254,7 +254,7 @@ func (v *Int32Value) Get() int32    { return *(*int32)(v.addr) }
 // Set sets v to the value x.
 func (v *Int32Value) Set(x int32) {
        if !v.canSet {
-               panic(cannotSet);
+               panic(cannotSet)
        }
        *(*int32)(v.addr) = x;
 }
@@ -273,7 +273,7 @@ func (v *Int64Value) Get() int64    { return *(*int64)(v.addr) }
 // Set sets v to the value x.
 func (v *Int64Value) Set(x int64) {
        if !v.canSet {
-               panic(cannotSet);
+               panic(cannotSet)
        }
        *(*int64)(v.addr) = x;
 }
@@ -292,7 +292,7 @@ func (v *StringValue) Get() string  { return *(*string)(v.addr) }
 // Set sets v to the value x.
 func (v *StringValue) Set(x string) {
        if !v.canSet {
-               panic(cannotSet);
+               panic(cannotSet)
        }
        *(*string)(v.addr) = x;
 }
@@ -311,7 +311,7 @@ func (v *UintValue) Get() uint      { return *(*uint)(v.addr) }
 // Set sets v to the value x.
 func (v *UintValue) Set(x uint) {
        if !v.canSet {
-               panic(cannotSet);
+               panic(cannotSet)
        }
        *(*uint)(v.addr) = x;
 }
@@ -330,7 +330,7 @@ func (v *Uint8Value) Get() uint8    { return *(*uint8)(v.addr) }
 // Set sets v to the value x.
 func (v *Uint8Value) Set(x uint8) {
        if !v.canSet {
-               panic(cannotSet);
+               panic(cannotSet)
        }
        *(*uint8)(v.addr) = x;
 }
@@ -349,7 +349,7 @@ func (v *Uint16Value) Get() uint16  { return *(*uint16)(v.addr) }
 // Set sets v to the value x.
 func (v *Uint16Value) Set(x uint16) {
        if !v.canSet {
-               panic(cannotSet);
+               panic(cannotSet)
        }
        *(*uint16)(v.addr) = x;
 }
@@ -368,7 +368,7 @@ func (v *Uint32Value) Get() uint32  { return *(*uint32)(v.addr) }
 // Set sets v to the value x.
 func (v *Uint32Value) Set(x uint32) {
        if !v.canSet {
-               panic(cannotSet);
+               panic(cannotSet)
        }
        *(*uint32)(v.addr) = x;
 }
@@ -387,7 +387,7 @@ func (v *Uint64Value) Get() uint64  { return *(*uint64)(v.addr) }
 // Set sets v to the value x.
 func (v *Uint64Value) Set(x uint64) {
        if !v.canSet {
-               panic(cannotSet);
+               panic(cannotSet)
        }
        *(*uint64)(v.addr) = x;
 }
@@ -406,7 +406,7 @@ func (v *UintptrValue) Get() uintptr        { return *(*uintptr)(v.addr) }
 // Set sets v to the value x.
 func (v *UintptrValue) Set(x uintptr) {
        if !v.canSet {
-               panic(cannotSet);
+               panic(cannotSet)
        }
        *(*uintptr)(v.addr) = x;
 }
@@ -428,19 +428,19 @@ func (v *UnsafePointerValue) Get() uintptr        { return uintptr(*(*unsafe.Pointer)(v
 // Set sets v to the value x.
 func (v *UnsafePointerValue) Set(x unsafe.Pointer) {
        if !v.canSet {
-               panic(cannotSet);
+               panic(cannotSet)
        }
        *(*unsafe.Pointer)(v.addr) = x;
 }
 
 // Set sets v to the value x.
 func (v *UnsafePointerValue) SetValue(x Value) {
-       v.Set(unsafe.Pointer(x.(*UnsafePointerValue).Get()));
+       v.Set(unsafe.Pointer(x.(*UnsafePointerValue).Get()))
 }
 
 func typesMustMatch(t1, t2 Type) {
        if t1 != t2 {
-               panicln("type mismatch:", t1.String(), "!=", t2.String());
+               panicln("type mismatch:", t1.String(), "!=", t2.String())
        }
 }
 
@@ -470,7 +470,7 @@ func ArrayCopy(dst, src ArrayOrSliceValue) int {
        typesMustMatch(de, se);
        n := dst.Len();
        if xn := src.Len(); n > xn {
-               n = xn;
+               n = xn
        }
        memmove(dst.addr(), src.addr(), uintptr(n) * de.Size());
        return n;
@@ -494,7 +494,7 @@ func (v *ArrayValue) addr() addr    { return v.value.addr }
 // The new value x must have the same type as v.
 func (v *ArrayValue) Set(x *ArrayValue) {
        if !v.canSet {
-               panic(cannotSet);
+               panic(cannotSet)
        }
        typesMustMatch(v.typ, x.typ);
        ArrayCopy(v, x);
@@ -508,7 +508,7 @@ func (v *ArrayValue) Elem(i int) Value {
        typ := v.typ.(*ArrayType).Elem();
        n := v.Len();
        if i < 0 || i >= n {
-               panic("index", i, "in array len", n);
+               panic("index", i, "in array len", n)
        }
        p := addr(uintptr(v.addr()) + uintptr(i) * typ.Size());
        return newValue(typ, p, v.canSet);
@@ -549,7 +549,7 @@ func (v *SliceValue) addr() addr    { return addr(v.slice().Data) }
 func (v *SliceValue) SetLen(n int) {
        s := v.slice();
        if n < 0 || n > int(s.Cap) {
-               panicln("SetLen", n, "with capacity", s.Cap);
+               panicln("SetLen", n, "with capacity", s.Cap)
        }
        s.Len = n;
 }
@@ -558,7 +558,7 @@ func (v *SliceValue) SetLen(n int) {
 // The new value x must have the same type as v.
 func (v *SliceValue) Set(x *SliceValue) {
        if !v.canSet {
-               panic(cannotSet);
+               panic(cannotSet)
        }
        typesMustMatch(v.typ, x.typ);
        *v.slice() = *x.slice();
@@ -571,7 +571,7 @@ func (v *SliceValue) SetValue(x Value)      { v.Set(x.(*SliceValue)) }
 func (v *SliceValue) Slice(beg, end int) *SliceValue {
        cap := v.Cap();
        if beg < 0 || end < beg || end > cap {
-               panic("slice bounds [", beg, ":", end, "] with capacity ", cap);
+               panic("slice bounds [", beg, ":", end, "] with capacity ", cap)
        }
        typ := v.typ.(*SliceType);
        s := new(SliceHeader);
@@ -586,7 +586,7 @@ func (v *SliceValue) Elem(i int) Value {
        typ := v.typ.(*SliceType).Elem();
        n := v.Len();
        if i < 0 || i >= n {
-               panicln("index", i, "in array of length", n);
+               panicln("index", i, "in array of length", n)
        }
        p := addr(uintptr(v.addr()) + uintptr(i) * typ.Size());
        return newValue(typ, p, v.canSet);
@@ -598,7 +598,7 @@ func MakeSlice(typ *SliceType, len, cap int) *SliceValue {
        s := new(SliceHeader);
        size := typ.Elem().Size() * uintptr(cap);
        if size == 0 {
-               size = 1;
+               size = 1
        }
        data := make([]uint8, size);
        s.Data = uintptr(addr(&data[0]));
@@ -623,7 +623,7 @@ func (v *ChanValue) IsNil() bool    { return *(*uintptr)(v.addr) == 0 }
 // The new value x must have the same type as v.
 func (v *ChanValue) Set(x *ChanValue) {
        if !v.canSet {
-               panic(cannotSet);
+               panic(cannotSet)
        }
        typesMustMatch(v.typ, x.typ);
        *(*uintptr)(v.addr) = *(*uintptr)(x.addr);
@@ -671,7 +671,7 @@ func (v *ChanValue) Cap() int {
 func (v *ChanValue) send(x Value, b *bool) {
        t := v.Type().(*ChanType);
        if t.Dir() & SendDir == 0 {
-               panic("send on recv-only channel");
+               panic("send on recv-only channel")
        }
        typesMustMatch(t.Elem(), x.Type());
        ch := *(**byte)(v.addr);
@@ -682,7 +682,7 @@ func (v *ChanValue) send(x Value, b *bool) {
 func (v *ChanValue) recv(b *bool) Value {
        t := v.Type().(*ChanType);
        if t.Dir() & RecvDir == 0 {
-               panic("recv on send-only channel");
+               panic("recv on send-only channel")
        }
        ch := *(**byte)(v.addr);
        x := MakeZero(t.Elem());
@@ -710,7 +710,7 @@ func (v *ChanValue) TryRecv() Value {
        var ok bool;
        x := v.recv(&ok);
        if !ok {
-               return nil;
+               return nil
        }
        return x;
 }
@@ -718,10 +718,10 @@ func (v *ChanValue) TryRecv() Value {
 // MakeChan creates a new channel with the specified type and buffer size.
 func MakeChan(typ *ChanType, buffer int) *ChanValue {
        if buffer < 0 {
-               panic("MakeChan: negative buffer size");
+               panic("MakeChan: negative buffer size")
        }
        if typ.Dir() != BothDir {
-               panic("MakeChan: unidirectional channel type");
+               panic("MakeChan: unidirectional channel type")
        }
        v := MakeZero(typ).(*ChanValue);
        *(**byte)(v.addr) = makechan((*runtime.ChanType)(unsafe.Pointer(typ)), uint32(buffer));
@@ -750,7 +750,7 @@ func (v *FuncValue) Get() uintptr   { return *(*uintptr)(v.addr) }
 // The new value x must have the same type as v.
 func (v *FuncValue) Set(x *FuncValue) {
        if !v.canSet {
-               panic(cannotSet);
+               panic(cannotSet)
        }
        typesMustMatch(v.typ, x.typ);
        *(*uintptr)(v.addr) = *(*uintptr)(x.addr);
@@ -766,7 +766,7 @@ func (v *FuncValue) SetValue(x Value)       { v.Set(x.(*FuncValue)) }
 func (v *value) Method(i int) *FuncValue {
        t := v.Type().uncommon();
        if t == nil || i < 0 || i >= len(t.methods) {
-               return nil;
+               return nil
        }
        p := &t.methods[i];
        fn := p.tfn;
@@ -789,10 +789,10 @@ func (fv *FuncValue) Call(in []Value) []Value {
        t := fv.Type().(*FuncType);
        nin := len(in);
        if fv.first != nil && !fv.isInterface {
-               nin++;
+               nin++
        }
        if nin != t.NumIn() {
-               panic("FuncValue: wrong argument count");
+               panic("FuncValue: wrong argument count")
        }
        nout := t.NumOut();
 
@@ -803,7 +803,7 @@ func (fv *FuncValue) Call(in []Value) []Value {
        size := uintptr(0);
        if fv.isInterface {
                // extra word for interface value
-               size += ptrSize;
+               size += ptrSize
        }
        for i := 0; i < nin; i++ {
                tv := t.In(i);
@@ -823,7 +823,7 @@ func (fv *FuncValue) Call(in []Value) []Value {
        // the argument copying is going to round it up to
        // a multiple of 8 anyway, so make it 8 to begin with.
        if size < 8 {
-               size = 8;
+               size = 8
        }
        args := make([]byte, size);
        ptr := uintptr(unsafe.Pointer(&args[0]));
@@ -908,7 +908,7 @@ func setiface(typ *InterfaceType, x *interface{}, addr addr)
 func (v *InterfaceValue) Set(x Value) {
        i := x.Interface();
        if !v.canSet {
-               panic(cannotSet);
+               panic(cannotSet)
        }
        // Two different representations; see comment in Get.
        // Empty interface is easy.
@@ -932,7 +932,7 @@ func (v *InterfaceValue) SetValue(x Value)  { v.Set(x) }
 func (v *InterfaceValue) Method(i int) *FuncValue {
        t := v.Type().(*InterfaceType);
        if t == nil || i < 0 || i >= len(t.methods) {
-               return nil;
+               return nil
        }
        p := &t.methods[i];
 
@@ -962,7 +962,7 @@ func (v *MapValue) IsNil() bool     { return *(*uintptr)(v.addr) == 0 }
 // The new value x must have the same type as v.
 func (v *MapValue) Set(x *MapValue) {
        if !v.canSet {
-               panic(cannotSet);
+               panic(cannotSet)
        }
        typesMustMatch(v.typ, x.typ);
        *(*uintptr)(v.addr) = *(*uintptr)(x.addr);
@@ -987,11 +987,11 @@ func (v *MapValue) Elem(key Value) Value {
        typesMustMatch(t.Key(), key.Type());
        m := *(**byte)(v.addr);
        if m == nil {
-               return nil;
+               return nil
        }
        newval := MakeZero(t.Elem());
        if !mapaccess(m, (*byte)(key.getAddr()), (*byte)(newval.getAddr())) {
-               return nil;
+               return nil
        }
        return newval;
 }
@@ -1014,7 +1014,7 @@ func (v *MapValue) SetElem(key, val Value) {
 func (v *MapValue) Len() int {
        m := *(**byte)(v.addr);
        if m == nil {
-               return 0;
+               return 0
        }
        return int(maplen(m));
 }
@@ -1026,7 +1026,7 @@ func (v *MapValue) Keys() []Value {
        m := *(**byte)(v.addr);
        mlen := int32(0);
        if m != nil {
-               mlen = maplen(m);
+               mlen = maplen(m)
        }
        it := mapiterinit(m);
        a := make([]Value, mlen);
@@ -1034,7 +1034,7 @@ func (v *MapValue) Keys() []Value {
        for i = 0; i < len(a); i++ {
                k := MakeZero(tk);
                if !mapiterkey(it, (*byte)(k.getAddr())) {
-                       break;
+                       break
                }
                a[i] = k;
                mapiternext(it);
@@ -1069,7 +1069,7 @@ func (v *PtrValue) Get() uintptr  { return *(*uintptr)(v.addr) }
 // The new value x must have the same type as v.
 func (v *PtrValue) Set(x *PtrValue) {
        if !v.canSet {
-               panic(cannotSet);
+               panic(cannotSet)
        }
        typesMustMatch(v.typ, x.typ);
        // TODO: This will have to move into the runtime
@@ -1083,7 +1083,7 @@ func (v *PtrValue) SetValue(x Value)      { v.Set(x.(*PtrValue)) }
 // PointTo changes v to point to x.
 func (v *PtrValue) PointTo(x Value) {
        if !x.CanSet() {
-               panic("cannot set x; cannot point to x");
+               panic("cannot set x; cannot point to x")
        }
        typesMustMatch(v.typ.(*PtrType).Elem(), x.Type());
        // TODO: This will have to move into the runtime
@@ -1095,7 +1095,7 @@ func (v *PtrValue) PointTo(x Value) {
 // If v is a nil pointer, Elem returns a nil Value.
 func (v *PtrValue) Elem() Value {
        if v.IsNil() {
-               return nil;
+               return nil
        }
        return newValue(v.typ.(*PtrType).Elem(), *(*addr)(v.addr), v.canSet);
 }
@@ -1105,7 +1105,7 @@ func (v *PtrValue) Elem() Value {
 // If v is not a pointer, Indirect returns v.
 func Indirect(v Value) Value {
        if pv, ok := v.(*PtrValue); ok {
-               return pv.Elem();
+               return pv.Elem()
        }
        return v;
 }
@@ -1125,7 +1125,7 @@ func (v *StructValue) Set(x *StructValue) {
        // TODO: This will have to move into the runtime
        // once the gc goes in.
        if !v.canSet {
-               panic(cannotSet);
+               panic(cannotSet)
        }
        typesMustMatch(v.typ, x.typ);
        memmove(v.addr, x.addr, v.typ.Size());
@@ -1138,7 +1138,7 @@ func (v *StructValue) SetValue(x Value)   { v.Set(x.(*StructValue)) }
 func (v *StructValue) Field(i int) Value {
        t := v.typ.(*StructType);
        if i < 0 || i >= t.NumField() {
-               return nil;
+               return nil
        }
        f := t.Field(i);
        return newValue(f.Type, addr(uintptr(v.addr) + f.Offset), v.canSet && f.PkgPath == "");
@@ -1150,10 +1150,10 @@ func (t *StructValue) FieldByIndex(index []int) (v Value) {
        for i, x := range index {
                if i > 0 {
                        if p, ok := v.(*PtrValue); ok {
-                               v = p.Elem();
+                               v = p.Elem()
                        }
                        if s, ok := v.(*StructValue); ok {
-                               t = s;
+                               t = s
                        } else {
                                v = nil;
                                return;
@@ -1168,7 +1168,7 @@ func (t *StructValue) FieldByIndex(index []int) (v Value) {
 // The result is nil if no field was found.
 func (t *StructValue) FieldByName(name string) Value {
        if f, ok := t.Type().(*StructType).FieldByName(name); ok {
-               return t.FieldByIndex(f.Index);
+               return t.FieldByIndex(f.Index)
        }
        return nil;
 }
@@ -1184,7 +1184,7 @@ func (v *StructValue) NumField() int      { return v.typ.(*StructType).NumField() }
 // stored in the interface i.  NewValue(nil) returns nil.
 func NewValue(i interface{}) Value {
        if i == nil {
-               return nil;
+               return nil
        }
        t, a := unsafe.Reflect(i);
        return newValue(toType(t), addr(a), true);
@@ -1192,14 +1192,14 @@ func NewValue(i interface{}) Value {
 
 
 func newFuncValue(typ Type, addr addr, canSet bool) *FuncValue {
-       return &FuncValue{value: value{typ, addr, canSet}};
+       return &FuncValue{value: value{typ, addr, canSet}}
 }
 
 func newValue(typ Type, addr addr, canSet bool) Value {
        // FuncValue has a different layout;
        // it needs a extra space for the fixed receivers.
        if _, ok := typ.(*FuncType); ok {
-               return newFuncValue(typ, addr, canSet);
+               return newFuncValue(typ, addr, canSet)
        }
 
        // All values have same memory layout;
@@ -1214,53 +1214,53 @@ func newValue(typ Type, addr addr, canSet bool) Value {
                // they're our types.
                // Something about implicit assignment
                // to struct fields.
-               return (*ArrayValue)(v);
+               return (*ArrayValue)(v)
        case *BoolType:
-               return (*BoolValue)(v);
+               return (*BoolValue)(v)
        case *ChanType:
-               return (*ChanValue)(v);
+               return (*ChanValue)(v)
        case *FloatType:
-               return (*FloatValue)(v);
+               return (*FloatValue)(v)
        case *Float32Type:
-               return (*Float32Value)(v);
+               return (*Float32Value)(v)
        case *Float64Type:
-               return (*Float64Value)(v);
+               return (*Float64Value)(v)
        case *IntType:
-               return (*IntValue)(v);
+               return (*IntValue)(v)
        case *Int8Type:
-               return (*Int8Value)(v);
+               return (*Int8Value)(v)
        case *Int16Type:
-               return (*Int16Value)(v);
+               return (*Int16Value)(v)
        case *Int32Type:
-               return (*Int32Value)(v);
+               return (*Int32Value)(v)
        case *Int64Type:
-               return (*Int64Value)(v);
+               return (*Int64Value)(v)
        case *InterfaceType:
-               return (*InterfaceValue)(v);
+               return (*InterfaceValue)(v)
        case *MapType:
-               return (*MapValue)(v);
+               return (*MapValue)(v)
        case *PtrType:
-               return (*PtrValue)(v);
+               return (*PtrValue)(v)
        case *SliceType:
-               return (*SliceValue)(v);
+               return (*SliceValue)(v)
        case *StringType:
-               return (*StringValue)(v);
+               return (*StringValue)(v)
        case *StructType:
-               return (*StructValue)(v);
+               return (*StructValue)(v)
        case *UintType:
-               return (*UintValue)(v);
+               return (*UintValue)(v)
        case *Uint8Type:
-               return (*Uint8Value)(v);
+               return (*Uint8Value)(v)
        case *Uint16Type:
-               return (*Uint16Value)(v);
+               return (*Uint16Value)(v)
        case *Uint32Type:
-               return (*Uint32Value)(v);
+               return (*Uint32Value)(v)
        case *Uint64Type:
-               return (*Uint64Value)(v);
+               return (*Uint64Value)(v)
        case *UintptrType:
-               return (*UintptrValue)(v);
+               return (*UintptrValue)(v)
        case *UnsafePointerType:
-               return (*UnsafePointerValue)(v);
+               return (*UnsafePointerValue)(v)
        }
        panicln("newValue", typ.String());
 }
@@ -1272,7 +1272,7 @@ func MakeZero(typ Type) Value {
        // with the garbage collector.
        size := typ.Size();
        if size == 0 {
-               size = 1;
+               size = 1
        }
        data := make([]uint8, size);
        return newValue(typ, addr(&data[0]), true);
index 2cd2fecf7b711404281e5a90f7ce424d18c54815..08f99dd68d1e0b8af122e337244c659bb8512235 100644 (file)
@@ -91,7 +91,7 @@ var matches = []tester{
 func compileTest(t *testing.T, expr string, error os.Error) *Regexp {
        re, err := Compile(expr);
        if err != error {
-               t.Error("compiling `", expr, "`; unexpected error: ", err.String());
+               t.Error("compiling `", expr, "`; unexpected error: ", err.String())
        }
        return re;
 }
@@ -99,10 +99,10 @@ func compileTest(t *testing.T, expr string, error os.Error) *Regexp {
 func printVec(t *testing.T, m []int) {
        l := len(m);
        if l == 0 {
-               t.Log("\t<no match>");
+               t.Log("\t<no match>")
        } else {
                for i := 0; i < l; i = i+2 {
-                       t.Log("\t", m[i], ",", m[i+1]);
+                       t.Log("\t", m[i], ",", m[i+1])
                }
        }
 }
@@ -110,10 +110,10 @@ func printVec(t *testing.T, m []int) {
 func printStrings(t *testing.T, m []string) {
        l := len(m);
        if l == 0 {
-               t.Log("\t<no match>");
+               t.Log("\t<no match>")
        } else {
                for i := 0; i < l; i = i+2 {
-                       t.Logf("\t%q", m[i]);
+                       t.Logf("\t%q", m[i])
                }
        }
 }
@@ -121,10 +121,10 @@ func printStrings(t *testing.T, m []string) {
 func printBytes(t *testing.T, b [][]byte) {
        l := len(b);
        if l == 0 {
-               t.Log("\t<no match>");
+               t.Log("\t<no match>")
        } else {
                for i := 0; i < l; i = i+2 {
-                       t.Logf("\t%q", b[i]);
+                       t.Logf("\t%q", b[i])
                }
        }
 }
@@ -132,11 +132,11 @@ func printBytes(t *testing.T, b [][]byte) {
 func equal(m1, m2 []int) bool {
        l := len(m1);
        if l != len(m2) {
-               return false;
+               return false
        }
        for i := 0; i < l; i++ {
                if m1[i] != m2[i] {
-                       return false;
+                       return false
                }
        }
        return true;
@@ -145,11 +145,11 @@ func equal(m1, m2 []int) bool {
 func equalStrings(m1, m2 []string) bool {
        l := len(m1);
        if l != len(m2) {
-               return false;
+               return false
        }
        for i := 0; i < l; i++ {
                if m1[i] != m2[i] {
-                       return false;
+                       return false
                }
        }
        return true;
@@ -158,11 +158,11 @@ func equalStrings(m1, m2 []string) bool {
 func equalBytes(m1 [][]byte, m2 []string) bool {
        l := len(m1);
        if l != len(m2) {
-               return false;
+               return false
        }
        for i := 0; i < l; i++ {
                if string(m1[i]) != m2[i] {
-                       return false;
+                       return false
                }
        }
        return true;
@@ -171,7 +171,7 @@ func equalBytes(m1 [][]byte, m2 []string) bool {
 func executeTest(t *testing.T, expr string, str string, match []int) {
        re := compileTest(t, expr, nil);
        if re == nil {
-               return;
+               return
        }
        m := re.ExecuteString(str);
        if !equal(m, match) {
@@ -192,13 +192,13 @@ func executeTest(t *testing.T, expr string, str string, match []int) {
 
 func TestGoodCompile(t *testing.T) {
        for i := 0; i < len(good_re); i++ {
-               compileTest(t, good_re[i], nil);
+               compileTest(t, good_re[i], nil)
        }
 }
 
 func TestBadCompile(t *testing.T) {
        for i := 0; i < len(bad_re); i++ {
-               compileTest(t, bad_re[i].re, bad_re[i].err);
+               compileTest(t, bad_re[i].re, bad_re[i].err)
        }
 }
 
@@ -212,16 +212,16 @@ func TestExecute(t *testing.T) {
 func matchTest(t *testing.T, expr string, str string, match []int) {
        re := compileTest(t, expr, nil);
        if re == nil {
-               return;
+               return
        }
        m := re.MatchString(str);
        if m != (len(match) > 0) {
-               t.Error("MatchString failure on `", expr, "` matching `", str, "`:", m, "should be", len(match) > 0);
+               t.Error("MatchString failure on `", expr, "` matching `", str, "`:", m, "should be", len(match) > 0)
        }
        // now try bytes
        m = re.Match(strings.Bytes(str));
        if m != (len(match) > 0) {
-               t.Error("Match failure on `", expr, "` matching `", str, "`:", m, "should be", len(match) > 0);
+               t.Error("Match failure on `", expr, "` matching `", str, "`:", m, "should be", len(match) > 0)
        }
 }
 
@@ -235,11 +235,11 @@ func TestMatch(t *testing.T) {
 func matchStringsTest(t *testing.T, expr string, str string, match []int) {
        re := compileTest(t, expr, nil);
        if re == nil {
-               return;
+               return
        }
        strs := make([]string, len(match)/2);
        for i := 0; i < len(match); i++ {
-               strs[i/2] = str[match[i]:match[i+1]];
+               strs[i/2] = str[match[i]:match[i+1]]
        }
        m := re.MatchStrings(str);
        if !equalStrings(m, strs) {
@@ -268,10 +268,10 @@ func TestMatchStrings(t *testing.T) {
 func matchFunctionTest(t *testing.T, expr string, str string, match []int) {
        m, err := MatchString(expr, str);
        if err == nil {
-               return;
+               return
        }
        if m != (len(match) > 0) {
-               t.Error("function Match failure on `", expr, "` matching `", str, "`:", m, "should be", len(match) > 0);
+               t.Error("function Match failure on `", expr, "` matching `", str, "`:", m, "should be", len(match) > 0)
        }
 }
 
@@ -358,13 +358,13 @@ func TestReplaceAll(t *testing.T) {
                actual := re.ReplaceAllString(tc.input, tc.replacement);
                if actual != tc.output {
                        t.Errorf("%q.Replace(%q,%q) = %q; want %q",
-                               tc.pattern, tc.input, tc.replacement, actual, tc.output);
+                               tc.pattern, tc.input, tc.replacement, actual, tc.output)
                }
                // now try bytes
                actual = string(re.ReplaceAll(strings.Bytes(tc.input), strings.Bytes(tc.replacement)));
                if actual != tc.output {
                        t.Errorf("%q.Replace(%q,%q) = %q; want %q",
-                               tc.pattern, tc.input, tc.replacement, actual, tc.output);
+                               tc.pattern, tc.input, tc.replacement, actual, tc.output)
                }
        }
 }
@@ -403,7 +403,7 @@ func TestQuoteMeta(t *testing.T) {
                        expected := "abcxyzdef";
                        if replaced != expected {
                                t.Errorf("QuoteMeta(`%s`).Replace(`%s`,`%s`) = `%s`; want `%s`",
-                                       tc.pattern, src, repl, replaced, expected);
+                                       tc.pattern, src, repl, replaced, expected)
                        }
                }
        }
@@ -439,10 +439,10 @@ var matchCases = []matchCase{
 func printStringSlice(t *testing.T, s []string) {
        l := len(s);
        if l == 0 {
-               t.Log("\t<empty>");
+               t.Log("\t<empty>")
        } else {
                for i := 0; i < l; i++ {
-                       t.Logf("\t%q", s[i]);
+                       t.Logf("\t%q", s[i])
                }
        }
 }
@@ -496,7 +496,7 @@ func TestAllMatches(t *testing.T) {
                        }
                        result = result[0:i];
                case "stringmatch":
-                       result = re.AllMatchesString(c.input, c.n);
+                       result = re.AllMatchesString(c.input, c.n)
                }
 
                if !equalStrings(result, c.expected) {
index 24fd597f773acb2a341066898eaf22d03d56c876..bc56724a08ec5f5120ae88a6e44682470df94065 100644 (file)
@@ -153,15 +153,15 @@ func (cclass *_CharClass) kind() int      { return _CHARCLASS }
 func (cclass *_CharClass) print() {
        print("charclass");
        if cclass.negate {
-               print(" (negated)");
+               print(" (negated)")
        }
        for i := 0; i < cclass.ranges.Len(); i += 2 {
                l := cclass.ranges.At(i);
                r := cclass.ranges.At(i+1);
                if l == r {
-                       print(" [", string(l), "]");
+                       print(" [", string(l), "]")
                } else {
-                       print(" [", string(l), "-", string(r), "]");
+                       print(" [", string(l), "-", string(r), "]")
                }
        }
 }
@@ -177,7 +177,7 @@ func (cclass *_CharClass) matches(c int) bool {
                min := cclass.ranges.At(i);
                max := cclass.ranges.At(i+1);
                if min <= c && c <= max {
-                       return !cclass.negate;
+                       return !cclass.negate
                }
        }
        return cclass.negate;
@@ -260,7 +260,7 @@ func (p *parser) c() int    { return p.ch }
 
 func (p *parser) nextc() int {
        if p.pos >= len(p.re.expr) {
-               p.ch = endOfFile;
+               p.ch = endOfFile
        } else {
                c, w := utf8.DecodeRuneInString(p.re.expr[p.pos : len(p.re.expr)]);
                p.ch = c;
@@ -280,7 +280,7 @@ func special(c int) bool {
        s := `\.+*?()|[]^$`;
        for i := 0; i < len(s); i++ {
                if c == int(s[i]) {
-                       return true;
+                       return true
                }
        }
        return false;
@@ -290,7 +290,7 @@ func specialcclass(c int) bool {
        s := `\-[]`;
        for i := 0; i < len(s); i++ {
                if c == int(s[i]) {
-                       return true;
+                       return true
                }
        }
        return false;
@@ -329,7 +329,7 @@ func (p *parser) charClass() instr {
                                p.error = ErrExtraneousBackslash;
                                return nil;
                        case c == 'n':
-                               c = '\n';
+                               c = '\n'
                        case specialcclass(c):
                                // c is as delivered
                        default:
@@ -345,7 +345,7 @@ func (p *parser) charClass() instr {
                                        p.nextc();
                                        left = c;
                                } else {        // single char
-                                       cc.addRange(c, c);
+                                       cc.addRange(c, c)
                                }
                        case left <= c: // second of pair
                                cc.addRange(left, c);
@@ -365,11 +365,11 @@ func (p *parser) term() (start, end instr) {
        // The other functions (closure(), concatenation() etc.) assume
        // it's safe to recur to here.
        if p.error != nil {
-               return;
+               return
        }
        switch c := p.c(); c {
        case '|', endOfFile:
-               return nil, nil;
+               return nil, nil
        case '*', '+':
                p.error = ErrBareClosure;
                return;
@@ -398,7 +398,7 @@ func (p *parser) term() (start, end instr) {
                p.nextc();
                start = p.charClass();
                if p.error != nil {
-                       return;
+                       return
                }
                if p.c() != ']' {
                        p.error = ErrUnmatchedLbkt;
@@ -431,7 +431,7 @@ func (p *parser) term() (start, end instr) {
                        }
                        start = ebra;
                } else {
-                       end.setNext(ebra);
+                       end.setNext(ebra)
                }
                bra.setNext(start);
                return bra, ebra;
@@ -442,7 +442,7 @@ func (p *parser) term() (start, end instr) {
                        p.error = ErrExtraneousBackslash;
                        return;
                case c == 'n':
-                       c = '\n';
+                       c = '\n'
                case special(c):
                        // c is as delivered
                default:
@@ -462,7 +462,7 @@ func (p *parser) term() (start, end instr) {
 func (p *parser) closure() (start, end instr) {
        start, end = p.term();
        if start == nil || p.error != nil {
-               return;
+               return
        }
        switch p.c() {
        case '*':
@@ -492,11 +492,11 @@ func (p *parser) closure() (start, end instr) {
                start = alt;            // start is now alt
                end = nop;              // end is nop pointed to by both branches
        default:
-               return;
+               return
        }
        switch p.nextc() {
        case '*', '+', '?':
-               p.error = ErrBadClosure;
+               p.error = ErrBadClosure
        }
        return;
 }
@@ -505,7 +505,7 @@ func (p *parser) concatenation() (start, end instr) {
        for {
                nstart, nend := p.closure();
                if p.error != nil {
-                       return;
+                       return
                }
                switch {
                case nstart == nil:     // end of this concatenation
@@ -515,7 +515,7 @@ func (p *parser) concatenation() (start, end instr) {
                        }
                        return;
                case start == nil:      // this is first element of concatenation
-                       start, end = nstart, nend;
+                       start, end = nstart, nend
                default:
                        end.setNext(nstart);
                        end = nend;
@@ -527,17 +527,17 @@ func (p *parser) concatenation() (start, end instr) {
 func (p *parser) regexp() (start, end instr) {
        start, end = p.concatenation();
        if p.error != nil {
-               return;
+               return
        }
        for {
                switch p.c() {
                default:
-                       return;
+                       return
                case '|':
                        p.nextc();
                        nstart, nend := p.concatenation();
                        if p.error != nil {
-                               return;
+                               return
                        }
                        alt := new(_Alt);
                        p.re.add(alt);
@@ -555,7 +555,7 @@ func (p *parser) regexp() (start, end instr) {
 
 func unNop(i instr) instr {
        for i.kind() == _NOP {
-               i = i.next();
+               i = i.next()
        }
        return i;
 }
@@ -564,7 +564,7 @@ func (re *Regexp) eliminateNops() {
        for i := 0; i < re.inst.Len(); i++ {
                inst := re.inst.At(i).(instr);
                if inst.kind() == _END {
-                       continue;
+                       continue
                }
                inst.setNext(unNop(inst.next()));
                if inst.kind() == _ALT {
@@ -580,7 +580,7 @@ func (re *Regexp) dump() {
                print(inst.index(), ": ");
                inst.print();
                if inst.kind() != _END {
-                       print(" -> ", inst.next().index());
+                       print(" -> ", inst.next().index())
                }
                print("\n");
        }
@@ -592,7 +592,7 @@ func (re *Regexp) doParse() os.Error {
        re.add(start);
        s, e := p.regexp();
        if p.error != nil {
-               return p.error;
+               return p.error
        }
        start.setNext(s);
        re.start = start;
@@ -627,7 +627,7 @@ func Compile(str string) (regexp *Regexp, error os.Error) {
 func MustCompile(str string) *Regexp {
        regexp, error := Compile(str);
        if error != nil {
-               panicln(`regexp: compiling "`, str, `": `, error.String());
+               panicln(`regexp: compiling "`, str, `": `, error.String())
        }
        return regexp;
 }
@@ -648,13 +648,13 @@ func addState(s []state, inst instr, match []int) []state {
        for i := 0; i < l; i++ {
                if s[i].inst.index() == index &&        // same instruction
                        s[i].match[0] < pos {   // earlier match already going; lefmost wins
-                       return s;
+                       return s
                }
        }
        if l == cap(s) {
                s1 := make([]state, 2*l)[0:l];
                for i := 0; i < l; i++ {
-                       s1[i] = s[i];
+                       s1[i] = s[i]
                }
                s = s1;
        }
@@ -675,14 +675,14 @@ func (re *Regexp) doExecute(str string, bytes []byte, pos int) []int {
        found := false;
        end := len(str);
        if bytes != nil {
-               end = len(bytes);
+               end = len(bytes)
        }
        for pos <= end {
                if !found {
                        // prime the pump if we haven't seen a match yet
                        match := make([]int, 2*(re.nbra + 1));
                        for i := 0; i < len(match); i++ {
-                               match[i] = -1;  // no match seen; catches cases like "a(b)?c" on "ac"
+                               match[i] = -1   // no match seen; catches cases like "a(b)?c" on "ac"
                        }
                        match[0] = pos;
                        s[out] = addState(s[out], re.start.next(), match);
@@ -691,15 +691,15 @@ func (re *Regexp) doExecute(str string, bytes []byte, pos int) []int {
                s[out] = s[out][0:0];   // clear out state
                if len(s[in]) == 0 {
                        // machine has completed
-                       break;
+                       break
                }
                charwidth := 1;
                c := endOfFile;
                if pos < end {
                        if bytes == nil {
-                               c, charwidth = utf8.DecodeRuneInString(str[pos:end]);
+                               c, charwidth = utf8.DecodeRuneInString(str[pos:end])
                        } else {
-                               c, charwidth = utf8.DecodeRune(bytes[pos:end]);
+                               c, charwidth = utf8.DecodeRune(bytes[pos:end])
                        }
                }
                for i := 0; i < len(s[in]); i++ {
@@ -707,27 +707,27 @@ func (re *Regexp) doExecute(str string, bytes []byte, pos int) []int {
                        switch s[in][i].inst.kind() {
                        case _BOT:
                                if pos == 0 {
-                                       s[in] = addState(s[in], st.inst.next(), st.match);
+                                       s[in] = addState(s[in], st.inst.next(), st.match)
                                }
                        case _EOT:
                                if pos == end {
-                                       s[in] = addState(s[in], st.inst.next(), st.match);
+                                       s[in] = addState(s[in], st.inst.next(), st.match)
                                }
                        case _CHAR:
                                if c == st.inst.(*_Char).char {
-                                       s[out] = addState(s[out], st.inst.next(), st.match);
+                                       s[out] = addState(s[out], st.inst.next(), st.match)
                                }
                        case _CHARCLASS:
                                if st.inst.(*_CharClass).matches(c) {
-                                       s[out] = addState(s[out], st.inst.next(), st.match);
+                                       s[out] = addState(s[out], st.inst.next(), st.match)
                                }
                        case _ANY:
                                if c != endOfFile {
-                                       s[out] = addState(s[out], st.inst.next(), st.match);
+                                       s[out] = addState(s[out], st.inst.next(), st.match)
                                }
                        case _NOTNL:
                                if c != endOfFile && c != '\n' {
-                                       s[out] = addState(s[out], st.inst.next(), st.match);
+                                       s[out] = addState(s[out], st.inst.next(), st.match)
                                }
                        case _BRA:
                                n := st.inst.(*_Bra).n;
@@ -742,7 +742,7 @@ func (re *Regexp) doExecute(str string, bytes []byte, pos int) []int {
                                // give other branch a copy of this match vector
                                s1 := make([]int, 2*(re.nbra + 1));
                                for i := 0; i < len(s1); i++ {
-                                       s1[i] = st.match[i];
+                                       s1[i] = st.match[i]
                                }
                                s[in] = addState(s[in], st.inst.next(), s1);
                        case _END:
@@ -773,7 +773,7 @@ func (re *Regexp) doExecute(str string, bytes []byte, pos int) []int {
 // A negative value means the subexpression did not match any element of the string.
 // An empty array means "no match".
 func (re *Regexp) ExecuteString(s string) (a []int) {
-       return re.doExecute(s, nil, 0);
+       return re.doExecute(s, nil, 0)
 }
 
 
@@ -805,12 +805,12 @@ func (re *Regexp) Match(b []byte) bool    { return len(re.doExecute("", b, 0)) > 0
 func (re *Regexp) MatchStrings(s string) (a []string) {
        r := re.doExecute(s, nil, 0);
        if r == nil {
-               return nil;
+               return nil
        }
        a = make([]string, len(r)/2);
        for i := 0; i < len(r); i += 2 {
                if r[i] != -1 { // -1 means no match for this subexpression
-                       a[i/2] = s[r[i]:r[i+1]];
+                       a[i/2] = s[r[i]:r[i+1]]
                }
        }
        return;
@@ -824,12 +824,12 @@ func (re *Regexp) MatchStrings(s string) (a []string) {
 func (re *Regexp) MatchSlices(b []byte) (a [][]byte) {
        r := re.doExecute("", b, 0);
        if r == nil {
-               return nil;
+               return nil
        }
        a = make([][]byte, len(r)/2);
        for i := 0; i < len(r); i += 2 {
                if r[i] != -1 { // -1 means no match for this subexpression
-                       a[i/2] = b[r[i]:r[i+1]];
+                       a[i/2] = b[r[i]:r[i+1]]
                }
        }
        return;
@@ -841,7 +841,7 @@ func (re *Regexp) MatchSlices(b []byte) (a [][]byte) {
 func MatchString(pattern string, s string) (matched bool, error os.Error) {
        re, err := Compile(pattern);
        if err != nil {
-               return false, err;
+               return false, err
        }
        return re.MatchString(s), nil;
 }
@@ -852,7 +852,7 @@ func MatchString(pattern string, s string) (matched bool, error os.Error) {
 func Match(pattern string, b []byte) (matched bool, error os.Error) {
        re, err := Compile(pattern);
        if err != nil {
-               return false, err;
+               return false, err
        }
        return re.Match(b), nil;
 }
@@ -867,7 +867,7 @@ func (re *Regexp) ReplaceAllString(src, repl string) string {
        for searchPos <= len(src) {
                a := re.doExecute(src, nil, searchPos);
                if len(a) == 0 {
-                       break;  // no more matches
+                       break   // no more matches
                }
 
                // Copy the unmatched characters before this match.
@@ -878,20 +878,20 @@ func (re *Regexp) ReplaceAllString(src, repl string) string {
                // (Otherwise, we get double replacement for patterns that
                // match both empty and nonempty strings.)
                if a[1] > lastMatchEnd || a[0] == 0 {
-                       io.WriteString(buf, repl);
+                       io.WriteString(buf, repl)
                }
                lastMatchEnd = a[1];
 
                // Advance past this match; always advance at least one character.
                _, width := utf8.DecodeRuneInString(src[searchPos : len(src)]);
                if searchPos + width > a[1] {
-                       searchPos += width;
+                       searchPos += width
                } else if searchPos + 1 > a[1] {
                        // This clause is only needed at the end of the input
                        // string.  In that case, DecodeRuneInString returns width=0.
-                       searchPos++;
+                       searchPos++
                } else {
-                       searchPos = a[1];
+                       searchPos = a[1]
                }
        }
 
@@ -911,7 +911,7 @@ func (re *Regexp) ReplaceAll(src, repl []byte) []byte {
        for searchPos <= len(src) {
                a := re.doExecute("", src, searchPos);
                if len(a) == 0 {
-                       break;  // no more matches
+                       break   // no more matches
                }
 
                // Copy the unmatched characters before this match.
@@ -922,20 +922,20 @@ func (re *Regexp) ReplaceAll(src, repl []byte) []byte {
                // (Otherwise, we get double replacement for patterns that
                // match both empty and nonempty strings.)
                if a[1] > lastMatchEnd || a[0] == 0 {
-                       buf.Write(repl);
+                       buf.Write(repl)
                }
                lastMatchEnd = a[1];
 
                // Advance past this match; always advance at least one character.
                _, width := utf8.DecodeRune(src[searchPos : len(src)]);
                if searchPos + width > a[1] {
-                       searchPos += width;
+                       searchPos += width
                } else if searchPos + 1 > a[1] {
                        // This clause is only needed at the end of the input
                        // string.  In that case, DecodeRuneInString returns width=0.
-                       searchPos++;
+                       searchPos++
                } else {
-                       searchPos = a[1];
+                       searchPos = a[1]
                }
        }
 
@@ -968,15 +968,15 @@ func QuoteMeta(s string) string {
 func (re *Regexp) allMatches(s string, b []byte, n int, deliver func(int, int)) {
        var end int;
        if b == nil {
-               end = len(s);
+               end = len(s)
        } else {
-               end = len(b);
+               end = len(b)
        }
 
        for pos, i, prevMatchEnd := 0, 0, -1; i < n && pos <= end; {
                matches := re.doExecute(s, b, pos);
                if len(matches) == 0 {
-                       break;
+                       break
                }
 
                accept := true;
@@ -985,21 +985,21 @@ func (re *Regexp) allMatches(s string, b []byte, n int, deliver func(int, int))
                        if matches[0] == prevMatchEnd {
                                // We don't allow an empty match right
                                // after a previous match, so ignore it.
-                               accept = false;
+                               accept = false
                        }
                        var width int;
                        if b == nil {
-                               _, width = utf8.DecodeRuneInString(s[pos:end]);
+                               _, width = utf8.DecodeRuneInString(s[pos:end])
                        } else {
-                               _, width = utf8.DecodeRune(b[pos:end]);
+                               _, width = utf8.DecodeRune(b[pos:end])
                        }
                        if width > 0 {
-                               pos += width;
+                               pos += width
                        } else {
-                               pos = end+1;
+                               pos = end+1
                        }
                } else {
-                       pos = matches[1];
+                       pos = matches[1]
                }
                prevMatchEnd = matches[1];
 
@@ -1017,7 +1017,7 @@ func (re *Regexp) allMatches(s string, b []byte, n int, deliver func(int, int))
 // containing the matching substrings.
 func (re *Regexp) AllMatches(b []byte, n int) [][]byte {
        if n <= 0 {
-               n = len(b)+1;
+               n = len(b)+1
        }
        result := make([][]byte, n);
        i := 0;
@@ -1035,7 +1035,7 @@ func (re *Regexp) AllMatches(b []byte, n int) [][]byte {
 // containing the matching substrings.
 func (re *Regexp) AllMatchesString(s string, n int) []string {
        if n <= 0 {
-               n = len(s)+1;
+               n = len(s)+1
        }
        result := make([]string, n);
        i := 0;
@@ -1053,7 +1053,7 @@ func (re *Regexp) AllMatchesString(s string, n int) []string {
 // channel that iterates over the matching substrings.
 func (re *Regexp) AllMatchesIter(b []byte, n int) <-chan []byte {
        if n <= 0 {
-               n = len(b)+1;
+               n = len(b)+1
        }
        c := make(chan []byte, 10);
        go func() {
@@ -1070,7 +1070,7 @@ func (re *Regexp) AllMatchesIter(b []byte, n int) <-chan []byte {
 // channel that iterates over the matching substrings.
 func (re *Regexp) AllMatchesStringIter(s string, n int) <-chan string {
        if n <= 0 {
-               n = len(s)+1;
+               n = len(s)+1
        }
        c := make(chan string, 10);
        go func() {
index e1b6a14eca72a32e9350c7aa3889cd5fd18e745b..f959f53b909d610a0ad37ac0f732c4380fd0aa48 100644 (file)
@@ -61,7 +61,7 @@ func (client *Client) send(c *Call) {
        client.enc.Encode(request);
        err := client.enc.Encode(c.Args);
        if err != nil {
-               panicln("rpc: client encode error:", err);
+               panicln("rpc: client encode error:", err)
        }
        client.sending.Unlock();
 }
@@ -73,7 +73,7 @@ func (client *Client) input() {
                err = client.dec.Decode(response);
                if err != nil {
                        if err == os.EOF {
-                               err = io.ErrUnexpectedEOF;
+                               err = io.ErrUnexpectedEOF
                        }
                        break;
                }
@@ -115,7 +115,7 @@ func NewClient(conn io.ReadWriteCloser) *Client {
 func DialHTTP(network, address string) (*Client, os.Error) {
        conn, err := net.Dial(network, "", address);
        if err != nil {
-               return nil, err;
+               return nil, err
        }
        io.WriteString(conn, "CONNECT " + rpcPath + " HTTP/1.0\n\n");
 
@@ -123,10 +123,10 @@ func DialHTTP(network, address string) (*Client, os.Error) {
        // before switching to RPC protocol.
        resp, err := http.ReadResponse(bufio.NewReader(conn));
        if err == nil && resp.Status == connected {
-               return NewClient(conn), nil;
+               return NewClient(conn), nil
        }
        if err == nil {
-               err = os.ErrorString("unexpected HTTP response: " + resp.Status);
+               err = os.ErrorString("unexpected HTTP response: " + resp.Status)
        }
        conn.Close();
        return nil, &net.OpError{"dial-http", network+" "+address, nil, err};
@@ -136,7 +136,7 @@ func DialHTTP(network, address string) (*Client, os.Error) {
 func Dial(network, address string) (*Client, os.Error) {
        conn, err := net.Dial(network, "", address);
        if err != nil {
-               return nil, err;
+               return nil, err
        }
        return NewClient(conn), nil;
 }
@@ -151,14 +151,14 @@ func (client *Client) Go(serviceMethod string, args interface{}, reply interface
        c.Args = args;
        c.Reply = reply;
        if done == nil {
-               done = make(chan *Call, 10);    // buffered.
+               done = make(chan *Call, 10)     // buffered.
        } else {
                // If caller passes done != nil, it must arrange that
                // done has enough buffer for the number of simultaneous
                // RPCs that will be using that channel.  If the channel
                // is totally unbuffered, it's best not to run at all.
                if cap(done) == 0 {
-                       log.Crash("rpc: done channel is unbuffered");
+                       log.Crash("rpc: done channel is unbuffered")
                }
        }
        c.Done = done;
@@ -174,7 +174,7 @@ func (client *Client) Go(serviceMethod string, args interface{}, reply interface
 // Call invokes the named function, waits for it to complete, and returns its error status.
 func (client *Client) Call(serviceMethod string, args interface{}, reply interface{}) os.Error {
        if client.shutdown != nil {
-               return client.shutdown;
+               return client.shutdown
        }
        call := <-client.Go(serviceMethod, args, reply, nil).Done;
        return call.Error;
index 425b7e6e438ed5ca2335a035837d31345f5112d7..7ba74a5e0e7b4cebee6b08dc7e67910fa4107a9c 100644 (file)
@@ -81,6 +81,6 @@ func debugHTTP(c *http.Conn, req *http.Request) {
        sort.Sort(services);
        err := debug.Execute(services, c);
        if err != nil {
-               fmt.Fprintln(c, "rpc: error executing template:", err.String());
+               fmt.Fprintln(c, "rpc: error executing template:", err.String())
        }
 }
index b66d45406a00206639c92847af22397d281419a9..c4e9df76333f233e96ebc5a3bba4bf12ff3af43b 100644 (file)
@@ -178,14 +178,14 @@ func (server *serverType) register(rcvr interface{}) os.Error {
        server.Lock();
        defer server.Unlock();
        if server.serviceMap == nil {
-               server.serviceMap = make(map[string]*service);
+               server.serviceMap = make(map[string]*service)
        }
        s := new(service);
        s.typ = reflect.Typeof(rcvr);
        s.rcvr = reflect.NewValue(rcvr);
        sname := reflect.Indirect(s.rcvr).Type().Name();
        if sname == "" {
-               log.Exit("rpc: no service name for type", s.typ.String());
+               log.Exit("rpc: no service name for type", s.typ.String())
        }
        if !isPublic(sname) {
                s := "rpc Register: type " + sname + " is not public";
@@ -193,7 +193,7 @@ func (server *serverType) register(rcvr interface{}) os.Error {
                return os.ErrorString(s);
        }
        if _, present := server.serviceMap[sname]; present {
-               return os.ErrorString("rpc: service already defined: " + sname);
+               return os.ErrorString("rpc: service already defined: " + sname)
        }
        s.name = sname;
        s.method = make(map[string]*methodType);
@@ -204,7 +204,7 @@ func (server *serverType) register(rcvr interface{}) os.Error {
                mtype := method.Type;
                mname := method.Name;
                if !isPublic(mname) {
-                       continue;
+                       continue
                }
                // Method needs three ins: receiver, *args, *reply.
                // The args and reply must be structs until gobs are more general.
@@ -296,7 +296,7 @@ func (s *service) call(sending *sync.Mutex, mtype *methodType, req *Request, arg
        errInter := returnValues[0].Interface();
        errmsg := "";
        if errInter != nil {
-               errmsg = errInter.(os.Error).String();
+               errmsg = errInter.(os.Error).String()
        }
        sendResponse(sending, req, replyv.Interface(), enc, errmsg);
 }
@@ -357,7 +357,7 @@ func (server *serverType) accept(lis net.Listener) {
        for {
                conn, err := lis.Accept();
                if err != nil {
-                       log.Exit("rpc.Serve: accept:", err.String());   // TODO(r): exit?
+                       log.Exit("rpc.Serve: accept:", err.String())    // TODO(r): exit?
                }
                go server.input(conn);
        }
index 00b348dbc0bd0aa4d336f38b7c21d8dc3c0f3f38..ca943d5184bc57f46f7d0193e2a35246b21ca7a0 100644 (file)
@@ -42,14 +42,14 @@ func (t *Arith) Mul(args *Args, reply *Reply) os.Error {
 
 func (t *Arith) Div(args *Args, reply *Reply) os.Error {
        if args.B == 0 {
-               return os.ErrorString("divide by zero");
+               return os.ErrorString("divide by zero")
        }
        reply.C = args.A / args.B;
        return nil;
 }
 
 func (t *Arith) Error(args *Args, reply *Reply) os.Error {
-       panicln("ERROR");
+       panicln("ERROR")
 }
 
 func startServer() {
@@ -57,7 +57,7 @@ func startServer() {
 
        l, e := net.Listen("tcp", ":0");        // any available address
        if e != nil {
-               log.Exitf("net.Listen tcp :0: %v", e);
+               log.Exitf("net.Listen tcp :0: %v", e)
        }
        serverAddr = l.Addr().String();
        log.Stderr("Test RPC server listening on ", serverAddr);
@@ -79,7 +79,7 @@ func TestRPC(t *testing.T) {
 
        client, err := Dial("tcp", serverAddr);
        if err != nil {
-               t.Fatal("dialing", err);
+               t.Fatal("dialing", err)
        }
 
        // Synchronous calls
@@ -87,14 +87,14 @@ func TestRPC(t *testing.T) {
        reply := new(Reply);
        err = client.Call("Arith.Add", args, reply);
        if reply.C != args.A + args.B {
-               t.Errorf("Add: expected %d got %d", reply.C, args.A + args.B);
+               t.Errorf("Add: expected %d got %d", reply.C, args.A + args.B)
        }
 
        args = &Args{7, 8};
        reply = new(Reply);
        err = client.Call("Arith.Mul", args, reply);
        if reply.C != args.A * args.B {
-               t.Errorf("Mul: expected %d got %d", reply.C, args.A * args.B);
+               t.Errorf("Mul: expected %d got %d", reply.C, args.A * args.B)
        }
 
        // Out of order.
@@ -106,12 +106,12 @@ func TestRPC(t *testing.T) {
 
        <-addCall.Done;
        if addReply.C != args.A + args.B {
-               t.Errorf("Add: expected %d got %d", addReply.C, args.A + args.B);
+               t.Errorf("Add: expected %d got %d", addReply.C, args.A + args.B)
        }
 
        <-mulCall.Done;
        if mulReply.C != args.A * args.B {
-               t.Errorf("Mul: expected %d got %d", mulReply.C, args.A * args.B);
+               t.Errorf("Mul: expected %d got %d", mulReply.C, args.A * args.B)
        }
 
        // Error test
@@ -120,9 +120,9 @@ func TestRPC(t *testing.T) {
        err = client.Call("Arith.Div", args, reply);
        // expect an error: zero divide
        if err == nil {
-               t.Error("Div: expected error");
+               t.Error("Div: expected error")
        } else if err.String() != "divide by zero" {
-               t.Error("Div: expected divide by zero error; got", err);
+               t.Error("Div: expected divide by zero error; got", err)
        }
 }
 
@@ -131,7 +131,7 @@ func TestHTTPRPC(t *testing.T) {
 
        client, err := DialHTTP("tcp", httpServerAddr);
        if err != nil {
-               t.Fatal("dialing", err);
+               t.Fatal("dialing", err)
        }
 
        // Synchronous calls
@@ -139,7 +139,7 @@ func TestHTTPRPC(t *testing.T) {
        reply := new(Reply);
        err = client.Call("Arith.Add", args, reply);
        if reply.C != args.A + args.B {
-               t.Errorf("Add: expected %d got %d", reply.C, args.A + args.B);
+               t.Errorf("Add: expected %d got %d", reply.C, args.A + args.B)
        }
 }
 
@@ -148,7 +148,7 @@ func TestCheckUnknownService(t *testing.T) {
 
        conn, err := net.Dial("tcp", "", serverAddr);
        if err != nil {
-               t.Fatal("dialing:", err);
+               t.Fatal("dialing:", err)
        }
 
        client := NewClient(conn);
@@ -157,9 +157,9 @@ func TestCheckUnknownService(t *testing.T) {
        reply := new(Reply);
        err = client.Call("Unknown.Add", args, reply);
        if err == nil {
-               t.Error("expected error calling unknown service");
+               t.Error("expected error calling unknown service")
        } else if strings.Index(err.String(), "service") < 0 {
-               t.Error("expected error about service; got", err);
+               t.Error("expected error about service; got", err)
        }
 }
 
@@ -168,7 +168,7 @@ func TestCheckUnknownMethod(t *testing.T) {
 
        conn, err := net.Dial("tcp", "", serverAddr);
        if err != nil {
-               t.Fatal("dialing:", err);
+               t.Fatal("dialing:", err)
        }
 
        client := NewClient(conn);
@@ -177,9 +177,9 @@ func TestCheckUnknownMethod(t *testing.T) {
        reply := new(Reply);
        err = client.Call("Arith.Unknown", args, reply);
        if err == nil {
-               t.Error("expected error calling unknown service");
+               t.Error("expected error calling unknown service")
        } else if strings.Index(err.String(), "method") < 0 {
-               t.Error("expected error about method; got", err);
+               t.Error("expected error about method; got", err)
        }
 }
 
@@ -188,7 +188,7 @@ func TestCheckBadType(t *testing.T) {
 
        conn, err := net.Dial("tcp", "", serverAddr);
        if err != nil {
-               t.Fatal("dialing:", err);
+               t.Fatal("dialing:", err)
        }
 
        client := NewClient(conn);
@@ -196,8 +196,8 @@ func TestCheckBadType(t *testing.T) {
        reply := new(Reply);
        err = client.Call("Arith.Add", reply, reply);   // args, reply would be the correct thing to use
        if err == nil {
-               t.Error("expected error calling Arith.Add with wrong arg type");
+               t.Error("expected error calling Arith.Add with wrong arg type")
        } else if strings.Index(err.String(), "type") < 0 {
-               t.Error("expected error about type; got", err);
+               t.Error("expected error about type; got", err)
        }
 }
index 34a2c4346bf687d4858439403b9956c0594cd7f3..961ce4bc4c1d625bdd377ca08d9f68aa09a1bfc7 100644 (file)
@@ -21,7 +21,7 @@ type Interface interface {
 
 func min(a, b int) int {
        if a < b {
-               return a;
+               return a
        }
        return b;
 }
@@ -30,7 +30,7 @@ func min(a, b int) int {
 func insertionSort(data Interface, a, b int) {
        for i := a+1; i < b; i++ {
                for j := i; j > a && data.Less(j, j-1); j-- {
-                       data.Swap(j, j-1);
+                       data.Swap(j, j-1)
                }
        }
 }
@@ -45,20 +45,20 @@ func medianOfThree(data Interface, a, b, c int) {
        m2 := c;
        // bubble sort on 3 elements
        if data.Less(m1, m0) {
-               data.Swap(m1, m0);
+               data.Swap(m1, m0)
        }
        if data.Less(m2, m1) {
-               data.Swap(m2, m1);
+               data.Swap(m2, m1)
        }
        if data.Less(m1, m0) {
-               data.Swap(m1, m0);
+               data.Swap(m1, m0)
        }
        // now data[m0] <= data[m1] <= data[m2]
 }
 
 func swapRange(data Interface, a, b, n int) {
        for i := 0; i < n; i++ {
-               data.Swap(a+i, b+i);
+               data.Swap(a+i, b+i)
        }
 }
 
@@ -127,7 +127,7 @@ func quickSort(data Interface, a, b int) {
                quickSort(data, a, mlo);
                quickSort(data, mhi, b);
        } else if b-a > 1 {
-               insertionSort(data, a, b);
+               insertionSort(data, a, b)
        }
 }
 
@@ -138,7 +138,7 @@ func IsSorted(data Interface) bool {
        n := data.Len();
        for i := n-1; i > 0; i-- {
                if data.Less(i, i-1) {
-                       return false;
+                       return false
                }
        }
        return true;
index 623100006c0d7fd82d1bc55fffe6a38e64543bf8..93c520c9d9129be019e79ac2f529c42c4e0ed2ef 100644 (file)
@@ -75,14 +75,14 @@ func TestSortStrings(t *testing.T) {
 func TestSortLarge_Random(t *testing.T) {
        data := make([]int, 1000000);
        for i := 0; i < len(data); i++ {
-               data[i] = rand.Intn(100);
+               data[i] = rand.Intn(100)
        }
        if IntsAreSorted(data) {
-               t.Fatalf("terrible rand.rand");
+               t.Fatalf("terrible rand.rand")
        }
        SortInts(data);
        if !IntsAreSorted(data) {
-               t.Errorf("sort didn't sort - 1M ints");
+               t.Errorf("sort didn't sort - 1M ints")
        }
 }
 
@@ -127,7 +127,7 @@ func (d *testingData) Swap(i, j int) {
 func lg(n int) int {
        i := 0;
        for 1<<uint(i) < n {
-               i++;
+               i++
        }
        return i;
 }
@@ -147,13 +147,13 @@ func TestBentleyMcIlroy(t *testing.T) {
                                for i := 0; i < n; i++ {
                                        switch dist {
                                        case _Sawtooth:
-                                               data[i] = i%m;
+                                               data[i] = i%m
                                        case _Rand:
-                                               data[i] = rand.Intn(m);
+                                               data[i] = rand.Intn(m)
                                        case _Stagger:
-                                               data[i] = (i*m + i)%n;
+                                               data[i] = (i*m + i)%n
                                        case _Plateau:
-                                               data[i] = min(i, m);
+                                               data[i] = min(i, m)
                                        case _Shuffle:
                                                if rand.Intn(m) != 0 {
                                                        j += 2;
@@ -170,36 +170,36 @@ func TestBentleyMcIlroy(t *testing.T) {
                                        switch mode {
                                        case _Copy:
                                                for i := 0; i < n; i++ {
-                                                       mdata[i] = data[i];
+                                                       mdata[i] = data[i]
                                                }
                                        case _Reverse:
                                                for i := 0; i < n; i++ {
-                                                       mdata[i] = data[n-i-1];
+                                                       mdata[i] = data[n-i-1]
                                                }
                                        case _ReverseFirstHalf:
                                                for i := 0; i < n/2; i++ {
-                                                       mdata[i] = data[n/2 - i - 1];
+                                                       mdata[i] = data[n/2 - i - 1]
                                                }
                                                for i := n/2; i < n; i++ {
-                                                       mdata[i] = data[i];
+                                                       mdata[i] = data[i]
                                                }
                                        case _ReverseSecondHalf:
                                                for i := 0; i < n/2; i++ {
-                                                       mdata[i] = data[i];
+                                                       mdata[i] = data[i]
                                                }
                                                for i := n/2; i < n; i++ {
-                                                       mdata[i] = data[n-(i - n/2)-1];
+                                                       mdata[i] = data[n-(i - n/2)-1]
                                                }
                                        case _Sorted:
                                                for i := 0; i < n; i++ {
-                                                       mdata[i] = data[i];
+                                                       mdata[i] = data[i]
                                                }
                                                // SortInts is known to be correct
                                                // because mode Sort runs after mode _Copy.
                                                SortInts(mdata);
                                        case _Dither:
                                                for i := 0; i < n; i++ {
-                                                       mdata[i] = data[i] + i%5;
+                                                       mdata[i] = data[i] + i%5
                                                }
                                        }
 
index 3202978d8fac1d5fcdc0b5319c68e0653c56c372..4629a7e17551f5db67142338ed92f195658c2b10 100644 (file)
@@ -25,11 +25,11 @@ func stringToDecimal(s string) (neg bool, d *decimal, trunc bool, ok bool) {
 
        // optional sign
        if i >= len(s) {
-               return;
+               return
        }
        switch {
        case s[i] == '+':
-               i++;
+               i++
        case s[i] == '-':
                neg = true;
                i++;
@@ -43,7 +43,7 @@ func stringToDecimal(s string) (neg bool, d *decimal, trunc bool, ok bool) {
                switch {
                case s[i] == '.':
                        if sawdot {
-                               return;
+                               return
                        }
                        sawdot = true;
                        b.dp = b.nd;
@@ -62,10 +62,10 @@ func stringToDecimal(s string) (neg bool, d *decimal, trunc bool, ok bool) {
                break;
        }
        if !sawdigits {
-               return;
+               return
        }
        if !sawdot {
-               b.dp = b.nd;
+               b.dp = b.nd
        }
 
        // optional exponent moves decimal point.
@@ -76,29 +76,29 @@ func stringToDecimal(s string) (neg bool, d *decimal, trunc bool, ok bool) {
        if i < len(s) && s[i] == 'e' {
                i++;
                if i >= len(s) {
-                       return;
+                       return
                }
                esign := 1;
                if s[i] == '+' {
-                       i++;
+                       i++
                } else if s[i] == '-' {
                        i++;
                        esign = -1;
                }
                if i >= len(s) || s[i] < '0' || s[i] > '9' {
-                       return;
+                       return
                }
                e := 0;
                for ; i < len(s) && '0' <= s[i] && s[i] <= '9'; i++ {
                        if e < 10000 {
-                               e = e*10 + int(s[i]) - '0';
+                               e = e*10 + int(s[i]) - '0'
                        }
                }
                b.dp += e*esign;
        }
 
        if i != len(s) {
-               return;
+               return
        }
 
        d = b;
@@ -124,7 +124,7 @@ func decimalToFloatBits(neg bool, d *decimal, trunc bool, flt *floatInfo) (b uin
        // These bounds are for 64-bit floats.
        // Will have to change if we want to support 80-bit floats in the future.
        if d.dp > 310 {
-               goto overflow;
+               goto overflow
        }
        if d.dp < -330 {
                // zero
@@ -138,9 +138,9 @@ func decimalToFloatBits(neg bool, d *decimal, trunc bool, flt *floatInfo) (b uin
        for d.dp > 0 {
                var n int;
                if d.dp >= len(powtab) {
-                       n = 27;
+                       n = 27
                } else {
-                       n = powtab[d.dp];
+                       n = powtab[d.dp]
                }
                d.Shift(-n);
                exp += n;
@@ -148,9 +148,9 @@ func decimalToFloatBits(neg bool, d *decimal, trunc bool, flt *floatInfo) (b uin
        for d.dp < 0 || d.dp == 0 && d.d[0] < '5' {
                var n int;
                if -d.dp >= len(powtab) {
-                       n = 27;
+                       n = 27
                } else {
-                       n = powtab[-d.dp];
+                       n = powtab[-d.dp]
                }
                d.Shift(n);
                exp -= n;
@@ -169,7 +169,7 @@ func decimalToFloatBits(neg bool, d *decimal, trunc bool, flt *floatInfo) (b uin
        }
 
        if exp - flt.bias >= 1 << flt.expbits - 1 {
-               goto overflow;
+               goto overflow
        }
 
        // Extract 1+flt.mantbits bits.
@@ -180,13 +180,13 @@ func decimalToFloatBits(neg bool, d *decimal, trunc bool, flt *floatInfo) (b uin
                mant >>= 1;
                exp++;
                if exp - flt.bias >= 1 << flt.expbits - 1 {
-                       goto overflow;
+                       goto overflow
                }
        }
 
        // Denormalized?
        if mant&(1 << flt.mantbits) == 0 {
-               exp = flt.bias;
+               exp = flt.bias
        }
        goto out;
 
@@ -201,7 +201,7 @@ out:
        bits := mant&(uint64(1) << flt.mantbits - 1);
        bits |= uint64((exp - flt.bias)&(1 << flt.expbits - 1)) << flt.mantbits;
        if neg {
-               bits |= 1 << flt.mantbits << flt.expbits;
+               bits |= 1 << flt.mantbits << flt.expbits
        }
        return bits, overflow;
 }
@@ -211,10 +211,10 @@ out:
 func decimalAtof64Int(neg bool, d *decimal) float64 {
        f := float64(0);
        for i := 0; i < d.nd; i++ {
-               f = f*10 + float64(d.d[i] - '0');
+               f = f*10 + float64(d.d[i] - '0')
        }
        if neg {
-               f *= -1;        // BUG work around 6g f = -f.
+               f *= -1 // BUG work around 6g f = -f.
        }
        return f;
 }
@@ -222,10 +222,10 @@ func decimalAtof64Int(neg bool, d *decimal) float64 {
 func decimalAtof32Int(neg bool, d *decimal) float32 {
        f := float32(0);
        for i := 0; i < d.nd; i++ {
-               f = f*10 + float32(d.d[i] - '0');
+               f = f*10 + float32(d.d[i] - '0')
        }
        if neg {
-               f *= -1;        // BUG work around 6g f = -f.
+               f *= -1 // BUG work around 6g f = -f.
        }
        return f;
 }
@@ -249,7 +249,7 @@ func decimalAtof64(neg bool, d *decimal, trunc bool) (f float64, ok bool) {
        // Exact integers are <= 10^15.
        // Exact powers of ten are <= 10^22.
        if d.nd > 15 {
-               return;
+               return
        }
        switch {
        case d.dp == d.nd:      // int
@@ -280,7 +280,7 @@ func decimalAtof32(neg bool, d *decimal, trunc bool) (f float32, ok bool) {
        // Exact integers are <= 10^7.
        // Exact powers of ten are <= 10^10.
        if d.nd > 7 {
-               return;
+               return
        }
        switch {
        case d.dp == d.nd:      // int
@@ -322,17 +322,17 @@ func decimalAtof32(neg bool, d *decimal, trunc bool) (f float32, ok bool) {
 func Atof32(s string) (f float32, err os.Error) {
        neg, d, trunc, ok := stringToDecimal(s);
        if !ok {
-               return 0, &NumError{s, os.EINVAL};
+               return 0, &NumError{s, os.EINVAL}
        }
        if optimize {
                if f, ok := decimalAtof32(neg, d, trunc); ok {
-                       return f, nil;
+                       return f, nil
                }
        }
        b, ovf := decimalToFloatBits(neg, d, trunc, &float32info);
        f = math.Float32frombits(uint32(b));
        if ovf {
-               err = &NumError{s, os.ERANGE};
+               err = &NumError{s, os.ERANGE}
        }
        return f, err;
 }
@@ -343,17 +343,17 @@ func Atof32(s string) (f float32, err os.Error) {
 func Atof64(s string) (f float64, err os.Error) {
        neg, d, trunc, ok := stringToDecimal(s);
        if !ok {
-               return 0, &NumError{s, os.EINVAL};
+               return 0, &NumError{s, os.EINVAL}
        }
        if optimize {
                if f, ok := decimalAtof64(neg, d, trunc); ok {
-                       return f, nil;
+                       return f, nil
                }
        }
        b, ovf := decimalToFloatBits(neg, d, trunc, &float64info);
        f = math.Float64frombits(b);
        if ovf {
-               err = &NumError{s, os.ERANGE};
+               err = &NumError{s, os.ERANGE}
        }
        return f, err;
 }
index a59fb78b408e7c494d60a84f3e3ca1618cd053fa..c9b374d3525e4daf10c861fdb1522d7258904af4 100644 (file)
@@ -98,7 +98,7 @@ func init() {
        for i := range atoftests {
                test := &atoftests[i];
                if test.err != nil {
-                       test.err = &NumError{test.in, test.err};
+                       test.err = &NumError{test.in, test.err}
                }
        }
 }
@@ -111,7 +111,7 @@ func testAtof(t *testing.T, opt bool) {
                outs := Ftoa64(out, 'g', -1);
                if outs != test.out || !reflect.DeepEqual(err, test.err) {
                        t.Errorf("Atof64(%v) = %v, %v want %v, %v\n",
-                               test.in, out, err, test.out, test.err);
+                               test.in, out, err, test.out, test.err)
                }
 
                if float64(float32(out)) == out {
@@ -119,7 +119,7 @@ func testAtof(t *testing.T, opt bool) {
                        outs := Ftoa32(out32, 'g', -1);
                        if outs != test.out || !reflect.DeepEqual(err, test.err) {
                                t.Errorf("Atof32(%v) = %v, %v want %v, %v  # %v\n",
-                                       test.in, out32, err, test.out, test.err, out);
+                                       test.in, out32, err, test.out, test.err, out)
                        }
                }
 
@@ -128,7 +128,7 @@ func testAtof(t *testing.T, opt bool) {
                        outs := Ftoa(outf, 'g', -1);
                        if outs != test.out || !reflect.DeepEqual(err, test.err) {
                                t.Errorf("Ftoa(%v) = %v, %v want %v, %v  # %v\n",
-                                       test.in, outf, err, test.out, test.err, out);
+                                       test.in, outf, err, test.out, test.err, out)
                        }
                }
        }
index eddda20a5f2aff66153666f080e35c309d249077..2194821f3e147af147cc8d9c3f41aade93f339ae 100644 (file)
@@ -17,7 +17,7 @@ func (e *NumError) String() string    { return "parsing " + e.Num + ": " + e.Error.
 func computeIntsize() uint {
        siz := uint(8);
        for 1<<siz != 0 {
-               siz *= 2;
+               siz *= 2
        }
        return siz;
 }
@@ -27,7 +27,7 @@ var IntSize = computeIntsize()
 // Return the first number n such that n*base >= 1<<64.
 func cutoff64(base int) uint64 {
        if base < 2 {
-               return 0;
+               return 0
        }
        return (1<<64 - 1)/uint64(base) + 1;
 }
@@ -62,9 +62,9 @@ func Btoui64(s string, b int) (n uint64, err os.Error) {
                                goto Error;
                        }
                case s[0] == '0':
-                       b = 8;
+                       b = 8
                default:
-                       b = 10;
+                       b = 10
                }
 
        default:
@@ -79,11 +79,11 @@ func Btoui64(s string, b int) (n uint64, err os.Error) {
                var v byte;
                switch {
                case '0' <= s[i] && s[i] <= '9':
-                       v = s[i]-'0';
+                       v = s[i]-'0'
                case 'a' <= s[i] && s[i] <= 'z':
-                       v = s[i]-'a'+10;
+                       v = s[i]-'a'+10
                case 'A' <= s[i] && s[i] <= 'Z':
-                       v = s[i]-'A'+10;
+                       v = s[i]-'A'+10
                default:
                        n = 0;
                        err = os.EINVAL;
@@ -125,7 +125,7 @@ Error:
 // Atoui64 returns err == os.EINVAL if s is empty or contains invalid digits.
 // It returns err == os.ERANGE if s cannot be represented by a uint64.
 func Atoui64(s string) (n uint64, err os.Error) {
-       return Btoui64(s, 10);
+       return Btoui64(s, 10)
 }
 
 // Btoi64 is like Btoui64 but allows signed numbers and
@@ -133,14 +133,14 @@ func Atoui64(s string) (n uint64, err os.Error) {
 func Btoi64(s string, base int) (i int64, err os.Error) {
        // Empty string bad.
        if len(s) == 0 {
-               return 0, &NumError{s, os.EINVAL};
+               return 0, &NumError{s, os.EINVAL}
        }
 
        // Pick off leading sign.
        s0 := s;
        neg := false;
        if s[0] == '+' {
-               s = s[1:len(s)];
+               s = s[1:len(s)]
        } else if s[0] == '-' {
                neg = true;
                s = s[1:len(s)];
@@ -154,14 +154,14 @@ func Btoi64(s string, base int) (i int64, err os.Error) {
                return 0, err;
        }
        if !neg && un >= 1<<63 {
-               return 1<<63 - 1, &NumError{s0, os.ERANGE};
+               return 1<<63 - 1, &NumError{s0, os.ERANGE}
        }
        if neg && un > 1<<63 {
-               return -1 << 63, &NumError{s0, os.ERANGE};
+               return -1 << 63, &NumError{s0, os.ERANGE}
        }
        n := int64(un);
        if neg {
-               n = -n;
+               n = -n
        }
        return n, nil;
 }
@@ -175,11 +175,11 @@ func Atoi64(s string) (i int64, err os.Error)     { return Btoi64(s, 10) }
 func Atoui(s string) (i uint, err os.Error) {
        i1, e1 := Atoui64(s);
        if e1 != nil && e1.(*NumError).Error != os.ERANGE {
-               return 0, e1;
+               return 0, e1
        }
        i = uint(i1);
        if uint64(i) != i1 {
-               return ^uint(0), &NumError{s, os.ERANGE};
+               return ^uint(0), &NumError{s, os.ERANGE}
        }
        return i, nil;
 }
@@ -188,12 +188,12 @@ func Atoui(s string) (i uint, err os.Error) {
 func Atoi(s string) (i int, err os.Error) {
        i1, e1 := Atoi64(s);
        if e1 != nil && e1.(*NumError).Error != os.ERANGE {
-               return 0, e1;
+               return 0, e1
        }
        i = int(i1);
        if int64(i) != i1 {
                if i1 < 0 {
-                       return -1 << (IntSize-1), &NumError{s, os.ERANGE};
+                       return -1 << (IntSize-1), &NumError{s, os.ERANGE}
                }
                return 1<<(IntSize-1) - 1, &NumError{s, os.ERANGE};
        }
index a3c61fcb82417c64813243da0e8b5505d3f9188e..da9de577b79e47ca2c0d3bdc051d89861207040f 100644 (file)
@@ -153,37 +153,37 @@ func init() {
        for i := range atoui64tests {
                test := &atoui64tests[i];
                if test.err != nil {
-                       test.err = &NumError{test.in, test.err};
+                       test.err = &NumError{test.in, test.err}
                }
        }
        for i := range btoui64tests {
                test := &btoui64tests[i];
                if test.err != nil {
-                       test.err = &NumError{test.in, test.err};
+                       test.err = &NumError{test.in, test.err}
                }
        }
        for i := range atoi64tests {
                test := &atoi64tests[i];
                if test.err != nil {
-                       test.err = &NumError{test.in, test.err};
+                       test.err = &NumError{test.in, test.err}
                }
        }
        for i := range btoi64tests {
                test := &btoi64tests[i];
                if test.err != nil {
-                       test.err = &NumError{test.in, test.err};
+                       test.err = &NumError{test.in, test.err}
                }
        }
        for i := range atoui32tests {
                test := &atoui32tests[i];
                if test.err != nil {
-                       test.err = &NumError{test.in, test.err};
+                       test.err = &NumError{test.in, test.err}
                }
        }
        for i := range atoi32tests {
                test := &atoi32tests[i];
                if test.err != nil {
-                       test.err = &NumError{test.in, test.err};
+                       test.err = &NumError{test.in, test.err}
                }
        }
 }
@@ -194,7 +194,7 @@ func TestAtoui64(t *testing.T) {
                out, err := Atoui64(test.in);
                if test.out != out || !reflect.DeepEqual(test.err, err) {
                        t.Errorf("Atoui64(%q) = %v, %v want %v, %v\n",
-                               test.in, out, err, test.out, test.err);
+                               test.in, out, err, test.out, test.err)
                }
        }
 }
@@ -205,7 +205,7 @@ func TestBtoui64(t *testing.T) {
                out, err := Btoui64(test.in, 0);
                if test.out != out || !reflect.DeepEqual(test.err, err) {
                        t.Errorf("Btoui64(%q) = %v, %v want %v, %v\n",
-                               test.in, out, err, test.out, test.err);
+                               test.in, out, err, test.out, test.err)
                }
        }
 }
@@ -216,7 +216,7 @@ func TestAtoi64(t *testing.T) {
                out, err := Atoi64(test.in);
                if test.out != out || !reflect.DeepEqual(test.err, err) {
                        t.Errorf("Atoi64(%q) = %v, %v want %v, %v\n",
-                               test.in, out, err, test.out, test.err);
+                               test.in, out, err, test.out, test.err)
                }
        }
 }
@@ -227,7 +227,7 @@ func TestBtoi64(t *testing.T) {
                out, err := Btoi64(test.in, 0);
                if test.out != out || !reflect.DeepEqual(test.err, err) {
                        t.Errorf("Btoi64(%q) = %v, %v want %v, %v\n",
-                               test.in, out, err, test.out, test.err);
+                               test.in, out, err, test.out, test.err)
                }
        }
 }
@@ -240,7 +240,7 @@ func TestAtoui(t *testing.T) {
                        out, err := Atoui(test.in);
                        if test.out != uint32(out) || !reflect.DeepEqual(test.err, err) {
                                t.Errorf("Atoui(%q) = %v, %v want %v, %v\n",
-                                       test.in, out, err, test.out, test.err);
+                                       test.in, out, err, test.out, test.err)
                        }
                }
        case 64:
@@ -249,7 +249,7 @@ func TestAtoui(t *testing.T) {
                        out, err := Atoui(test.in);
                        if test.out != uint64(out) || !reflect.DeepEqual(test.err, err) {
                                t.Errorf("Atoui(%q) = %v, %v want %v, %v\n",
-                                       test.in, out, err, test.out, test.err);
+                                       test.in, out, err, test.out, test.err)
                        }
                }
        }
@@ -263,7 +263,7 @@ func TestAtoi(t *testing.T) {
                        out, err := Atoi(test.in);
                        if test.out != int32(out) || !reflect.DeepEqual(test.err, err) {
                                t.Errorf("Atoi(%q) = %v, %v want %v, %v\n",
-                                       test.in, out, err, test.out, test.err);
+                                       test.in, out, err, test.out, test.err)
                        }
                }
        case 64:
@@ -272,7 +272,7 @@ func TestAtoi(t *testing.T) {
                        out, err := Atoi(test.in);
                        if test.out != int64(out) || !reflect.DeepEqual(test.err, err) {
                                t.Errorf("Atoi(%q) = %v, %v want %v, %v\n",
-                                       test.in, out, err, test.out, test.err);
+                                       test.in, out, err, test.out, test.err)
                        }
                }
        }
index 1f0205ca3796261c36572e0ec29402ac7c418c14..898a77dc77a6744410b53c1a36835e08c0644876 100644 (file)
@@ -24,17 +24,17 @@ type decimal struct {
 func (a *decimal) String() string {
        n := 10 + a.nd;
        if a.dp > 0 {
-               n += a.dp;
+               n += a.dp
        }
        if a.dp < 0 {
-               n += -a.dp;
+               n += -a.dp
        }
 
        buf := make([]byte, n);
        w := 0;
        switch {
        case a.nd == 0:
-               return "0";
+               return "0"
 
        case a.dp <= 0:
                // zeros fill space between decimal point and digits
@@ -62,14 +62,14 @@ func (a *decimal) String() string {
 
 func copy(dst []byte, src []byte) int {
        for i := 0; i < len(dst); i++ {
-               dst[i] = src[i];
+               dst[i] = src[i]
        }
        return len(dst);
 }
 
 func digitZero(dst []byte) int {
        for i := 0; i < len(dst); i++ {
-               dst[i] = '0';
+               dst[i] = '0'
        }
        return len(dst);
 }
@@ -79,10 +79,10 @@ func digitZero(dst []byte) int {
 // independent of the number of digits.)
 func trim(a *decimal) {
        for a.nd > 0 && a.d[a.nd - 1] == '0' {
-               a.nd--;
+               a.nd--
        }
        if a.nd == 0 {
-               a.dp = 0;
+               a.dp = 0
        }
 }
 
@@ -230,10 +230,10 @@ var leftcheats = []leftCheat{
 func prefixIsLessThan(b []byte, s string) bool {
        for i := 0; i < len(s); i++ {
                if i >= len(b) {
-                       return true;
+                       return true
                }
                if b[i] != s[i] {
-                       return b[i] < s[i];
+                       return b[i] < s[i]
                }
        }
        return false;
@@ -243,7 +243,7 @@ func prefixIsLessThan(b []byte, s string) bool {
 func leftShift(a *decimal, k uint) {
        delta := leftcheats[k].delta;
        if prefixIsLessThan(a.d[0 : a.nd], leftcheats[k].cutoff) {
-               delta--;
+               delta--
        }
 
        r := a.nd;              // read index
@@ -299,10 +299,10 @@ func (a *decimal) Shift(k int) *decimal {
 // If we chop a at nd digits, should we round up?
 func shouldRoundUp(a *decimal, nd int) bool {
        if nd <= 0 || nd >= a.nd {
-               return false;
+               return false
        }
        if a.d[nd] == '5' && nd+1 == a.nd {     // exactly halfway - round to even
-               return (a.d[nd-1] - '0')%2 != 0;
+               return (a.d[nd-1] - '0')%2 != 0
        }
        // not halfway - digit tells all
        return a.d[nd] >= '5';
@@ -312,10 +312,10 @@ func shouldRoundUp(a *decimal, nd int) bool {
 // Returns receiver for convenience.
 func (a *decimal) Round(nd int) *decimal {
        if nd <= 0 || nd >= a.nd {
-               return a;
+               return a
        }
        if shouldRoundUp(a, nd) {
-               return a.RoundUp(nd);
+               return a.RoundUp(nd)
        }
        return a.RoundDown(nd);
 }
@@ -324,7 +324,7 @@ func (a *decimal) Round(nd int) *decimal {
 // Returns receiver for convenience.
 func (a *decimal) RoundDown(nd int) *decimal {
        if nd <= 0 || nd >= a.nd {
-               return a;
+               return a
        }
        a.nd = nd;
        trim(a);
@@ -335,7 +335,7 @@ func (a *decimal) RoundDown(nd int) *decimal {
 // Returns receiver for convenience.
 func (a *decimal) RoundUp(nd int) *decimal {
        if nd <= 0 || nd >= a.nd {
-               return a;
+               return a
        }
 
        // round up
@@ -360,18 +360,18 @@ func (a *decimal) RoundUp(nd int) *decimal {
 // No guarantees about overflow.
 func (a *decimal) RoundedInteger() uint64 {
        if a.dp > 20 {
-               return 0xFFFFFFFFFFFFFFFF;
+               return 0xFFFFFFFFFFFFFFFF
        }
        var i int;
        n := uint64(0);
        for i = 0; i < a.dp && i < a.nd; i++ {
-               n = n*10 + uint64(a.d[i] - '0');
+               n = n*10 + uint64(a.d[i] - '0')
        }
        for ; i < a.dp; i++ {
-               n *= 10;
+               n *= 10
        }
        if shouldRoundUp(a, a.dp) {
-               n++;
+               n++
        }
        return n;
 }
index 1ac4d5e2738cce0be3e263c0559050708117799f..b86eec683ed44aa3045d3ff51843a2a60b5d72ff 100644 (file)
@@ -35,7 +35,7 @@ func TestDecimalShift(t *testing.T) {
                s := NewDecimal(test.i).Shift(test.shift).String();
                if s != test.out {
                        t.Errorf("Decimal %v << %v = %v, want %v\n",
-                               test.i, test.shift, s, test.out);
+                               test.i, test.shift, s, test.out)
                }
        }
 }
@@ -71,17 +71,17 @@ func TestDecimalRound(t *testing.T) {
                s := NewDecimal(test.i).RoundDown(test.nd).String();
                if s != test.down {
                        t.Errorf("Decimal %v RoundDown %d = %v, want %v\n",
-                               test.i, test.nd, s, test.down);
+                               test.i, test.nd, s, test.down)
                }
                s = NewDecimal(test.i).Round(test.nd).String();
                if s != test.round {
                        t.Errorf("Decimal %v Round %d = %v, want %v\n",
-                               test.i, test.nd, s, test.down);
+                               test.i, test.nd, s, test.down)
                }
                s = NewDecimal(test.i).RoundUp(test.nd).String();
                if s != test.up {
                        t.Errorf("Decimal %v RoundUp %d = %v, want %v\n",
-                               test.i, test.nd, s, test.up);
+                               test.i, test.nd, s, test.up)
                }
        }
 }
@@ -111,7 +111,7 @@ func TestDecimalRoundedInteger(t *testing.T) {
                int := NewDecimal(test.i).Shift(test.shift).RoundedInteger();
                if int != test.int {
                        t.Errorf("Decimal %v >> %v RoundedInteger = %v, want %v\n",
-                               test.i, test.shift, int, test.int);
+                               test.i, test.shift, int, test.int)
                }
        }
 }
index 47bf6231f7b28fb44b2e6670a82d445e314e0e41..757041d33cfbddd1be73ae2bc2c140cbef5936cb 100644 (file)
@@ -16,11 +16,11 @@ import (
 func pow2(i int) float64 {
        switch {
        case i < 0:
-               return 1/pow2(-i);
+               return 1/pow2(-i)
        case i == 0:
-               return 1;
+               return 1
        case i == 1:
-               return 2;
+               return 2
        }
        return pow2(i/2)*pow2(i - i/2);
 }
@@ -32,7 +32,7 @@ func myatof64(s string) (f float64, ok bool) {
        if len(a) == 2 {
                n, err := strconv.Atoi64(a[0]);
                if err != nil {
-                       return 0, false;
+                       return 0, false
                }
                e, err1 := strconv.Atoi(a[1]);
                if err1 != nil {
@@ -64,7 +64,7 @@ func myatof64(s string) (f float64, ok bool) {
        }
        f1, err := strconv.Atof64(s);
        if err != nil {
-               return 0, false;
+               return 0, false
        }
        return f1, true;
 }
@@ -88,7 +88,7 @@ func myatof32(s string) (f float32, ok bool) {
        }
        f1, err1 := strconv.Atof32(s);
        if err1 != nil {
-               return 0, false;
+               return 0, false
        }
        return f1, true;
 }
@@ -96,7 +96,7 @@ func myatof32(s string) (f float32, ok bool) {
 func TestFp(t *testing.T) {
        f, err := os.Open("testfp.txt", os.O_RDONLY, 0);
        if err != nil {
-               panicln("testfp: open testfp.txt:", err.String());
+               panicln("testfp: open testfp.txt:", err.String())
        }
        defer f.Close();
 
@@ -106,15 +106,15 @@ func TestFp(t *testing.T) {
        for {
                line, err2 := b.ReadString('\n');
                if err2 == os.EOF {
-                       break;
+                       break
                }
                if err2 != nil {
-                       panicln("testfp: read testfp.txt:", err2.String());
+                       panicln("testfp: read testfp.txt:", err2.String())
                }
                line = line[0 : len(line)-1];
                lineno++;
                if len(line) == 0 || line[0] == '#' {
-                       continue;
+                       continue
                }
                a := strings.Split(line, " ", 0);
                if len(a) != 4 {
@@ -143,7 +143,7 @@ func TestFp(t *testing.T) {
                }
                if s != a[3] {
                        t.Error("testfp.txt:", lineno, ": ", a[0], " ", a[1], " ", a[2], " (", v, ") ",
-                               "want ", a[3], " got ", s);
+                               "want ", a[3], " got ", s)
                }
        }
 }
index f10d0716323a482d846e175610534fe7564a4229..d31f44142c2b99636c21694ff02cb1a957663fc6 100644 (file)
@@ -28,7 +28,7 @@ func floatsize() int {
        // is too small for a float32.
        var f float = 1e-35;
        if f*f == 0 {
-               return 32;
+               return 32
        }
        return 64;
 }
@@ -56,18 +56,18 @@ var FloatSize = floatsize()
 // because correct rounding and the number of digits
 // needed to identify f depend on the precision of the representation.
 func Ftoa32(f float32, fmt byte, prec int) string {
-       return genericFtoa(uint64(math.Float32bits(f)), fmt, prec, &float32info);
+       return genericFtoa(uint64(math.Float32bits(f)), fmt, prec, &float32info)
 }
 
 // Ftoa64 is like Ftoa32 but converts a 64-bit floating-point number.
 func Ftoa64(f float64, fmt byte, prec int) string {
-       return genericFtoa(math.Float64bits(f), fmt, prec, &float64info);
+       return genericFtoa(math.Float64bits(f), fmt, prec, &float64info)
 }
 
 // Ftoa behaves as Ftoa32 or Ftoa64, depending on the size of the float type.
 func Ftoa(f float, fmt byte, prec int) string {
        if FloatSize == 32 {
-               return Ftoa32(float32(f), fmt, prec);
+               return Ftoa32(float32(f), fmt, prec)
        }
        return Ftoa64(float64(f), fmt, prec);
 }
@@ -81,26 +81,26 @@ func genericFtoa(bits uint64, fmt byte, prec int, flt *floatInfo) string {
        case 1 << flt.expbits - 1:
                // Inf, NaN
                if mant != 0 {
-                       return "NaN";
+                       return "NaN"
                }
                if neg {
-                       return "-Inf";
+                       return "-Inf"
                }
                return "+Inf";
 
        case 0:
                // denormalized
-               exp++;
+               exp++
 
        default:
                // add implicit top bit
-               mant |= uint64(1) << flt.mantbits;
+               mant |= uint64(1) << flt.mantbits
        }
        exp += flt.bias;
 
        // Pick off easy binary format.
        if fmt == 'b' {
-               return fmtB(neg, mant, exp, flt);
+               return fmtB(neg, mant, exp, flt)
        }
 
        // Create exact decimal representation.
@@ -117,21 +117,21 @@ func genericFtoa(bits uint64, fmt byte, prec int, flt *floatInfo) string {
                roundShortest(d, mant, exp, flt);
                switch fmt {
                case 'e', 'E':
-                       prec = d.nd - 1;
+                       prec = d.nd - 1
                case 'f':
-                       prec = max(d.nd - d.dp, 0);
+                       prec = max(d.nd - d.dp, 0)
                case 'g', 'G':
-                       prec = d.nd;
+                       prec = d.nd
                }
        } else {
                switch fmt {
                case 'e', 'E':
-                       d.Round(prec+1);
+                       d.Round(prec+1)
                case 'f':
-                       d.Round(d.dp + prec);
+                       d.Round(d.dp + prec)
                case 'g', 'G':
                        if prec == 0 {
-                               prec = 1;
+                               prec = 1
                        }
                        d.Round(prec);
                }
@@ -139,24 +139,24 @@ func genericFtoa(bits uint64, fmt byte, prec int, flt *floatInfo) string {
 
        switch fmt {
        case 'e', 'E':
-               return fmtE(neg, d, prec, fmt);
+               return fmtE(neg, d, prec, fmt)
        case 'f':
-               return fmtF(neg, d, prec);
+               return fmtF(neg, d, prec)
        case 'g', 'G':
                // trailing zeros are removed.
                if prec > d.nd {
-                       prec = d.nd;
+                       prec = d.nd
                }
                // %e is used if the exponent from the conversion
                // is less than -4 or greater than or equal to the precision.
                // if precision was the shortest possible, use precision 6 for this decision.
                eprec := prec;
                if shortest {
-                       eprec = 6;
+                       eprec = 6
                }
                exp := d.dp - 1;
                if exp < -4 || exp >= eprec {
-                       return fmtE(neg, d, prec-1, fmt+'e'-'g');
+                       return fmtE(neg, d, prec-1, fmt+'e'-'g')
                }
                return fmtF(neg, d, max(prec - d.dp, 0));
        }
@@ -216,15 +216,15 @@ func roundShortest(d *decimal, mant uint64, exp int, flt *floatInfo) {
        for i := 0; i < d.nd; i++ {
                var l, m, u byte;       // lower, middle, upper digits
                if i < lower.nd {
-                       l = lower.d[i];
+                       l = lower.d[i]
                } else {
-                       l = '0';
+                       l = '0'
                }
                m = d.d[i];
                if i < upper.nd {
-                       u = upper.d[i];
+                       u = upper.d[i]
                } else {
-                       u = '0';
+                       u = '0'
                }
 
                // Okay to round down (truncate) if lower has a different digit
@@ -264,9 +264,9 @@ func fmtE(neg bool, d *decimal, prec int, fmt byte) string {
 
        // first digit
        if d.nd == 0 {
-               buf[w] = '0';
+               buf[w] = '0'
        } else {
-               buf[w] = d.d[0];
+               buf[w] = d.d[0]
        }
        w++;
 
@@ -276,9 +276,9 @@ func fmtE(neg bool, d *decimal, prec int, fmt byte) string {
                w++;
                for i := 0; i < prec; i++ {
                        if 1+i < d.nd {
-                               buf[w] = d.d[1+i];
+                               buf[w] = d.d[1+i]
                        } else {
-                               buf[w] = '0';
+                               buf[w] = '0'
                        }
                        w++;
                }
@@ -289,13 +289,13 @@ func fmtE(neg bool, d *decimal, prec int, fmt byte) string {
        w++;
        exp := d.dp - 1;
        if d.nd == 0 {  // special case: 0 has exponent 0
-               exp = 0;
+               exp = 0
        }
        if exp < 0 {
                buf[w] = '-';
                exp = -exp;
        } else {
-               buf[w] = '+';
+               buf[w] = '+'
        }
        w++;
 
@@ -303,7 +303,7 @@ func fmtE(neg bool, d *decimal, prec int, fmt byte) string {
        // count digits
        n := 0;
        for e := exp; e > 0; e /= 10 {
-               n++;
+               n++
        }
        // leading zeros
        for i := n; i < 2; i++ {
@@ -354,9 +354,9 @@ func fmtF(neg bool, d *decimal, prec int) string {
                w++;
                for i := 0; i < prec; i++ {
                        if d.dp + i < 0 || d.dp + i >= d.nd {
-                               buf[w] = '0';
+                               buf[w] = '0'
                        } else {
-                               buf[w] = d.d[d.dp + i];
+                               buf[w] = d.d[d.dp + i]
                        }
                        w++;
                }
@@ -402,7 +402,7 @@ func fmtB(neg bool, mant uint64, exp int, flt *floatInfo) string {
 
 func max(a, b int) int {
        if a > b {
-               return a;
+               return a
        }
        return b;
 }
index 7475ac6b3e4337da669583884463b86e6d4bc257..20548e384db7f0c14d445bd64187235775f0a549 100644 (file)
@@ -101,18 +101,18 @@ var ftoatests = []ftoaTest{
 
 func TestFtoa(t *testing.T) {
        if FloatSize != 32 {
-               panic("floatsize: ", FloatSize);
+               panic("floatsize: ", FloatSize)
        }
        for i := 0; i < len(ftoatests); i++ {
                test := &ftoatests[i];
                s := Ftoa64(test.f, test.fmt, test.prec);
                if s != test.s {
-                       t.Error("test", test.f, string(test.fmt), test.prec, "want", test.s, "got", s);
+                       t.Error("test", test.f, string(test.fmt), test.prec, "want", test.s, "got", s)
                }
                if float64(float32(test.f)) == test.f && test.fmt != 'b' {
                        s := Ftoa32(float32(test.f), test.fmt, test.prec);
                        if s != test.s {
-                               t.Error("test32", test.f, string(test.fmt), test.prec, "want", test.s, "got", s);
+                               t.Error("test32", test.f, string(test.fmt), test.prec, "want", test.s, "got", s)
                        }
                }
        }
index b1025d4a23c203a8b78a53c2f5de84381c353edc..65d60d79c631dd00c9967a4496b1d9a275679c64 100644 (file)
@@ -7,7 +7,7 @@ package strconv
 // Uitob64 returns the string representation of i in the given base.
 func Uitob64(u uint64, base uint) string {
        if u == 0 {
-               return "0";
+               return "0"
        }
 
        // Assemble decimal in reverse order.
@@ -26,11 +26,11 @@ func Uitob64(u uint64, base uint) string {
 // Itob64 returns the string representation of i in the given base.
 func Itob64(i int64, base uint) string {
        if i == 0 {
-               return "0";
+               return "0"
        }
 
        if i < 0 {
-               return "-" + Uitob64(-uint64(i), base);
+               return "-" + Uitob64(-uint64(i), base)
        }
        return Uitob64(uint64(i), base);
 }
index b8e7ee3ab24e293cc43cd874b5fd4f47fe4d32fc..f48a5342a636a01c56898bcbbe4f8a89e852dc95 100644 (file)
@@ -62,14 +62,14 @@ func TestItoa(t *testing.T) {
                s := Itob64(test.in, test.base);
                if s != test.out {
                        t.Errorf("Itob64(%v, %v) = %v want %v\n",
-                               test.in, test.base, s, test.out);
+                               test.in, test.base, s, test.out)
                }
 
                if test.in >= 0 {
                        s := Uitob64(uint64(test.in), test.base);
                        if s != test.out {
                                t.Errorf("Uitob64(%v, %v) = %v want %v\n",
-                                       test.in, test.base, s, test.out);
+                                       test.in, test.base, s, test.out)
                        }
                }
 
@@ -77,14 +77,14 @@ func TestItoa(t *testing.T) {
                        s := Itob(int(test.in), test.base);
                        if s != test.out {
                                t.Errorf("Itob(%v, %v) = %v want %v\n",
-                                       test.in, test.base, s, test.out);
+                                       test.in, test.base, s, test.out)
                        }
 
                        if test.in >= 0 {
                                s := Uitob(uint(test.in), test.base);
                                if s != test.out {
                                        t.Errorf("Uitob(%v, %v) = %v want %v\n",
-                                               test.in, test.base, s, test.out);
+                                               test.in, test.base, s, test.out)
                                }
                        }
                }
@@ -93,14 +93,14 @@ func TestItoa(t *testing.T) {
                        s := Itoa64(test.in);
                        if s != test.out {
                                t.Errorf("Itoa64(%v) = %v want %v\n",
-                                       test.in, s, test.out);
+                                       test.in, s, test.out)
                        }
 
                        if test.in >= 0 {
                                s := Uitob64(uint64(test.in), test.base);
                                if s != test.out {
                                        t.Errorf("Uitob64(%v, %v) = %v want %v\n",
-                                               test.in, test.base, s, test.out);
+                                               test.in, test.base, s, test.out)
                                }
                        }
 
@@ -108,14 +108,14 @@ func TestItoa(t *testing.T) {
                                s := Itoa(int(test.in));
                                if s != test.out {
                                        t.Errorf("Itoa(%v) = %v want %v\n",
-                                               test.in, s, test.out);
+                                               test.in, s, test.out)
                                }
 
                                if test.in >= 0 {
                                        s := Uitoa(uint(test.in));
                                        if s != test.out {
                                                t.Errorf("Uitoa(%v) = %v want %v\n",
-                                                       test.in, s, test.out);
+                                                       test.in, s, test.out)
                                        }
                                }
                        }
@@ -142,14 +142,14 @@ func TestUitoa(t *testing.T) {
                s := Uitob64(test.in, test.base);
                if s != test.out {
                        t.Errorf("Uitob64(%v, %v) = %v want %v\n",
-                               test.in, test.base, s, test.out);
+                               test.in, test.base, s, test.out)
                }
 
                if uint64(uint(test.in)) == test.in {
                        s := Uitob(uint(test.in), test.base);
                        if s != test.out {
                                t.Errorf("Uitob(%v, %v) = %v want %v\n",
-                                       test.in, test.base, s, test.out);
+                                       test.in, test.base, s, test.out)
                        }
                }
 
@@ -157,14 +157,14 @@ func TestUitoa(t *testing.T) {
                        s := Uitoa64(test.in);
                        if s != test.out {
                                t.Errorf("Uitoa64(%v) = %v want %v\n",
-                                       test.in, s, test.out);
+                                       test.in, s, test.out)
                        }
 
                        if uint64(uint(test.in)) == test.in {
                                s := Uitoa(uint(test.in));
                                if s != test.out {
                                        t.Errorf("Uitoa(%v) = %v want %v\n",
-                                               test.in, s, test.out);
+                                               test.in, s, test.out)
                                }
                        }
                }
index 807b25ace3107ac2afa08bf1c5fdf89d33b382ee..c655e2f8c4940b4a7822b3824b9cbdeac84432ed 100644 (file)
@@ -24,41 +24,41 @@ func Quote(s string) string {
        for ; len(s) > 0; s = s[1:len(s)] {
                switch c := s[0]; {
                case c == '"':
-                       buf.WriteString(`\"`);
+                       buf.WriteString(`\"`)
                case c == '\\':
-                       buf.WriteString(`\\`);
+                       buf.WriteString(`\\`)
                case ' ' <= c && c <= '~':
-                       buf.WriteString(string(c));
+                       buf.WriteString(string(c))
                case c == '\a':
-                       buf.WriteString(`\a`);
+                       buf.WriteString(`\a`)
                case c == '\b':
-                       buf.WriteString(`\b`);
+                       buf.WriteString(`\b`)
                case c == '\f':
-                       buf.WriteString(`\f`);
+                       buf.WriteString(`\f`)
                case c == '\n':
-                       buf.WriteString(`\n`);
+                       buf.WriteString(`\n`)
                case c == '\r':
-                       buf.WriteString(`\r`);
+                       buf.WriteString(`\r`)
                case c == '\t':
-                       buf.WriteString(`\t`);
+                       buf.WriteString(`\t`)
                case c == '\v':
-                       buf.WriteString(`\v`);
+                       buf.WriteString(`\v`)
 
                case c >= utf8.RuneSelf && utf8.FullRuneInString(s):
                        r, size := utf8.DecodeRuneInString(s);
                        if r == utf8.RuneError && size == 1 {
-                               goto EscX;
+                               goto EscX
                        }
                        s = s[size-1 : len(s)]; // next iteration will slice off 1 more
                        if r < 0x10000 {
                                buf.WriteString(`\u`);
                                for j := uint(0); j < 4; j++ {
-                                       buf.WriteByte(lowerhex[(r>>(12 - 4*j))&0xF]);
+                                       buf.WriteByte(lowerhex[(r>>(12 - 4*j))&0xF])
                                }
                        } else {
                                buf.WriteString(`\U`);
                                for j := uint(0); j < 8; j++ {
-                                       buf.WriteByte(lowerhex[(r>>(28 - 4*j))&0xF]);
+                                       buf.WriteByte(lowerhex[(r>>(28 - 4*j))&0xF])
                                }
                        }
 
@@ -78,7 +78,7 @@ func Quote(s string) string {
 func CanBackquote(s string) bool {
        for i := 0; i < len(s); i++ {
                if (s[i] < ' ' && s[i] != '\t') || s[i] == '`' {
-                       return false;
+                       return false
                }
        }
        return true;
@@ -88,11 +88,11 @@ func unhex(b byte) (v int, ok bool) {
        c := int(b);
        switch {
        case '0' <= c && c <= '9':
-               return c-'0', true;
+               return c-'0', true
        case 'a' <= c && c <= 'f':
-               return c-'a'+10, true;
+               return c-'a'+10, true
        case 'A' <= c && c <= 'F':
-               return c-'A'+10, true;
+               return c-'A'+10, true
        }
        return;
 }
@@ -120,7 +120,7 @@ func UnquoteChar(s string, quote byte) (value int, multibyte bool, tail string,
                r, size := utf8.DecodeRuneInString(s);
                return r, true, s[size:len(s)], nil;
        case c != '\\':
-               return int(s[0]), false, s[1:len(s)], nil;
+               return int(s[0]), false, s[1:len(s)], nil
        }
 
        // hard case: c is backslash
@@ -133,28 +133,28 @@ func UnquoteChar(s string, quote byte) (value int, multibyte bool, tail string,
 
        switch c {
        case 'a':
-               value = '\a';
+               value = '\a'
        case 'b':
-               value = '\b';
+               value = '\b'
        case 'f':
-               value = '\f';
+               value = '\f'
        case 'n':
-               value = '\n';
+               value = '\n'
        case 'r':
-               value = '\r';
+               value = '\r'
        case 't':
-               value = '\t';
+               value = '\t'
        case 'v':
-               value = '\v';
+               value = '\v'
        case 'x', 'u', 'U':
                n := 0;
                switch c {
                case 'x':
-                       n = 2;
+                       n = 2
                case 'u':
-                       n = 4;
+                       n = 4
                case 'U':
-                       n = 8;
+                       n = 8
                }
                v := 0;
                if len(s) < n {
@@ -190,7 +190,7 @@ func UnquoteChar(s string, quote byte) (value int, multibyte bool, tail string,
                for j := 0; j < 2; j++ {        // one digit already; two more
                        x := int(s[j])-'0';
                        if x < 0 || x > 7 {
-                               return;
+                               return
                        }
                        v = (v<<3)|x;
                }
@@ -201,7 +201,7 @@ func UnquoteChar(s string, quote byte) (value int, multibyte bool, tail string,
                }
                value = v;
        case '\\':
-               value = '\\';
+               value = '\\'
        case '\'', '"':
                if c != quote {
                        err = os.EINVAL;
@@ -224,39 +224,39 @@ func UnquoteChar(s string, quote byte) (value int, multibyte bool, tail string,
 func Unquote(s string) (t string, err os.Error) {
        n := len(s);
        if n < 2 {
-               return "", os.EINVAL;
+               return "", os.EINVAL
        }
        quote := s[0];
        if quote != s[n-1] {
-               return "", os.EINVAL;
+               return "", os.EINVAL
        }
        s = s[1 : n-1];
 
        if quote == '`' {
                if strings.Index(s, "`") >= 0 {
-                       return "", os.EINVAL;
+                       return "", os.EINVAL
                }
                return s, nil;
        }
        if quote != '"' && quote != '\'' {
-               return "", err;
+               return "", err
        }
 
        var buf bytes.Buffer;
        for len(s) > 0 {
                c, multibyte, ss, err := UnquoteChar(s, quote);
                if err != nil {
-                       return "", err;
+                       return "", err
                }
                s = ss;
                if c < utf8.RuneSelf || !multibyte {
-                       buf.WriteByte(byte(c));
+                       buf.WriteByte(byte(c))
                } else {
-                       buf.WriteString(string(c));
+                       buf.WriteString(string(c))
                }
                if quote == '\'' && len(s) != 0 {
                        // single-quoted must be single character
-                       return "", os.EINVAL;
+                       return "", os.EINVAL
                }
        }
        return buf.String(), nil;
index 7f83914912585fcfab360ebaf8c3d9aee341a450..3c42d397118aaf15da17475928df0ed1c9a73cf8 100644 (file)
@@ -28,7 +28,7 @@ func TestQuote(t *testing.T) {
        for i := 0; i < len(quotetests); i++ {
                tt := quotetests[i];
                if out := Quote(tt.in); out != tt.out {
-                       t.Errorf("Quote(%s) = %s, want %s", tt.in, out, tt.out);
+                       t.Errorf("Quote(%s) = %s, want %s", tt.in, out, tt.out)
                }
        }
 }
@@ -83,7 +83,7 @@ func TestCanBackquote(t *testing.T) {
        for i := 0; i < len(canbackquotetests); i++ {
                tt := canbackquotetests[i];
                if out := CanBackquote(tt.in); out != tt.out {
-                       t.Errorf("CanBackquote(%q) = %v, want %v", tt.in, out, tt.out);
+                       t.Errorf("CanBackquote(%q) = %v, want %v", tt.in, out, tt.out)
                }
        }
 }
@@ -149,7 +149,7 @@ func TestUnquote(t *testing.T) {
        for i := 0; i < len(unquotetests); i++ {
                tt := unquotetests[i];
                if out, err := Unquote(tt.in); err != nil && out != tt.out {
-                       t.Errorf("Unquote(%#q) = %q, %v want %q, nil", tt.in, out, err, tt.out);
+                       t.Errorf("Unquote(%#q) = %q, %v want %q, nil", tt.in, out, err, tt.out)
                }
        }
 
@@ -157,14 +157,14 @@ func TestUnquote(t *testing.T) {
        for i := 0; i < len(quotetests); i++ {
                tt := quotetests[i];
                if in, err := Unquote(tt.out); in != tt.in {
-                       t.Errorf("Unquote(%#q) = %q, %v, want %q, nil", tt.out, in, err, tt.in);
+                       t.Errorf("Unquote(%#q) = %q, %v, want %q, nil", tt.out, in, err, tt.in)
                }
        }
 
        for i := 0; i < len(misquoted); i++ {
                s := misquoted[i];
                if out, err := Unquote(s); out != "" || err != os.EINVAL {
-                       t.Errorf("Unquote(%#q) = %q, %v want %q, %v", s, out, err, "", os.EINVAL);
+                       t.Errorf("Unquote(%#q) = %q, %v want %q, %v", s, out, err, "", os.EINVAL)
                }
        }
 }
index 55e4d963f76d5a7237af18744d94ac3eabb67076..880bafacddea3028c37662b25a846311ebcdc016 100644 (file)
@@ -13,7 +13,7 @@ type Reader string
 func (r *Reader) Read(b []byte) (n int, err os.Error) {
        s := *r;
        if len(s) == 0 {
-               return 0, os.EOF;
+               return 0, os.EOF
        }
        for n < len(s) && n < len(b) {
                b[n] = s[n];
@@ -26,7 +26,7 @@ func (r *Reader) Read(b []byte) (n int, err os.Error) {
 func (r *Reader) ReadByte() (b byte, err os.Error) {
        s := *r;
        if len(s) == 0 {
-               return 0, os.EOF;
+               return 0, os.EOF
        }
        b = s[0];
        *r = s[1:len(s)];
index 4169f621147db46a3206344c4a5b65770be79cc6..5e1b5b35ccaae8555eac51ff93acc175e2236e9e 100644 (file)
@@ -14,7 +14,7 @@ import (
 // Invalid UTF-8 sequences become correct encodings of U+FFF8.
 func explode(s string, n int) []string {
        if n <= 0 {
-               n = len(s);
+               n = len(s)
        }
        a := make([]string, n);
        var size, rune int;
@@ -36,7 +36,7 @@ func explode(s string, n int) []string {
 // Count counts the number of non-overlapping instances of sep in s.
 func Count(s, sep string) int {
        if sep == "" {
-               return utf8.RuneCountInString(s) + 1;
+               return utf8.RuneCountInString(s) + 1
        }
        c := sep[0];
        n := 0;
@@ -53,12 +53,12 @@ func Count(s, sep string) int {
 func Index(s, sep string) int {
        n := len(sep);
        if n == 0 {
-               return 0;
+               return 0
        }
        c := sep[0];
        for i := 0; i+n <= len(s); i++ {
                if s[i] == c && (n == 1 || s[i : i+n] == sep) {
-                       return i;
+                       return i
                }
        }
        return -1;
@@ -68,12 +68,12 @@ func Index(s, sep string) int {
 func LastIndex(s, sep string) int {
        n := len(sep);
        if n == 0 {
-               return len(s);
+               return len(s)
        }
        c := sep[0];
        for i := len(s)-n; i >= 0; i-- {
                if s[i] == c && (n == 1 || s[i : i+n] == sep) {
-                       return i;
+                       return i
                }
        }
        return -1;
@@ -83,10 +83,10 @@ func LastIndex(s, sep string) int {
 // including sepSave bytes of sep in the subarrays.
 func genSplit(s, sep string, sepSave, n int) []string {
        if sep == "" {
-               return explode(s, n);
+               return explode(s, n)
        }
        if n <= 0 {
-               n = Count(s, sep) + 1;
+               n = Count(s, sep) + 1
        }
        c := sep[0];
        start := 0;
@@ -113,21 +113,21 @@ func Split(s, sep string, n int) []string { return genSplit(s, sep, 0, n) }
 // If sep is empty, SplitAfter splits s after each UTF-8 sequence.
 // If n > 0, SplitAfter splits s into at most n substrings; the last substring will be the unsplit remainder.
 func SplitAfter(s, sep string, n int) []string {
-       return genSplit(s, sep, len(sep), n);
+       return genSplit(s, sep, len(sep), n)
 }
 
 // Join concatenates the elements of a to create a single string.   The separator string
 // sep is placed between elements in the resulting string.
 func Join(a []string, sep string) string {
        if len(a) == 0 {
-               return "";
+               return ""
        }
        if len(a) == 1 {
-               return a[0];
+               return a[0]
        }
        n := len(sep)*(len(a)-1);
        for i := 0; i < len(a); i++ {
-               n += len(a[i]);
+               n += len(a[i])
        }
 
        b := make([]byte, n);
@@ -151,12 +151,12 @@ func Join(a []string, sep string) string {
 
 // HasPrefix tests whether the string s begins with prefix.
 func HasPrefix(s, prefix string) bool {
-       return len(s) >= len(prefix) && s[0:len(prefix)] == prefix;
+       return len(s) >= len(prefix) && s[0:len(prefix)] == prefix
 }
 
 // HasSuffix tests whether the string s ends with suffix.
 func HasSuffix(s, suffix string) bool {
-       return len(s) >= len(suffix) && s[len(s)-len(suffix) : len(s)] == suffix;
+       return len(s) >= len(suffix) && s[len(s)-len(suffix) : len(s)] == suffix
 }
 
 // Map returns a copy of the string s with all its characters modified
@@ -172,14 +172,14 @@ func Map(mapping func(rune int) int, s string) string {
                rune := mapping(c);
                wid := 1;
                if rune >= utf8.RuneSelf {
-                       wid = utf8.RuneLen(rune);
+                       wid = utf8.RuneLen(rune)
                }
                if nbytes+wid > maxbytes {
                        // Grow the buffer.
                        maxbytes = maxbytes*2 + utf8.UTFMax;
                        nb := make([]byte, maxbytes);
                        for i, c := range b[0:nbytes] {
-                               nb[i] = c;
+                               nb[i] = c
                        }
                        b = nb;
                }
@@ -205,10 +205,10 @@ func TrimSpace(s string) string {
                wid := 1;
                rune := int(s[start]);
                if rune >= utf8.RuneSelf {
-                       rune, wid = utf8.DecodeRuneInString(s[start:end]);
+                       rune, wid = utf8.DecodeRuneInString(s[start:end])
                }
                if !unicode.IsSpace(rune) {
-                       break;
+                       break
                }
                start += wid;
        }
@@ -220,12 +220,12 @@ func TrimSpace(s string) string {
                        for wid = 2; start <= end-wid && !utf8.RuneStart(s[end-wid]); wid++ {
                        }
                        if start > end-wid {    // invalid UTF-8 sequence; stop processing
-                               return s[start:end];
+                               return s[start:end]
                        }
                        rune, wid = utf8.DecodeRuneInString(s[end-wid : end]);
                }
                if !unicode.IsSpace(rune) {
-                       break;
+                       break
                }
                end -= wid;
        }
@@ -236,7 +236,7 @@ func TrimSpace(s string) string {
 func Bytes(s string) []byte {
        b := make([]byte, len(s));
        for i := 0; i < len(s); i++ {
-               b[i] = s[i];
+               b[i] = s[i]
        }
        return b;
 }
index f7aa4dbaec159a0cc848ce1e22e7c8ba31c448f1..1aab16eed832672e06ab5e803083c9adeccfa873 100644 (file)
@@ -13,11 +13,11 @@ import (
 
 func eq(a, b []string) bool {
        if len(a) != len(b) {
-               return false;
+               return false
        }
        for i := 0; i < len(a); i++ {
                if a[i] != b[i] {
-                       return false;
+                       return false
                }
        }
        return true;
@@ -69,7 +69,7 @@ func runIndexTests(t *testing.T, f func(s, sep string) int, funcName string, tes
        for _, test := range testCases {
                actual := f(test.s, test.sep);
                if actual != test.out {
-                       t.Errorf("%s(%q,%q) = %v; want %v", funcName, test.s, test.sep, actual, test.out);
+                       t.Errorf("%s(%q,%q) = %v; want %v", funcName, test.s, test.sep, actual, test.out)
                }
        }
 }
@@ -100,7 +100,7 @@ func TestExplode(t *testing.T) {
                }
                s := Join(a, "");
                if s != tt.s {
-                       t.Errorf(`Join(explode(%q, %d), "") = %q`, tt.s, tt.n, s);
+                       t.Errorf(`Join(explode(%q, %d), "") = %q`, tt.s, tt.n, s)
                }
        }
 }
@@ -136,7 +136,7 @@ func TestSplit(t *testing.T) {
                }
                s := Join(a, tt.sep);
                if s != tt.s {
-                       t.Errorf("Join(Split(%q, %q, %d), %q) = %q", tt.s, tt.sep, tt.n, tt.sep, s);
+                       t.Errorf("Join(Split(%q, %q, %d), %q) = %q", tt.s, tt.sep, tt.n, tt.sep, s)
                }
        }
 }
@@ -166,7 +166,7 @@ func TestSplitAfter(t *testing.T) {
                }
                s := Join(a, "");
                if s != tt.s {
-                       t.Errorf(`Join(Split(%q, %q, %d), %q) = %q`, tt.s, tt.sep, tt.n, tt.sep, s);
+                       t.Errorf(`Join(Split(%q, %q, %d), %q) = %q`, tt.s, tt.sep, tt.n, tt.sep, s)
                }
        }
 }
@@ -182,7 +182,7 @@ func runStringTests(t *testing.T, f func(string) string, funcName string, testCa
        for _, tc := range testCases {
                actual := f(tc.in);
                if actual != tc.out {
-                       t.Errorf("%s(%q) = %q; want %q", funcName, tc.in, actual, tc.out);
+                       t.Errorf("%s(%q) = %q; want %q", funcName, tc.in, actual, tc.out)
                }
        }
 }
@@ -221,7 +221,7 @@ var trimSpaceTests = []StringTest{
 func tenRunes(rune int) string {
        r := make([]int, 10);
        for i := range r {
-               r[i] = rune;
+               r[i] = rune
        }
        return string(r);
 }
@@ -234,14 +234,14 @@ func TestMap(t *testing.T) {
        m := Map(maxRune, a);
        expect := tenRunes(unicode.MaxRune);
        if m != expect {
-               t.Errorf("growing: expected %q got %q", expect, m);
+               t.Errorf("growing: expected %q got %q", expect, m)
        }
        // 2. Shrink
        minRune := func(rune int) int { return 'a' };
        m = Map(minRune, tenRunes(unicode.MaxRune));
        expect = a;
        if m != expect {
-               t.Errorf("shrinking: expected %q got %q", expect, m);
+               t.Errorf("shrinking: expected %q got %q", expect, m)
        }
 }
 
@@ -253,18 +253,18 @@ func TestTrimSpace(t *testing.T)  { runStringTests(t, TrimSpace, "TrimSpace", tri
 
 func equal(m string, s1, s2 string, t *testing.T) bool {
        if s1 == s2 {
-               return true;
+               return true
        }
        e1 := Split(s1, "", 0);
        e2 := Split(s2, "", 0);
        for i, c1 := range e1 {
                if i > len(e2) {
-                       break;
+                       break
                }
                r1, _ := utf8.DecodeRuneInString(c1);
                r2, _ := utf8.DecodeRuneInString(e2[i]);
                if r1 != r2 {
-                       t.Errorf("%s diff at %d: U+%04X U+%04X", m, i, r1, r2);
+                       t.Errorf("%s diff at %d: U+%04X U+%04X", m, i, r1, r2)
                }
        }
        return false;
@@ -274,7 +274,7 @@ func TestCaseConsistency(t *testing.T) {
        // Make a string of all the runes.
        a := make([]int, unicode.MaxRune + 1);
        for i := range a {
-               a[i] = i;
+               a[i] = i
        }
        s := string(a);
        // convert the cases.
@@ -283,16 +283,16 @@ func TestCaseConsistency(t *testing.T) {
 
        // Consistency checks
        if n := utf8.RuneCountInString(upper); n != unicode.MaxRune + 1 {
-               t.Error("rune count wrong in upper:", n);
+               t.Error("rune count wrong in upper:", n)
        }
        if n := utf8.RuneCountInString(lower); n != unicode.MaxRune + 1 {
-               t.Error("rune count wrong in lower:", n);
+               t.Error("rune count wrong in lower:", n)
        }
        if !equal("ToUpper(upper)", ToUpper(upper), upper, t) {
-               t.Error("ToUpper(upper) consistency fail");
+               t.Error("ToUpper(upper) consistency fail")
        }
        if !equal("ToLower(lower)", ToLower(lower), lower, t) {
-               t.Error("ToLower(lower) consistency fail");
+               t.Error("ToLower(lower) consistency fail")
        }
        /*
                  These fail because of non-one-to-oneness of the data, such as multiple
index ac59db12de1f8f558d39ba4a64f0dfc92667254e..c02abc575f870bdadbec65db619ce87966f76449 100644 (file)
@@ -25,7 +25,7 @@ func xadd(val *uint32, delta int32) (new uint32) {
                v := *val;
                nv := v+uint32(delta);
                if cas(val, v, nv) {
-                       return nv;
+                       return nv
                }
        }
        panic("unreached");
@@ -37,7 +37,7 @@ func xadd(val *uint32, delta int32) (new uint32) {
 func (m *Mutex) Lock() {
        if xadd(&m.key, 1) == 1 {
                // changed from 0 to 1; we hold lock
-               return;
+               return
        }
        runtime.Semacquire(&m.sema);
 }
@@ -51,7 +51,7 @@ func (m *Mutex) Lock() {
 func (m *Mutex) Unlock() {
        if xadd(&m.key, -1) == 0 {
                // changed from 1 to 0; no contention
-               return;
+               return
        }
        runtime.Semrelease(&m.sema);
 }
index 03490af1226b246a77bee03ec3548b15788a42d0..72c9c4342a2b9678f5eccfa730f96a05c175c99a 100644 (file)
@@ -25,10 +25,10 @@ func TestSemaphore(t *testing.T) {
        *s = 1;
        c := make(chan bool);
        for i := 0; i < 10; i++ {
-               go HammerSemaphore(s, c);
+               go HammerSemaphore(s, c)
        }
        for i := 0; i < 10; i++ {
-               <-c;
+               <-c
        }
 }
 
@@ -45,9 +45,9 @@ func TestMutex(t *testing.T) {
        m := new(Mutex);
        c := make(chan bool);
        for i := 0; i < 10; i++ {
-               go HammerMutex(m, c);
+               go HammerMutex(m, c)
        }
        for i := 0; i < 10; i++ {
-               <-c;
+               <-c
        }
 }
index f21e1d94eb8b428a3f34ea44e2b6263da62f2cbc..c1935d5b2882f96d61175613aedf3b1d63defa07 100644 (file)
@@ -7,7 +7,7 @@ package syscall
 
 func str(val int) string {     // do it here rather than with fmt to avoid dependency
        if val < 0 {
-               return "-"+str(-val);
+               return "-"+str(-val)
        }
        var buf [32]byte;       // big enough for int64
        i := len(buf)-1;
@@ -22,7 +22,7 @@ func str(val int) string {    // do it here rather than with fmt to avoid dependenc
 
 func Errstr(errno int) string {
        if errno < 0 || errno >= int(len(errors)) {
-               return "error "+str(errno);
+               return "error "+str(errno)
        }
        return errors[errno];
 }
index 4310b9e1ac93e690ac2ea9caac965a725127e45b..a3be959bd54877d06debccb4a54e16401eb3d7f1 100644 (file)
@@ -65,7 +65,7 @@ var ForkLock sync.RWMutex
 func StringArrayPtr(ss []string) []*byte {
        bb := make([]*byte, len(ss)+1);
        for i := 0; i < len(ss); i++ {
-               bb[i] = StringBytePtr(ss[i]);
+               bb[i] = StringBytePtr(ss[i])
        }
        bb[len(ss)] = nil;
        return bb;
@@ -76,12 +76,12 @@ func CloseOnExec(fd int)    { fcntl(fd, F_SETFD, FD_CLOEXEC) }
 func SetNonblock(fd int, nonblocking bool) (errno int) {
        flag, err := fcntl(fd, F_GETFL, 0);
        if err != 0 {
-               return err;
+               return err
        }
        if nonblocking {
-               flag |= O_NONBLOCK;
+               flag |= O_NONBLOCK
        } else {
-               flag &= ^O_NONBLOCK;
+               flag &= ^O_NONBLOCK
        }
        _, err = fcntl(fd, F_SETFL, flag);
        return err;
@@ -109,7 +109,7 @@ func forkAndExecInChild(argv0 *byte, argv []*byte, envv []*byte, traceme bool, d
        // No more allocation or calls of non-assembly functions.
        r1, r2, err1 = RawSyscall(SYS_FORK, 0, 0, 0);
        if err1 != 0 {
-               return 0, int(err1);
+               return 0, int(err1)
        }
 
        // On Darwin:
@@ -117,12 +117,12 @@ func forkAndExecInChild(argv0 *byte, argv []*byte, envv []*byte, traceme bool, d
        //      r2 = 0 in parent, 1 in child.
        // Convert to normal Unix r1 = 0 in child.
        if darwin && r2 == 1 {
-               r1 = 0;
+               r1 = 0
        }
 
        if r1 != 0 {
                // parent; return PID
-               return int(r1), 0;
+               return int(r1), 0
        }
 
        // Fork succeeded, now in child.
@@ -131,7 +131,7 @@ func forkAndExecInChild(argv0 *byte, argv []*byte, envv []*byte, traceme bool, d
        if traceme {
                _, _, err1 = RawSyscall(SYS_PTRACE, uintptr(PTRACE_TRACEME), 0, 0);
                if err1 != 0 {
-                       goto childerror;
+                       goto childerror
                }
        }
 
@@ -139,7 +139,7 @@ func forkAndExecInChild(argv0 *byte, argv []*byte, envv []*byte, traceme bool, d
        if dir != nil {
                _, _, err1 = RawSyscall(SYS_CHDIR, uintptr(unsafe.Pointer(dir)), 0, 0);
                if err1 != 0 {
-                       goto childerror;
+                       goto childerror
                }
        }
 
@@ -149,7 +149,7 @@ func forkAndExecInChild(argv0 *byte, argv []*byte, envv []*byte, traceme bool, d
        if pipe < nextfd {
                _, _, err1 = RawSyscall(SYS_DUP2, uintptr(pipe), uintptr(nextfd), 0);
                if err1 != 0 {
-                       goto childerror;
+                       goto childerror
                }
                RawSyscall(SYS_FCNTL, uintptr(nextfd), F_SETFD, FD_CLOEXEC);
                pipe = nextfd;
@@ -159,13 +159,13 @@ func forkAndExecInChild(argv0 *byte, argv []*byte, envv []*byte, traceme bool, d
                if fd[i] >= 0 && fd[i] < int(i) {
                        _, _, err1 = RawSyscall(SYS_DUP2, uintptr(fd[i]), uintptr(nextfd), 0);
                        if err1 != 0 {
-                               goto childerror;
+                               goto childerror
                        }
                        RawSyscall(SYS_FCNTL, uintptr(nextfd), F_SETFD, FD_CLOEXEC);
                        fd[i] = nextfd;
                        nextfd++;
                        if nextfd == pipe {     // don't stomp on pipe
-                               nextfd++;
+                               nextfd++
                        }
                }
        }
@@ -181,7 +181,7 @@ func forkAndExecInChild(argv0 *byte, argv []*byte, envv []*byte, traceme bool, d
                        // probably not elsewhere either.
                        _, _, err1 = RawSyscall(SYS_FCNTL, uintptr(fd[i]), F_SETFD, 0);
                        if err1 != 0 {
-                               goto childerror;
+                               goto childerror
                        }
                        continue;
                }
@@ -189,7 +189,7 @@ func forkAndExecInChild(argv0 *byte, argv []*byte, envv []*byte, traceme bool, d
                // which is exactly what we want.
                _, _, err1 = RawSyscall(SYS_DUP2, uintptr(fd[i]), uintptr(i), 0);
                if err1 != 0 {
-                       goto childerror;
+                       goto childerror
                }
        }
 
@@ -198,7 +198,7 @@ func forkAndExecInChild(argv0 *byte, argv []*byte, envv []*byte, traceme bool, d
        // Programs that know they inherit fds >= 3 will need
        // to set them close-on-exec.
        for i = len(fd); i < 3; i++ {
-               RawSyscall(SYS_CLOSE, uintptr(i), 0, 0);
+               RawSyscall(SYS_CLOSE, uintptr(i), 0, 0)
        }
 
        // Time to exec.
@@ -211,7 +211,7 @@ childerror:
        // send error code on pipe
        RawSyscall(SYS_WRITE, uintptr(pipe), uintptr(unsafe.Pointer(&err1)), uintptr(unsafe.Sizeof(err1)));
        for {
-               RawSyscall(SYS_EXIT, 253, 0, 0);
+               RawSyscall(SYS_EXIT, 253, 0, 0)
        }
 
        // Calling panic is not actually safe,
@@ -235,7 +235,7 @@ func forkExec(argv0 string, argv []string, envv []string, traceme bool, dir stri
        envvp := StringArrayPtr(envv);
        var dirp *byte;
        if len(dir) > 0 {
-               dirp = StringBytePtr(dir);
+               dirp = StringBytePtr(dir)
        }
 
        // Acquire the fork lock so that no other threads
@@ -245,13 +245,13 @@ func forkExec(argv0 string, argv []string, envv []string, traceme bool, dir stri
 
        // Allocate child status pipe close on exec.
        if err = Pipe(&p); err != 0 {
-               goto error;
+               goto error
        }
        if _, err = fcntl(p[0], F_SETFD, FD_CLOEXEC); err != 0 {
-               goto error;
+               goto error
        }
        if _, err = fcntl(p[1], F_SETFD, FD_CLOEXEC); err != 0 {
-               goto error;
+               goto error
        }
 
        // Kick off child.
@@ -273,17 +273,17 @@ func forkExec(argv0 string, argv []string, envv []string, traceme bool, dir stri
        Close(p[0]);
        if err != 0 || n != 0 {
                if n == unsafe.Sizeof(err1) {
-                       err = int(err1);
+                       err = int(err1)
                }
                if err == 0 {
-                       err = EPIPE;
+                       err = EPIPE
                }
 
                // Child failed; wait for it to exit, to make sure
                // the zombies don't accumulate.
                _, err1 := Wait4(pid, &wstatus, 0, nil);
                for err1 == EINTR {
-                       _, err1 = Wait4(pid, &wstatus, 0, nil);
+                       _, err1 = Wait4(pid, &wstatus, 0, nil)
                }
                return 0, err;
        }
@@ -294,12 +294,12 @@ func forkExec(argv0 string, argv []string, envv []string, traceme bool, dir stri
 
 // Combination of fork and exec, careful to be thread safe.
 func ForkExec(argv0 string, argv []string, envv []string, dir string, fd []int) (pid int, err int) {
-       return forkExec(argv0, argv, envv, false, dir, fd);
+       return forkExec(argv0, argv, envv, false, dir, fd)
 }
 
 // PtraceForkExec is like ForkExec, but starts the child in a traced state.
 func PtraceForkExec(argv0 string, argv []string, envv []string, dir string, fd []int) (pid int, err int) {
-       return forkExec(argv0, argv, envv, true, dir, fd);
+       return forkExec(argv0, argv, envv, true, dir, fd)
 }
 
 // Ordinary exec.
index 89252d1f8b66c5c175d16bb484e88ad2ea154ce7..06f3635d68bf552cc69a649110fc98f537f24e9d 100644 (file)
@@ -20,7 +20,7 @@ func RawSyscall(trap, a1, a2, a3 uintptr) (r1, r2, err uintptr)
 func StringByteSlice(s string) []byte {
        a := make([]byte, len(s)+1);
        for i := 0; i < len(s); i++ {
-               a[i] = s[i];
+               a[i] = s[i]
        }
        return a;
 }
index 792dc0bbc581a51cd4a2dfcf3cdbbf5f0d5991fd..2663c70921b5574ecf0274c5a4d2aed754a5e1b6 100644 (file)
@@ -36,37 +36,37 @@ func Getwd() (string, int)  { return "", ENOTSUP }
 func Getgroups() (gids []int, errno int) {
        n, err := getgroups(0, nil);
        if err != 0 {
-               return nil, errno;
+               return nil, errno
        }
        if n == 0 {
-               return nil, 0;
+               return nil, 0
        }
 
        // Sanity check group count.  Max is 16 on BSD.
        if n < 0 || n > 1000 {
-               return nil, EINVAL;
+               return nil, EINVAL
        }
 
        a := make([]_Gid_t, n);
        n, err = getgroups(n, &a[0]);
        if err != 0 {
-               return nil, errno;
+               return nil, errno
        }
        gids = make([]int, n);
        for i, v := range a[0:n] {
-               gids[i] = int(v);
+               gids[i] = int(v)
        }
        return;
 }
 
 func Setgroups(gids []int) (errno int) {
        if len(gids) == 0 {
-               return setgroups(0, nil);
+               return setgroups(0, nil)
        }
 
        a := make([]_Gid_t, len(gids));
        for i, v := range gids {
-               a[i] = _Gid_t(v);
+               a[i] = _Gid_t(v)
        }
        return setgroups(len(a), &a[0]);
 }
@@ -92,7 +92,7 @@ func (w WaitStatus) Exited() bool     { return w&mask == exited }
 
 func (w WaitStatus) ExitStatus() int {
        if w&mask != exited {
-               return -1;
+               return -1
        }
        return int(w>>shift);
 }
@@ -102,7 +102,7 @@ func (w WaitStatus) Signaled() bool { return w&mask != stopped && w&mask != 0 }
 func (w WaitStatus) Signal() int {
        sig := int(w&mask);
        if sig == stopped || sig == 0 {
-               return -1;
+               return -1
        }
        return sig;
 }
@@ -115,14 +115,14 @@ func (w WaitStatus) Continued() bool      { return w&mask == stopped && w>>shift == S
 
 func (w WaitStatus) StopSignal() int {
        if !w.Stopped() {
-               return -1;
+               return -1
        }
        return int(w>>shift)&0xFF;
 }
 
 func (w WaitStatus) TrapCause() int {
        // Darwin doesn't have trap causes
-       return -1;
+       return -1
 }
 
 //sys  wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, errno int)
@@ -131,7 +131,7 @@ func Wait4(pid int, wstatus *WaitStatus, options int, rusage *Rusage) (wpid int,
        var status _C_int;
        wpid, errno = wait4(pid, &status, options, rusage);
        if wstatus != nil {
-               *wstatus = WaitStatus(status);
+               *wstatus = WaitStatus(status)
        }
        return;
 }
@@ -140,7 +140,7 @@ func Wait4(pid int, wstatus *WaitStatus, options int, rusage *Rusage) (wpid int,
 
 func Pipe(p []int) (errno int) {
        if len(p) != 2 {
-               return EINVAL;
+               return EINVAL
        }
        p[0], p[1], errno = pipe();
        return;
@@ -175,7 +175,7 @@ type SockaddrInet4 struct {
 
 func (sa *SockaddrInet4) sockaddr() (uintptr, _Socklen, int) {
        if sa.Port < 0 || sa.Port > 0xFFFF {
-               return 0, 0, EINVAL;
+               return 0, 0, EINVAL
        }
        sa.raw.Len = SizeofSockaddrInet4;
        sa.raw.Family = AF_INET;
@@ -183,7 +183,7 @@ func (sa *SockaddrInet4) sockaddr() (uintptr, _Socklen, int) {
        p[0] = byte(sa.Port >> 8);
        p[1] = byte(sa.Port);
        for i := 0; i < len(sa.Addr); i++ {
-               sa.raw.Addr[i] = sa.Addr[i];
+               sa.raw.Addr[i] = sa.Addr[i]
        }
        return uintptr(unsafe.Pointer(&sa.raw)), _Socklen(sa.raw.Len), 0;
 }
@@ -196,7 +196,7 @@ type SockaddrInet6 struct {
 
 func (sa *SockaddrInet6) sockaddr() (uintptr, _Socklen, int) {
        if sa.Port < 0 || sa.Port > 0xFFFF {
-               return 0, 0, EINVAL;
+               return 0, 0, EINVAL
        }
        sa.raw.Len = SizeofSockaddrInet6;
        sa.raw.Family = AF_INET6;
@@ -204,7 +204,7 @@ func (sa *SockaddrInet6) sockaddr() (uintptr, _Socklen, int) {
        p[0] = byte(sa.Port >> 8);
        p[1] = byte(sa.Port);
        for i := 0; i < len(sa.Addr); i++ {
-               sa.raw.Addr[i] = sa.Addr[i];
+               sa.raw.Addr[i] = sa.Addr[i]
        }
        return uintptr(unsafe.Pointer(&sa.raw)), _Socklen(sa.raw.Len), 0;
 }
@@ -218,12 +218,12 @@ func (sa *SockaddrUnix) sockaddr() (uintptr, _Socklen, int) {
        name := sa.Name;
        n := len(name);
        if n >= len(sa.raw.Path) || n == 0 {
-               return 0, 0, EINVAL;
+               return 0, 0, EINVAL
        }
        sa.raw.Len = byte(3+n); // 2 for Family, Len; 1 for NUL
        sa.raw.Family = AF_UNIX;
        for i := 0; i < n; i++ {
-               sa.raw.Path[i] = int8(name[i]);
+               sa.raw.Path[i] = int8(name[i])
        }
        return uintptr(unsafe.Pointer(&sa.raw)), _Socklen(sa.raw.Len), 0;
 }
@@ -233,7 +233,7 @@ func anyToSockaddr(rsa *RawSockaddrAny) (Sockaddr, int) {
        case AF_UNIX:
                pp := (*RawSockaddrUnix)(unsafe.Pointer(rsa));
                if pp.Len < 3 || pp.Len > SizeofSockaddrUnix {
-                       return nil, EINVAL;
+                       return nil, EINVAL
                }
                sa := new(SockaddrUnix);
                n := int(pp.Len)-3;     // subtract leading Family, Len, terminating NUL
@@ -254,7 +254,7 @@ func anyToSockaddr(rsa *RawSockaddrAny) (Sockaddr, int) {
                p := (*[2]byte)(unsafe.Pointer(&pp.Port));
                sa.Port = int(p[0])<<8 + int(p[1]);
                for i := 0; i < len(sa.Addr); i++ {
-                       sa.Addr[i] = pp.Addr[i];
+                       sa.Addr[i] = pp.Addr[i]
                }
                return sa, 0;
 
@@ -264,7 +264,7 @@ func anyToSockaddr(rsa *RawSockaddrAny) (Sockaddr, int) {
                p := (*[2]byte)(unsafe.Pointer(&pp.Port));
                sa.Port = int(p[0])<<8 + int(p[1]);
                for i := 0; i < len(sa.Addr); i++ {
-                       sa.Addr[i] = pp.Addr[i];
+                       sa.Addr[i] = pp.Addr[i]
                }
                return sa, 0;
        }
@@ -276,7 +276,7 @@ func Accept(fd int) (nfd int, sa Sockaddr, errno int) {
        var len _Socklen = SizeofSockaddrAny;
        nfd, errno = accept(fd, &rsa, &len);
        if errno != 0 {
-               return;
+               return
        }
        sa, errno = anyToSockaddr(&rsa);
        if errno != 0 {
@@ -290,7 +290,7 @@ func Getsockname(fd int) (sa Sockaddr, errno int) {
        var rsa RawSockaddrAny;
        var len _Socklen = SizeofSockaddrAny;
        if errno = getsockname(fd, &rsa, &len); errno != 0 {
-               return;
+               return
        }
        return anyToSockaddr(&rsa);
 }
@@ -299,7 +299,7 @@ func Getpeername(fd int) (sa Sockaddr, errno int) {
        var rsa RawSockaddrAny;
        var len _Socklen = SizeofSockaddrAny;
        if errno = getpeername(fd, &rsa, &len); errno != 0 {
-               return;
+               return
        }
        return anyToSockaddr(&rsa);
 }
@@ -307,7 +307,7 @@ func Getpeername(fd int) (sa Sockaddr, errno int) {
 func Bind(fd int, sa Sockaddr) (errno int) {
        ptr, n, err := sa.sockaddr();
        if err != 0 {
-               return err;
+               return err
        }
        return bind(fd, ptr, n);
 }
@@ -315,14 +315,14 @@ func Bind(fd int, sa Sockaddr) (errno int) {
 func Connect(fd int, sa Sockaddr) (errno int) {
        ptr, n, err := sa.sockaddr();
        if err != 0 {
-               return err;
+               return err
        }
        return connect(fd, ptr, n);
 }
 
 func Socket(domain, typ, proto int) (fd, errno int) {
        if domain == AF_INET6 && SocketDisableIPv6 {
-               return -1, EAFNOSUPPORT;
+               return -1, EAFNOSUPPORT
        }
        fd, errno = socket(domain, typ, proto);
        return;
@@ -334,11 +334,11 @@ func SetsockoptInt(fd, level, opt int, value int) (errno int) {
 }
 
 func SetsockoptTimeval(fd, level, opt int, tv *Timeval) (errno int) {
-       return setsockopt(fd, level, opt, uintptr(unsafe.Pointer(tv)), unsafe.Sizeof(*tv));
+       return setsockopt(fd, level, opt, uintptr(unsafe.Pointer(tv)), unsafe.Sizeof(*tv))
 }
 
 func SetsockoptLinger(fd, level, opt int, l *Linger) (errno int) {
-       return setsockopt(fd, level, opt, uintptr(unsafe.Pointer(l)), unsafe.Sizeof(*l));
+       return setsockopt(fd, level, opt, uintptr(unsafe.Pointer(l)), unsafe.Sizeof(*l))
 }
 
 
@@ -348,7 +348,7 @@ func Recvfrom(fd int, p []byte, flags int) (n int, from Sockaddr, errno int) {
        var rsa RawSockaddrAny;
        var len _Socklen = SizeofSockaddrAny;
        if n, errno = recvfrom(fd, p, flags, &rsa, &len); errno != 0 {
-               return;
+               return
        }
        from, errno = anyToSockaddr(&rsa);
        return;
@@ -359,7 +359,7 @@ func Recvfrom(fd int, p []byte, flags int) (n int, from Sockaddr, errno int) {
 func Sendto(fd int, p []byte, flags int, to Sockaddr) (errno int) {
        ptr, n, err := to.sockaddr();
        if err != 0 {
-               return err;
+               return err
        }
        return sendto(fd, p, flags, ptr, n);
 }
@@ -369,10 +369,10 @@ func Sendto(fd int, p []byte, flags int, to Sockaddr) (errno int) {
 func Kevent(kq int, changes, events []Kevent_t, timeout *Timespec) (n int, errno int) {
        var change, event uintptr;
        if len(changes) > 0 {
-               change = uintptr(unsafe.Pointer(&changes[0]));
+               change = uintptr(unsafe.Pointer(&changes[0]))
        }
        if len(events) > 0 {
-               event = uintptr(unsafe.Pointer(&events[0]));
+               event = uintptr(unsafe.Pointer(&events[0]))
        }
        return kevent(kq, change, len(changes), event, len(events), timeout);
 }
@@ -400,7 +400,7 @@ func nametomib(name string) (mib []_C_int, errno int) {
        // Magic sysctl: "setting" 0.3 to a string name
        // lets you read back the array of integers form.
        if errno = sysctl([]_C_int{0, 3}, p, &n, &bytes[0], uintptr(len(name))); errno != 0 {
-               return nil, errno;
+               return nil, errno
        }
        return buf[0 : n/siz], 0;
 }
@@ -409,27 +409,27 @@ func Sysctl(name string) (value string, errno int) {
        // Translate name to mib number.
        mib, errno := nametomib(name);
        if errno != 0 {
-               return "", errno;
+               return "", errno
        }
 
        // Find size.
        n := uintptr(0);
        if errno = sysctl(mib, nil, &n, nil, 0); errno != 0 {
-               return "", errno;
+               return "", errno
        }
        if n == 0 {
-               return "", 0;
+               return "", 0
        }
 
        // Read into buffer of that size.
        buf := make([]byte, n);
        if errno = sysctl(mib, &buf[0], &n, nil, 0); errno != 0 {
-               return "", errno;
+               return "", errno
        }
 
        // Throw away terminating NUL.
        if n > 0 && buf[n-1] == '\x00' {
-               n--;
+               n--
        }
        return string(buf[0:n]), 0;
 }
@@ -438,17 +438,17 @@ func SysctlUint32(name string) (value uint32, errno int) {
        // Translate name to mib number.
        mib, errno := nametomib(name);
        if errno != 0 {
-               return 0, errno;
+               return 0, errno
        }
 
        // Read into buffer of that size.
        n := uintptr(4);
        buf := make([]byte, 4);
        if errno = sysctl(mib, &buf[0], &n, nil, 0); errno != 0 {
-               return 0, errno;
+               return 0, errno
        }
        if n != 4 {
-               return 0, EIO;
+               return 0, EIO
        }
        return *(*uint32)(unsafe.Pointer(&buf[0])), 0;
 }
index e4b82569e1888372ab1149cda19a7ae79254631a..165d56d35a630efd3e21886335a282b45b72df05 100644 (file)
@@ -22,7 +22,7 @@ const OS = "linux"
 //sys  pipe(p *[2]_C_int) (errno int)
 func Pipe(p []int) (errno int) {
        if len(p) != 2 {
-               return EINVAL;
+               return EINVAL
        }
        var pp [2]_C_int;
        errno = pipe(&pp);
@@ -34,7 +34,7 @@ func Pipe(p []int) (errno int) {
 //sys  utimes(path string, times *[2]Timeval) (errno int)
 func Utimes(path string, tv []Timeval) (errno int) {
        if len(tv) != 2 {
-               return EINVAL;
+               return EINVAL
        }
        return utimes(path, (*[2]Timeval)(unsafe.Pointer(&tv[0])));
 }
@@ -42,7 +42,7 @@ func Utimes(path string, tv []Timeval) (errno int) {
 //sys  futimesat(dirfd int, path string, times *[2]Timeval) (errno int)
 func Futimesat(dirfd int, path string, tv []Timeval) (errno int) {
        if len(tv) != 2 {
-               return EINVAL;
+               return EINVAL
        }
        return futimesat(dirfd, path, (*[2]Timeval)(unsafe.Pointer(&tv[0])));
 }
@@ -54,11 +54,11 @@ func Getwd() (wd string, errno int) {
        var buf [PathMax]byte;
        n, err := Getcwd(&buf);
        if err != 0 {
-               return "", err;
+               return "", err
        }
        // Getcwd returns the number of bytes written to buf, including the NUL.
        if n < 1 || n > len(buf) || buf[n-1] != 0 {
-               return "", EINVAL;
+               return "", EINVAL
        }
        return string(buf[0 : n-1]), 0;
 }
@@ -66,37 +66,37 @@ func Getwd() (wd string, errno int) {
 func Getgroups() (gids []int, errno int) {
        n, err := getgroups(0, nil);
        if err != 0 {
-               return nil, errno;
+               return nil, errno
        }
        if n == 0 {
-               return nil, 0;
+               return nil, 0
        }
 
        // Sanity check group count.  Max is 1<<16 on Linux.
        if n < 0 || n > 1<<20 {
-               return nil, EINVAL;
+               return nil, EINVAL
        }
 
        a := make([]_Gid_t, n);
        n, err = getgroups(n, &a[0]);
        if err != 0 {
-               return nil, errno;
+               return nil, errno
        }
        gids = make([]int, n);
        for i, v := range a[0:n] {
-               gids[i] = int(v);
+               gids[i] = int(v)
        }
        return;
 }
 
 func Setgroups(gids []int) (errno int) {
        if len(gids) == 0 {
-               return setgroups(0, nil);
+               return setgroups(0, nil)
        }
 
        a := make([]_Gid_t, len(gids));
        for i, v := range gids {
-               a[i] = _Gid_t(v);
+               a[i] = _Gid_t(v)
        }
        return setgroups(len(a), &a[0]);
 }
@@ -132,28 +132,28 @@ func (w WaitStatus) CoreDump() bool       { return w.Signaled() && w&core != 0 }
 
 func (w WaitStatus) ExitStatus() int {
        if !w.Exited() {
-               return -1;
+               return -1
        }
        return int(w>>shift)&0xFF;
 }
 
 func (w WaitStatus) Signal() int {
        if !w.Signaled() {
-               return -1;
+               return -1
        }
        return int(w&mask);
 }
 
 func (w WaitStatus) StopSignal() int {
        if !w.Stopped() {
-               return -1;
+               return -1
        }
        return int(w>>shift)&0xFF;
 }
 
 func (w WaitStatus) TrapCause() int {
        if w.StopSignal() != SIGTRAP {
-               return -1;
+               return -1
        }
        return int(w>>shift)>>8;
 }
@@ -163,7 +163,7 @@ func Wait4(pid int, wstatus *WaitStatus, options int, rusage *Rusage) (wpid int,
        var status _C_int;
        wpid, errno = wait4(pid, &status, options, rusage);
        if wstatus != nil {
-               *wstatus = WaitStatus(status);
+               *wstatus = WaitStatus(status)
        }
        return;
 }
@@ -190,14 +190,14 @@ type SockaddrInet4 struct {
 
 func (sa *SockaddrInet4) sockaddr() (uintptr, _Socklen, int) {
        if sa.Port < 0 || sa.Port > 0xFFFF {
-               return 0, 0, EINVAL;
+               return 0, 0, EINVAL
        }
        sa.raw.Family = AF_INET;
        p := (*[2]byte)(unsafe.Pointer(&sa.raw.Port));
        p[0] = byte(sa.Port >> 8);
        p[1] = byte(sa.Port);
        for i := 0; i < len(sa.Addr); i++ {
-               sa.raw.Addr[i] = sa.Addr[i];
+               sa.raw.Addr[i] = sa.Addr[i]
        }
        return uintptr(unsafe.Pointer(&sa.raw)), SizeofSockaddrInet4, 0;
 }
@@ -210,14 +210,14 @@ type SockaddrInet6 struct {
 
 func (sa *SockaddrInet6) sockaddr() (uintptr, _Socklen, int) {
        if sa.Port < 0 || sa.Port > 0xFFFF {
-               return 0, 0, EINVAL;
+               return 0, 0, EINVAL
        }
        sa.raw.Family = AF_INET6;
        p := (*[2]byte)(unsafe.Pointer(&sa.raw.Port));
        p[0] = byte(sa.Port >> 8);
        p[1] = byte(sa.Port);
        for i := 0; i < len(sa.Addr); i++ {
-               sa.raw.Addr[i] = sa.Addr[i];
+               sa.raw.Addr[i] = sa.Addr[i]
        }
        return uintptr(unsafe.Pointer(&sa.raw)), SizeofSockaddrInet6, 0;
 }
@@ -231,14 +231,14 @@ func (sa *SockaddrUnix) sockaddr() (uintptr, _Socklen, int) {
        name := sa.Name;
        n := len(name);
        if n >= len(sa.raw.Path) || n == 0 {
-               return 0, 0, EINVAL;
+               return 0, 0, EINVAL
        }
        sa.raw.Family = AF_UNIX;
        for i := 0; i < n; i++ {
-               sa.raw.Path[i] = int8(name[i]);
+               sa.raw.Path[i] = int8(name[i])
        }
        if sa.raw.Path[0] == '@' {
-               sa.raw.Path[0] = 0;
+               sa.raw.Path[0] = 0
        }
 
        // length is family, name, NUL.
@@ -256,7 +256,7 @@ func anyToSockaddr(rsa *RawSockaddrAny) (Sockaddr, int) {
                        // (This is the standard convention.)
                        // Not friendly to overwrite in place,
                        // but the callers below don't care.
-                       pp.Path[0] = '@';
+                       pp.Path[0] = '@'
                }
 
                // Assume path ends at NUL.
@@ -266,7 +266,7 @@ func anyToSockaddr(rsa *RawSockaddrAny) (Sockaddr, int) {
                // everyone uses this convention.
                n := 0;
                for n < len(pp.Path) && pp.Path[n] != 0 {
-                       n++;
+                       n++
                }
                bytes := (*[len(pp.Path)]byte)(unsafe.Pointer(&pp.Path[0]));
                sa.Name = string(bytes[0:n]);
@@ -278,7 +278,7 @@ func anyToSockaddr(rsa *RawSockaddrAny) (Sockaddr, int) {
                p := (*[2]byte)(unsafe.Pointer(&pp.Port));
                sa.Port = int(p[0])<<8 + int(p[1]);
                for i := 0; i < len(sa.Addr); i++ {
-                       sa.Addr[i] = pp.Addr[i];
+                       sa.Addr[i] = pp.Addr[i]
                }
                return sa, 0;
 
@@ -288,7 +288,7 @@ func anyToSockaddr(rsa *RawSockaddrAny) (Sockaddr, int) {
                p := (*[2]byte)(unsafe.Pointer(&pp.Port));
                sa.Port = int(p[0])<<8 + int(p[1]);
                for i := 0; i < len(sa.Addr); i++ {
-                       sa.Addr[i] = pp.Addr[i];
+                       sa.Addr[i] = pp.Addr[i]
                }
                return sa, 0;
        }
@@ -300,7 +300,7 @@ func Accept(fd int) (nfd int, sa Sockaddr, errno int) {
        var len _Socklen = SizeofSockaddrAny;
        nfd, errno = accept(fd, &rsa, &len);
        if errno != 0 {
-               return;
+               return
        }
        sa, errno = anyToSockaddr(&rsa);
        if errno != 0 {
@@ -314,7 +314,7 @@ func Getsockname(fd int) (sa Sockaddr, errno int) {
        var rsa RawSockaddrAny;
        var len _Socklen = SizeofSockaddrAny;
        if errno = getsockname(fd, &rsa, &len); errno != 0 {
-               return;
+               return
        }
        return anyToSockaddr(&rsa);
 }
@@ -323,7 +323,7 @@ func Getpeername(fd int) (sa Sockaddr, errno int) {
        var rsa RawSockaddrAny;
        var len _Socklen = SizeofSockaddrAny;
        if errno = getpeername(fd, &rsa, &len); errno != 0 {
-               return;
+               return
        }
        return anyToSockaddr(&rsa);
 }
@@ -331,7 +331,7 @@ func Getpeername(fd int) (sa Sockaddr, errno int) {
 func Bind(fd int, sa Sockaddr) (errno int) {
        ptr, n, err := sa.sockaddr();
        if err != 0 {
-               return err;
+               return err
        }
        return bind(fd, ptr, n);
 }
@@ -339,14 +339,14 @@ func Bind(fd int, sa Sockaddr) (errno int) {
 func Connect(fd int, sa Sockaddr) (errno int) {
        ptr, n, err := sa.sockaddr();
        if err != 0 {
-               return err;
+               return err
        }
        return connect(fd, ptr, n);
 }
 
 func Socket(domain, typ, proto int) (fd, errno int) {
        if domain == AF_INET6 && SocketDisableIPv6 {
-               return -1, EAFNOSUPPORT;
+               return -1, EAFNOSUPPORT
        }
        fd, errno = socket(domain, typ, proto);
        return;
@@ -358,18 +358,18 @@ func SetsockoptInt(fd, level, opt int, value int) (errno int) {
 }
 
 func SetsockoptTimeval(fd, level, opt int, tv *Timeval) (errno int) {
-       return setsockopt(fd, level, opt, uintptr(unsafe.Pointer(tv)), unsafe.Sizeof(*tv));
+       return setsockopt(fd, level, opt, uintptr(unsafe.Pointer(tv)), unsafe.Sizeof(*tv))
 }
 
 func SetsockoptLinger(fd, level, opt int, l *Linger) (errno int) {
-       return setsockopt(fd, level, opt, uintptr(unsafe.Pointer(l)), unsafe.Sizeof(*l));
+       return setsockopt(fd, level, opt, uintptr(unsafe.Pointer(l)), unsafe.Sizeof(*l))
 }
 
 func Recvfrom(fd int, p []byte, flags int) (n int, from Sockaddr, errno int) {
        var rsa RawSockaddrAny;
        var len _Socklen = SizeofSockaddrAny;
        if n, errno = recvfrom(fd, p, flags, &rsa, &len); errno != 0 {
-               return;
+               return
        }
        from, errno = anyToSockaddr(&rsa);
        return;
@@ -378,7 +378,7 @@ func Recvfrom(fd int, p []byte, flags int) (n int, from Sockaddr, errno int) {
 func Sendto(fd int, p []byte, flags int, to Sockaddr) (errno int) {
        ptr, n, err := to.sockaddr();
        if err != 0 {
-               return err;
+               return err
        }
        return sendto(fd, p, flags, ptr, n);
 }
@@ -388,10 +388,10 @@ func Sendto(fd int, p []byte, flags int, to Sockaddr) (errno int) {
 // See bytes.Copy.
 func bytesCopy(dst, src []byte) int {
        if len(src) > len(dst) {
-               src = src[0:len(dst)];
+               src = src[0:len(dst)]
        }
        for i, x := range src {
-               dst[i] = x;
+               dst[i] = x
        }
        return len(src);
 }
@@ -414,7 +414,7 @@ func ptracePeek(req int, pid int, addr uintptr, out []byte) (count int, errno in
        if addr % sizeofPtr != 0 {
                errno = ptrace(req, pid, addr - addr % sizeofPtr, uintptr(unsafe.Pointer(&buf[0])));
                if errno != 0 {
-                       return 0, errno;
+                       return 0, errno
                }
                n += bytesCopy(out, buf[addr % sizeofPtr : len(buf)]);
                out = out[n:len(out)];
@@ -426,7 +426,7 @@ func ptracePeek(req int, pid int, addr uintptr, out []byte) (count int, errno in
                // It's not documented if this is necessary, but we're paranoid.
                errno = ptrace(req, pid, addr+uintptr(n), uintptr(unsafe.Pointer(&buf[0])));
                if errno != 0 {
-                       return n, errno;
+                       return n, errno
                }
                copied := bytesCopy(out, &buf);
                n += copied;
@@ -437,11 +437,11 @@ func ptracePeek(req int, pid int, addr uintptr, out []byte) (count int, errno in
 }
 
 func PtracePeekText(pid int, addr uintptr, out []byte) (count int, errno int) {
-       return ptracePeek(PTRACE_PEEKTEXT, pid, addr, out);
+       return ptracePeek(PTRACE_PEEKTEXT, pid, addr, out)
 }
 
 func PtracePeekData(pid int, addr uintptr, out []byte) (count int, errno int) {
-       return ptracePeek(PTRACE_PEEKDATA, pid, addr, out);
+       return ptracePeek(PTRACE_PEEKDATA, pid, addr, out)
 }
 
 func ptracePoke(pokeReq int, peekReq int, pid int, addr uintptr, data []byte) (count int, errno int) {
@@ -454,13 +454,13 @@ func ptracePoke(pokeReq int, peekReq int, pid int, addr uintptr, data []byte) (c
                var buf [sizeofPtr]byte;
                errno = ptrace(peekReq, pid, addr - addr % sizeofPtr, uintptr(unsafe.Pointer(&buf[0])));
                if errno != 0 {
-                       return 0, errno;
+                       return 0, errno
                }
                n += bytesCopy(buf[addr % sizeofPtr : len(buf)], data);
                word := *((*uintptr)(unsafe.Pointer(&buf[0])));
                errno = ptrace(pokeReq, pid, addr - addr % sizeofPtr, word);
                if errno != 0 {
-                       return 0, errno;
+                       return 0, errno
                }
                data = data[n:len(data)];
        }
@@ -470,7 +470,7 @@ func ptracePoke(pokeReq int, peekReq int, pid int, addr uintptr, data []byte) (c
                word := *((*uintptr)(unsafe.Pointer(&data[0])));
                errno = ptrace(pokeReq, pid, addr+uintptr(n), word);
                if errno != 0 {
-                       return n, errno;
+                       return n, errno
                }
                n += sizeofPtr;
                data = data[sizeofPtr : len(data)];
@@ -481,13 +481,13 @@ func ptracePoke(pokeReq int, peekReq int, pid int, addr uintptr, data []byte) (c
                var buf [sizeofPtr]byte;
                errno = ptrace(peekReq, pid, addr+uintptr(n), uintptr(unsafe.Pointer(&buf[0])));
                if errno != 0 {
-                       return n, errno;
+                       return n, errno
                }
                bytesCopy(&buf, data);
                word := *((*uintptr)(unsafe.Pointer(&buf[0])));
                errno = ptrace(pokeReq, pid, addr+uintptr(n), word);
                if errno != 0 {
-                       return n, errno;
+                       return n, errno
                }
                n += len(data);
        }
@@ -496,23 +496,23 @@ func ptracePoke(pokeReq int, peekReq int, pid int, addr uintptr, data []byte) (c
 }
 
 func PtracePokeText(pid int, addr uintptr, data []byte) (count int, errno int) {
-       return ptracePoke(PTRACE_POKETEXT, PTRACE_PEEKTEXT, pid, addr, data);
+       return ptracePoke(PTRACE_POKETEXT, PTRACE_PEEKTEXT, pid, addr, data)
 }
 
 func PtracePokeData(pid int, addr uintptr, data []byte) (count int, errno int) {
-       return ptracePoke(PTRACE_POKEDATA, PTRACE_PEEKDATA, pid, addr, data);
+       return ptracePoke(PTRACE_POKEDATA, PTRACE_PEEKDATA, pid, addr, data)
 }
 
 func PtraceGetRegs(pid int, regsout *PtraceRegs) (errno int) {
-       return ptrace(PTRACE_GETREGS, pid, 0, uintptr(unsafe.Pointer(regsout)));
+       return ptrace(PTRACE_GETREGS, pid, 0, uintptr(unsafe.Pointer(regsout)))
 }
 
 func PtraceSetRegs(pid int, regs *PtraceRegs) (errno int) {
-       return ptrace(PTRACE_SETREGS, pid, 0, uintptr(unsafe.Pointer(regs)));
+       return ptrace(PTRACE_SETREGS, pid, 0, uintptr(unsafe.Pointer(regs)))
 }
 
 func PtraceSetOptions(pid int, options int) (errno int) {
-       return ptrace(PTRACE_SETOPTIONS, pid, 0, uintptr(options));
+       return ptrace(PTRACE_SETOPTIONS, pid, 0, uintptr(options))
 }
 
 func PtraceGetEventMsg(pid int) (msg uint, errno int) {
@@ -523,7 +523,7 @@ func PtraceGetEventMsg(pid int) (msg uint, errno int) {
 }
 
 func PtraceCont(pid int, signal int) (errno int) {
-       return ptrace(PTRACE_CONT, pid, 0, uintptr(signal));
+       return ptrace(PTRACE_CONT, pid, 0, uintptr(signal))
 }
 
 func PtraceSingleStep(pid int) (errno int)     { return ptrace(PTRACE_SINGLESTEP, pid, 0, 0) }
index 9632a889ef380620f9b513e57896ebcbcd680adf..f18309d871e39daf72e9bb85724d3e0a4ae239cc 100644 (file)
@@ -125,7 +125,7 @@ func setsockopt(s int, level int, name int, val uintptr, vallen int) (errno int)
 func recvfrom(s int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, errno int) {
        var base uintptr;
        if len(p) > 0 {
-               base = uintptr(unsafe.Pointer(&p));
+               base = uintptr(unsafe.Pointer(&p))
        }
        n, errno = socketcall(_RECVFROM, uintptr(s), base, uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen)));
        return;
@@ -134,7 +134,7 @@ func recvfrom(s int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Sockle
 func sendto(s int, p []byte, flags int, to uintptr, addrlen _Socklen) (errno int) {
        var base uintptr;
        if len(p) > 0 {
-               base = uintptr(unsafe.Pointer(&p));
+               base = uintptr(unsafe.Pointer(&p))
        }
        _, errno = socketcall(_SENDTO, uintptr(s), base, uintptr(len(p)), uintptr(flags), to, uintptr(addrlen));
        return;
index 9b3266809cb5226b70baa2f3c41f6f460924c6f3..0a73939a2dfcb5051652cfd7ff72d198878e9f7d 100644 (file)
@@ -52,7 +52,7 @@ const OS = "nacl"
 func Seek(fd int, offset int64, whence int) (newoffset int64, errno int) {
        // Offset passed to system call is 32 bits.  Failure of vision by NaCl.
        if int64(int32(offset)) != offset {
-               return 0, ERANGE;
+               return 0, ERANGE
        }
        o, _, e := Syscall(SYS_LSEEK, uintptr(fd), uintptr(offset), uintptr(whence));
        return int64(o), int(e);
@@ -71,7 +71,7 @@ func Sleep(ns int64) (errno int) {
        ts := NsecToTimespec(ns);
        var tv Timeval;
        if errno = Gettimeofday(&tv); errno != 0 {
-               return;
+               return
        }
        ts.Sec += tv.Sec;
        ts.Nsec += tv.Usec * 1000;
@@ -84,11 +84,11 @@ func Sleep(ns int64) (errno int) {
                ts.Sec--;
        }
        if errno = MutexLock(tmu); errno != 0 {
-               return;
+               return
        }
        errno = CondTimedWaitAbs(tcv, tmu, &ts);
        if e := MutexUnlock(tmu); e != 0 && errno == 0 {
-               errno = e;
+               errno = e
        }
        return;
 }
@@ -117,21 +117,21 @@ const (
 func Pipe(p []int) (errno int) { return ENACL }
 
 func fcntl(fd, cmd, arg int) (val int, errno int) {
-       return 0, ENACL;
+       return 0, ENACL
 }
 
 func Pread(fd int, p []byte, offset int64) (n int, errno int) {
-       return 0, ENACL;
+       return 0, ENACL
 }
 
 func Pwrite(fd int, p []byte, offset int64) (n int, errno int) {
-       return 0, ENACL;
+       return 0, ENACL
 }
 
 func Mkdir(path string, mode int) (errno int)  { return ENACL }
 
 func Lstat(path string, stat *Stat_t) (errno int) {
-       return ENACL;
+       return ENACL
 }
 
 func Chdir(path string) (errno int)    { return ENACL }
@@ -143,35 +143,35 @@ func Unlink(path string) (errno int)      { return ENACL }
 func Rmdir(path string) (errno int)    { return ENACL }
 
 func Link(oldpath, newpath string) (errno int) {
-       return ENACL;
+       return ENACL
 }
 
 func Symlink(path, link string) (errno int)    { return ENACL }
 
 func Readlink(path string, buf []byte) (n int, errno int) {
-       return 0, ENACL;
+       return 0, ENACL
 }
 
 func Fchmod(fd int, mode int) (errno int)      { return ENACL }
 
 func Chown(path string, uid int, gid int) (errno int) {
-       return ENACL;
+       return ENACL
 }
 
 func Lchown(path string, uid int, gid int) (errno int) {
-       return ENACL;
+       return ENACL
 }
 
 func Fchown(fd int, uid int, gid int) (errno int) {
-       return ENACL;
+       return ENACL
 }
 
 func Truncate(name string, size int64) (errno int) {
-       return ENACL;
+       return ENACL
 }
 
 func Ftruncate(fd int, length int64) (errno int) {
-       return ENACL;
+       return ENACL
 }
 
 // NaCL doesn't actually implement Getwd, but it also
@@ -240,15 +240,15 @@ const (
 )
 
 func Accept(fd int) (nfd int, sa Sockaddr, errno int) {
-       return 0, nil, ENACL;
+       return 0, nil, ENACL
 }
 
 func Getsockname(fd int) (sa Sockaddr, errno int) {
-       return nil, ENACL;
+       return nil, ENACL
 }
 
 func Getpeername(fd int) (sa Sockaddr, errno int) {
-       return nil, ENACL;
+       return nil, ENACL
 }
 
 func Bind(fd int, sa Sockaddr) (errno int)     { return ENACL }
@@ -256,15 +256,15 @@ func Bind(fd int, sa Sockaddr) (errno int)        { return ENACL }
 func Connect(fd int, sa Sockaddr) (errno int)  { return ENACL }
 
 func Socket(domain, typ, proto int) (fd, errno int) {
-       return 0, ENACL;
+       return 0, ENACL
 }
 
 func SetsockoptInt(fd, level, opt int, value int) (errno int) {
-       return ENACL;
+       return ENACL
 }
 
 func SetsockoptTimeval(fd, level, opt int, tv *Timeval) (errno int) {
-       return ENACL;
+       return ENACL
 }
 
 type Linger struct {
@@ -273,7 +273,7 @@ type Linger struct {
 }
 
 func SetsockoptLinger(fd, level, opt int, l *Linger) (errno int) {
-       return ENACL;
+       return ENACL
 }
 
 func Listen(s int, n int) (errno int)  { return ENACL }
@@ -298,7 +298,7 @@ type Rusage struct {
 }
 
 func Wait4(pid int, wstatus *WaitStatus, options int, rusage *Rusage) (wpid int, errno int) {
-       return 0, ENACL;
+       return 0, ENACL
 }
 
 type WaitStatus uint32
index ea9ce955f5f05bd77d74881c04e0142ea9e93c7d..20a0e435970a496b394bf03d1e0f015e4f9f4aa6 100644 (file)
@@ -80,7 +80,7 @@ func getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (errno int) {
 func recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, errno int) {
        var _p0 *byte;
        if len(p) > 0 {
-               _p0 = &p[0];
+               _p0 = &p[0]
        }
        r0, _, e1 := Syscall6(SYS_RECVFROM, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen)));
        n = int(r0);
@@ -91,7 +91,7 @@ func recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Sockl
 func sendto(s int, buf []byte, flags int, to uintptr, addrlen _Socklen) (errno int) {
        var _p0 *byte;
        if len(buf) > 0 {
-               _p0 = &buf[0];
+               _p0 = &buf[0]
        }
        _, _, e1 := Syscall6(SYS_SENDTO, uintptr(s), uintptr(unsafe.Pointer(_p0)), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen));
        errno = int(e1);
@@ -108,7 +108,7 @@ func kevent(kq int, change uintptr, nchange int, event uintptr, nevent int, time
 func sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (errno int) {
        var _p0 *_C_int;
        if len(mib) > 0 {
-               _p0 = &mib[0];
+               _p0 = &mib[0]
        }
        _, _, e1 := Syscall6(SYS___SYSCTL, uintptr(unsafe.Pointer(_p0)), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen));
        errno = int(e1);
@@ -258,7 +258,7 @@ func Ftruncate(fd int, length int64) (errno int) {
 func Getdirentries(fd int, buf []byte, basep *uintptr) (n int, errno int) {
        var _p0 *byte;
        if len(buf) > 0 {
-               _p0 = &buf[0];
+               _p0 = &buf[0]
        }
        r0, _, e1 := Syscall6(SYS_GETDIRENTRIES64, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(len(buf)), uintptr(unsafe.Pointer(basep)), 0, 0);
        n = int(r0);
@@ -287,7 +287,7 @@ func Geteuid() (uid int) {
 func Getfsstat(buf []Statfs_t, flags int) (n int, errno int) {
        var _p0 *Statfs_t;
        if len(buf) > 0 {
-               _p0 = &buf[0];
+               _p0 = &buf[0]
        }
        r0, _, e1 := Syscall(SYS_GETFSSTAT64, uintptr(unsafe.Pointer(_p0)), uintptr(len(buf)), uintptr(flags));
        n = int(r0);
@@ -436,7 +436,7 @@ func Pathconf(path string, name int) (val int, errno int) {
 func Pread(fd int, p []byte, offset int64) (n int, errno int) {
        var _p0 *byte;
        if len(p) > 0 {
-               _p0 = &p[0];
+               _p0 = &p[0]
        }
        r0, _, e1 := Syscall6(SYS_PREAD, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(len(p)), uintptr(offset), uintptr(offset>>32), 0);
        n = int(r0);
@@ -447,7 +447,7 @@ func Pread(fd int, p []byte, offset int64) (n int, errno int) {
 func Pwrite(fd int, p []byte, offset int64) (n int, errno int) {
        var _p0 *byte;
        if len(p) > 0 {
-               _p0 = &p[0];
+               _p0 = &p[0]
        }
        r0, _, e1 := Syscall6(SYS_PWRITE, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(len(p)), uintptr(offset), uintptr(offset>>32), 0);
        n = int(r0);
@@ -458,7 +458,7 @@ func Pwrite(fd int, p []byte, offset int64) (n int, errno int) {
 func Read(fd int, p []byte) (n int, errno int) {
        var _p0 *byte;
        if len(p) > 0 {
-               _p0 = &p[0];
+               _p0 = &p[0]
        }
        r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(len(p)));
        n = int(r0);
@@ -469,7 +469,7 @@ func Read(fd int, p []byte) (n int, errno int) {
 func Readlink(path string, buf []byte) (n int, errno int) {
        var _p0 *byte;
        if len(buf) > 0 {
-               _p0 = &buf[0];
+               _p0 = &buf[0]
        }
        r0, _, e1 := Syscall(SYS_READLINK, uintptr(unsafe.Pointer(StringBytePtr(path))), uintptr(unsafe.Pointer(_p0)), uintptr(len(buf)));
        n = int(r0);
@@ -643,7 +643,7 @@ func Unmount(path string, flags int) (errno int) {
 func Write(fd int, p []byte) (n int, errno int) {
        var _p0 *byte;
        if len(p) > 0 {
-               _p0 = &p[0];
+               _p0 = &p[0]
        }
        r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(len(p)));
        n = int(r0);
index eb637aa21ab2845ab070bd0e3b7dce3e1a7246c1..f08a4b8272e81c330751250b09e3e1bb41a76051 100644 (file)
@@ -80,7 +80,7 @@ func getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (errno int) {
 func recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, errno int) {
        var _p0 *byte;
        if len(p) > 0 {
-               _p0 = &p[0];
+               _p0 = &p[0]
        }
        r0, _, e1 := Syscall6(SYS_RECVFROM, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen)));
        n = int(r0);
@@ -91,7 +91,7 @@ func recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Sockl
 func sendto(s int, buf []byte, flags int, to uintptr, addrlen _Socklen) (errno int) {
        var _p0 *byte;
        if len(buf) > 0 {
-               _p0 = &buf[0];
+               _p0 = &buf[0]
        }
        _, _, e1 := Syscall6(SYS_SENDTO, uintptr(s), uintptr(unsafe.Pointer(_p0)), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen));
        errno = int(e1);
@@ -108,7 +108,7 @@ func kevent(kq int, change uintptr, nchange int, event uintptr, nevent int, time
 func sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (errno int) {
        var _p0 *_C_int;
        if len(mib) > 0 {
-               _p0 = &mib[0];
+               _p0 = &mib[0]
        }
        _, _, e1 := Syscall6(SYS___SYSCTL, uintptr(unsafe.Pointer(_p0)), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen));
        errno = int(e1);
@@ -258,7 +258,7 @@ func Ftruncate(fd int, length int64) (errno int) {
 func Getdirentries(fd int, buf []byte, basep *uintptr) (n int, errno int) {
        var _p0 *byte;
        if len(buf) > 0 {
-               _p0 = &buf[0];
+               _p0 = &buf[0]
        }
        r0, _, e1 := Syscall6(SYS_GETDIRENTRIES64, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(len(buf)), uintptr(unsafe.Pointer(basep)), 0, 0);
        n = int(r0);
@@ -287,7 +287,7 @@ func Geteuid() (uid int) {
 func Getfsstat(buf []Statfs_t, flags int) (n int, errno int) {
        var _p0 *Statfs_t;
        if len(buf) > 0 {
-               _p0 = &buf[0];
+               _p0 = &buf[0]
        }
        r0, _, e1 := Syscall(SYS_GETFSSTAT64, uintptr(unsafe.Pointer(_p0)), uintptr(len(buf)), uintptr(flags));
        n = int(r0);
@@ -436,7 +436,7 @@ func Pathconf(path string, name int) (val int, errno int) {
 func Pread(fd int, p []byte, offset int64) (n int, errno int) {
        var _p0 *byte;
        if len(p) > 0 {
-               _p0 = &p[0];
+               _p0 = &p[0]
        }
        r0, _, e1 := Syscall6(SYS_PREAD, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(len(p)), uintptr(offset), 0, 0);
        n = int(r0);
@@ -447,7 +447,7 @@ func Pread(fd int, p []byte, offset int64) (n int, errno int) {
 func Pwrite(fd int, p []byte, offset int64) (n int, errno int) {
        var _p0 *byte;
        if len(p) > 0 {
-               _p0 = &p[0];
+               _p0 = &p[0]
        }
        r0, _, e1 := Syscall6(SYS_PWRITE, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(len(p)), uintptr(offset), 0, 0);
        n = int(r0);
@@ -458,7 +458,7 @@ func Pwrite(fd int, p []byte, offset int64) (n int, errno int) {
 func Read(fd int, p []byte) (n int, errno int) {
        var _p0 *byte;
        if len(p) > 0 {
-               _p0 = &p[0];
+               _p0 = &p[0]
        }
        r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(len(p)));
        n = int(r0);
@@ -469,7 +469,7 @@ func Read(fd int, p []byte) (n int, errno int) {
 func Readlink(path string, buf []byte) (n int, errno int) {
        var _p0 *byte;
        if len(buf) > 0 {
-               _p0 = &buf[0];
+               _p0 = &buf[0]
        }
        r0, _, e1 := Syscall(SYS_READLINK, uintptr(unsafe.Pointer(StringBytePtr(path))), uintptr(unsafe.Pointer(_p0)), uintptr(len(buf)));
        n = int(r0);
@@ -644,7 +644,7 @@ func Unmount(path string, flags int) (errno int) {
 func Write(fd int, p []byte) (n int, errno int) {
        var _p0 *byte;
        if len(p) > 0 {
-               _p0 = &p[0];
+               _p0 = &p[0]
        }
        r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(len(p)));
        n = int(r0);
index 13ec70e647612b2cc24c6107733ff4c93357a656..fa5f842de8e54cde7b76f1f66aa25950de37a10c 100644 (file)
@@ -26,7 +26,7 @@ func futimesat(dirfd int, path string, times *[2]Timeval) (errno int) {
 func Getcwd(buf []byte) (n int, errno int) {
        var _p0 *byte;
        if len(buf) > 0 {
-               _p0 = &buf[0];
+               _p0 = &buf[0]
        }
        r0, _, e1 := Syscall(SYS_GETCWD, uintptr(unsafe.Pointer(_p0)), uintptr(len(buf)), 0);
        n = int(r0);
@@ -127,7 +127,7 @@ func EpollCtl(epfd int, op int, fd int, event *EpollEvent) (errno int) {
 func EpollWait(epfd int, events []EpollEvent, msec int) (n int, errno int) {
        var _p0 *EpollEvent;
        if len(events) > 0 {
-               _p0 = &events[0];
+               _p0 = &events[0]
        }
        r0, _, e1 := Syscall6(SYS_EPOLL_WAIT, uintptr(epfd), uintptr(unsafe.Pointer(_p0)), uintptr(len(events)), uintptr(msec), 0, 0);
        n = int(r0);
@@ -204,7 +204,7 @@ func Ftruncate(fd int, length int64) (errno int) {
 func Getdents(fd int, buf []byte) (n int, errno int) {
        var _p0 *byte;
        if len(buf) > 0 {
-               _p0 = &buf[0];
+               _p0 = &buf[0]
        }
        r0, _, e1 := Syscall(SYS_GETDENTS64, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(len(buf)));
        n = int(r0);
@@ -270,7 +270,7 @@ func Kill(pid int, sig int) (errno int) {
 func Klogctl(typ int, buf []byte) (n int, errno int) {
        var _p0 *byte;
        if len(buf) > 0 {
-               _p0 = &buf[0];
+               _p0 = &buf[0]
        }
        r0, _, e1 := Syscall(SYS_SYSLOG, uintptr(typ), uintptr(unsafe.Pointer(_p0)), uintptr(len(buf)));
        n = int(r0);
@@ -343,7 +343,7 @@ func PivotRoot(newroot string, putold string) (errno int) {
 func Pread(fd int, p []byte, offset int64) (n int, errno int) {
        var _p0 *byte;
        if len(p) > 0 {
-               _p0 = &p[0];
+               _p0 = &p[0]
        }
        r0, _, e1 := Syscall6(SYS_PREAD64, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(len(p)), uintptr(offset), uintptr(offset>>32), 0);
        n = int(r0);
@@ -354,7 +354,7 @@ func Pread(fd int, p []byte, offset int64) (n int, errno int) {
 func Pwrite(fd int, p []byte, offset int64) (n int, errno int) {
        var _p0 *byte;
        if len(p) > 0 {
-               _p0 = &p[0];
+               _p0 = &p[0]
        }
        r0, _, e1 := Syscall6(SYS_PWRITE64, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(len(p)), uintptr(offset), uintptr(offset>>32), 0);
        n = int(r0);
@@ -365,7 +365,7 @@ func Pwrite(fd int, p []byte, offset int64) (n int, errno int) {
 func Read(fd int, p []byte) (n int, errno int) {
        var _p0 *byte;
        if len(p) > 0 {
-               _p0 = &p[0];
+               _p0 = &p[0]
        }
        r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(len(p)));
        n = int(r0);
@@ -376,7 +376,7 @@ func Read(fd int, p []byte) (n int, errno int) {
 func Readlink(path string, buf []byte) (n int, errno int) {
        var _p0 *byte;
        if len(buf) > 0 {
-               _p0 = &buf[0];
+               _p0 = &buf[0]
        }
        r0, _, e1 := Syscall(SYS_READLINK, uintptr(unsafe.Pointer(StringBytePtr(path))), uintptr(unsafe.Pointer(_p0)), uintptr(len(buf)));
        n = int(r0);
@@ -405,7 +405,7 @@ func Rmdir(path string) (errno int) {
 func Setdomainname(p []byte) (errno int) {
        var _p0 *byte;
        if len(p) > 0 {
-               _p0 = &p[0];
+               _p0 = &p[0]
        }
        _, _, e1 := Syscall(SYS_SETDOMAINNAME, uintptr(unsafe.Pointer(_p0)), uintptr(len(p)), 0);
        errno = int(e1);
@@ -415,7 +415,7 @@ func Setdomainname(p []byte) (errno int) {
 func Sethostname(p []byte) (errno int) {
        var _p0 *byte;
        if len(p) > 0 {
-               _p0 = &p[0];
+               _p0 = &p[0]
        }
        _, _, e1 := Syscall(SYS_SETHOSTNAME, uintptr(unsafe.Pointer(_p0)), uintptr(len(p)), 0);
        errno = int(e1);
@@ -552,7 +552,7 @@ func Utime(path string, buf *Utimbuf) (errno int) {
 func Write(fd int, p []byte) (n int, errno int) {
        var _p0 *byte;
        if len(p) > 0 {
-               _p0 = &p[0];
+               _p0 = &p[0]
        }
        r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(len(p)));
        n = int(r0);
index 0c442fa4419c02ba7703c25e2bc00f664490ae37..15ccf3bbee81a2e928a2c7500a6842f36d54e7e3 100644 (file)
@@ -26,7 +26,7 @@ func futimesat(dirfd int, path string, times *[2]Timeval) (errno int) {
 func Getcwd(buf []byte) (n int, errno int) {
        var _p0 *byte;
        if len(buf) > 0 {
-               _p0 = &buf[0];
+               _p0 = &buf[0]
        }
        r0, _, e1 := Syscall(SYS_GETCWD, uintptr(unsafe.Pointer(_p0)), uintptr(len(buf)), 0);
        n = int(r0);
@@ -127,7 +127,7 @@ func EpollCtl(epfd int, op int, fd int, event *EpollEvent) (errno int) {
 func EpollWait(epfd int, events []EpollEvent, msec int) (n int, errno int) {
        var _p0 *EpollEvent;
        if len(events) > 0 {
-               _p0 = &events[0];
+               _p0 = &events[0]
        }
        r0, _, e1 := Syscall6(SYS_EPOLL_WAIT, uintptr(epfd), uintptr(unsafe.Pointer(_p0)), uintptr(len(events)), uintptr(msec), 0, 0);
        n = int(r0);
@@ -204,7 +204,7 @@ func Ftruncate(fd int, length int64) (errno int) {
 func Getdents(fd int, buf []byte) (n int, errno int) {
        var _p0 *byte;
        if len(buf) > 0 {
-               _p0 = &buf[0];
+               _p0 = &buf[0]
        }
        r0, _, e1 := Syscall(SYS_GETDENTS64, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(len(buf)));
        n = int(r0);
@@ -270,7 +270,7 @@ func Kill(pid int, sig int) (errno int) {
 func Klogctl(typ int, buf []byte) (n int, errno int) {
        var _p0 *byte;
        if len(buf) > 0 {
-               _p0 = &buf[0];
+               _p0 = &buf[0]
        }
        r0, _, e1 := Syscall(SYS_SYSLOG, uintptr(typ), uintptr(unsafe.Pointer(_p0)), uintptr(len(buf)));
        n = int(r0);
@@ -343,7 +343,7 @@ func PivotRoot(newroot string, putold string) (errno int) {
 func Pread(fd int, p []byte, offset int64) (n int, errno int) {
        var _p0 *byte;
        if len(p) > 0 {
-               _p0 = &p[0];
+               _p0 = &p[0]
        }
        r0, _, e1 := Syscall6(SYS_PREAD64, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(len(p)), uintptr(offset), 0, 0);
        n = int(r0);
@@ -354,7 +354,7 @@ func Pread(fd int, p []byte, offset int64) (n int, errno int) {
 func Pwrite(fd int, p []byte, offset int64) (n int, errno int) {
        var _p0 *byte;
        if len(p) > 0 {
-               _p0 = &p[0];
+               _p0 = &p[0]
        }
        r0, _, e1 := Syscall6(SYS_PWRITE64, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(len(p)), uintptr(offset), 0, 0);
        n = int(r0);
@@ -365,7 +365,7 @@ func Pwrite(fd int, p []byte, offset int64) (n int, errno int) {
 func Read(fd int, p []byte) (n int, errno int) {
        var _p0 *byte;
        if len(p) > 0 {
-               _p0 = &p[0];
+               _p0 = &p[0]
        }
        r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(len(p)));
        n = int(r0);
@@ -376,7 +376,7 @@ func Read(fd int, p []byte) (n int, errno int) {
 func Readlink(path string, buf []byte) (n int, errno int) {
        var _p0 *byte;
        if len(buf) > 0 {
-               _p0 = &buf[0];
+               _p0 = &buf[0]
        }
        r0, _, e1 := Syscall(SYS_READLINK, uintptr(unsafe.Pointer(StringBytePtr(path))), uintptr(unsafe.Pointer(_p0)), uintptr(len(buf)));
        n = int(r0);
@@ -405,7 +405,7 @@ func Rmdir(path string) (errno int) {
 func Setdomainname(p []byte) (errno int) {
        var _p0 *byte;
        if len(p) > 0 {
-               _p0 = &p[0];
+               _p0 = &p[0]
        }
        _, _, e1 := Syscall(SYS_SETDOMAINNAME, uintptr(unsafe.Pointer(_p0)), uintptr(len(p)), 0);
        errno = int(e1);
@@ -415,7 +415,7 @@ func Setdomainname(p []byte) (errno int) {
 func Sethostname(p []byte) (errno int) {
        var _p0 *byte;
        if len(p) > 0 {
-               _p0 = &p[0];
+               _p0 = &p[0]
        }
        _, _, e1 := Syscall(SYS_SETHOSTNAME, uintptr(unsafe.Pointer(_p0)), uintptr(len(p)), 0);
        errno = int(e1);
@@ -554,7 +554,7 @@ func Utime(path string, buf *Utimbuf) (errno int) {
 func Write(fd int, p []byte) (n int, errno int) {
        var _p0 *byte;
        if len(p) > 0 {
-               _p0 = &p[0];
+               _p0 = &p[0]
        }
        r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(len(p)));
        n = int(r0);
@@ -800,7 +800,7 @@ func getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (errno int) {
 func recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, errno int) {
        var _p0 *byte;
        if len(p) > 0 {
-               _p0 = &p[0];
+               _p0 = &p[0]
        }
        r0, _, e1 := Syscall6(SYS_RECVFROM, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen)));
        n = int(r0);
@@ -811,7 +811,7 @@ func recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Sockl
 func sendto(s int, buf []byte, flags int, to uintptr, addrlen _Socklen) (errno int) {
        var _p0 *byte;
        if len(buf) > 0 {
-               _p0 = &buf[0];
+               _p0 = &buf[0]
        }
        _, _, e1 := Syscall6(SYS_SENDTO, uintptr(s), uintptr(unsafe.Pointer(_p0)), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen));
        errno = int(e1);
index a726cf4cce8d5ed09b581c4ff6af968a60bac7b0..f8cd8a70a37f490d068062831c4aba55d53a111d 100644 (file)
@@ -26,7 +26,7 @@ func futimesat(dirfd int, path string, times *[2]Timeval) (errno int) {
 func Getcwd(buf []byte) (n int, errno int) {
        var _p0 *byte;
        if len(buf) > 0 {
-               _p0 = &buf[0];
+               _p0 = &buf[0]
        }
        r0, _, e1 := Syscall(SYS_GETCWD, uintptr(unsafe.Pointer(_p0)), uintptr(len(buf)), 0);
        n = int(r0);
@@ -127,7 +127,7 @@ func EpollCtl(epfd int, op int, fd int, event *EpollEvent) (errno int) {
 func EpollWait(epfd int, events []EpollEvent, msec int) (n int, errno int) {
        var _p0 *EpollEvent;
        if len(events) > 0 {
-               _p0 = &events[0];
+               _p0 = &events[0]
        }
        r0, _, e1 := Syscall6(SYS_EPOLL_WAIT, uintptr(epfd), uintptr(unsafe.Pointer(_p0)), uintptr(len(events)), uintptr(msec), 0, 0);
        n = int(r0);
@@ -204,7 +204,7 @@ func Ftruncate(fd int, length int64) (errno int) {
 func Getdents(fd int, buf []byte) (n int, errno int) {
        var _p0 *byte;
        if len(buf) > 0 {
-               _p0 = &buf[0];
+               _p0 = &buf[0]
        }
        r0, _, e1 := Syscall(SYS_GETDENTS64, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(len(buf)));
        n = int(r0);
@@ -270,7 +270,7 @@ func Kill(pid int, sig int) (errno int) {
 func Klogctl(typ int, buf []byte) (n int, errno int) {
        var _p0 *byte;
        if len(buf) > 0 {
-               _p0 = &buf[0];
+               _p0 = &buf[0]
        }
        r0, _, e1 := Syscall(SYS_SYSLOG, uintptr(typ), uintptr(unsafe.Pointer(_p0)), uintptr(len(buf)));
        n = int(r0);
@@ -343,7 +343,7 @@ func PivotRoot(newroot string, putold string) (errno int) {
 func Pread(fd int, p []byte, offset int64) (n int, errno int) {
        var _p0 *byte;
        if len(p) > 0 {
-               _p0 = &p[0];
+               _p0 = &p[0]
        }
        r0, _, e1 := Syscall6(SYS_PREAD64, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(len(p)), uintptr(offset), uintptr(offset>>32), 0);
        n = int(r0);
@@ -354,7 +354,7 @@ func Pread(fd int, p []byte, offset int64) (n int, errno int) {
 func Pwrite(fd int, p []byte, offset int64) (n int, errno int) {
        var _p0 *byte;
        if len(p) > 0 {
-               _p0 = &p[0];
+               _p0 = &p[0]
        }
        r0, _, e1 := Syscall6(SYS_PWRITE64, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(len(p)), uintptr(offset), uintptr(offset>>32), 0);
        n = int(r0);
@@ -365,7 +365,7 @@ func Pwrite(fd int, p []byte, offset int64) (n int, errno int) {
 func Read(fd int, p []byte) (n int, errno int) {
        var _p0 *byte;
        if len(p) > 0 {
-               _p0 = &p[0];
+               _p0 = &p[0]
        }
        r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(len(p)));
        n = int(r0);
@@ -376,7 +376,7 @@ func Read(fd int, p []byte) (n int, errno int) {
 func Readlink(path string, buf []byte) (n int, errno int) {
        var _p0 *byte;
        if len(buf) > 0 {
-               _p0 = &buf[0];
+               _p0 = &buf[0]
        }
        r0, _, e1 := Syscall(SYS_READLINK, uintptr(unsafe.Pointer(StringBytePtr(path))), uintptr(unsafe.Pointer(_p0)), uintptr(len(buf)));
        n = int(r0);
@@ -405,7 +405,7 @@ func Rmdir(path string) (errno int) {
 func Setdomainname(p []byte) (errno int) {
        var _p0 *byte;
        if len(p) > 0 {
-               _p0 = &p[0];
+               _p0 = &p[0]
        }
        _, _, e1 := Syscall(SYS_SETDOMAINNAME, uintptr(unsafe.Pointer(_p0)), uintptr(len(p)), 0);
        errno = int(e1);
@@ -415,7 +415,7 @@ func Setdomainname(p []byte) (errno int) {
 func Sethostname(p []byte) (errno int) {
        var _p0 *byte;
        if len(p) > 0 {
-               _p0 = &p[0];
+               _p0 = &p[0]
        }
        _, _, e1 := Syscall(SYS_SETHOSTNAME, uintptr(unsafe.Pointer(_p0)), uintptr(len(p)), 0);
        errno = int(e1);
@@ -552,7 +552,7 @@ func Utime(path string, buf *Utimbuf) (errno int) {
 func Write(fd int, p []byte) (n int, errno int) {
        var _p0 *byte;
        if len(p) > 0 {
-               _p0 = &p[0];
+               _p0 = &p[0]
        }
        r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(len(p)));
        n = int(r0);
@@ -779,7 +779,7 @@ func Statfs(path string, buf *Statfs_t) (errno int) {
 func recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, errno int) {
        var _p0 *byte;
        if len(p) > 0 {
-               _p0 = &p[0];
+               _p0 = &p[0]
        }
        r0, _, e1 := Syscall6(SYS_RECVFROM, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen)));
        n = int(r0);
@@ -790,7 +790,7 @@ func recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Sockl
 func sendto(s int, buf []byte, flags int, to uintptr, addrlen _Socklen) (errno int) {
        var _p0 *byte;
        if len(buf) > 0 {
-               _p0 = &buf[0];
+               _p0 = &buf[0]
        }
        _, _, e1 := Syscall6(SYS_SENDTO, uintptr(s), uintptr(unsafe.Pointer(_p0)), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen));
        errno = int(e1);
index 3fad83e4779d34fc950b462f193b69e93517ab24..7cf331dbac6e1bce9621add6b77098637ab96bbf 100644 (file)
@@ -37,7 +37,7 @@ func Fstat(fd int, stat *Stat_t) (errno int) {
 func Getdents(fd int, buf []byte) (n int, errno int) {
        var _p0 *byte;
        if len(buf) > 0 {
-               _p0 = &buf[0];
+               _p0 = &buf[0]
        }
        r0, _, e1 := Syscall(SYS_GETDENTS, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(len(buf)));
        n = int(r0);
@@ -67,7 +67,7 @@ func Open(path string, mode int, perm int) (fd int, errno int) {
 func Read(fd int, p []byte) (n int, errno int) {
        var _p0 *byte;
        if len(p) > 0 {
-               _p0 = &p[0];
+               _p0 = &p[0]
        }
        r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(len(p)));
        n = int(r0);
@@ -91,7 +91,7 @@ func Stat(path string, stat *Stat_t) (errno int) {
 func Write(fd int, p []byte) (n int, errno int) {
        var _p0 *byte;
        if len(p) > 0 {
-               _p0 = &p[0];
+               _p0 = &p[0]
        }
        r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(len(p)));
        n = int(r0);
index 0946f2edd5319d34b9158b72ce4646a56e828e42..98edc4a22032ba316fee009681241c6c2977ae38 100644 (file)
@@ -175,20 +175,20 @@ const (
 //
 func (b *Writer) Init(output io.Writer, cellwidth, padding int, padchar byte, flags uint) *Writer {
        if cellwidth < 0 {
-               panic("negative cellwidth");
+               panic("negative cellwidth")
        }
        if padding < 0 {
-               panic("negative padding");
+               panic("negative padding")
        }
        b.output = output;
        b.cellwidth = cellwidth;
        b.padding = padding;
        for i := len(b.padbytes)-1; i >= 0; i-- {
-               b.padbytes[i] = padchar;
+               b.padbytes[i] = padchar
        }
        if padchar == '\t' {
                // tab enforces left-alignment
-               flags &^= AlignRight;
+               flags &^= AlignRight
        }
        b.flags = flags;
 
@@ -220,7 +220,7 @@ func (b *Writer) dump() {
 func (b *Writer) write0(buf []byte) os.Error {
        n, err := b.output.Write(buf);
        if n != len(buf) && err == nil {
-               err = os.EIO;
+               err = os.EIO
        }
        return err;
 }
@@ -230,26 +230,26 @@ var newline = []byte{'\n'}
 
 func (b *Writer) writePadding(textw, cellw int) os.Error {
        if b.cellwidth == 0 {
-               return nil;
+               return nil
        }
 
        if b.padbytes[0] == '\t' {
                // make cell width a multiple of cellwidth
-               cellw = ((cellw + b.cellwidth - 1) / b.cellwidth) * b.cellwidth;
+               cellw = ((cellw + b.cellwidth - 1) / b.cellwidth) * b.cellwidth
        }
 
        n := cellw-textw;
        if n < 0 {
-               panic("internal error");
+               panic("internal error")
        }
 
        if b.padbytes[0] == '\t' {
-               n = (n + b.cellwidth - 1) / b.cellwidth;
+               n = (n + b.cellwidth - 1) / b.cellwidth
        }
 
        for n > len(b.padbytes) {
                if err := b.write0(&b.padbytes); err != nil {
-                       return err;
+                       return err
                }
                n -= len(b.padbytes);
        }
@@ -269,19 +269,19 @@ func (b *Writer) writeLines(pos0 int, line0, line1 int) (pos int, err os.Error)
 
                        if j > 0 && b.flags & Debug != 0 {
                                if err = b.write0(vbar); err != nil {
-                                       return;
+                                       return
                                }
                        }
                        switch {
                        default:        // align left
 
                                if err = b.write0(b.buf.Bytes()[pos : pos + c.size]); err != nil {
-                                       return;
+                                       return
                                }
                                pos += c.size;
                                if j < b.widths.Len() {
                                        if err = b.writePadding(c.width, b.widths.At(j)); err != nil {
-                                               return;
+                                               return
                                        }
                                }
 
@@ -289,11 +289,11 @@ func (b *Writer) writeLines(pos0 int, line0, line1 int) (pos int, err os.Error)
 
                                if j < b.widths.Len() {
                                        if err = b.writePadding(c.width, b.widths.At(j)); err != nil {
-                                               return;
+                                               return
                                        }
                                }
                                if err = b.write0(b.buf.Bytes()[pos : pos + c.size]); err != nil {
-                                       return;
+                                       return
                                }
                                pos += c.size;
                        }
@@ -303,13 +303,13 @@ func (b *Writer) writeLines(pos0 int, line0, line1 int) (pos int, err os.Error)
                        // last buffered line - we don't have a newline, so just write
                        // any outstanding buffered data
                        if err = b.write0(b.buf.Bytes()[pos : pos + b.cell.size]); err != nil {
-                               return;
+                               return
                        }
                        pos += b.cell.size;
                } else {
                        // not the last line - write newline
                        if err = b.write0(newline); err != nil {
-                               return;
+                               return
                        }
                }
        }
@@ -338,7 +338,7 @@ func (b *Writer) format(pos0 int, line0, line1 int) (pos int, err os.Error) {
 
                        // print unprinted lines until beginning of block
                        if pos, err = b.writeLines(pos, line0, this); err != nil {
-                               return;
+                               return
                        }
                        line0 = this;
 
@@ -352,21 +352,21 @@ func (b *Writer) format(pos0 int, line0, line1 int) (pos int, err os.Error) {
                                        c := line.At(column).(cell);
                                        // update width
                                        if w := c.width + b.padding; w > width {
-                                               width = w;
+                                               width = w
                                        }
                                        // update discardable
                                        if c.width > 0 || c.htab {
-                                               discardable = false;
+                                               discardable = false
                                        }
                                } else {
-                                       break;
+                                       break
                                }
                        }
                        // column block end
 
                        // discard empty columns if necessary
                        if discardable && b.flags & DiscardEmptyColumns != 0 {
-                               width = 0;
+                               width = 0
                        }
 
                        // format and print all columns to the right of this column
@@ -411,11 +411,11 @@ const Escape = '\xff'
 func (b *Writer) startEscape(ch byte) {
        switch ch {
        case Escape:
-               b.endChar = Escape;
+               b.endChar = Escape
        case '<':
-               b.endChar = '>';
+               b.endChar = '>'
        case '&':
-               b.endChar = ';';
+               b.endChar = ';'
        }
 }
 
@@ -428,10 +428,10 @@ func (b *Writer) startEscape(ch byte) {
 func (b *Writer) endEscape() {
        switch b.endChar {
        case Escape:
-               b.updateWidth();
+               b.updateWidth()
        case '>':       // tag of zero width
        case ';':
-               b.cell.width++; // entity, count as one rune
+               b.cell.width++  // entity, count as one rune
        }
        b.pos = b.buf.Len();
        b.endChar = 0;
@@ -460,7 +460,7 @@ func (b *Writer) Flush() os.Error {
        if b.cell.size > 0 {
                if b.endChar != 0 {
                        // inside escape - terminate it even if incomplete
-                       b.endEscape();
+                       b.endEscape()
                }
                b.terminateCell(false);
        }
@@ -502,7 +502,7 @@ func (b *Writer) Write(buf []byte) (n int, err os.Error) {
                                                // line is ignored by format()), thus we can flush the
                                                // Writer contents.
                                                if err = b.Flush(); err != nil {
-                                                       return;
+                                                       return
                                                }
                                        }
                                }
@@ -531,7 +531,7 @@ func (b *Writer) Write(buf []byte) (n int, err os.Error) {
                                // end of tag/entity
                                j := i+1;
                                if ch == Escape {
-                                       j = i;  // exclude Escape
+                                       j = i   // exclude Escape
                                }
                                b.append(buf[n:j]);
                                n = i+1;        // ch consumed
@@ -551,5 +551,5 @@ func (b *Writer) Write(buf []byte) (n int, err os.Error) {
 // The parameters are the same as for the the Init function.
 //
 func NewWriter(output io.Writer, cellwidth, padding int, padchar byte, flags uint) *Writer {
-       return new(Writer).Init(output, cellwidth, padding, padchar, flags);
+       return new(Writer).Init(output, cellwidth, padding, padchar, flags)
 }
index 1f52eef8273f0bd6caf137cefabbedb4c92e6f6d..f6e56882ae36c6d9ba63ba8736c0ada424b47443 100644 (file)
@@ -28,10 +28,10 @@ func (b *buffer) Write(buf []byte) (written int, err os.Error) {
        if n+m <= cap(b.a) {
                b.a = b.a[0 : n+m];
                for i := 0; i < m; i++ {
-                       b.a[n+i] = buf[i];
+                       b.a[n+i] = buf[i]
                }
        } else {
-               panicln("buffer.Write: buffer too small", n, m, cap(b.a));
+               panicln("buffer.Write: buffer too small", n, m, cap(b.a))
        }
        return len(buf), nil;
 }
@@ -43,10 +43,10 @@ func (b *buffer) String() string    { return string(b.a) }
 func write(t *testing.T, testname string, w *Writer, src string) {
        written, err := io.WriteString(w, src);
        if err != nil {
-               t.Errorf("--- test: %s\n--- src:\n%s\n--- write error: %v\n", testname, src, err);
+               t.Errorf("--- test: %s\n--- src:\n%s\n--- write error: %v\n", testname, src, err)
        }
        if written != len(src) {
-               t.Errorf("--- test: %s\n--- src:\n%s\n--- written = %d, len(src) = %d\n", testname, src, written, len(src));
+               t.Errorf("--- test: %s\n--- src:\n%s\n--- written = %d, len(src) = %d\n", testname, src, written, len(src))
        }
 }
 
@@ -54,12 +54,12 @@ func write(t *testing.T, testname string, w *Writer, src string) {
 func verify(t *testing.T, testname string, w *Writer, b *buffer, src, expected string) {
        err := w.Flush();
        if err != nil {
-               t.Errorf("--- test: %s\n--- src:\n%s\n--- flush error: %v\n", testname, src, err);
+               t.Errorf("--- test: %s\n--- src:\n%s\n--- flush error: %v\n", testname, src, err)
        }
 
        res := b.String();
        if res != expected {
-               t.Errorf("--- test: %s\n--- src:\n%s\n--- found:\n%s\n--- expected:\n%s\n", testname, src, res, expected);
+               t.Errorf("--- test: %s\n--- src:\n%s\n--- found:\n%s\n--- expected:\n%s\n", testname, src, res, expected)
        }
 }
 
@@ -79,7 +79,7 @@ func check(t *testing.T, testname string, tabwidth, padding int, padchar byte, f
        // write byte-by-byte
        b.clear();
        for i := 0; i < len(src); i++ {
-               write(t, testname, &w, src[i : i+1]);
+               write(t, testname, &w, src[i : i+1])
        }
        verify(t, testname, &w, &b, src, expected);
 
@@ -89,7 +89,7 @@ func check(t *testing.T, testname string, tabwidth, padding int, padchar byte, f
                write(t, testname, &w, src[i : i+d]);
                i, d = i+d, d+1;
                if i+d > len(src) {
-                       d = len(src)-i;
+                       d = len(src)-i
                }
        }
        verify(t, testname, &w, &b, src, expected);
@@ -591,6 +591,6 @@ var tests = []entry{
 
 func Test(t *testing.T) {
        for _, e := range tests {
-               check(t, e.testname, e.tabwidth, e.padding, e.padchar, e.flags, e.src, e.expected);
+               check(t, e.testname, e.tabwidth, e.padding, e.padchar, e.flags, e.src, e.expected)
        }
 }
index a0468e9d46efe4c3d035aa716f09a51be0aaf305..bb1ff915bf7496e4f3db91a5f60f4ef7b64f38db 100644 (file)
@@ -18,7 +18,7 @@ import (
 // You can override the default formatter by storing your default
 // under the name "" in your custom formatter map.
 func StringFormatter(w io.Writer, value interface{}, format string) {
-       fmt.Fprint(w, value);
+       fmt.Fprint(w, value)
 }
 
 var (
@@ -37,17 +37,17 @@ func HTMLEscape(w io.Writer, s []byte) {
        for i, c := range s {
                switch c {
                case '"':
-                       esc = esc_quot;
+                       esc = esc_quot
                case '\'':
-                       esc = esc_apos;
+                       esc = esc_apos
                case '&':
-                       esc = esc_amp;
+                       esc = esc_amp
                case '<':
-                       esc = esc_lt;
+                       esc = esc_lt
                case '>':
-                       esc = esc_gt;
+                       esc = esc_gt
                default:
-                       continue;
+                       continue
                }
                w.Write(s[last:i]);
                w.Write(esc);
index 635323a663fc16a21e5cdc64e7f3e0910f3466d9..548c706197e0ff11875b54a3ba992ac39b52755b 100644 (file)
@@ -165,7 +165,7 @@ type state struct {
 }
 
 func (parent *state) clone(data reflect.Value) *state {
-       return &state{parent, data, parent.wr, parent.errors};
+       return &state{parent, data, parent.wr, parent.errors}
 }
 
 // New creates a new template with the specified formatter map (which
@@ -188,7 +188,7 @@ func (t *Template) execError(st *state, line int, err string, args ...) {
 // Report error, save in Template to terminate parsing.
 // The line number comes from the template state.
 func (t *Template) parseError(err string, args ...) {
-       t.error = &Error{t.linenum, fmt.Sprintf(err, args)};
+       t.error = &Error{t.linenum, fmt.Sprintf(err, args)}
 }
 
 // -- Lexical analysis
@@ -200,11 +200,11 @@ func white(c uint8) bool  { return c == ' ' || c == '\t' || c == '\r' || c == '\n
 func equal(s []byte, n int, t []byte) bool {
        b := s[n:len(s)];
        if len(t) > len(b) {    // not enough space left for a match.
-               return false;
+               return false
        }
        for i, c := range t {
                if c != b[i] {
-                       return false;
+                       return false
                }
        }
        return true;
@@ -236,17 +236,17 @@ Loop:
                case !sawLeft && equal(t.buf, i, t.ldelim):     // sawLeft checked because delims may be equal
                        // anything interesting already on the line?
                        if !only_white {
-                               break Loop;
+                               break Loop
                        }
                        // is it a directive or comment?
                        j := i+len(t.ldelim);   // position after delimiter
                        if j+1 < len(t.buf) && (t.buf[j] == '.' || t.buf[j] == '#') {
                                special = true;
                                if trim_white && only_white {
-                                       start = i;
+                                       start = i
                                }
                        } else if i > t.p {     // have some text accumulated so stop before delimiter
-                               break Loop;
+                               break Loop
                        }
                        sawLeft = true;
                        i = j-1;
@@ -259,7 +259,7 @@ Loop:
                        i += len(t.rdelim);
                        break Loop;
                default:
-                       only_white = false;
+                       only_white = false
                }
        }
        if sawLeft {
@@ -295,12 +295,12 @@ func words(buf []byte) []string {
                for ; p < len(buf) && !white(buf[p]); p++ {
                }
                if start == p { // no text left
-                       break;
+                       break
                }
                if i == cap(s) {
                        ns := make([]string, 2*cap(s));
                        for j := range s {
-                               ns[j] = s[j];
+                               ns[j] = s[j]
                        }
                        s = ns;
                }
@@ -398,12 +398,12 @@ func (t *Template) newVariable(name_formatter string) (v *variableElement) {
        // Is it in user-supplied map?
        if t.fmap != nil {
                if _, ok := t.fmap[formatter]; ok {
-                       return;
+                       return
                }
        }
        // Is it in builtin map?
        if _, ok := builtins[formatter]; ok {
-               return;
+               return
        }
        t.parseError("unknown formatter: %s", formatter);
        return;
@@ -414,25 +414,25 @@ func (t *Template) newVariable(name_formatter string) (v *variableElement) {
 func (t *Template) parseSimple(item []byte) (done bool, tok int, w []string) {
        tok, w = t.analyze(item);
        if t.error != nil {
-               return;
+               return
        }
        done = true;    // assume for simplicity
        switch tok {
        case tokComment:
-               return;
+               return
        case tokText:
                t.elems.Push(&textElement{item});
                return;
        case tokLiteral:
                switch w[0] {
                case ".meta-left":
-                       t.elems.Push(&literalElement{t.ldelim});
+                       t.elems.Push(&literalElement{t.ldelim})
                case ".meta-right":
-                       t.elems.Push(&literalElement{t.rdelim});
+                       t.elems.Push(&literalElement{t.rdelim})
                case ".space":
-                       t.elems.Push(&literalElement{space});
+                       t.elems.Push(&literalElement{space})
                case ".tab":
-                       t.elems.Push(&literalElement{tab});
+                       t.elems.Push(&literalElement{tab})
                default:
                        t.parseError("internal error: unknown literal: %s", w[0]);
                        return;
@@ -461,7 +461,7 @@ Loop:
        for t.error == nil {
                item := t.nextItem();
                if t.error != nil {
-                       break;
+                       break
                }
                if len(item) == 0 {
                        t.parseError("missing .end for .repeated section");
@@ -469,14 +469,14 @@ Loop:
                }
                done, tok, w := t.parseSimple(item);
                if t.error != nil {
-                       break;
+                       break
                }
                if done {
-                       continue;
+                       continue
                }
                switch tok {
                case tokEnd:
-                       break Loop;
+                       break Loop
                case tokOr:
                        if r.or >= 0 {
                                t.parseError("extra .or in .repeated section");
@@ -485,9 +485,9 @@ Loop:
                        r.altend = t.elems.Len();
                        r.or = t.elems.Len();
                case tokSection:
-                       t.parseSection(w);
+                       t.parseSection(w)
                case tokRepeated:
-                       t.parseRepeated(w);
+                       t.parseRepeated(w)
                case tokAlternates:
                        if r.altstart >= 0 {
                                t.parseError("extra .alternates in .repeated section");
@@ -504,10 +504,10 @@ Loop:
                }
        }
        if t.error != nil {
-               return nil;
+               return nil
        }
        if r.altend < 0 {
-               r.altend = t.elems.Len();
+               r.altend = t.elems.Len()
        }
        r.end = t.elems.Len();
        return r;
@@ -525,7 +525,7 @@ Loop:
        for t.error == nil {
                item := t.nextItem();
                if t.error != nil {
-                       break;
+                       break
                }
                if len(item) == 0 {
                        t.parseError("missing .end for .section");
@@ -533,14 +533,14 @@ Loop:
                }
                done, tok, w := t.parseSimple(item);
                if t.error != nil {
-                       break;
+                       break
                }
                if done {
-                       continue;
+                       continue
                }
                switch tok {
                case tokEnd:
-                       break Loop;
+                       break Loop
                case tokOr:
                        if s.or >= 0 {
                                t.parseError("extra .or in .section");
@@ -548,17 +548,17 @@ Loop:
                        }
                        s.or = t.elems.Len();
                case tokSection:
-                       t.parseSection(w);
+                       t.parseSection(w)
                case tokRepeated:
-                       t.parseRepeated(w);
+                       t.parseRepeated(w)
                case tokAlternates:
-                       t.parseError(".alternates not in .repeated");
+                       t.parseError(".alternates not in .repeated")
                default:
-                       t.parseError("internal error: unknown section item: %s", item);
+                       t.parseError("internal error: unknown section item: %s", item)
                }
        }
        if t.error != nil {
-               return nil;
+               return nil
        }
        s.end = t.elems.Len();
        return s;
@@ -568,24 +568,24 @@ func (t *Template) parse() {
        for t.error == nil {
                item := t.nextItem();
                if t.error != nil {
-                       break;
+                       break
                }
                if len(item) == 0 {
-                       break;
+                       break
                }
                done, tok, w := t.parseSimple(item);
                if done {
-                       continue;
+                       continue
                }
                switch tok {
                case tokOr, tokEnd, tokAlternates:
-                       t.parseError("unexpected %s", w[0]);
+                       t.parseError("unexpected %s", w[0])
                case tokSection:
-                       t.parseSection(w);
+                       t.parseSection(w)
                case tokRepeated:
-                       t.parseRepeated(w);
+                       t.parseRepeated(w)
                default:
-                       t.parseError("internal error: bad directive in parse: %s", item);
+                       t.parseError("internal error: bad directive in parse: %s", item)
                }
        }
 }
@@ -600,7 +600,7 @@ func (t *Template) parse() {
 // it represents the actual named field.
 func (st *state) findVar(s string) reflect.Value {
        if s == "@" {
-               return st.data;
+               return st.data
        }
        data := st.data;
        elems := strings.Split(s, ".", 0);
@@ -608,15 +608,15 @@ func (st *state) findVar(s string) reflect.Value {
                // Look up field; data must be a struct.
                data = reflect.Indirect(data);
                if data == nil {
-                       return nil;
+                       return nil
                }
                typ, ok := data.Type().(*reflect.StructType);
                if !ok {
-                       return nil;
+                       return nil
                }
                field, ok := typ.FieldByName(elems[i]);
                if !ok {
-                       return nil;
+                       return nil
                }
                data = data.(*reflect.StructValue).FieldByIndex(field.Index);
        }
@@ -627,19 +627,19 @@ func (st *state) findVar(s string) reflect.Value {
 func empty(v reflect.Value) bool {
        v = reflect.Indirect(v);
        if v == nil {
-               return true;
+               return true
        }
        switch v := v.(type) {
        case *reflect.BoolValue:
-               return v.Get() == false;
+               return v.Get() == false
        case *reflect.StringValue:
-               return v.Get() == "";
+               return v.Get() == ""
        case *reflect.StructValue:
-               return false;
+               return false
        case *reflect.ArrayValue:
-               return v.Len() == 0;
+               return v.Len() == 0
        case *reflect.SliceValue:
-               return v.Len() == 0;
+               return v.Len() == 0
        }
        return true;
 }
@@ -649,7 +649,7 @@ func (t *Template) varValue(name string, st *state) reflect.Value {
        field := st.findVar(name);
        if field == nil {
                if st.parent == nil {
-                       t.execError(st, t.linenum, "name not found: %s", name);
+                       t.execError(st, t.linenum, "name not found: %s", name)
                }
                return t.varValue(name, st.parent);
        }
@@ -703,7 +703,7 @@ func (t *Template) executeElement(i int, st *state) int {
 // Execute the template.
 func (t *Template) execute(start, end int, st *state) {
        for i := start; i < end; {
-               i = t.executeElement(i, st);
+               i = t.executeElement(i, st)
        }
 }
 
@@ -712,24 +712,24 @@ func (t *Template) executeSection(s *sectionElement, st *state) {
        // Find driver data for this section.  It must be in the current struct.
        field := t.varValue(s.field, st);
        if field == nil {
-               t.execError(st, s.linenum, ".section: cannot find field %s in %s", s.field, reflect.Indirect(st.data).Type());
+               t.execError(st, s.linenum, ".section: cannot find field %s in %s", s.field, reflect.Indirect(st.data).Type())
        }
        st = st.clone(field);
        start, end := s.start, s.or;
        if !empty(field) {
                // Execute the normal block.
                if end < 0 {
-                       end = s.end;
+                       end = s.end
                }
        } else {
                // Execute the .or block.  If it's missing, do nothing.
                start, end = s.or, s.end;
                if start < 0 {
-                       return;
+                       return
                }
        }
        for i := start; i < end; {
-               i = t.executeElement(i, st);
+               i = t.executeElement(i, st)
        }
 }
 
@@ -741,11 +741,11 @@ func iter(v reflect.Value) *reflect.ChanValue {
                ft := fv.Type().(*reflect.FuncType);
                // TODO(rsc): NumIn() should return 0 here, because ft is from a curried FuncValue.
                if mth.Name != "Iter" || ft.NumIn() != 1 || ft.NumOut() != 1 {
-                       continue;
+                       continue
                }
                ct, ok := ft.Out(0).(*reflect.ChanType);
                if !ok || ct.Dir() & reflect.RecvDir == 0 {
-                       continue;
+                       continue
                }
                return fv.Call(nil)[0].(*reflect.ChanValue);
        }
@@ -757,15 +757,15 @@ func (t *Template) executeRepeated(r *repeatedElement, st *state) {
        // Find driver data for this section.  It must be in the current struct.
        field := t.varValue(r.field, st);
        if field == nil {
-               t.execError(st, r.linenum, ".repeated: cannot find field %s in %s", r.field, reflect.Indirect(st.data).Type());
+               t.execError(st, r.linenum, ".repeated: cannot find field %s in %s", r.field, reflect.Indirect(st.data).Type())
        }
 
        start, end := r.start, r.or;
        if end < 0 {
-               end = r.end;
+               end = r.end
        }
        if r.altstart >= 0 {
-               end = r.altstart;
+               end = r.altstart
        }
        first := true;
 
@@ -776,38 +776,38 @@ func (t *Template) executeRepeated(r *repeatedElement, st *state) {
                        // .alternates between elements
                        if !first && r.altstart >= 0 {
                                for i := r.altstart; i < r.altend; {
-                                       i = t.executeElement(i, newst);
+                                       i = t.executeElement(i, newst)
                                }
                        }
                        first = false;
 
                        for i := start; i < end; {
-                               i = t.executeElement(i, newst);
+                               i = t.executeElement(i, newst)
                        }
                }
        } else if ch := iter(field); ch != nil {
                for {
                        e := ch.Recv();
                        if ch.Closed() {
-                               break;
+                               break
                        }
                        newst := st.clone(e);
 
                        // .alternates between elements
                        if !first && r.altstart >= 0 {
                                for i := r.altstart; i < r.altend; {
-                                       i = t.executeElement(i, newst);
+                                       i = t.executeElement(i, newst)
                                }
                        }
                        first = false;
 
                        for i := start; i < end; {
-                               i = t.executeElement(i, newst);
+                               i = t.executeElement(i, newst)
                        }
                }
        } else {
                t.execError(st, r.linenum, ".repeated: cannot repeat %s (type %s)",
-                       r.field, field.Type());
+                       r.field, field.Type())
        }
 
        if first {
@@ -816,7 +816,7 @@ func (t *Template) executeRepeated(r *repeatedElement, st *state) {
                if start >= 0 {
                        newst := st.clone(field);
                        for i := start; i < end; {
-                               i = t.executeElement(i, newst);
+                               i = t.executeElement(i, newst)
                        }
                }
                return;
@@ -826,11 +826,11 @@ func (t *Template) executeRepeated(r *repeatedElement, st *state) {
 // A valid delimiter must contain no white space and be non-empty.
 func validDelim(d []byte) bool {
        if len(d) == 0 {
-               return false;
+               return false
        }
        for _, c := range d {
                if white(c) {
-                       return false;
+                       return false
                }
        }
        return true;
@@ -843,7 +843,7 @@ func validDelim(d []byte) bool {
 // the error.
 func (t *Template) Parse(s string) os.Error {
        if !validDelim(t.ldelim) || !validDelim(t.rdelim) {
-               return &Error{1, fmt.Sprintf("bad delimiter strings %q %q", t.ldelim, t.rdelim)};
+               return &Error{1, fmt.Sprintf("bad delimiter strings %q %q", t.ldelim, t.rdelim)}
        }
        t.buf = strings.Bytes(s);
        t.p = 0;
@@ -885,7 +885,7 @@ func Parse(s string, fmap FormatterMap) (t *Template, err os.Error) {
        t = New(fmap);
        err = t.Parse(s);
        if err != nil {
-               t = nil;
+               t = nil
        }
        return;
 }
@@ -894,7 +894,7 @@ func Parse(s string, fmap FormatterMap) (t *Template, err os.Error) {
 func MustParse(s string, fmap FormatterMap) *Template {
        t, err := Parse(s, fmap);
        if err != nil {
-               panic("template parse error: ", err.String());
+               panic("template parse error: ", err.String())
        }
        return t;
 }
index 6fbc147265b79a321dff4f956512a2ef4ae5c4be..a93faced0d5c44b501ceb59783975db158c299b4 100644 (file)
@@ -46,7 +46,7 @@ func uppercase(v interface{}) string {
        for i := 0; i < len(s); i++ {
                c := s[i];
                if 'a' <= c && c <= 'z' {
-                       c = c+'A'-'a';
+                       c = c+'A'-'a'
                }
                t += string(c);
        }
@@ -60,8 +60,8 @@ func plus1(v interface{}) string {
 
 func writer(f func(interface{}) string) (func(io.Writer, interface{}, string)) {
        return func(w io.Writer, v interface{}, format string) {
-               io.WriteString(w, f(v));
-       };
+               io.WriteString(w, f(v))
+       }
 }
 
 
@@ -305,15 +305,15 @@ func TestAll(t *testing.T) {
                err = tmpl.Execute(s, &buf);
                if test.err == "" {
                        if err != nil {
-                               t.Error("unexpected execute error:", err);
+                               t.Error("unexpected execute error:", err)
                        }
                } else {
                        if err == nil || err.String() != test.err {
-                               t.Errorf("expected execute error %q, got %q", test.err, err.String());
+                               t.Errorf("expected execute error %q, got %q", test.err, err.String())
                        }
                }
                if buf.String() != test.out {
-                       t.Errorf("for %q: expected %q got %q", test.in, test.out, buf.String());
+                       t.Errorf("for %q: expected %q got %q", test.in, test.out, buf.String())
                }
        }
 }
@@ -321,42 +321,42 @@ func TestAll(t *testing.T) {
 func TestStringDriverType(t *testing.T) {
        tmpl, err := Parse("template: {@}", nil);
        if err != nil {
-               t.Error("unexpected parse error:", err);
+               t.Error("unexpected parse error:", err)
        }
        var b bytes.Buffer;
        err = tmpl.Execute("hello", &b);
        if err != nil {
-               t.Error("unexpected execute error:", err);
+               t.Error("unexpected execute error:", err)
        }
        s := b.String();
        if s != "template: hello" {
-               t.Errorf("failed passing string as data: expected %q got %q", "template: hello", s);
+               t.Errorf("failed passing string as data: expected %q got %q", "template: hello", s)
        }
 }
 
 func TestTwice(t *testing.T) {
        tmpl, err := Parse("template: {@}", nil);
        if err != nil {
-               t.Error("unexpected parse error:", err);
+               t.Error("unexpected parse error:", err)
        }
        var b bytes.Buffer;
        err = tmpl.Execute("hello", &b);
        if err != nil {
-               t.Error("unexpected parse error:", err);
+               t.Error("unexpected parse error:", err)
        }
        s := b.String();
        text := "template: hello";
        if s != text {
-               t.Errorf("failed passing string as data: expected %q got %q", text, s);
+               t.Errorf("failed passing string as data: expected %q got %q", text, s)
        }
        err = tmpl.Execute("hello", &b);
        if err != nil {
-               t.Error("unexpected parse error:", err);
+               t.Error("unexpected parse error:", err)
        }
        s = b.String();
        text += text;
        if s != text {
-               t.Errorf("failed passing string as data: expected %q got %q", text, s);
+               t.Errorf("failed passing string as data: expected %q got %q", text, s)
        }
 }
 
@@ -377,7 +377,7 @@ func TestCustomDelims(t *testing.T) {
                        err := tmpl.Parse(text);
                        if err != nil {
                                if i == 0 || j == 0 {   // expected
-                                       continue;
+                                       continue
                                }
                                t.Error("unexpected parse error:", err);
                        } else if i == 0 || j == 0 {
@@ -388,7 +388,7 @@ func TestCustomDelims(t *testing.T) {
                        err = tmpl.Execute("hello", &b);
                        s := b.String();
                        if s != "template: hello" + ldelim + rdelim {
-                               t.Errorf("failed delim check(%q %q) %q got %q", ldelim, rdelim, text, s);
+                               t.Errorf("failed delim check(%q %q) %q got %q", ldelim, rdelim, text, s)
                        }
                }
        }
@@ -404,14 +404,14 @@ func TestVarIndirection(t *testing.T) {
        input := "{.section @}{innerPointerT}{.end}";
        tmpl, err := Parse(input, nil);
        if err != nil {
-               t.Fatal("unexpected parse error:", err);
+               t.Fatal("unexpected parse error:", err)
        }
        err = tmpl.Execute(s, &buf);
        if err != nil {
-               t.Fatal("unexpected execute error:", err);
+               t.Fatal("unexpected execute error:", err)
        }
        expect := fmt.Sprintf("%v", &t1);       // output should be hex address of t1
        if buf.String() != expect {
-               t.Errorf("for %q: expected %q got %q", input, expect, buf.String());
+               t.Errorf("for %q: expected %q got %q", input, expect, buf.String())
        }
 }
index 4eee6670b849facd4e13fb3395068748421fe7b3..0b01fcbbead78b890f6f945138df05709d7caf10 100644 (file)
@@ -18,9 +18,9 @@ type writeLogger struct {
 func (l *writeLogger) Write(p []byte) (n int, err os.Error) {
        n, err = l.w.Write(p);
        if err != nil {
-               log.Stdoutf("%s %x: %v", l.prefix, p[0:n], err);
+               log.Stdoutf("%s %x: %v", l.prefix, p[0:n], err)
        } else {
-               log.Stdoutf("%s %x", l.prefix, p[0:n]);
+               log.Stdoutf("%s %x", l.prefix, p[0:n])
        }
        return;
 }
@@ -29,7 +29,7 @@ func (l *writeLogger) Write(p []byte) (n int, err os.Error) {
 // that it logs (using log.Stdout) each write to standard output,
 // printing the prefix and the hexadecimal data written.
 func NewWriteLogger(prefix string, w io.Writer) io.Writer {
-       return &writeLogger{prefix, w};
+       return &writeLogger{prefix, w}
 }
 
 type readLogger struct {
@@ -40,9 +40,9 @@ type readLogger struct {
 func (l *readLogger) Read(p []byte) (n int, err os.Error) {
        n, err = l.r.Read(p);
        if err != nil {
-               log.Stdoutf("%s %x: %v", l.prefix, p[0:n], err);
+               log.Stdoutf("%s %x: %v", l.prefix, p[0:n], err)
        } else {
-               log.Stdoutf("%s %x", l.prefix, p[0:n]);
+               log.Stdoutf("%s %x", l.prefix, p[0:n])
        }
        return;
 }
@@ -51,5 +51,5 @@ func (l *readLogger) Read(p []byte) (n int, err os.Error) {
 // that it logs (using log.Stdout) each write to standard output,
 // printing the prefix and the hexadecimal data written.
 func NewReadLogger(prefix string, r io.Reader) io.Reader {
-       return &readLogger{prefix, r};
+       return &readLogger{prefix, r}
 }
index ae427e6fab172c841d2fc670070b69d7632b8b10..61da735de6c2a8dc6ac246b5fb23cebab480a487 100644 (file)
@@ -22,7 +22,7 @@ type oneByteReader struct {
 
 func (r *oneByteReader) Read(p []byte) (int, os.Error) {
        if len(p) == 0 {
-               return 0, nil;
+               return 0, nil
        }
        return r.r.Read(p[0:1]);
 }
@@ -36,7 +36,7 @@ type halfReader struct {
 }
 
 func (r *halfReader) Read(p []byte) (int, os.Error) {
-       return r.r.Read(p[0 : (len(p)+1)/2]);
+       return r.r.Read(p[0 : (len(p)+1)/2])
 }
 
 
@@ -61,7 +61,7 @@ func (r *dataErrReader) Read(p []byte) (n int, err os.Error) {
                        err = err1;
                }
                if n > 0 {
-                       break;
+                       break
                }
                n = bytes.Copy(p, r.unread);
                r.unread = r.unread[n:len(r.unread)];
index 8b0e4ca8fe805bc83e92ac08ad2f74e356d1787f..54468a6fe24b3b64b851e170285d637c9918ae54 100644 (file)
@@ -12,7 +12,7 @@ import (
 // TruncateWriter returns a Writer that writes to w
 // but stops silently after n bytes.
 func TruncateWriter(w io.Writer, n int64) io.Writer {
-       return &truncateWriter{w, n};
+       return &truncateWriter{w, n}
 }
 
 type truncateWriter struct {
@@ -22,17 +22,17 @@ type truncateWriter struct {
 
 func (t *truncateWriter) Write(p []byte) (n int, err os.Error) {
        if t.n <= 0 {
-               return len(p), nil;
+               return len(p), nil
        }
        // real write
        n = len(p);
        if int64(n) > t.n {
-               n = int(t.n);
+               n = int(t.n)
        }
        n, err = t.w.Write(p[0:n]);
        t.n -= int64(n);
        if err == nil {
-               n = len(p);
+               n = len(p)
        }
        return;
 }
index 3d47240bda46d206eee4101d14e53e9cb60833c0..825fc12e2f4a19bb511672290dda71a83d754249 100644 (file)
@@ -28,7 +28,7 @@ type Generator interface {
 func randFloat32(rand *rand.Rand) float32 {
        f := rand.Float64() * math.MaxFloat32;
        if rand.Int() & 1 == 1 {
-               f = -f;
+               f = -f
        }
        return float32(f);
 }
@@ -37,7 +37,7 @@ func randFloat32(rand *rand.Rand) float32 {
 func randFloat64(rand *rand.Rand) float64 {
        f := rand.Float64();
        if rand.Int() & 1 == 1 {
-               f = -f;
+               f = -f
        }
        return f;
 }
@@ -54,32 +54,32 @@ const complexSize = 50
 // Note: in order to create arbitrary values for structs, all the members must be public.
 func Value(t reflect.Type, rand *rand.Rand) (value reflect.Value, ok bool) {
        if m, ok := reflect.MakeZero(t).Interface().(Generator); ok {
-               return m.Generate(rand, complexSize), true;
+               return m.Generate(rand, complexSize), true
        }
 
        switch concrete := t.(type) {
        case *reflect.BoolType:
-               return reflect.NewValue(rand.Int() & 1 == 0), true;
+               return reflect.NewValue(rand.Int() & 1 == 0), true
        case *reflect.Float32Type:
-               return reflect.NewValue(randFloat32(rand)), true;
+               return reflect.NewValue(randFloat32(rand)), true
        case *reflect.Float64Type:
-               return reflect.NewValue(randFloat64(rand)), true;
+               return reflect.NewValue(randFloat64(rand)), true
        case *reflect.FloatType:
                if t.Size() == 4 {
-                       return reflect.NewValue(float(randFloat32(rand))), true;
+                       return reflect.NewValue(float(randFloat32(rand))), true
                } else {
-                       return reflect.NewValue(float(randFloat64(rand))), true;
+                       return reflect.NewValue(float(randFloat64(rand))), true
                }
        case *reflect.Int16Type:
-               return reflect.NewValue(int16(randInt64(rand))), true;
+               return reflect.NewValue(int16(randInt64(rand))), true
        case *reflect.Int32Type:
-               return reflect.NewValue(int32(randInt64(rand))), true;
+               return reflect.NewValue(int32(randInt64(rand))), true
        case *reflect.Int64Type:
-               return reflect.NewValue(randInt64(rand)), true;
+               return reflect.NewValue(randInt64(rand)), true
        case *reflect.Int8Type:
-               return reflect.NewValue(int8(randInt64(rand))), true;
+               return reflect.NewValue(int8(randInt64(rand))), true
        case *reflect.IntType:
-               return reflect.NewValue(int(randInt64(rand))), true;
+               return reflect.NewValue(int(randInt64(rand))), true
        case *reflect.MapType:
                numElems := rand.Intn(complexSize);
                m := reflect.MakeMap(concrete);
@@ -87,7 +87,7 @@ func Value(t reflect.Type, rand *rand.Rand) (value reflect.Value, ok bool) {
                        key, ok1 := Value(concrete.Key(), rand);
                        value, ok2 := Value(concrete.Elem(), rand);
                        if !ok1 || !ok2 {
-                               return nil, false;
+                               return nil, false
                        }
                        m.SetElem(key, value);
                }
@@ -95,7 +95,7 @@ func Value(t reflect.Type, rand *rand.Rand) (value reflect.Value, ok bool) {
        case *reflect.PtrType:
                v, ok := Value(concrete.Elem(), rand);
                if !ok {
-                       return nil, false;
+                       return nil, false
                }
                p := reflect.MakeZero(concrete);
                p.(*reflect.PtrValue).PointTo(v);
@@ -106,7 +106,7 @@ func Value(t reflect.Type, rand *rand.Rand) (value reflect.Value, ok bool) {
                for i := 0; i < numElems; i++ {
                        v, ok := Value(concrete.Elem(), rand);
                        if !ok {
-                               return nil, false;
+                               return nil, false
                        }
                        s.Elem(i).SetValue(v);
                }
@@ -115,7 +115,7 @@ func Value(t reflect.Type, rand *rand.Rand) (value reflect.Value, ok bool) {
                numChars := rand.Intn(complexSize);
                codePoints := make([]int, numChars);
                for i := 0; i < numChars; i++ {
-                       codePoints[i] = rand.Intn(0x10ffff);
+                       codePoints[i] = rand.Intn(0x10ffff)
                }
                return reflect.NewValue(string(codePoints)), true;
        case *reflect.StructType:
@@ -123,25 +123,25 @@ func Value(t reflect.Type, rand *rand.Rand) (value reflect.Value, ok bool) {
                for i := 0; i < s.NumField(); i++ {
                        v, ok := Value(concrete.Field(i).Type, rand);
                        if !ok {
-                               return nil, false;
+                               return nil, false
                        }
                        s.Field(i).SetValue(v);
                }
                return s, true;
        case *reflect.Uint16Type:
-               return reflect.NewValue(uint16(randInt64(rand))), true;
+               return reflect.NewValue(uint16(randInt64(rand))), true
        case *reflect.Uint32Type:
-               return reflect.NewValue(uint32(randInt64(rand))), true;
+               return reflect.NewValue(uint32(randInt64(rand))), true
        case *reflect.Uint64Type:
-               return reflect.NewValue(uint64(randInt64(rand))), true;
+               return reflect.NewValue(uint64(randInt64(rand))), true
        case *reflect.Uint8Type:
-               return reflect.NewValue(uint8(randInt64(rand))), true;
+               return reflect.NewValue(uint8(randInt64(rand))), true
        case *reflect.UintType:
-               return reflect.NewValue(uint(randInt64(rand))), true;
+               return reflect.NewValue(uint(randInt64(rand))), true
        case *reflect.UintptrType:
-               return reflect.NewValue(uintptr(randInt64(rand))), true;
+               return reflect.NewValue(uintptr(randInt64(rand))), true
        default:
-               return nil, false;
+               return nil, false
        }
 
        return;
@@ -169,7 +169,7 @@ var defaultConfig Config
 // getRand returns the *rand.Rand to use for a given Config.
 func (c *Config) getRand() *rand.Rand {
        if c.Rand == nil {
-               return rand.New(rand.NewSource(0));
+               return rand.New(rand.NewSource(0))
        }
        return c.Rand;
 }
@@ -180,9 +180,9 @@ func (c *Config) getMaxCount() (maxCount int) {
        maxCount = c.MaxCount;
        if maxCount == 0 {
                if c.MaxCountScale != 0 {
-                       maxCount = int(c.MaxCountScale * float(*defaultMaxCount));
+                       maxCount = int(c.MaxCountScale * float(*defaultMaxCount))
                } else {
-                       maxCount = *defaultMaxCount;
+                       maxCount = *defaultMaxCount
                }
        }
 
@@ -202,7 +202,7 @@ type CheckError struct {
 }
 
 func (s *CheckError) String() string {
-       return fmt.Sprintf("#%d: failed on input %s", s.Count, toString(s.In));
+       return fmt.Sprintf("#%d: failed on input %s", s.Count, toString(s.In))
 }
 
 // A CheckEqualError is the result CheckEqual finding an error.
@@ -213,7 +213,7 @@ type CheckEqualError struct {
 }
 
 func (s *CheckEqualError) String() string {
-       return fmt.Sprintf("#%d: failed on input %s. Output 1: %s. Output 2: %s", s.Count, toString(s.In), toString(s.Out1), toString(s.Out2));
+       return fmt.Sprintf("#%d: failed on input %s. Output 1: %s. Output 2: %s", s.Count, toString(s.In), toString(s.Out1), toString(s.Out2))
 }
 
 // Check looks for an input to f, any function that returns bool,
@@ -233,7 +233,7 @@ func (s *CheckEqualError) String() string {
 //     }
 func Check(function interface{}, config *Config) (err os.Error) {
        if config == nil {
-               config = &defaultConfig;
+               config = &defaultConfig
        }
 
        f, fType, ok := functionAndType(function);
@@ -258,7 +258,7 @@ func Check(function interface{}, config *Config) (err os.Error) {
        for i := 0; i < maxCount; i++ {
                err = arbitraryValues(arguments, fType, config, rand);
                if err != nil {
-                       return;
+                       return
                }
 
                if !f.Call(arguments)[0].(*reflect.BoolValue).Get() {
@@ -276,7 +276,7 @@ func Check(function interface{}, config *Config) (err os.Error) {
 // describing the input and the outputs.
 func CheckEqual(f, g interface{}, config *Config) (err os.Error) {
        if config == nil {
-               config = &defaultConfig;
+               config = &defaultConfig
        }
 
        x, xType, ok := functionAndType(f);
@@ -302,7 +302,7 @@ func CheckEqual(f, g interface{}, config *Config) (err os.Error) {
        for i := 0; i < maxCount; i++ {
                err = arbitraryValues(arguments, xType, config, rand);
                if err != nil {
-                       return;
+                       return
                }
 
                xOut := toInterfaces(x.Call(arguments));
@@ -340,7 +340,7 @@ func arbitraryValues(args []reflect.Value, f *reflect.FuncType, config *Config,
 func functionAndType(f interface{}) (v *reflect.FuncValue, t *reflect.FuncType, ok bool) {
        v, ok = reflect.NewValue(f).(*reflect.FuncValue);
        if !ok {
-               return;
+               return
        }
        t = v.Type().(*reflect.FuncType);
        return;
@@ -349,7 +349,7 @@ func functionAndType(f interface{}) (v *reflect.FuncValue, t *reflect.FuncType,
 func toInterfaces(values []reflect.Value) []interface{} {
        ret := make([]interface{}, len(values));
        for i, v := range values {
-               ret[i] = v.Interface();
+               ret[i] = v.Interface()
        }
        return ret;
 }
@@ -357,7 +357,7 @@ func toInterfaces(values []reflect.Value) []interface{} {
 func toString(interfaces []interface{}) string {
        s := make([]string, len(interfaces));
        for i, v := range interfaces {
-               s[i] = fmt.Sprintf("%#v", v);
+               s[i] = fmt.Sprintf("%#v", v)
        }
        return strings.Join(s, ", ");
 }
index 951582e35e0fbfdf43390297cef5d36025e2ccdb..b4037ab5507e943b890d0d71a8217a4b3ca3f824 100644 (file)
@@ -63,7 +63,7 @@ func fIntptr(a *int) *int {
 
 func reportError(property string, err os.Error, t *testing.T) {
        if err != nil {
-               t.Errorf("%s: %s", property, err);
+               t.Errorf("%s: %s", property, err)
        }
 }
 
@@ -99,46 +99,46 @@ type myStruct struct {
 }
 
 func (m myStruct) Generate(r *rand.Rand, _ int) reflect.Value {
-       return reflect.NewValue(myStruct{x: 42});
+       return reflect.NewValue(myStruct{x: 42})
 }
 
 func myStructProperty(in myStruct) bool        { return in.x == 42 }
 
 func TestCheckProperty(t *testing.T) {
-       reportError("myStructProperty", Check(myStructProperty, nil), t);
+       reportError("myStructProperty", Check(myStructProperty, nil), t)
 }
 
 func TestFailure(t *testing.T) {
        f := func(x int) bool { return false };
        err := Check(f, nil);
        if err == nil {
-               t.Errorf("Check didn't return an error");
+               t.Errorf("Check didn't return an error")
        }
        if _, ok := err.(*CheckError); !ok {
-               t.Errorf("Error was not a CheckError: %s", err);
+               t.Errorf("Error was not a CheckError: %s", err)
        }
 
        err = CheckEqual(fUint, fUint32, nil);
        if err == nil {
-               t.Errorf("#1 CheckEqual didn't return an error");
+               t.Errorf("#1 CheckEqual didn't return an error")
        }
        if _, ok := err.(SetupError); !ok {
-               t.Errorf("#1 Error was not a SetupError: %s", err);
+               t.Errorf("#1 Error was not a SetupError: %s", err)
        }
 
        err = CheckEqual(func(x, y int) {}, func(x int) {}, nil);
        if err == nil {
-               t.Errorf("#2 CheckEqual didn't return an error");
+               t.Errorf("#2 CheckEqual didn't return an error")
        }
        if _, ok := err.(SetupError); !ok {
-               t.Errorf("#2 Error was not a SetupError: %s", err);
+               t.Errorf("#2 Error was not a SetupError: %s", err)
        }
 
        err = CheckEqual(func(x int) int { return 0 }, func(x int) int32 { return 0 }, nil);
        if err == nil {
-               t.Errorf("#3 CheckEqual didn't return an error");
+               t.Errorf("#3 CheckEqual didn't return an error")
        }
        if _, ok := err.(SetupError); !ok {
-               t.Errorf("#3 Error was not a SetupError: %s", err);
+               t.Errorf("#3 Error was not a SetupError: %s", err)
        }
 }
index f4cfe5e6e25bcea9fa78c3b6189b1d68b6b4c74e..5093d512e387f891d81f413a3db57c703f260146 100644 (file)
@@ -152,15 +152,15 @@ func (cclass *_CharClass) kind() int      { return _CHARCLASS }
 func (cclass *_CharClass) print() {
        print("charclass");
        if cclass.negate {
-               print(" (negated)");
+               print(" (negated)")
        }
        for i := 0; i < len(cclass.ranges); i += 2 {
                l := cclass.ranges[i];
                r := cclass.ranges[i+1];
                if l == r {
-                       print(" [", string(l), "]");
+                       print(" [", string(l), "]")
                } else {
-                       print(" [", string(l), "-", string(r), "]");
+                       print(" [", string(l), "-", string(r), "]")
                }
        }
 }
@@ -171,7 +171,7 @@ func (cclass *_CharClass) addRange(a, b int) {
        if n >= cap(cclass.ranges) {
                nr := make([]int, n, 2*n);
                for i, j := range nr {
-                       nr[i] = j;
+                       nr[i] = j
                }
                cclass.ranges = nr;
        }
@@ -187,7 +187,7 @@ func (cclass *_CharClass) matches(c int) bool {
                min := cclass.ranges[i];
                max := cclass.ranges[i+1];
                if min <= c && c <= max {
-                       return !cclass.negate;
+                       return !cclass.negate
                }
        }
        return cclass.negate;
@@ -256,7 +256,7 @@ func (re *Regexp) add(i instr) instr {
        if n >= cap(re.inst) {
                ni := make([]instr, n, 2*n);
                for i, j := range re.inst {
-                       ni[i] = j;
+                       ni[i] = j
                }
                re.inst = ni;
        }
@@ -279,7 +279,7 @@ func (p *parser) c() int    { return p.ch }
 
 func (p *parser) nextc() int {
        if p.pos >= len(p.re.expr) {
-               p.ch = endOfFile;
+               p.ch = endOfFile
        } else {
                c, w := utf8.DecodeRuneInString(p.re.expr[p.pos : len(p.re.expr)]);
                p.ch = c;
@@ -299,7 +299,7 @@ func special(c int) bool {
        s := `\.+*?()|[]^$`;
        for i := 0; i < len(s); i++ {
                if c == int(s[i]) {
-                       return true;
+                       return true
                }
        }
        return false;
@@ -309,7 +309,7 @@ func specialcclass(c int) bool {
        s := `\-[]`;
        for i := 0; i < len(s); i++ {
                if c == int(s[i]) {
-                       return true;
+                       return true
                }
        }
        return false;
@@ -348,7 +348,7 @@ func (p *parser) charClass() instr {
                                p.error = ErrExtraneousBackslash;
                                return nil;
                        case c == 'n':
-                               c = '\n';
+                               c = '\n'
                        case specialcclass(c):
                        // c is as delivered
                        default:
@@ -364,7 +364,7 @@ func (p *parser) charClass() instr {
                                        p.nextc();
                                        left = c;
                                } else {        // single char
-                                       cc.addRange(c, c);
+                                       cc.addRange(c, c)
                                }
                        case left <= c: // second of pair
                                cc.addRange(left, c);
@@ -384,11 +384,11 @@ func (p *parser) term() (start, end instr) {
        // The other functions (closure(), concatenation() etc.) assume
        // it's safe to recur to here.
        if p.error != "" {
-               return;
+               return
        }
        switch c := p.c(); c {
        case '|', endOfFile:
-               return nil, nil;
+               return nil, nil
        case '*', '+':
                p.error = ErrBareClosure;
                return;
@@ -417,7 +417,7 @@ func (p *parser) term() (start, end instr) {
                p.nextc();
                start = p.charClass();
                if p.error != "" {
-                       return;
+                       return
                }
                if p.c() != ']' {
                        p.error = ErrUnmatchedLbkt;
@@ -450,7 +450,7 @@ func (p *parser) term() (start, end instr) {
                        }
                        start = ebra;
                } else {
-                       end.setNext(ebra);
+                       end.setNext(ebra)
                }
                bra.setNext(start);
                return bra, ebra;
@@ -461,7 +461,7 @@ func (p *parser) term() (start, end instr) {
                        p.error = ErrExtraneousBackslash;
                        return;
                case c == 'n':
-                       c = '\n';
+                       c = '\n'
                case special(c):
                // c is as delivered
                default:
@@ -481,7 +481,7 @@ func (p *parser) term() (start, end instr) {
 func (p *parser) closure() (start, end instr) {
        start, end = p.term();
        if start == nil || p.error != "" {
-               return;
+               return
        }
        switch p.c() {
        case '*':
@@ -511,11 +511,11 @@ func (p *parser) closure() (start, end instr) {
                start = alt;            // start is now alt
                end = nop;              // end is nop pointed to by both branches
        default:
-               return;
+               return
        }
        switch p.nextc() {
        case '*', '+', '?':
-               p.error = ErrBadClosure;
+               p.error = ErrBadClosure
        }
        return;
 }
@@ -524,7 +524,7 @@ func (p *parser) concatenation() (start, end instr) {
        for {
                nstart, nend := p.closure();
                if p.error != "" {
-                       return;
+                       return
                }
                switch {
                case nstart == nil:     // end of this concatenation
@@ -534,7 +534,7 @@ func (p *parser) concatenation() (start, end instr) {
                        }
                        return;
                case start == nil:      // this is first element of concatenation
-                       start, end = nstart, nend;
+                       start, end = nstart, nend
                default:
                        end.setNext(nstart);
                        end = nend;
@@ -546,17 +546,17 @@ func (p *parser) concatenation() (start, end instr) {
 func (p *parser) regexp() (start, end instr) {
        start, end = p.concatenation();
        if p.error != "" {
-               return;
+               return
        }
        for {
                switch p.c() {
                default:
-                       return;
+                       return
                case '|':
                        p.nextc();
                        nstart, nend := p.concatenation();
                        if p.error != "" {
-                               return;
+                               return
                        }
                        alt := new(_Alt);
                        p.re.add(alt);
@@ -574,7 +574,7 @@ func (p *parser) regexp() (start, end instr) {
 
 func unNop(i instr) instr {
        for i.kind() == _NOP {
-               i = i.next();
+               i = i.next()
        }
        return i;
 }
@@ -583,7 +583,7 @@ func (re *Regexp) eliminateNops() {
        for i := 0; i < len(re.inst); i++ {
                inst := re.inst[i];
                if inst.kind() == _END {
-                       continue;
+                       continue
                }
                inst.setNext(unNop(inst.next()));
                if inst.kind() == _ALT {
@@ -599,7 +599,7 @@ func (re *Regexp) doParse() string {
        re.add(start);
        s, e := p.regexp();
        if p.error != "" {
-               return p.error;
+               return p.error
        }
        start.setNext(s);
        re.start = start;
@@ -624,7 +624,7 @@ func CompileRegexp(str string) (regexp *Regexp, error string) {
 func MustCompile(str string) *Regexp {
        regexp, error := CompileRegexp(str);
        if error != "" {
-               panicln(`regexp: compiling "`, str, `": `, error);
+               panicln(`regexp: compiling "`, str, `": `, error)
        }
        return regexp;
 }
@@ -645,13 +645,13 @@ func addState(s []state, inst instr, match []int) []state {
        for i := 0; i < l; i++ {
                if s[i].inst.index() == index &&        // same instruction
                        s[i].match[0] < pos {   // earlier match already going; lefmost wins
-                       return s;
+                       return s
                }
        }
        if l == cap(s) {
                s1 := make([]state, 2*l)[0:l];
                for i := 0; i < l; i++ {
-                       s1[i] = s[i];
+                       s1[i] = s[i]
                }
                s = s1;
        }
@@ -672,14 +672,14 @@ func (re *Regexp) doExecute(str string, bytes []byte, pos int) []int {
        found := false;
        end := len(str);
        if bytes != nil {
-               end = len(bytes);
+               end = len(bytes)
        }
        for pos <= end {
                if !found {
                        // prime the pump if we haven't seen a match yet
                        match := make([]int, 2*(re.nbra + 1));
                        for i := 0; i < len(match); i++ {
-                               match[i] = -1;  // no match seen; catches cases like "a(b)?c" on "ac"
+                               match[i] = -1   // no match seen; catches cases like "a(b)?c" on "ac"
                        }
                        match[0] = pos;
                        s[out] = addState(s[out], re.start.next(), match);
@@ -688,15 +688,15 @@ func (re *Regexp) doExecute(str string, bytes []byte, pos int) []int {
                s[out] = s[out][0:0];   // clear out state
                if len(s[in]) == 0 {
                        // machine has completed
-                       break;
+                       break
                }
                charwidth := 1;
                c := endOfFile;
                if pos < end {
                        if bytes == nil {
-                               c, charwidth = utf8.DecodeRuneInString(str[pos:end]);
+                               c, charwidth = utf8.DecodeRuneInString(str[pos:end])
                        } else {
-                               c, charwidth = utf8.DecodeRune(bytes[pos:end]);
+                               c, charwidth = utf8.DecodeRune(bytes[pos:end])
                        }
                }
                for i := 0; i < len(s[in]); i++ {
@@ -704,27 +704,27 @@ func (re *Regexp) doExecute(str string, bytes []byte, pos int) []int {
                        switch s[in][i].inst.kind() {
                        case _BOT:
                                if pos == 0 {
-                                       s[in] = addState(s[in], st.inst.next(), st.match);
+                                       s[in] = addState(s[in], st.inst.next(), st.match)
                                }
                        case _EOT:
                                if pos == end {
-                                       s[in] = addState(s[in], st.inst.next(), st.match);
+                                       s[in] = addState(s[in], st.inst.next(), st.match)
                                }
                        case _CHAR:
                                if c == st.inst.(*_Char).char {
-                                       s[out] = addState(s[out], st.inst.next(), st.match);
+                                       s[out] = addState(s[out], st.inst.next(), st.match)
                                }
                        case _CHARCLASS:
                                if st.inst.(*_CharClass).matches(c) {
-                                       s[out] = addState(s[out], st.inst.next(), st.match);
+                                       s[out] = addState(s[out], st.inst.next(), st.match)
                                }
                        case _ANY:
                                if c != endOfFile {
-                                       s[out] = addState(s[out], st.inst.next(), st.match);
+                                       s[out] = addState(s[out], st.inst.next(), st.match)
                                }
                        case _NOTNL:
                                if c != endOfFile && c != '\n' {
-                                       s[out] = addState(s[out], st.inst.next(), st.match);
+                                       s[out] = addState(s[out], st.inst.next(), st.match)
                                }
                        case _BRA:
                                n := st.inst.(*_Bra).n;
@@ -739,7 +739,7 @@ func (re *Regexp) doExecute(str string, bytes []byte, pos int) []int {
                                // give other branch a copy of this match vector
                                s1 := make([]int, 2*(re.nbra + 1));
                                for i := 0; i < len(s1); i++ {
-                                       s1[i] = st.match[i];
+                                       s1[i] = st.match[i]
                                }
                                s[in] = addState(s[in], st.inst.next(), s1);
                        case _END:
@@ -770,7 +770,7 @@ func (re *Regexp) doExecute(str string, bytes []byte, pos int) []int {
 // A negative value means the subexpression did not match any element of the string.
 // An empty array means "no match".
 func (re *Regexp) ExecuteString(s string) (a []int) {
-       return re.doExecute(s, nil, 0);
+       return re.doExecute(s, nil, 0)
 }
 
 
@@ -802,12 +802,12 @@ func (re *Regexp) Match(b []byte) bool    { return len(re.doExecute("", b, 0)) > 0
 func (re *Regexp) MatchStrings(s string) (a []string) {
        r := re.doExecute(s, nil, 0);
        if r == nil {
-               return nil;
+               return nil
        }
        a = make([]string, len(r)/2);
        for i := 0; i < len(r); i += 2 {
                if r[i] != -1 { // -1 means no match for this subexpression
-                       a[i/2] = s[r[i]:r[i+1]];
+                       a[i/2] = s[r[i]:r[i+1]]
                }
        }
        return;
@@ -821,12 +821,12 @@ func (re *Regexp) MatchStrings(s string) (a []string) {
 func (re *Regexp) MatchSlices(b []byte) (a [][]byte) {
        r := re.doExecute("", b, 0);
        if r == nil {
-               return nil;
+               return nil
        }
        a = make([][]byte, len(r)/2);
        for i := 0; i < len(r); i += 2 {
                if r[i] != -1 { // -1 means no match for this subexpression
-                       a[i/2] = b[r[i]:r[i+1]];
+                       a[i/2] = b[r[i]:r[i+1]]
                }
        }
        return;
@@ -838,7 +838,7 @@ func (re *Regexp) MatchSlices(b []byte) (a [][]byte) {
 func MatchString(pattern string, s string) (matched bool, error string) {
        re, err := CompileRegexp(pattern);
        if err != "" {
-               return false, err;
+               return false, err
        }
        return re.MatchString(s), "";
 }
@@ -849,7 +849,7 @@ func MatchString(pattern string, s string) (matched bool, error string) {
 func Match(pattern string, b []byte) (matched bool, error string) {
        re, err := CompileRegexp(pattern);
        if err != "" {
-               return false, err;
+               return false, err
        }
        return re.Match(b), "";
 }
index d24e801b90214be791ab93f5a575421a27d5c998..89a214fcae91da3fe0031cd75c3bd6413622d43c 100644 (file)
@@ -89,7 +89,7 @@ var matches = []tester{
 func compileTest(t *T, expr string, error string) *Regexp {
        re, err := CompileRegexp(expr);
        if err != error {
-               t.Error("compiling `", expr, "`; unexpected error: ", err);
+               t.Error("compiling `", expr, "`; unexpected error: ", err)
        }
        return re;
 }
@@ -97,10 +97,10 @@ func compileTest(t *T, expr string, error string) *Regexp {
 func printVec(t *T, m []int) {
        l := len(m);
        if l == 0 {
-               t.Log("\t<no match>");
+               t.Log("\t<no match>")
        } else {
                for i := 0; i < l; i = i+2 {
-                       t.Log("\t", m[i], ",", m[i+1]);
+                       t.Log("\t", m[i], ",", m[i+1])
                }
        }
 }
@@ -108,10 +108,10 @@ func printVec(t *T, m []int) {
 func printStrings(t *T, m []string) {
        l := len(m);
        if l == 0 {
-               t.Log("\t<no match>");
+               t.Log("\t<no match>")
        } else {
                for i := 0; i < l; i = i+2 {
-                       t.Logf("\t%q", m[i]);
+                       t.Logf("\t%q", m[i])
                }
        }
 }
@@ -119,10 +119,10 @@ func printStrings(t *T, m []string) {
 func printBytes(t *T, b [][]byte) {
        l := len(b);
        if l == 0 {
-               t.Log("\t<no match>");
+               t.Log("\t<no match>")
        } else {
                for i := 0; i < l; i = i+2 {
-                       t.Logf("\t%q", b[i]);
+                       t.Logf("\t%q", b[i])
                }
        }
 }
@@ -130,11 +130,11 @@ func printBytes(t *T, b [][]byte) {
 func equal(m1, m2 []int) bool {
        l := len(m1);
        if l != len(m2) {
-               return false;
+               return false
        }
        for i := 0; i < l; i++ {
                if m1[i] != m2[i] {
-                       return false;
+                       return false
                }
        }
        return true;
@@ -143,11 +143,11 @@ func equal(m1, m2 []int) bool {
 func equalStrings(m1, m2 []string) bool {
        l := len(m1);
        if l != len(m2) {
-               return false;
+               return false
        }
        for i := 0; i < l; i++ {
                if m1[i] != m2[i] {
-                       return false;
+                       return false
                }
        }
        return true;
@@ -156,11 +156,11 @@ func equalStrings(m1, m2 []string) bool {
 func equalBytes(m1 [][]byte, m2 []string) bool {
        l := len(m1);
        if l != len(m2) {
-               return false;
+               return false
        }
        for i := 0; i < l; i++ {
                if string(m1[i]) != m2[i] {
-                       return false;
+                       return false
                }
        }
        return true;
@@ -169,7 +169,7 @@ func equalBytes(m1 [][]byte, m2 []string) bool {
 func executeTest(t *T, expr string, str string, match []int) {
        re := compileTest(t, expr, "");
        if re == nil {
-               return;
+               return
        }
        m := re.ExecuteString(str);
        if !equal(m, match) {
@@ -190,13 +190,13 @@ func executeTest(t *T, expr string, str string, match []int) {
 
 func TestGoodCompile(t *T) {
        for i := 0; i < len(good_re); i++ {
-               compileTest(t, good_re[i], "");
+               compileTest(t, good_re[i], "")
        }
 }
 
 func TestBadCompile(t *T) {
        for i := 0; i < len(bad_re); i++ {
-               compileTest(t, bad_re[i].re, bad_re[i].err);
+               compileTest(t, bad_re[i].re, bad_re[i].err)
        }
 }
 
@@ -210,16 +210,16 @@ func TestExecute(t *T) {
 func matchTest(t *T, expr string, str string, match []int) {
        re := compileTest(t, expr, "");
        if re == nil {
-               return;
+               return
        }
        m := re.MatchString(str);
        if m != (len(match) > 0) {
-               t.Error("MatchString failure on `", expr, "` matching `", str, "`:", m, "should be", len(match) > 0);
+               t.Error("MatchString failure on `", expr, "` matching `", str, "`:", m, "should be", len(match) > 0)
        }
        // now try bytes
        m = re.Match(strings.Bytes(str));
        if m != (len(match) > 0) {
-               t.Error("Match failure on `", expr, "` matching `", str, "`:", m, "should be", len(match) > 0);
+               t.Error("Match failure on `", expr, "` matching `", str, "`:", m, "should be", len(match) > 0)
        }
 }
 
@@ -233,11 +233,11 @@ func TestMatch(t *T) {
 func matchStringsTest(t *T, expr string, str string, match []int) {
        re := compileTest(t, expr, "");
        if re == nil {
-               return;
+               return
        }
        strs := make([]string, len(match)/2);
        for i := 0; i < len(match); i++ {
-               strs[i/2] = str[match[i]:match[i+1]];
+               strs[i/2] = str[match[i]:match[i+1]]
        }
        m := re.MatchStrings(str);
        if !equalStrings(m, strs) {
@@ -266,10 +266,10 @@ func TestMatchStrings(t *T) {
 func matchFunctionTest(t *T, expr string, str string, match []int) {
        m, err := MatchString(expr, str);
        if err == "" {
-               return;
+               return
        }
        if m != (len(match) > 0) {
-               t.Error("function Match failure on `", expr, "` matching `", str, "`:", m, "should be", len(match) > 0);
+               t.Error("function Match failure on `", expr, "` matching `", str, "`:", m, "should be", len(match) > 0)
        }
 }
 
index 6bf6ca26fb215e4541825c6c8d967b2b905e92f0..623685efd533da1cc399ceaf172173f527ec3ae0 100644 (file)
@@ -43,7 +43,7 @@ type sendAction interface {
 func (e Event) isReady() bool {
        for _, predecessor := range e.predecessors {
                if !predecessor.occurred {
-                       return false;
+                       return false
                }
        }
 
@@ -66,7 +66,7 @@ func (r Recv) getChannel() interface{}        { return r.Channel }
 func (r Recv) recvMatch(chanEvent interface{}) bool {
        c, ok := chanEvent.(channelRecv);
        if !ok || c.channel != r.Channel {
-               return false;
+               return false
        }
 
        return reflect.DeepEqual(c.value, r.Expected);
@@ -88,7 +88,7 @@ func (r RecvMatch) getChannel() interface{}   { return r.Channel }
 func (r RecvMatch) recvMatch(chanEvent interface{}) bool {
        c, ok := chanEvent.(channelRecv);
        if !ok || c.channel != r.Channel {
-               return false;
+               return false
        }
 
        return r.Match(c.value);
@@ -110,7 +110,7 @@ func (r Closed) getChannel() interface{}    { return r.Channel }
 func (r Closed) recvMatch(chanEvent interface{}) bool {
        c, ok := chanEvent.(channelClosed);
        if !ok || c.channel != r.Channel {
-               return false;
+               return false
        }
 
        return true;
@@ -130,7 +130,7 @@ func (s Send) getSend() sendAction  { return s }
 func (s Send) getChannel() interface{} { return s.Channel }
 
 func newEmptyInterface(args ...) reflect.Value {
-       return reflect.NewValue(args).(*reflect.StructValue).Field(0);
+       return reflect.NewValue(args).(*reflect.StructValue).Field(0)
 }
 
 func (s Send) send() {
@@ -140,9 +140,9 @@ func (s Send) send() {
        c := reflect.NewValue(s.Channel).(*reflect.ChanValue);
        var v reflect.Value;
        if iface, ok := c.Type().(*reflect.ChanType).Elem().(*reflect.InterfaceType); ok && iface.NumMethod() == 0 {
-               v = newEmptyInterface(s.Value);
+               v = newEmptyInterface(s.Value)
        } else {
-               v = reflect.NewValue(s.Value);
+               v = reflect.NewValue(s.Value)
        }
        c.Send(v);
 }
@@ -170,7 +170,7 @@ type ReceivedUnexpected struct {
 func (r ReceivedUnexpected) String() string {
        names := make([]string, len(r.ready));
        for i, v := range r.ready {
-               names[i] = v.name;
+               names[i] = v.name
        }
        return fmt.Sprintf("received unexpected value on one of the channels: %#v. Runnable events: %s", r.Value, strings.Join(names, ", "));
 }
@@ -224,23 +224,23 @@ func Perform(seed int64, events []*Event) (err os.Error) {
 
        channels, err := getChannels(events);
        if err != nil {
-               return;
+               return
        }
        multiplex := make(chan interface{});
        for _, channel := range channels {
-               go recvValues(multiplex, channel);
+               go recvValues(multiplex, channel)
        }
 
 Outer:
        for {
                ready, err := readyEvents(events);
                if err != nil {
-                       return err;
+                       return err
                }
 
                if len(ready) == 0 {
                        // All events occurred.
-                       break;
+                       break
                }
 
                event := ready[r.Intn(len(ready))];
@@ -271,11 +271,11 @@ func getChannels(events []*Event) ([]interface{}, os.Error) {
        j := 0;
        for _, event := range events {
                if recv := event.action.getRecv(); recv == nil {
-                       continue;
+                       continue
                }
                c := event.action.getChannel();
                if _, ok := reflect.NewValue(c).(*reflect.ChanValue); !ok {
-                       return nil, SetupError("one of the channel values is not a channel");
+                       return nil, SetupError("one of the channel values is not a channel")
                }
 
                duplicate := false;
@@ -329,7 +329,7 @@ func readyEvents(events []*Event) ([]*Event, os.Error) {
        eventsWaiting := false;
        for _, event := range events {
                if event.occurred {
-                       continue;
+                       continue
                }
 
                eventsWaiting = true;
@@ -343,7 +343,7 @@ func readyEvents(events []*Event) ([]*Event, os.Error) {
                names := make([]string, len(events));
                for _, event := range events {
                        if event.occurred {
-                               continue;
+                               continue
                        }
                        names[j] = event.name;
                }
index a1c6f28a72caa3a62379f367e09992c80c5ee5a2..359218c603eb2c8ac00b9dd5ff60b319533bffc5 100644 (file)
@@ -11,7 +11,7 @@ import (
 func TestNoop(t *testing.T) {
        err := Perform(0, nil);
        if err != nil {
-               t.Errorf("Got error: %s", err);
+               t.Errorf("Got error: %s", err)
        }
 }
 
@@ -24,7 +24,7 @@ func TestSimple(t *testing.T) {
 
        err := Perform(0, []*Event{a, b});
        if err != nil {
-               t.Errorf("Got error: %s", err);
+               t.Errorf("Got error: %s", err)
        }
 }
 
@@ -37,9 +37,9 @@ func TestFail(t *testing.T) {
 
        err := Perform(0, []*Event{a, b});
        if err == nil {
-               t.Errorf("Failed to get expected error");
+               t.Errorf("Failed to get expected error")
        } else if _, ok := err.(ReceivedUnexpected); !ok {
-               t.Errorf("Error returned was of the wrong type: %s", err);
+               t.Errorf("Error returned was of the wrong type: %s", err)
        }
 }
 
@@ -51,13 +51,13 @@ func TestClose(t *testing.T) {
 
        err := Perform(0, []*Event{a, b});
        if err != nil {
-               t.Errorf("Got error: %s", err);
+               t.Errorf("Got error: %s", err)
        }
 }
 
 func matchOne(v interface{}) bool {
        if i, ok := v.(int); ok && i == 1 {
-               return true;
+               return true
        }
        return false;
 }
@@ -70,6 +70,6 @@ func TestRecvMatch(t *testing.T) {
 
        err := Perform(0, []*Event{a, b});
        if err != nil {
-               t.Errorf("Got error: %s", err);
+               t.Errorf("Got error: %s", err)
        }
 }
index b04e8d40cc1fce00b5aa020a310840945c8db925..62c79e0b323468dc5fb449939bb67dac6f55acb0 100644 (file)
@@ -32,7 +32,7 @@ func tabify(s string) string {
        }
        for i := 0; i < n-1; i++ {      // -1 to avoid final newline
                if s[i] == '\n' {
-                       return s[0 : i+1]+"\t"+tabify(s[i+1 : n]);
+                       return s[0 : i+1]+"\t"+tabify(s[i+1 : n])
                }
        }
        return s;
@@ -67,7 +67,7 @@ func (t *T) Log(args ...)     { t.errors += "\t"+tabify(fmt.Sprintln(args)) }
 // Log formats its arguments according to the format, analogous to Printf(),
 // and records the text in the error log.
 func (t *T) Logf(format string, args ...) {
-       t.errors += "\t"+tabify(fmt.Sprintf(format, args));
+       t.errors += "\t"+tabify(fmt.Sprintf(format, args))
 }
 
 // Error is equivalent to Log() followed by Fail().
@@ -112,7 +112,7 @@ func Main(tests []Test) {
        flag.Parse();
        ok := true;
        if len(tests) == 0 {
-               println("testing: warning: no tests to run");
+               println("testing: warning: no tests to run")
        }
        re, err := CompileRegexp(*match);
        if err != "" {
@@ -121,10 +121,10 @@ func Main(tests []Test) {
        }
        for i := 0; i < len(tests); i++ {
                if !re.MatchString(tests[i].Name) {
-                       continue;
+                       continue
                }
                if *chatty {
-                       println("=== RUN ", tests[i].Name);
+                       println("=== RUN ", tests[i].Name)
                }
                t := new(T);
                t.ch = make(chan *T);
index 771fc9f7e580d78170c0f0b9ffe485cdcc51dc53..ec526be2ab1edfec1c06c01dff9d16441659e415 100644 (file)
@@ -40,17 +40,17 @@ func (t *Ticker) ticker(c chan<- int64) {
                // if c <- now took too long, skip ahead
                if when < now {
                        // one big step
-                       when += (now-when) / t.ns * t.ns;
+                       when += (now-when) / t.ns * t.ns
                }
                for when <= now {
                        // little steps until when > now
-                       when += t.ns;
+                       when += t.ns
                }
 
                Sleep(when-now);
                now = Nanoseconds();
                if t.shutdown {
-                       return;
+                       return
                }
                c <- now;
        }
@@ -60,7 +60,7 @@ func (t *Ticker) ticker(c chan<- int64) {
 // channel only.  Useful for clients that have no need to shut down the ticker.
 func Tick(ns int64) <-chan int64 {
        if ns <= 0 {
-               return nil;
+               return nil
        }
        return NewTicker(ns).C;
 }
@@ -70,7 +70,7 @@ func Tick(ns int64) <-chan int64 {
 // intervals to make up for pauses in delivery of the ticks.
 func NewTicker(ns int64) *Ticker {
        if ns <= 0 {
-               return nil;
+               return nil
        }
        c := make(chan int64);
        t := &Ticker{c, ns, false};
index 5694a760905c386004f222d9a2a45557e26dde02..124c13a531a2a40d99f22d14bced8194d59d8c73 100644 (file)
@@ -17,7 +17,7 @@ func TestTicker(t *testing.T) {
        ticker := NewTicker(Delta);
        t0 := Nanoseconds();
        for i := 0; i < Count; i++ {
-               <-ticker.C;
+               <-ticker.C
        }
        ticker.Stop();
        t1 := Nanoseconds();
@@ -25,12 +25,12 @@ func TestTicker(t *testing.T) {
        target := int64(Delta*Count);
        slop := target*2/10;
        if ns < target-slop || ns > target+slop {
-               t.Fatalf("%d ticks of %g ns took %g ns, expected %g", Count, float64(Delta), float64(ns), float64(target));
+               t.Fatalf("%d ticks of %g ns took %g ns, expected %g", Count, float64(Delta), float64(ns), float64(target))
        }
        // Now test that the ticker stopped
        Sleep(2*Delta);
        _, received := <-ticker.C;
        if received {
-               t.Fatalf("Ticker did not shut down");
+               t.Fatalf("Ticker did not shut down")
        }
 }
index 72cd348221aca2650f254481885f2f1bf0c7b136..ea1941c1383885f390c6efd30af7881b31bf9a5e 100644 (file)
@@ -15,7 +15,7 @@ import (
 func Seconds() int64 {
        sec, _, err := os.Time();
        if err != nil {
-               panic("time: os.Time: ", err.String());
+               panic("time: os.Time: ", err.String())
        }
        return sec;
 }
@@ -25,7 +25,7 @@ func Seconds() int64 {
 func Nanoseconds() int64 {
        sec, nsec, err := os.Time();
        if err != nil {
-               panic("time: os.Time: ", err.String());
+               panic("time: os.Time: ", err.String())
        }
        return sec*1e9 + nsec;
 }
@@ -56,7 +56,7 @@ var leapyear = []int{31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}
 
 func months(year int64) []int {
        if year%4 == 0 && (year%100 != 0 || year%400 == 0) {
-               return leapyear;
+               return leapyear
        }
        return nonleapyear;
 }
@@ -90,7 +90,7 @@ func SecondsToUTC(sec int64) *Time {
        // Day 0 = January 1, 1970 was a Thursday
        t.Weekday = int((day+Thursday)%7);
        if t.Weekday < 0 {
-               t.Weekday += 7;
+               t.Weekday += 7
        }
 
        // Change day from 0 = 1970 to 0 = 2001,
@@ -135,7 +135,7 @@ func SecondsToUTC(sec int64) *Time {
        var m int;
        yday := int(day);
        for m = 0; m < 12 && yday >= months[m]; m++ {
-               yday -= months[m];
+               yday -= months[m]
        }
        t.Month = m+1;
        t.Day = yday+1;
@@ -199,7 +199,7 @@ func (t *Time) Seconds() int64 {
        // Add in days this year.
        months := months(t.Year);
        for m := 0; m < t.Month - 1; m++ {
-               day += int64(months[m]);
+               day += int64(months[m])
        }
        day += int64(t.Day - 1);
 
@@ -257,13 +257,13 @@ var shortMonthNames = []string{
 
 func copy(dst []byte, s string) {
        for i := 0; i < len(s); i++ {
-               dst[i] = s[i];
+               dst[i] = s[i]
        }
 }
 
 func decimal(dst []byte, n int) {
        if n < 0 {
-               n = 0;
+               n = 0
        }
        for i := len(dst)-1; i >= 0; i-- {
                dst[i] = byte(n%10 + '0');
@@ -288,17 +288,17 @@ func format(t *Time, fmt string) string {
                        i++;
                        switch fmt[i] {
                        case 'A':       // %A full weekday name
-                               bp = addString(buf, bp, longDayNames[t.Weekday]);
+                               bp = addString(buf, bp, longDayNames[t.Weekday])
                        case 'a':       // %a abbreviated weekday name
-                               bp = addString(buf, bp, shortDayNames[t.Weekday]);
+                               bp = addString(buf, bp, shortDayNames[t.Weekday])
                        case 'b':       // %b abbreviated month name
-                               bp = addString(buf, bp, shortMonthNames[t.Month]);
+                               bp = addString(buf, bp, shortMonthNames[t.Month])
                        case 'd':       // %d day of month (01-31)
                                decimal(buf[bp : bp+2], t.Day);
                                bp += 2;
                        case 'e':       // %e day of month ( 1-31)
                                if t.Day >= 10 {
-                                       decimal(buf[bp : bp+2], t.Day);
+                                       decimal(buf[bp : bp+2], t.Day)
                                } else {
                                        buf[bp] = ' ';
                                        buf[bp+1] = byte(t.Day + '0');
@@ -320,7 +320,7 @@ func format(t *Time, fmt string) string {
                                decimal(buf[bp : bp+2], int(t.Year % 100));
                                bp += 2;
                        case 'Z':
-                               bp = addString(buf, bp, t.Zone);
+                               bp = addString(buf, bp, t.Zone)
                        default:
                                buf[bp] = '%';
                                buf[bp+1] = fmt[i];
index 5d9d7c27ebb51336edf8a4204e3e5b001be98278..93ddcee348219c6ebb67487c52f5896a108489ca 100644 (file)
@@ -14,7 +14,7 @@ func init() {
        // Force US Pacific time for daylight-savings
        // tests below (localtests).  Needs to be set
        // before the first call into the time library.
-       os.Setenv("TZ", "US/Pacific");
+       os.Setenv("TZ", "US/Pacific")
 }
 
 type TimeTest struct {
@@ -46,7 +46,7 @@ func same(t, u *Time) bool {
                t.Second == u.Second &&
                t.Weekday == u.Weekday &&
                t.ZoneOffset == u.ZoneOffset &&
-               t.Zone == u.Zone;
+               t.Zone == u.Zone
 }
 
 func TestSecondsToUTC(t *testing.T) {
@@ -56,7 +56,7 @@ func TestSecondsToUTC(t *testing.T) {
                tm := SecondsToUTC(sec);
                newsec := tm.Seconds();
                if newsec != sec {
-                       t.Errorf("SecondsToUTC(%d).Seconds() = %d", sec, newsec);
+                       t.Errorf("SecondsToUTC(%d).Seconds() = %d", sec, newsec)
                }
                if !same(tm, golden) {
                        t.Errorf("SecondsToUTC(%d):", sec);
@@ -73,7 +73,7 @@ func TestSecondsToLocalTime(t *testing.T) {
                tm := SecondsToLocalTime(sec);
                newsec := tm.Seconds();
                if newsec != sec {
-                       t.Errorf("SecondsToLocalTime(%d).Seconds() = %d", sec, newsec);
+                       t.Errorf("SecondsToLocalTime(%d).Seconds() = %d", sec, newsec)
                }
                if !same(tm, golden) {
                        t.Errorf("SecondsToLocalTime(%d):", sec);
index 86f185dada01636d58bfb4823c462fa3c12e36af..8e66e0ca66f59b4ebb5c02d2c3a81f485da9833c 100644 (file)
@@ -61,7 +61,7 @@ func (d *data) byte() (n byte, ok bool) {
 func byteString(p []byte) string {
        for i := 0; i < len(p); i++ {
                if p[i] == 0 {
-                       return string(p[0:i]);
+                       return string(p[0:i])
                }
        }
        return string(p);
@@ -85,13 +85,13 @@ func parseinfo(bytes []byte) (zt []zonetime, ok bool) {
 
        // 4-byte magic "TZif"
        if magic := d.read(4); string(magic) != "TZif" {
-               return nil, false;
+               return nil, false
        }
 
        // 1-byte version, then 15 bytes of padding
        var p []byte;
        if p = d.read(16); len(p) != 16 || p[0] != 0 && p[0] != '2' {
-               return nil, false;
+               return nil, false
        }
 
        // six big-endian 32-bit integers:
@@ -113,7 +113,7 @@ func parseinfo(bytes []byte) (zt []zonetime, ok bool) {
        for i := 0; i < 6; i++ {
                nn, ok := d.big4();
                if !ok {
-                       return nil, false;
+                       return nil, false
                }
                n[i] = int(nn);
        }
@@ -142,7 +142,7 @@ func parseinfo(bytes []byte) (zt []zonetime, ok bool) {
        isutc := d.read(n[NUTCLocal]);
 
        if d.error {    // ran out of data
-               return nil, false;
+               return nil, false
        }
 
        // If version == 2, the entire file repeats, this time using
@@ -157,16 +157,16 @@ func parseinfo(bytes []byte) (zt []zonetime, ok bool) {
                var ok bool;
                var n uint32;
                if n, ok = zonedata.big4(); !ok {
-                       return nil, false;
+                       return nil, false
                }
                z[i].utcoff = int(n);
                var b byte;
                if b, ok = zonedata.byte(); !ok {
-                       return nil, false;
+                       return nil, false
                }
                z[i].isdst = b != 0;
                if b, ok = zonedata.byte(); !ok || int(b) >= len(abbrev) {
-                       return nil, false;
+                       return nil, false
                }
                z[i].name = byteString(abbrev[b:len(abbrev)]);
        }
@@ -177,18 +177,18 @@ func parseinfo(bytes []byte) (zt []zonetime, ok bool) {
                var ok bool;
                var n uint32;
                if n, ok = txtimes.big4(); !ok {
-                       return nil, false;
+                       return nil, false
                }
                zt[i].time = int32(n);
                if int(txzones[i]) >= len(z) {
-                       return nil, false;
+                       return nil, false
                }
                zt[i].zone = &z[txzones[i]];
                if i < len(isstd) {
-                       zt[i].isstd = isstd[i] != 0;
+                       zt[i].isstd = isstd[i] != 0
                }
                if i < len(isutc) {
-                       zt[i].isutc = isutc[i] != 0;
+                       zt[i].isutc = isutc[i] != 0
                }
        }
        return zt, true;
@@ -197,7 +197,7 @@ func parseinfo(bytes []byte) (zt []zonetime, ok bool) {
 func readinfofile(name string) ([]zonetime, bool) {
        buf, err := io.ReadFile(name);
        if err != nil {
-               return nil, false;
+               return nil, false
        }
        return parseinfo(buf);
 }
@@ -213,9 +213,9 @@ func setupZone() {
        tz, err := os.Getenverror("TZ");
        switch {
        case err == os.ENOENV:
-               zones, _ = readinfofile("/etc/localtime");
+               zones, _ = readinfofile("/etc/localtime")
        case len(tz) > 0:
-               zones, _ = readinfofile(zoneDir+tz);
+               zones, _ = readinfofile(zoneDir+tz)
        case len(tz) == 0:
                // do nothing: use UTC
        }
@@ -224,7 +224,7 @@ func setupZone() {
 func lookupTimezone(sec int64) (zone string, offset int) {
        once.Do(setupZone);
        if len(zones) == 0 {
-               return "UTC", 0;
+               return "UTC", 0
        }
 
        // Binary search for entry with largest time <= sec
@@ -232,9 +232,9 @@ func lookupTimezone(sec int64) (zone string, offset int) {
        for len(tz) > 1 {
                m := len(tz)/2;
                if sec < int64(tz[m].time) {
-                       tz = tz[0:m];
+                       tz = tz[0:m]
                } else {
-                       tz = tz[m:len(tz)];
+                       tz = tz[m:len(tz)]
                }
        }
        z := tz[0].zone;
index 5518c06df695d88f8cd0ba0a999cfe9d83fe52ea..b12ada2d63ca9f3954272bdf8e452148de19176a 100644 (file)
@@ -7,7 +7,7 @@ package unicode
 // IsDigit reports whether the rune is a decimal digit.
 func IsDigit(rune int) bool {
        if rune < 0x100 {       // quick ASCII (Latin-1, really) check
-               return '0' <= rune && rune <= '9';
+               return '0' <= rune && rune <= '9'
        }
        return Is(Digit, rune);
 }
index 3d46af548ce68710cd2f3c6f56a48b6f9e7fa889..3031eafc8768141d08f97a32a63127c96f15ca5e 100644 (file)
@@ -106,12 +106,12 @@ var testLetter = []int{
 func TestDigit(t *testing.T) {
        for _, r := range testDigit {
                if !IsDigit(r) {
-                       t.Errorf("IsDigit(U+%04X) = false, want true\n", r);
+                       t.Errorf("IsDigit(U+%04X) = false, want true\n", r)
                }
        }
        for _, r := range testLetter {
                if IsDigit(r) {
-                       t.Errorf("IsDigit(U+%04X) = true, want false\n", r);
+                       t.Errorf("IsDigit(U+%04X) = true, want false\n", r)
                }
        }
 }
@@ -120,7 +120,7 @@ func TestDigit(t *testing.T) {
 func TestDigitOptimization(t *testing.T) {
        for i := 0; i < 0x100; i++ {
                if Is(Digit, i) != IsDigit(i) {
-                       t.Errorf("IsDigit(U+%04X) disagrees with Is(Digit)", i);
+                       t.Errorf("IsDigit(U+%04X) disagrees with Is(Digit)", i)
                }
        }
 }
index 571b3b4548d003ba3d71d04d4f607cb7773ea6b4..f44ce56398a290b2c2e47cfe9d3748a52a7d6724 100644 (file)
@@ -57,10 +57,10 @@ func Is(ranges []Range, rune int) bool {
        if rune < 0x100 {
                for _, r := range ranges {
                        if rune > r.Hi {
-                               continue;
+                               continue
                        }
                        if rune < r.Lo {
-                               return false;
+                               return false
                        }
                        return (rune - r.Lo) % r.Stride == 0;
                }
@@ -74,12 +74,12 @@ func Is(ranges []Range, rune int) bool {
                m := lo + (hi-lo)/2;
                r := ranges[m];
                if r.Lo <= rune && rune <= r.Hi {
-                       return (rune - r.Lo) % r.Stride == 0;
+                       return (rune - r.Lo) % r.Stride == 0
                }
                if rune < r.Lo {
-                       hi = m;
+                       hi = m
                } else {
-                       lo = m+1;
+                       lo = m+1
                }
        }
        return false;
@@ -88,7 +88,7 @@ func Is(ranges []Range, rune int) bool {
 // IsUpper reports whether the rune is an upper case letter.
 func IsUpper(rune int) bool {
        if rune < 0x80 {        // quick ASCII check
-               return 'A' <= rune && rune <= 'Z';
+               return 'A' <= rune && rune <= 'Z'
        }
        return Is(Upper, rune);
 }
@@ -96,7 +96,7 @@ func IsUpper(rune int) bool {
 // IsLower reports whether the rune is a lower case letter.
 func IsLower(rune int) bool {
        if rune < 0x80 {        // quick ASCII check
-               return 'a' <= rune && rune <= 'z';
+               return 'a' <= rune && rune <= 'z'
        }
        return Is(Lower, rune);
 }
@@ -104,7 +104,7 @@ func IsLower(rune int) bool {
 // IsTitle reports whether the rune is a title case letter.
 func IsTitle(rune int) bool {
        if rune < 0x80 {        // quick ASCII check
-               return false;
+               return false
        }
        return Is(Title, rune);
 }
@@ -123,7 +123,7 @@ func IsSpace(rune int) bool {
        if rune <= 0xFF {       // quick Latin-1 check
                switch rune {
                case '\t', '\n', '\v', '\f', '\r', ' ', 0x85, 0xA0:
-                       return true;
+                       return true
                }
                return false;
        }
@@ -133,7 +133,7 @@ func IsSpace(rune int) bool {
 // To maps the rune to the specified case: UpperCase, LowerCase, or TitleCase
 func To(_case int, rune int) int {
        if _case < 0 || MaxCase <= _case {
-               return ReplacementChar; // as reasonable an error as any
+               return ReplacementChar  // as reasonable an error as any
        }
        // binary search over ranges
        lo := 0;
@@ -154,14 +154,14 @@ func To(_case int, rune int) int {
                                // bit in the sequence offset.
                                // The constants UpperCase and TitleCase are even while LowerCase
                                // is odd so we take the low bit from _case.
-                               return r.Lo + ((rune - r.Lo)&^1 | _case&1);
+                               return r.Lo + ((rune - r.Lo)&^1 | _case&1)
                        }
                        return rune+delta;
                }
                if rune < r.Lo {
-                       hi = m;
+                       hi = m
                } else {
-                       lo = m+1;
+                       lo = m+1
                }
        }
        return rune;
@@ -171,7 +171,7 @@ func To(_case int, rune int) int {
 func ToUpper(rune int) int {
        if rune < 0x80 {        // quick ASCII check
                if 'a' <= rune && rune <= 'z' {
-                       rune -= 'a'-'A';
+                       rune -= 'a'-'A'
                }
                return rune;
        }
@@ -182,7 +182,7 @@ func ToUpper(rune int) int {
 func ToLower(rune int) int {
        if rune < 0x80 {        // quick ASCII check
                if 'A' <= rune && rune <= 'Z' {
-                       rune += 'a'-'A';
+                       rune += 'a'-'A'
                }
                return rune;
        }
@@ -193,7 +193,7 @@ func ToLower(rune int) int {
 func ToTitle(rune int) int {
        if rune < 0x80 {        // quick ASCII check
                if 'a' <= rune && rune <= 'z' { // title case is upper case for ASCII
-                       rune -= 'a'-'A';
+                       rune -= 'a'-'A'
                }
                return rune;
        }
index f513681de77312545af81982470276bf7e9a4b8c..3b10caedd1ad9e306337702b6cfd0aca10e6d5cd 100644 (file)
@@ -216,17 +216,17 @@ var caseTest = []caseT{
 func TestIsLetter(t *testing.T) {
        for _, r := range upperTest {
                if !IsLetter(r) {
-                       t.Errorf("IsLetter(U+%04X) = false, want true\n", r);
+                       t.Errorf("IsLetter(U+%04X) = false, want true\n", r)
                }
        }
        for _, r := range letterTest {
                if !IsLetter(r) {
-                       t.Errorf("IsLetter(U+%04X) = false, want true\n", r);
+                       t.Errorf("IsLetter(U+%04X) = false, want true\n", r)
                }
        }
        for _, r := range notletterTest {
                if IsLetter(r) {
-                       t.Errorf("IsLetter(U+%04X) = true, want false\n", r);
+                       t.Errorf("IsLetter(U+%04X) = true, want false\n", r)
                }
        }
 }
@@ -234,17 +234,17 @@ func TestIsLetter(t *testing.T) {
 func TestIsUpper(t *testing.T) {
        for _, r := range upperTest {
                if !IsUpper(r) {
-                       t.Errorf("IsUpper(U+%04X) = false, want true\n", r);
+                       t.Errorf("IsUpper(U+%04X) = false, want true\n", r)
                }
        }
        for _, r := range notupperTest {
                if IsUpper(r) {
-                       t.Errorf("IsUpper(U+%04X) = true, want false\n", r);
+                       t.Errorf("IsUpper(U+%04X) = true, want false\n", r)
                }
        }
        for _, r := range notletterTest {
                if IsUpper(r) {
-                       t.Errorf("IsUpper(U+%04X) = true, want false\n", r);
+                       t.Errorf("IsUpper(U+%04X) = true, want false\n", r)
                }
        }
 }
@@ -252,11 +252,11 @@ func TestIsUpper(t *testing.T) {
 func caseString(c int) string {
        switch c {
        case UpperCase:
-               return "UpperCase";
+               return "UpperCase"
        case LowerCase:
-               return "LowerCase";
+               return "LowerCase"
        case TitleCase:
-               return "TitleCase";
+               return "TitleCase"
        }
        return "ErrorCase";
 }
@@ -265,7 +265,7 @@ func TestTo(t *testing.T) {
        for _, c := range caseTest {
                r := To(c.cas, c.in);
                if c.out != r {
-                       t.Errorf("To(U+%04X, %s) = U+%04X want U+%04X\n", c.in, caseString(c.cas), r, c.out);
+                       t.Errorf("To(U+%04X, %s) = U+%04X want U+%04X\n", c.in, caseString(c.cas), r, c.out)
                }
        }
 }
@@ -273,11 +273,11 @@ func TestTo(t *testing.T) {
 func TestToUpperCase(t *testing.T) {
        for _, c := range caseTest {
                if c.cas != UpperCase {
-                       continue;
+                       continue
                }
                r := ToUpper(c.in);
                if c.out != r {
-                       t.Errorf("ToUpper(U+%04X) = U+%04X want U+%04X\n", c.in, r, c.out);
+                       t.Errorf("ToUpper(U+%04X) = U+%04X want U+%04X\n", c.in, r, c.out)
                }
        }
 }
@@ -285,11 +285,11 @@ func TestToUpperCase(t *testing.T) {
 func TestToLowerCase(t *testing.T) {
        for _, c := range caseTest {
                if c.cas != LowerCase {
-                       continue;
+                       continue
                }
                r := ToLower(c.in);
                if c.out != r {
-                       t.Errorf("ToLower(U+%04X) = U+%04X want U+%04X\n", c.in, r, c.out);
+                       t.Errorf("ToLower(U+%04X) = U+%04X want U+%04X\n", c.in, r, c.out)
                }
        }
 }
@@ -297,11 +297,11 @@ func TestToLowerCase(t *testing.T) {
 func TestToTitleCase(t *testing.T) {
        for _, c := range caseTest {
                if c.cas != TitleCase {
-                       continue;
+                       continue
                }
                r := ToTitle(c.in);
                if c.out != r {
-                       t.Errorf("ToTitle(U+%04X) = U+%04X want U+%04X\n", c.in, r, c.out);
+                       t.Errorf("ToTitle(U+%04X) = U+%04X want U+%04X\n", c.in, r, c.out)
                }
        }
 }
@@ -309,12 +309,12 @@ func TestToTitleCase(t *testing.T) {
 func TestIsSpace(t *testing.T) {
        for _, c := range spaceTest {
                if !IsSpace(c) {
-                       t.Errorf("IsSpace(U+%04X) = false; want true", c);
+                       t.Errorf("IsSpace(U+%04X) = false; want true", c)
                }
        }
        for _, c := range letterTest {
                if IsSpace(c) {
-                       t.Errorf("IsSpace(U+%04X) = true; want false", c);
+                       t.Errorf("IsSpace(U+%04X) = true; want false", c)
                }
        }
 }
@@ -324,28 +324,28 @@ func TestIsSpace(t *testing.T) {
 func TestLetterOptimizations(t *testing.T) {
        for i := 0; i < 0x100; i++ {
                if Is(Letter, i) != IsLetter(i) {
-                       t.Errorf("IsLetter(U+%04X) disagrees with Is(Letter)", i);
+                       t.Errorf("IsLetter(U+%04X) disagrees with Is(Letter)", i)
                }
                if Is(Upper, i) != IsUpper(i) {
-                       t.Errorf("IsUpper(U+%04X) disagrees with Is(Upper)", i);
+                       t.Errorf("IsUpper(U+%04X) disagrees with Is(Upper)", i)
                }
                if Is(Lower, i) != IsLower(i) {
-                       t.Errorf("IsLower(U+%04X) disagrees with Is(Lower)", i);
+                       t.Errorf("IsLower(U+%04X) disagrees with Is(Lower)", i)
                }
                if Is(Title, i) != IsTitle(i) {
-                       t.Errorf("IsTitle(U+%04X) disagrees with Is(Title)", i);
+                       t.Errorf("IsTitle(U+%04X) disagrees with Is(Title)", i)
                }
                if Is(White_Space, i) != IsSpace(i) {
-                       t.Errorf("IsSpace(U+%04X) disagrees with Is(White_Space)", i);
+                       t.Errorf("IsSpace(U+%04X) disagrees with Is(White_Space)", i)
                }
                if To(UpperCase, i) != ToUpper(i) {
-                       t.Errorf("ToUpper(U+%04X) disagrees with To(Upper)", i);
+                       t.Errorf("ToUpper(U+%04X) disagrees with To(Upper)", i)
                }
                if To(LowerCase, i) != ToLower(i) {
-                       t.Errorf("ToLower(U+%04X) disagrees with To(Lower)", i);
+                       t.Errorf("ToLower(U+%04X) disagrees with To(Lower)", i)
                }
                if To(TitleCase, i) != ToTitle(i) {
-                       t.Errorf("ToTitle(U+%04X) disagrees with To(Title)", i);
+                       t.Errorf("ToTitle(U+%04X) disagrees with To(Title)", i)
                }
        }
 }
index fddbfd7ea886594e122ace652d069174bc2f6654..70010ca960f49e367441bea4adeb50385fa2058f 100644 (file)
@@ -141,23 +141,23 @@ const (
 func parseCategory(line string) (state State) {
        field := strings.Split(line, ";", -1);
        if len(field) != NumField {
-               die.Logf("%5s: %d fields (expected %d)\n", line, len(field), NumField);
+               die.Logf("%5s: %d fields (expected %d)\n", line, len(field), NumField)
        }
        point, err := strconv.Btoui64(field[FCodePoint], 16);
        if err != nil {
-               die.Log("%.5s...:", err);
+               die.Log("%.5s...:", err)
        }
        lastChar = uint32(point);
        if point == 0 {
-               return; // not interesting and we use 0 as unset
+               return  // not interesting and we use 0 as unset
        }
        if point > MaxChar {
-               return;
+               return
        }
        char := &chars[point];
        char.field = field;
        if char.codePoint != 0 {
-               die.Logf("point U+%04x reused\n");
+               die.Logf("point U+%04x reused\n")
        }
        char.codePoint = lastChar;
        char.category = field[FGeneralCategory];
@@ -167,22 +167,22 @@ func parseCategory(line string) (state State) {
                // Decimal digit
                _, err := strconv.Atoi(field[FNumericValue]);
                if err != nil {
-                       die.Log("U+%04x: bad numeric field: %s", point, err);
+                       die.Log("U+%04x: bad numeric field: %s", point, err)
                }
        case "Lu":
-               char.letter(field[FCodePoint], field[FSimpleLowercaseMapping], field[FSimpleTitlecaseMapping]);
+               char.letter(field[FCodePoint], field[FSimpleLowercaseMapping], field[FSimpleTitlecaseMapping])
        case "Ll":
-               char.letter(field[FSimpleUppercaseMapping], field[FCodePoint], field[FSimpleTitlecaseMapping]);
+               char.letter(field[FSimpleUppercaseMapping], field[FCodePoint], field[FSimpleTitlecaseMapping])
        case "Lt":
-               char.letter(field[FSimpleUppercaseMapping], field[FSimpleLowercaseMapping], field[FCodePoint]);
+               char.letter(field[FSimpleUppercaseMapping], field[FSimpleLowercaseMapping], field[FCodePoint])
        case "Lm", "Lo":
-               char.letter(field[FSimpleUppercaseMapping], field[FSimpleLowercaseMapping], field[FSimpleTitlecaseMapping]);
+               char.letter(field[FSimpleUppercaseMapping], field[FSimpleLowercaseMapping], field[FSimpleTitlecaseMapping])
        }
        switch {
        case strings.Index(field[FName], ", First>") > 0:
-               state = SFirst;
+               state = SFirst
        case strings.Index(field[FName], ", Last>") > 0:
-               state = SLast;
+               state = SLast
        }
        return;
 }
@@ -190,7 +190,7 @@ func parseCategory(line string) (state State) {
 func (char *Char) dump(s string) {
        fmt.Print(s, " ");
        for i := 0; i < len(char.field); i++ {
-               fmt.Printf("%s:%q ", fieldName[i], char.field[i]);
+               fmt.Printf("%s:%q ", fieldName[i], char.field[i])
        }
        fmt.Print("\n");
 }
@@ -203,7 +203,7 @@ func (char *Char) letter(u, l, t string) {
 
 func (char *Char) letterValue(s string, cas string) int {
        if s == "" {
-               return 0;
+               return 0
        }
        v, err := strconv.Btoui64(s, 16);
        if err != nil {
@@ -239,7 +239,7 @@ func version() string {
        fields := strings.Split(*url, "/", 0);
        for _, f := range fields {
                if len(f) > 0 && '0' <= f[0] && f[0] <= '9' {
-                       return f;
+                       return f
                }
        }
        die.Log("unknown version");
@@ -249,21 +249,21 @@ func version() string {
 func letterOp(code int) bool {
        switch chars[code].category {
        case "Lu", "Ll", "Lt", "Lm", "Lo":
-               return true;
+               return true
        }
        return false;
 }
 
 func loadChars() {
        if *dataURL == "" {
-               flag.Set("data", *url + "UnicodeData.txt");
+               flag.Set("data", *url + "UnicodeData.txt")
        }
        resp, _, err := http.Get(*dataURL);
        if err != nil {
-               die.Log(err);
+               die.Log(err)
        }
        if resp.StatusCode != 200 {
-               die.Log("bad GET status for UnicodeData.txt", resp.Status);
+               die.Log("bad GET status for UnicodeData.txt", resp.Status)
        }
        input := bufio.NewReader(resp.Body);
        var first uint32 = 0;
@@ -271,23 +271,23 @@ func loadChars() {
                line, err := input.ReadString('\n');
                if err != nil {
                        if err == os.EOF {
-                               break;
+                               break
                        }
                        die.Log(err);
                }
                switch parseCategory(line[0 : len(line)-1]) {
                case SNormal:
                        if first != 0 {
-                               die.Logf("bad state normal at U+%04X", lastChar);
+                               die.Logf("bad state normal at U+%04X", lastChar)
                        }
                case SFirst:
                        if first != 0 {
-                               die.Logf("bad state first at U+%04X", lastChar);
+                               die.Logf("bad state first at U+%04X", lastChar)
                        }
                        first = lastChar;
                case SLast:
                        if first == 0 {
-                               die.Logf("bad state last at U+%04X", lastChar);
+                               die.Logf("bad state last at U+%04X", lastChar)
                        }
                        for i := first+1; i <= lastChar; i++ {
                                chars[i] = chars[first];
@@ -301,12 +301,12 @@ func loadChars() {
 
 func printCategories() {
        if *tablelist == "" {
-               return;
+               return
        }
        // Find out which categories to dump
        list := strings.Split(*tablelist, ",", 0);
        if *tablelist == "all" {
-               list = allCategories();
+               list = allCategories()
        }
        if *test {
                fullCategoryTest(list);
@@ -327,7 +327,7 @@ func printCategories() {
                fmt.Println("// Categories is the set of Unicode data tables.");
                fmt.Println("var Categories = map[string] []Range {");
                for k, _ := range category {
-                       fmt.Printf("\t%q: %s,\n", k, k);
+                       fmt.Printf("\t%q: %s,\n", k, k)
                }
                fmt.Printf("}\n\n");
        }
@@ -336,7 +336,7 @@ func printCategories() {
        ndecl := 0;
        for _, name := range list {
                if _, ok := category[name]; !ok {
-                       die.Log("unknown category", name);
+                       die.Log("unknown category", name)
                }
                // We generate an UpperCase name to serve as concise documentation and an _UnderScored
                // name to store the data.  This stops godoc dumping all the tables but keeps them
@@ -345,20 +345,20 @@ func printCategories() {
                varDecl := "";
                switch name {
                case "letter":
-                       varDecl = "\tLetter = letter;   // Letter is the set of Unicode letters.\n";
+                       varDecl = "\tLetter = letter;   // Letter is the set of Unicode letters.\n"
                case "Nd":
-                       varDecl = "\tDigit = _Nd;       // Digit is the set of Unicode characters with the \"decimal digit\" property.\n";
+                       varDecl = "\tDigit = _Nd;       // Digit is the set of Unicode characters with the \"decimal digit\" property.\n"
                case "Lu":
-                       varDecl = "\tUpper = _Lu;       // Upper is the set of Unicode upper case letters.\n";
+                       varDecl = "\tUpper = _Lu;       // Upper is the set of Unicode upper case letters.\n"
                case "Ll":
-                       varDecl = "\tLower = _Ll;       // Lower is the set of Unicode lower case letters.\n";
+                       varDecl = "\tLower = _Ll;       // Lower is the set of Unicode lower case letters.\n"
                case "Lt":
-                       varDecl = "\tTitle = _Lt;       // Title is the set of Unicode title case letters.\n";
+                       varDecl = "\tTitle = _Lt;       // Title is the set of Unicode title case letters.\n"
                }
                if name != "letter" {
                        varDecl += fmt.Sprintf(
                                "\t%s = _%s;    // %s is the set of Unicode characters in category %s.\n",
-                               name, name, name, name);
+                               name, name, name, name)
                }
                decl[ndecl] = varDecl;
                ndecl++;
@@ -375,7 +375,7 @@ func printCategories() {
        decl.Sort();
        fmt.Println("var (");
        for _, d := range decl {
-               fmt.Print(d);
+               fmt.Print(d)
        }
        fmt.Println(")\n");
 }
@@ -391,11 +391,11 @@ func dumpRange(header string, inCategory Op) {
        for {
                // look for start of range
                for next < len(chars) && !inCategory(next) {
-                       next++;
+                       next++
                }
                if next >= len(chars) {
                        // no characters remain
-                       break;
+                       break
                }
 
                // start of range
@@ -406,7 +406,7 @@ func dumpRange(header string, inCategory Op) {
                next++;
                // look for another character to set the stride
                for next < len(chars) && !inCategory(next) {
-                       next++;
+                       next++
                }
                if next >= len(chars) {
                        // no more characters
@@ -420,11 +420,11 @@ func dumpRange(header string, inCategory Op) {
                        if inCategory(i) == (((i-lo)%stride) == 0) {
                                // accept
                                if inCategory(i) {
-                                       hi = i;
+                                       hi = i
                                }
                        } else {
                                // no more characters in this run
-                               break;
+                               break
                        }
                }
                fmt.Printf(format, lo, hi, stride);
@@ -437,19 +437,19 @@ func dumpRange(header string, inCategory Op) {
 func fullCategoryTest(list []string) {
        for _, name := range list {
                if _, ok := category[name]; !ok {
-                       die.Log("unknown category", name);
+                       die.Log("unknown category", name)
                }
                r, ok := unicode.Categories[name];
                if !ok {
-                       die.Log("unknown table", name);
+                       die.Log("unknown table", name)
                }
                if name == "letter" {
-                       verifyRange(name, letterOp, r);
+                       verifyRange(name, letterOp, r)
                } else {
                        verifyRange(
                                name,
                                func(code int) bool { return chars[code].category == name },
-                               r);
+                               r)
                }
        }
 }
@@ -459,7 +459,7 @@ func verifyRange(name string, inCategory Op, table []unicode.Range) {
                web := inCategory(i);
                pkg := unicode.Is(table, i);
                if web != pkg {
-                       fmt.Fprintf(os.Stderr, "%s: U+%04X: web=%t pkg=%t\n", name, i, web, pkg);
+                       fmt.Fprintf(os.Stderr, "%s: U+%04X: web=%t pkg=%t\n", name, i, web, pkg)
                }
        }
 }
@@ -467,29 +467,29 @@ func verifyRange(name string, inCategory Op, table []unicode.Range) {
 func parseScript(line string, scripts map[string][]Script) {
        comment := strings.Index(line, "#");
        if comment >= 0 {
-               line = line[0:comment];
+               line = line[0:comment]
        }
        line = strings.TrimSpace(line);
        if len(line) == 0 {
-               return;
+               return
        }
        field := strings.Split(line, ";", -1);
        if len(field) != 2 {
-               die.Logf("%s: %d fields (expected 2)\n", line, len(field));
+               die.Logf("%s: %d fields (expected 2)\n", line, len(field))
        }
        matches := scriptRe.MatchStrings(line);
        if len(matches) != 4 {
-               die.Logf("%s: %d matches (expected 3)\n", line, len(matches));
+               die.Logf("%s: %d matches (expected 3)\n", line, len(matches))
        }
        lo, err := strconv.Btoui64(matches[1], 16);
        if err != nil {
-               die.Log("%.5s...:", err);
+               die.Log("%.5s...:", err)
        }
        hi := lo;
        if len(matches[2]) > 2 {        // ignore leading ..
                hi, err = strconv.Btoui64(matches[2][2:len(matches[2])], 16);
                if err != nil {
-                       die.Log("%.5s...:", err);
+                       die.Log("%.5s...:", err)
                }
        }
        name := matches[3];
@@ -497,7 +497,7 @@ func parseScript(line string, scripts map[string][]Script) {
        if !ok || len(s) == cap(s) {
                ns := make([]Script, len(s), len(s)+100);
                for i, sc := range s {
-                       ns[i] = sc;
+                       ns[i] = sc
                }
                s = ns;
        }
@@ -512,7 +512,7 @@ func foldAdjacent(r []Script) []unicode.Range {
        j := 0;
        for i := 0; i < len(r); i++ {
                if j > 0 && int(r[i].lo) == s[j-1].Hi + 1 {
-                       s[j-1].Hi = int(r[i].hi);
+                       s[j-1].Hi = int(r[i].hi)
                } else {
                        s = s[0 : j+1];
                        s[j] = unicode.Range{int(r[i].lo), int(r[i].hi), 1};
@@ -525,16 +525,16 @@ func foldAdjacent(r []Script) []unicode.Range {
 func fullScriptTest(list []string, installed map[string][]unicode.Range, scripts map[string][]Script) {
        for _, name := range list {
                if _, ok := scripts[name]; !ok {
-                       die.Log("unknown script", name);
+                       die.Log("unknown script", name)
                }
                _, ok := installed[name];
                if !ok {
-                       die.Log("unknown table", name);
+                       die.Log("unknown table", name)
                }
                for _, script := range scripts[name] {
                        for r := script.lo; r <= script.hi; r++ {
                                if !unicode.Is(installed[name], int(r)) {
-                                       fmt.Fprintf(os.Stderr, "U+%04X: not in script %s\n", r, name);
+                                       fmt.Fprintf(os.Stderr, "U+%04X: not in script %s\n", r, name)
                                }
                        }
                }
@@ -556,22 +556,22 @@ func printScriptOrProperty(doProps bool) {
                installed = unicode.Properties;
        }
        if flaglist == "" {
-               return;
+               return
        }
        var err os.Error;
        resp, _, err := http.Get(*url + file);
        if err != nil {
-               die.Log(err);
+               die.Log(err)
        }
        if resp.StatusCode != 200 {
-               die.Log("bad GET status for ", file, ":", resp.Status);
+               die.Log("bad GET status for ", file, ":", resp.Status)
        }
        input := bufio.NewReader(resp.Body);
        for {
                line, err := input.ReadString('\n');
                if err != nil {
                        if err == os.EOF {
-                               break;
+                               break
                        }
                        die.Log(err);
                }
@@ -582,7 +582,7 @@ func printScriptOrProperty(doProps bool) {
        // Find out which scripts to dump
        list := strings.Split(flaglist, ",", 0);
        if flaglist == "all" {
-               list = all(table);
+               list = all(table)
        }
        if *test {
                fullScriptTest(list, installed, table);
@@ -605,7 +605,7 @@ func printScriptOrProperty(doProps bool) {
                        fmt.Println("var Scripts = map[string] []Range {");
                }
                for k, _ := range table {
-                       fmt.Printf("\t%q: %s,\n", k, k);
+                       fmt.Printf("\t%q: %s,\n", k, k)
                }
                fmt.Printf("}\n\n");
        }
@@ -616,24 +616,24 @@ func printScriptOrProperty(doProps bool) {
                if doProps {
                        decl[ndecl] = fmt.Sprintf(
                                "\t%s = _%s;\t// %s is the set of Unicode characters with property %s.\n",
-                               name, name, name, name);
+                               name, name, name, name)
                } else {
                        decl[ndecl] = fmt.Sprintf(
                                "\t%s = _%s;\t// %s is the set of Unicode characters in script %s.\n",
-                               name, name, name, name);
+                               name, name, name, name)
                }
                ndecl++;
                fmt.Printf("var _%s = []Range {\n", name);
                ranges := foldAdjacent(table[name]);
                for _, s := range ranges {
-                       fmt.Printf(format, s.Lo, s.Hi, s.Stride);
+                       fmt.Printf(format, s.Lo, s.Hi, s.Stride)
                }
                fmt.Printf("}\n\n");
        }
        decl.Sort();
        fmt.Println("var (");
        for _, d := range decl {
-               fmt.Print(d);
+               fmt.Print(d)
        }
        fmt.Println(")\n");
 }
@@ -657,23 +657,23 @@ type caseState struct {
 // Is d a continuation of the state of c?
 func (c *caseState) adjacent(d *caseState) bool {
        if d.point < c.point {
-               c, d = d, c;
+               c, d = d, c
        }
        switch {
        case d.point != c.point + 1:    // code points not adjacent (shouldn't happen)
-               return false;
+               return false
        case d._case != c._case:        // different cases
-               return c.upperLowerAdjacent(d);
+               return c.upperLowerAdjacent(d)
        case c._case == CaseNone:
-               return false;
+               return false
        case c._case == CaseMissing:
-               return false;
+               return false
        case d.deltaToUpper != c.deltaToUpper:
-               return false;
+               return false
        case d.deltaToLower != c.deltaToLower:
-               return false;
+               return false
        case d.deltaToTitle != c.deltaToTitle:
-               return false;
+               return false
        }
        return true;
 }
@@ -684,30 +684,30 @@ func (c *caseState) upperLowerAdjacent(d *caseState) bool {
        // check they're a matched case pair.  we know they have adjacent values
        switch {
        case c._case == CaseUpper && d._case != CaseLower:
-               return false;
+               return false
        case c._case == CaseLower && d._case != CaseUpper:
-               return false;
+               return false
        }
        // matched pair (at least in upper/lower).  make the order Upper Lower
        if c._case == CaseLower {
-               c, d = d, c;
+               c, d = d, c
        }
        // for an Upper Lower sequence the deltas have to be in order
        //      c: 0 1 0
        //      d: -1 0 -1
        switch {
        case c.deltaToUpper != 0:
-               return false;
+               return false
        case c.deltaToLower != 1:
-               return false;
+               return false
        case c.deltaToTitle != 0:
-               return false;
+               return false
        case d.deltaToUpper != -1:
-               return false;
+               return false
        case d.deltaToLower != 0:
-               return false;
+               return false
        case d.deltaToTitle != -1:
-               return false;
+               return false
        }
        return true;
 }
@@ -718,11 +718,11 @@ func (c *caseState) isUpperLower() bool {
        //      c: 0 1 0
        switch {
        case c.deltaToUpper != 0:
-               return false;
+               return false
        case c.deltaToLower != 1:
-               return false;
+               return false
        case c.deltaToTitle != 0:
-               return false;
+               return false
        }
        return true;
 }
@@ -733,11 +733,11 @@ func (c *caseState) isLowerUpper() bool {
        //      c: -1 0 -1
        switch {
        case c.deltaToUpper != -1:
-               return false;
+               return false
        case c.deltaToLower != 0:
-               return false;
+               return false
        case c.deltaToTitle != -1:
-               return false;
+               return false
        }
        return true;
 }
@@ -750,27 +750,27 @@ func getCaseState(i int) (c *caseState) {
                c._case = CaseMissing;  // Will get NUL wrong but that doesn't matter
                return;
        case ch.upperCase:
-               c._case = CaseUpper;
+               c._case = CaseUpper
        case ch.lowerCase:
-               c._case = CaseLower;
+               c._case = CaseLower
        case ch.titleCase:
-               c._case = CaseTitle;
+               c._case = CaseTitle
        }
        if ch.upperCase != 0 {
-               c.deltaToUpper = ch.upperCase - i;
+               c.deltaToUpper = ch.upperCase - i
        }
        if ch.lowerCase != 0 {
-               c.deltaToLower = ch.lowerCase - i;
+               c.deltaToLower = ch.lowerCase - i
        }
        if ch.titleCase != 0 {
-               c.deltaToTitle = ch.titleCase - i;
+               c.deltaToTitle = ch.titleCase - i
        }
        return;
 }
 
 func printCases() {
        if !*cases {
-               return;
+               return
        }
        if *test {
                fullCaseTest();
@@ -798,7 +798,7 @@ func printCases() {
                printCaseRange(startState, prevState);
                startState = nil;
                if state._case != CaseMissing && state._case != CaseNone {
-                       startState = state;
+                       startState = state
                }
                prevState = state;
        }
@@ -807,16 +807,16 @@ func printCases() {
 
 func printCaseRange(lo, hi *caseState) {
        if lo == nil {
-               return;
+               return
        }
        if lo.deltaToUpper == 0 && lo.deltaToLower == 0 && lo.deltaToTitle == 0 {
                // character represents itself in all cases - no need to mention it
-               return;
+               return
        }
        switch {
        case hi.point > lo.point && lo.isUpperLower():
                fmt.Printf("\tCaseRange{0x%04X, 0x%04X, d{UpperLower, UpperLower, UpperLower}},\n",
-                       lo.point, hi.point);
+                       lo.point, hi.point)
        case hi.point > lo.point && lo.isLowerUpper():
                die.Log("LowerUpper sequence: should not happen: U+%04X.  If it's real, need to fix To()", lo.point);
                fmt.Printf("\tCaseRange{0x%04X, 0x%04X, d{LowerUpper, LowerUpper, LowerUpper}},\n",
@@ -824,14 +824,14 @@ func printCaseRange(lo, hi *caseState) {
        default:
                fmt.Printf("\tCaseRange{0x%04X, 0x%04X, d{%d, %d, %d}},\n",
                        lo.point, hi.point,
-                       lo.deltaToUpper, lo.deltaToLower, lo.deltaToTitle);
+                       lo.deltaToUpper, lo.deltaToLower, lo.deltaToTitle)
        }
 }
 
 // If the cased value in the Char is 0, it means use the rune itself.
 func caseIt(rune, cased int) int {
        if cased == 0 {
-               return rune;
+               return rune
        }
        return cased;
 }
@@ -841,17 +841,17 @@ func fullCaseTest() {
                lower := unicode.ToLower(i);
                want := caseIt(i, c.lowerCase);
                if lower != want {
-                       fmt.Fprintf(os.Stderr, "lower U+%04X should be U+%04X is U+%04X\n", i, want, lower);
+                       fmt.Fprintf(os.Stderr, "lower U+%04X should be U+%04X is U+%04X\n", i, want, lower)
                }
                upper := unicode.ToUpper(i);
                want = caseIt(i, c.upperCase);
                if upper != want {
-                       fmt.Fprintf(os.Stderr, "upper U+%04X should be U+%04X is U+%04X\n", i, want, upper);
+                       fmt.Fprintf(os.Stderr, "upper U+%04X should be U+%04X is U+%04X\n", i, want, upper)
                }
                title := unicode.ToTitle(i);
                want = caseIt(i, c.titleCase);
                if title != want {
-                       fmt.Fprintf(os.Stderr, "title U+%04X should be U+%04X is U+%04X\n", i, want, title);
+                       fmt.Fprintf(os.Stderr, "title U+%04X should be U+%04X is U+%04X\n", i, want, title)
                }
        }
 }
index a5d070a498fea5c2eac6bbf6a6e2fe73d0639bf7..96896ca0b6290843a98f5c9f26237d345adc3531 100644 (file)
@@ -172,61 +172,61 @@ var inPropTest = []T{
 func TestScripts(t *testing.T) {
        notTested := make(map[string]bool);
        for k := range Scripts {
-               notTested[k] = true;
+               notTested[k] = true
        }
        for _, test := range inTest {
                if _, ok := Scripts[test.script]; !ok {
-                       t.Fatal(test.script, "not a known script");
+                       t.Fatal(test.script, "not a known script")
                }
                if !Is(Scripts[test.script], test.rune) {
-                       t.Errorf("IsScript(%#x, %s) = false, want true\n", test.rune, test.script);
+                       t.Errorf("IsScript(%#x, %s) = false, want true\n", test.rune, test.script)
                }
                notTested[test.script] = false, false;
        }
        for _, test := range outTest {
                if Is(Scripts[test.script], test.rune) {
-                       t.Errorf("IsScript(%#x, %s) = true, want false\n", test.rune, test.script);
+                       t.Errorf("IsScript(%#x, %s) = true, want false\n", test.rune, test.script)
                }
        }
        for k := range notTested {
-               t.Error("not tested:", k);
+               t.Error("not tested:", k)
        }
 }
 
 func TestCategories(t *testing.T) {
        notTested := make(map[string]bool);
        for k := range Categories {
-               notTested[k] = true;
+               notTested[k] = true
        }
        for _, test := range inCategoryTest {
                if _, ok := Categories[test.script]; !ok {
-                       t.Fatal(test.script, "not a known category");
+                       t.Fatal(test.script, "not a known category")
                }
                if !Is(Categories[test.script], test.rune) {
-                       t.Errorf("IsCategory(%#x, %s) = false, want true\n", test.rune, test.script);
+                       t.Errorf("IsCategory(%#x, %s) = false, want true\n", test.rune, test.script)
                }
                notTested[test.script] = false, false;
        }
        for k := range notTested {
-               t.Error("not tested:", k);
+               t.Error("not tested:", k)
        }
 }
 
 func TestProperties(t *testing.T) {
        notTested := make(map[string]bool);
        for k := range Properties {
-               notTested[k] = true;
+               notTested[k] = true
        }
        for _, test := range inPropTest {
                if _, ok := Properties[test.script]; !ok {
-                       t.Fatal(test.script, "not a known prop");
+                       t.Fatal(test.script, "not a known prop")
                }
                if !Is(Properties[test.script], test.rune) {
-                       t.Errorf("IsCategory(%#x, %s) = false, want true\n", test.rune, test.script);
+                       t.Errorf("IsCategory(%#x, %s) = false, want true\n", test.rune, test.script)
                }
                notTested[test.script] = false, false;
        }
        for k := range notTested {
-               t.Error("not tested:", k);
+               t.Error("not tested:", k)
        }
 }
index 89cdc99567d2567734d797f93fee42abe95be3da..1784a6db4e26cb608dd1e7ea7eba440931571f2d 100644 (file)
@@ -37,70 +37,70 @@ const (
 func decodeRuneInternal(p []byte) (rune, size int, short bool) {
        n := len(p);
        if n < 1 {
-               return RuneError, 0, true;
+               return RuneError, 0, true
        }
        c0 := p[0];
 
        // 1-byte, 7-bit sequence?
        if c0 < _Tx {
-               return int(c0), 1, false;
+               return int(c0), 1, false
        }
 
        // unexpected continuation byte?
        if c0 < _T2 {
-               return RuneError, 1, false;
+               return RuneError, 1, false
        }
 
        // need first continuation byte
        if n < 2 {
-               return RuneError, 1, true;
+               return RuneError, 1, true
        }
        c1 := p[1];
        if c1 < _Tx || _T2 <= c1 {
-               return RuneError, 1, false;
+               return RuneError, 1, false
        }
 
        // 2-byte, 11-bit sequence?
        if c0 < _T3 {
                rune = int(c0&_Mask2)<<6 | int(c1&_Maskx);
                if rune <= _Rune1Max {
-                       return RuneError, 1, false;
+                       return RuneError, 1, false
                }
                return rune, 2, false;
        }
 
        // need second continuation byte
        if n < 3 {
-               return RuneError, 1, true;
+               return RuneError, 1, true
        }
        c2 := p[2];
        if c2 < _Tx || _T2 <= c2 {
-               return RuneError, 1, false;
+               return RuneError, 1, false
        }
 
        // 3-byte, 16-bit sequence?
        if c0 < _T4 {
                rune = int(c0&_Mask3)<<12 | int(c1&_Maskx)<<6 | int(c2&_Maskx);
                if rune <= _Rune2Max {
-                       return RuneError, 1, false;
+                       return RuneError, 1, false
                }
                return rune, 3, false;
        }
 
        // need third continuation byte
        if n < 4 {
-               return RuneError, 1, true;
+               return RuneError, 1, true
        }
        c3 := p[3];
        if c3 < _Tx || _T2 <= c3 {
-               return RuneError, 1, false;
+               return RuneError, 1, false
        }
 
        // 4-byte, 21-bit sequence?
        if c0 < _T5 {
                rune = int(c0&_Mask4)<<18 | int(c1&_Maskx)<<12 | int(c2&_Maskx)<<6 | int(c3&_Maskx);
                if rune <= _Rune3Max {
-                       return RuneError, 1, false;
+                       return RuneError, 1, false
                }
                return rune, 4, false;
        }
@@ -112,70 +112,70 @@ func decodeRuneInternal(p []byte) (rune, size int, short bool) {
 func decodeRuneInStringInternal(s string) (rune, size int, short bool) {
        n := len(s);
        if n < 1 {
-               return RuneError, 0, true;
+               return RuneError, 0, true
        }
        c0 := s[0];
 
        // 1-byte, 7-bit sequence?
        if c0 < _Tx {
-               return int(c0), 1, false;
+               return int(c0), 1, false
        }
 
        // unexpected continuation byte?
        if c0 < _T2 {
-               return RuneError, 1, false;
+               return RuneError, 1, false
        }
 
        // need first continuation byte
        if n < 2 {
-               return RuneError, 1, true;
+               return RuneError, 1, true
        }
        c1 := s[1];
        if c1 < _Tx || _T2 <= c1 {
-               return RuneError, 1, false;
+               return RuneError, 1, false
        }
 
        // 2-byte, 11-bit sequence?
        if c0 < _T3 {
                rune = int(c0&_Mask2)<<6 | int(c1&_Maskx);
                if rune <= _Rune1Max {
-                       return RuneError, 1, false;
+                       return RuneError, 1, false
                }
                return rune, 2, false;
        }
 
        // need second continuation byte
        if n < 3 {
-               return RuneError, 1, true;
+               return RuneError, 1, true
        }
        c2 := s[2];
        if c2 < _Tx || _T2 <= c2 {
-               return RuneError, 1, false;
+               return RuneError, 1, false
        }
 
        // 3-byte, 16-bit sequence?
        if c0 < _T4 {
                rune = int(c0&_Mask3)<<12 | int(c1&_Maskx)<<6 | int(c2&_Maskx);
                if rune <= _Rune2Max {
-                       return RuneError, 1, false;
+                       return RuneError, 1, false
                }
                return rune, 3, false;
        }
 
        // need third continuation byte
        if n < 4 {
-               return RuneError, 1, true;
+               return RuneError, 1, true
        }
        c3 := s[3];
        if c3 < _Tx || _T2 <= c3 {
-               return RuneError, 1, false;
+               return RuneError, 1, false
        }
 
        // 4-byte, 21-bit sequence?
        if c0 < _T5 {
                rune = int(c0&_Mask4)<<18 | int(c1&_Maskx)<<12 | int(c2&_Maskx)<<6 | int(c3&_Maskx);
                if rune <= _Rune3Max {
-                       return RuneError, 1, false;
+                       return RuneError, 1, false
                }
                return rune, 4, false;
        }
@@ -213,13 +213,13 @@ func DecodeRuneInString(s string) (rune, size int) {
 func RuneLen(rune int) int {
        switch {
        case rune <= _Rune1Max:
-               return 1;
+               return 1
        case rune <= _Rune2Max:
-               return 2;
+               return 2
        case rune <= _Rune3Max:
-               return 3;
+               return 3
        case rune <= _Rune4Max:
-               return 4;
+               return 4
        }
        return -1;
 }
@@ -239,7 +239,7 @@ func EncodeRune(rune int, p []byte) int {
        }
 
        if rune > unicode.MaxRune {
-               rune = RuneError;
+               rune = RuneError
        }
 
        if rune <= _Rune3Max {
@@ -263,7 +263,7 @@ func RuneCount(p []byte) int {
        var n int;
        for n = 0; i < len(p); n++ {
                if p[i] < RuneSelf {
-                       i++;
+                       i++
                } else {
                        _, size := DecodeRune(p[i:len(p)]);
                        i += size;
@@ -279,7 +279,7 @@ func RuneCountInString(s string) int {
        var n int;
        for n = 0; i < ei; n++ {
                if s[i] < RuneSelf {
-                       i++;
+                       i++
                } else {
                        _, size, _ := decodeRuneInStringInternal(s[i:ei]);
                        i += size;
index dd9e3341225e29a74f22b17eb949e7c9d970ff36..6684245d8ba24390825c9e70ae4ab5e13f3a4325 100644 (file)
@@ -56,19 +56,19 @@ func TestFullRune(t *testing.T) {
                m := utf8map[i];
                b := makeBytes(m.str);
                if !FullRune(b) {
-                       t.Errorf("FullRune(%q) (rune %04x) = false, want true", b, m.rune);
+                       t.Errorf("FullRune(%q) (rune %04x) = false, want true", b, m.rune)
                }
                s := m.str;
                if !FullRuneInString(s) {
-                       t.Errorf("FullRuneInString(%q) (rune %04x) = false, want true", s, m.rune);
+                       t.Errorf("FullRuneInString(%q) (rune %04x) = false, want true", s, m.rune)
                }
                b1 := b[0 : len(b)-1];
                if FullRune(b1) {
-                       t.Errorf("FullRune(%q) = true, want false", b1);
+                       t.Errorf("FullRune(%q) = true, want false", b1)
                }
                s1 := string(b1);
                if FullRuneInString(s1) {
-                       t.Errorf("FullRune(%q) = true, want false", s1);
+                       t.Errorf("FullRune(%q) = true, want false", s1)
                }
        }
 }
@@ -81,7 +81,7 @@ func TestEncodeRune(t *testing.T) {
                n := EncodeRune(m.rune, &buf);
                b1 := buf[0:n];
                if !bytes.Equal(b, b1) {
-                       t.Errorf("EncodeRune(0x%04x) = %q want %q", m.rune, b1, b);
+                       t.Errorf("EncodeRune(0x%04x) = %q want %q", m.rune, b1, b)
                }
        }
 }
@@ -92,54 +92,54 @@ func TestDecodeRune(t *testing.T) {
                b := makeBytes(m.str);
                rune, size := DecodeRune(b);
                if rune != m.rune || size != len(b) {
-                       t.Errorf("DecodeRune(%q) = 0x%04x, %d want 0x%04x, %d", b, rune, size, m.rune, len(b));
+                       t.Errorf("DecodeRune(%q) = 0x%04x, %d want 0x%04x, %d", b, rune, size, m.rune, len(b))
                }
                s := m.str;
                rune, size = DecodeRuneInString(s);
                if rune != m.rune || size != len(b) {
-                       t.Errorf("DecodeRune(%q) = 0x%04x, %d want 0x%04x, %d", s, rune, size, m.rune, len(b));
+                       t.Errorf("DecodeRune(%q) = 0x%04x, %d want 0x%04x, %d", s, rune, size, m.rune, len(b))
                }
 
                // there's an extra byte that bytes left behind - make sure trailing byte works
                rune, size = DecodeRune(b[0:cap(b)]);
                if rune != m.rune || size != len(b) {
-                       t.Errorf("DecodeRune(%q) = 0x%04x, %d want 0x%04x, %d", b, rune, size, m.rune, len(b));
+                       t.Errorf("DecodeRune(%q) = 0x%04x, %d want 0x%04x, %d", b, rune, size, m.rune, len(b))
                }
                s = m.str + "\x00";
                rune, size = DecodeRuneInString(s);
                if rune != m.rune || size != len(b) {
-                       t.Errorf("DecodeRuneInString(%q) = 0x%04x, %d want 0x%04x, %d", s, rune, size, m.rune, len(b));
+                       t.Errorf("DecodeRuneInString(%q) = 0x%04x, %d want 0x%04x, %d", s, rune, size, m.rune, len(b))
                }
 
                // make sure missing bytes fail
                wantsize := 1;
                if wantsize >= len(b) {
-                       wantsize = 0;
+                       wantsize = 0
                }
                rune, size = DecodeRune(b[0 : len(b)-1]);
                if rune != RuneError || size != wantsize {
-                       t.Errorf("DecodeRune(%q) = 0x%04x, %d want 0x%04x, %d", b[0 : len(b)-1], rune, size, RuneError, wantsize);
+                       t.Errorf("DecodeRune(%q) = 0x%04x, %d want 0x%04x, %d", b[0 : len(b)-1], rune, size, RuneError, wantsize)
                }
                s = m.str[0 : len(m.str)-1];
                rune, size = DecodeRuneInString(s);
                if rune != RuneError || size != wantsize {
-                       t.Errorf("DecodeRuneInString(%q) = 0x%04x, %d want 0x%04x, %d", s, rune, size, RuneError, wantsize);
+                       t.Errorf("DecodeRuneInString(%q) = 0x%04x, %d want 0x%04x, %d", s, rune, size, RuneError, wantsize)
                }
 
                // make sure bad sequences fail
                if len(b) == 1 {
-                       b[0] = 0x80;
+                       b[0] = 0x80
                } else {
-                       b[len(b)-1] = 0x7F;
+                       b[len(b)-1] = 0x7F
                }
                rune, size = DecodeRune(b);
                if rune != RuneError || size != 1 {
-                       t.Errorf("DecodeRune(%q) = 0x%04x, %d want 0x%04x, %d", b, rune, size, RuneError, 1);
+                       t.Errorf("DecodeRune(%q) = 0x%04x, %d want 0x%04x, %d", b, rune, size, RuneError, 1)
                }
                s = string(b);
                rune, size = DecodeRune(b);
                if rune != RuneError || size != 1 {
-                       t.Errorf("DecodeRuneInString(%q) = 0x%04x, %d want 0x%04x, %d", s, rune, size, RuneError, 1);
+                       t.Errorf("DecodeRuneInString(%q) = 0x%04x, %d want 0x%04x, %d", s, rune, size, RuneError, 1)
                }
        }
 }
@@ -160,10 +160,10 @@ func TestRuneCount(t *testing.T) {
        for i := 0; i < len(runecounttests); i++ {
                tt := runecounttests[i];
                if out := RuneCountInString(tt.in); out != tt.out {
-                       t.Errorf("RuneCountInString(%q) = %d, want %d", tt.in, out, tt.out);
+                       t.Errorf("RuneCountInString(%q) = %d, want %d", tt.in, out, tt.out)
                }
                if out := RuneCount(makeBytes(tt.in)); out != tt.out {
-                       t.Errorf("RuneCount(%q) = %d, want %d", tt.in, out, tt.out);
+                       t.Errorf("RuneCount(%q) = %d, want %d", tt.in, out, tt.out)
                }
        }
 }
index a33188e26bfcafd4874de6e5aeede371c9adc6fe..b51a302b3f9138ab8c7412fba102ca5d0f27c463 100644 (file)
@@ -114,13 +114,13 @@ import (
 func Unmarshal(r io.Reader, val interface{}) os.Error {
        v, ok := reflect.NewValue(val).(*reflect.PtrValue);
        if !ok {
-               return os.NewError("non-pointer passed to Unmarshal");
+               return os.NewError("non-pointer passed to Unmarshal")
        }
        p := NewParser(r);
        elem := v.Elem();
        err := p.unmarshal(elem, nil);
        if err != nil {
-               return err;
+               return err
        }
        return nil;
 }
@@ -139,7 +139,7 @@ func (e UnmarshalError) String() string     { return string(e) }
 func (p *Parser) Unmarshal(val interface{}, start *StartElement) os.Error {
        v, ok := reflect.NewValue(val).(*reflect.PtrValue);
        if !ok {
-               return os.NewError("non-pointer passed to Unmarshal");
+               return os.NewError("non-pointer passed to Unmarshal")
        }
        return p.unmarshal(v.Elem(), start);
 }
@@ -151,7 +151,7 @@ func (p *Parser) unmarshal(val reflect.Value, start *StartElement) os.Error {
                for {
                        tok, err := p.Token();
                        if err != nil {
-                               return err;
+                               return err
                        }
                        if t, ok := tok.(StartElement); ok {
                                start = &t;
@@ -166,7 +166,7 @@ func (p *Parser) unmarshal(val reflect.Value, start *StartElement) os.Error {
                        pv.PointTo(zv);
                        val = zv;
                } else {
-                       val = pv.Elem();
+                       val = pv.Elem()
                }
        }
 
@@ -180,7 +180,7 @@ func (p *Parser) unmarshal(val reflect.Value, start *StartElement) os.Error {
        )
        switch v := val.(type) {
        case *reflect.BoolValue:
-               v.Set(true);
+               v.Set(true)
 
        case *reflect.SliceValue:
                typ := v.Type().(*reflect.SliceType);
@@ -196,7 +196,7 @@ func (p *Parser) unmarshal(val reflect.Value, start *StartElement) os.Error {
                if n >= v.Cap() {
                        ncap := 2*n;
                        if ncap < 4 {
-                               ncap = 4;
+                               ncap = 4
                        }
                        new := reflect.MakeSlice(typ, n, ncap);
                        reflect.ArrayCopy(new, v);
@@ -212,7 +212,7 @@ func (p *Parser) unmarshal(val reflect.Value, start *StartElement) os.Error {
                return nil;
 
        case *reflect.StringValue:
-               saveData = v;
+               saveData = v
 
        case *reflect.StructValue:
                if _, ok := v.Interface().(Name); ok {
@@ -231,17 +231,17 @@ func (p *Parser) unmarshal(val reflect.Value, start *StartElement) os.Error {
                                ns := "";
                                i := strings.LastIndex(tag, " ");
                                if i >= 0 {
-                                       ns, tag = tag[0:i], tag[i+1 : len(tag)];
+                                       ns, tag = tag[0:i], tag[i+1 : len(tag)]
                                }
                                if tag != start.Name.Local {
-                                       return UnmarshalError("expected element type <" + tag + "> but have <" + start.Name.Local + ">");
+                                       return UnmarshalError("expected element type <" + tag + "> but have <" + start.Name.Local + ">")
                                }
                                if ns != "" && ns != start.Name.Space {
                                        e := "expected element <" + tag + "> in name space " + ns + " but have ";
                                        if start.Name.Space == "" {
-                                               e += "no name space";
+                                               e += "no name space"
                                        } else {
-                                               e += start.Name.Space;
+                                               e += start.Name.Space
                                        }
                                        return UnmarshalError(e);
                                }
@@ -250,7 +250,7 @@ func (p *Parser) unmarshal(val reflect.Value, start *StartElement) os.Error {
                        // Save
                        v := sv.FieldByIndex(f.Index);
                        if _, ok := v.Interface().(Name); !ok {
-                               return UnmarshalError(sv.Type().String() + " field XMLName does not have type xml.Name");
+                               return UnmarshalError(sv.Type().String() + " field XMLName does not have type xml.Name")
                        }
                        v.(*reflect.StructValue).Set(reflect.NewValue(start.Name).(*reflect.StructValue));
                }
@@ -263,7 +263,7 @@ func (p *Parser) unmarshal(val reflect.Value, start *StartElement) os.Error {
                        case "attr":
                                strv, ok := sv.FieldByIndex(f.Index).(*reflect.StringValue);
                                if !ok {
-                                       return UnmarshalError(sv.Type().String() + " field " + f.Name + " has attr tag but is not type string");
+                                       return UnmarshalError(sv.Type().String() + " field " + f.Name + " has attr tag but is not type string")
                                }
                                // Look for attribute.
                                val := "";
@@ -278,12 +278,12 @@ func (p *Parser) unmarshal(val reflect.Value, start *StartElement) os.Error {
 
                        case "comment":
                                if saveComment == nil {
-                                       saveComment = sv.FieldByIndex(f.Index);
+                                       saveComment = sv.FieldByIndex(f.Index)
                                }
 
                        case "chardata":
                                if saveData == nil {
-                                       saveData = sv.FieldByIndex(f.Index);
+                                       saveData = sv.FieldByIndex(f.Index)
                                }
                        }
                }
@@ -295,7 +295,7 @@ Loop:
        for {
                tok, err := p.Token();
                if err != nil {
-                       return err;
+                       return err
                }
                switch t := tok.(type) {
                case StartElement:
@@ -309,37 +309,37 @@ Loop:
                                        f := styp.Field(i);
                                        if strings.ToLower(f.Name) == k {
                                                if err := p.unmarshal(sv.FieldByIndex(f.Index), &t); err != nil {
-                                                       return err;
+                                                       return err
                                                }
                                                continue Loop;
                                        }
                                        if any < 0 && f.Name == "Any" {
-                                               any = i;
+                                               any = i
                                        }
                                }
                                if any >= 0 {
                                        if err := p.unmarshal(sv.FieldByIndex(styp.Field(any).Index), &t); err != nil {
-                                               return err;
+                                               return err
                                        }
                                        continue Loop;
                                }
                        }
                        // Not saving sub-element but still have to skip over it.
                        if err := p.Skip(); err != nil {
-                               return err;
+                               return err
                        }
 
                case EndElement:
-                       break Loop;
+                       break Loop
 
                case CharData:
                        if saveData != nil {
-                               data = bytes.Add(data, t);
+                               data = bytes.Add(data, t)
                        }
 
                case Comment:
                        if saveComment != nil {
-                               comment = bytes.Add(comment, t);
+                               comment = bytes.Add(comment, t)
                        }
                }
        }
@@ -347,16 +347,16 @@ Loop:
        // Save accumulated character data and comments
        switch t := saveData.(type) {
        case *reflect.StringValue:
-               t.Set(string(data));
+               t.Set(string(data))
        case *reflect.SliceValue:
-               t.Set(reflect.NewValue(data).(*reflect.SliceValue));
+               t.Set(reflect.NewValue(data).(*reflect.SliceValue))
        }
 
        switch t := saveComment.(type) {
        case *reflect.StringValue:
-               t.Set(string(comment));
+               t.Set(string(comment))
        case *reflect.SliceValue:
-               t.Set(reflect.NewValue(comment).(*reflect.SliceValue));
+               t.Set(reflect.NewValue(comment).(*reflect.SliceValue))
        }
 
        return nil;
@@ -370,15 +370,15 @@ func (p *Parser) Skip() os.Error {
        for {
                tok, err := p.Token();
                if err != nil {
-                       return err;
+                       return err
                }
                switch t := tok.(type) {
                case StartElement:
                        if err := p.Skip(); err != nil {
-                               return err;
+                               return err
                        }
                case EndElement:
-                       return nil;
+                       return nil
                }
        }
        panic("unreachable");
index 81d2325673d3b1becafe3bd66772cf626d9b57a0..14ad11a31804bcf6963660284abbaf645528df00 100644 (file)
@@ -14,10 +14,10 @@ import (
 func TestUnmarshalFeed(t *testing.T) {
        var f Feed;
        if err := Unmarshal(StringReader(rssFeedString), &f); err != nil {
-               t.Fatalf("Unmarshal: %s", err);
+               t.Fatalf("Unmarshal: %s", err)
        }
        if !reflect.DeepEqual(f, rssFeed) {
-               t.Fatalf("have %#v\nwant %#v\n\n%#v", f);
+               t.Fatalf("have %#v\nwant %#v\n\n%#v", f)
        }
 }
 
index 52ef78f2f912d71449039f385183d4873747673d..09dd8217bb659a33b725f6cd83bc610dc41b958a 100644 (file)
@@ -167,9 +167,9 @@ func NewParser(r io.Reader) *Parser {
        // ReadByte, it's efficient enough.
        // Otherwise, use bufio.
        if rb, ok := r.(readByter); ok {
-               p.r = rb;
+               p.r = rb
        } else {
-               p.r = bufio.NewReader(r);
+               p.r = bufio.NewReader(r)
        }
 
        return p;
@@ -203,7 +203,7 @@ func (p *Parser) Token() (t Token, err os.Error) {
                t = p.nextToken;
                p.nextToken = nil;
        } else if t, err = p.RawToken(); err != nil {
-               return;
+               return
        }
 
        if !p.Strict {
@@ -234,7 +234,7 @@ func (p *Parser) Token() (t Token, err os.Error) {
 
                p.translate(&t1.Name, true);
                for i := range t1.Attr {
-                       p.translate(&t1.Attr[i].Name, false);
+                       p.translate(&t1.Attr[i].Name, false)
                }
                p.pushElement(t1.Name);
                t = t1;
@@ -242,7 +242,7 @@ func (p *Parser) Token() (t Token, err os.Error) {
        case EndElement:
                p.translate(&t1.Name, true);
                if !p.popElement(&t1) {
-                       return nil, p.err;
+                       return nil, p.err
                }
                t = t1;
        }
@@ -255,14 +255,14 @@ func (p *Parser) Token() (t Token, err os.Error) {
 func (p *Parser) translate(n *Name, isElementName bool) {
        switch {
        case n.Space == "xmlns":
-               return;
+               return
        case n.Space == "" && !isElementName:
-               return;
+               return
        case n.Space == "" && n.Local == "xmlns":
-               return;
+               return
        }
        if v, ok := p.ns[n.Space]; ok {
-               n.Space = v;
+               n.Space = v
        }
 }
 
@@ -285,9 +285,9 @@ const (
 func (p *Parser) push(kind int) *stack {
        s := p.free;
        if s != nil {
-               p.free = s.next;
+               p.free = s.next
        } else {
-               s = new(stack);
+               s = new(stack)
        }
        s.next = p.stk;
        s.kind = kind;
@@ -362,7 +362,7 @@ func (p *Parser) popElement(t *EndElement) bool {
 // t is not the end tag, invent the end tag.
 func (p *Parser) autoClose(t Token) (Token, bool) {
        if p.stk == nil || p.stk.kind != stkStart {
-               return nil, false;
+               return nil, false
        }
        name := strings.ToLower(p.stk.name.Local);
        for _, s := range p.AutoClose {
@@ -370,7 +370,7 @@ func (p *Parser) autoClose(t Token) (Token, bool) {
                        // This one should be auto closed if t doesn't close it.
                        et, ok := t.(EndElement);
                        if !ok || et.Name.Local != name {
-                               return EndElement{p.stk.name}, true;
+                               return EndElement{p.stk.name}, true
                        }
                        break;
                }
@@ -384,7 +384,7 @@ func (p *Parser) autoClose(t Token) (Token, bool) {
 // name space prefixes to their corresponding URLs.
 func (p *Parser) RawToken() (Token, os.Error) {
        if p.err != nil {
-               return nil, p.err;
+               return nil, p.err
        }
        if p.needClose {
                // The last element we read was self-closing and
@@ -396,7 +396,7 @@ func (p *Parser) RawToken() (Token, os.Error) {
 
        b, ok := p.getc();
        if !ok {
-               return nil, p.err;
+               return nil, p.err
        }
 
        if b != '<' {
@@ -404,13 +404,13 @@ func (p *Parser) RawToken() (Token, os.Error) {
                p.ungetc(b);
                data := p.text(-1, false);
                if data == nil {
-                       return nil, p.err;
+                       return nil, p.err
                }
                return CharData(data), nil;
        }
 
        if b, ok = p.getc(); !ok {
-               return nil, p.err;
+               return nil, p.err
        }
        switch b {
        case '/':
@@ -418,13 +418,13 @@ func (p *Parser) RawToken() (Token, os.Error) {
                var name Name;
                if name, ok = p.nsname(); !ok {
                        if p.err == nil {
-                               p.err = SyntaxError("expected element name after </");
+                               p.err = SyntaxError("expected element name after </")
                        }
                        return nil, p.err;
                }
                p.space();
                if b, ok = p.getc(); !ok {
-                       return nil, p.err;
+                       return nil, p.err
                }
                if b != '>' {
                        p.err = SyntaxError("invalid characters between </" + name.Local + " and >");
@@ -438,7 +438,7 @@ func (p *Parser) RawToken() (Token, os.Error) {
                // the version is 1.0 and the encoding is UTF-8.
                var target string;
                if target, ok = p.name(); !ok {
-                       return nil, p.err;
+                       return nil, p.err
                }
                p.space();
                p.buf.Reset();
@@ -446,13 +446,13 @@ func (p *Parser) RawToken() (Token, os.Error) {
                for {
                        if b, ok = p.getc(); !ok {
                                if p.err == os.EOF {
-                                       p.err = SyntaxError("unterminated <? directive");
+                                       p.err = SyntaxError("unterminated <? directive")
                                }
                                return nil, p.err;
                        }
                        p.buf.WriteByte(b);
                        if b0 == '?' && b == '>' {
-                               break;
+                               break
                        }
                        b0 = b;
                }
@@ -463,13 +463,13 @@ func (p *Parser) RawToken() (Token, os.Error) {
        case '!':
                // <!: Maybe comment, maybe CDATA.
                if b, ok = p.getc(); !ok {
-                       return nil, p.err;
+                       return nil, p.err
                }
                switch b {
                case '-':       // <!-
                        // Probably <!-- for a comment.
                        if b, ok = p.getc(); !ok {
-                               return nil, p.err;
+                               return nil, p.err
                        }
                        if b != '-' {
                                p.err = SyntaxError("invalid sequence <!- not part of <!--");
@@ -481,13 +481,13 @@ func (p *Parser) RawToken() (Token, os.Error) {
                        for {
                                if b, ok = p.getc(); !ok {
                                        if p.err == os.EOF {
-                                               p.err = SyntaxError("unterminated <!-- comment");
+                                               p.err = SyntaxError("unterminated <!-- comment")
                                        }
                                        return nil, p.err;
                                }
                                p.buf.WriteByte(b);
                                if b0 == '-' && b1 == '-' && b == '>' {
-                                       break;
+                                       break
                                }
                                b0, b1 = b1, b;
                        }
@@ -499,7 +499,7 @@ func (p *Parser) RawToken() (Token, os.Error) {
                        // Probably <![CDATA[.
                        for i := 0; i < 7; i++ {
                                if b, ok = p.getc(); !ok {
-                                       return nil, p.err;
+                                       return nil, p.err
                                }
                                if b != "[CDATA["[i] {
                                        p.err = SyntaxError("invalid <![ sequence");
@@ -509,7 +509,7 @@ func (p *Parser) RawToken() (Token, os.Error) {
                        // Have <![CDATA[.  Read text until ]]>.
                        data := p.text(-1, true);
                        if data == nil {
-                               return nil, p.err;
+                               return nil, p.err
                        }
                        return CharData(data), nil;
                }
@@ -520,10 +520,10 @@ func (p *Parser) RawToken() (Token, os.Error) {
                p.buf.WriteByte(b);
                for {
                        if b, ok = p.getc(); !ok {
-                               return nil, p.err;
+                               return nil, p.err
                        }
                        if b == '>' {
-                               break;
+                               break
                        }
                        p.buf.WriteByte(b);
                }
@@ -540,7 +540,7 @@ func (p *Parser) RawToken() (Token, os.Error) {
        )
        if name, ok = p.nsname(); !ok {
                if p.err == nil {
-                       p.err = SyntaxError("expected element name after <");
+                       p.err = SyntaxError("expected element name after <")
                }
                return nil, p.err;
        }
@@ -549,12 +549,12 @@ func (p *Parser) RawToken() (Token, os.Error) {
        for {
                p.space();
                if b, ok = p.getc(); !ok {
-                       return nil, p.err;
+                       return nil, p.err
                }
                if b == '/' {
                        empty = true;
                        if b, ok = p.getc(); !ok {
-                               return nil, p.err;
+                               return nil, p.err
                        }
                        if b != '>' {
                                p.err = SyntaxError("expected /> in element");
@@ -563,7 +563,7 @@ func (p *Parser) RawToken() (Token, os.Error) {
                        break;
                }
                if b == '>' {
-                       break;
+                       break
                }
                p.ungetc(b);
 
@@ -571,7 +571,7 @@ func (p *Parser) RawToken() (Token, os.Error) {
                if n >= cap(attr) {
                        nattr := make([]Attr, n, 2*cap(attr));
                        for i, a := range attr {
-                               nattr[i] = a;
+                               nattr[i] = a
                        }
                        attr = nattr;
                }
@@ -579,13 +579,13 @@ func (p *Parser) RawToken() (Token, os.Error) {
                a := &attr[n];
                if a.Name, ok = p.nsname(); !ok {
                        if p.err == nil {
-                               p.err = SyntaxError("expected attribute name in element");
+                               p.err = SyntaxError("expected attribute name in element")
                        }
                        return nil, p.err;
                }
                p.space();
                if b, ok = p.getc(); !ok {
-                       return nil, p.err;
+                       return nil, p.err
                }
                if b != '=' {
                        p.err = SyntaxError("attribute name without = in element");
@@ -593,7 +593,7 @@ func (p *Parser) RawToken() (Token, os.Error) {
                }
                p.space();
                if b, ok = p.getc(); !ok {
-                       return nil, p.err;
+                       return nil, p.err
                }
                if b != '"' && b != '\'' {
                        p.err = SyntaxError("unquoted or missing attribute value in element");
@@ -601,7 +601,7 @@ func (p *Parser) RawToken() (Token, os.Error) {
                }
                data := p.text(int(b), false);
                if data == nil {
-                       return nil, p.err;
+                       return nil, p.err
                }
                a.Value = string(data);
        }
@@ -618,7 +618,7 @@ func (p *Parser) space() {
        for {
                b, ok := p.getc();
                if !ok {
-                       return;
+                       return
                }
                switch b {
                case ' ', '\r', '\n', '\t':
@@ -635,7 +635,7 @@ func (p *Parser) space() {
 // Maintain line number.
 func (p *Parser) getc() (b byte, ok bool) {
        if p.err != nil {
-               return 0, false;
+               return 0, false
        }
        if p.nextByte >= 0 {
                b = byte(p.nextByte);
@@ -643,11 +643,11 @@ func (p *Parser) getc() (b byte, ok bool) {
        } else {
                b, p.err = p.r.ReadByte();
                if p.err != nil {
-                       return 0, false;
+                       return 0, false
                }
        }
        if b == '\n' {
-               p.line++;
+               p.line++
        }
        return b, true;
 }
@@ -655,7 +655,7 @@ func (p *Parser) getc() (b byte, ok bool) {
 // Unread a single byte.
 func (p *Parser) ungetc(b byte) {
        if b == '\n' {
-               p.line--;
+               p.line--
        }
        p.nextByte = int(b);
 }
@@ -680,7 +680,7 @@ Input:
        for {
                b, ok := p.getc();
                if !ok {
-                       return nil;
+                       return nil
                }
 
                // <![CDATA[ section ends with ]]>.
@@ -704,7 +704,7 @@ Input:
                        break Input;
                }
                if quote >= 0 && b == byte(quote) {
-                       break Input;
+                       break Input
                }
                if b == '&' {
                        // Read escaped character expression up to semicolon.
@@ -717,17 +717,17 @@ Input:
                        for i = 0; i < len(p.tmp); i++ {
                                p.tmp[i], p.err = p.r.ReadByte();
                                if p.err != nil {
-                                       return nil;
+                                       return nil
                                }
                                c := p.tmp[i];
                                if c == ';' {
-                                       break;
+                                       break
                                }
                                if 'a' <= c && c <= 'z' ||
                                        'A' <= c && c <= 'Z' ||
                                        '0' <= c && c <= '9' ||
                                        c == '_' || c == '#' {
-                                       continue;
+                                       continue
                                }
                                p.ungetc(c);
                                break;
@@ -749,9 +749,9 @@ Input:
                                var n uint64;
                                var err os.Error;
                                if i >= 3 && s[1] == 'x' {
-                                       n, err = strconv.Btoui64(s[2:len(s)], 16);
+                                       n, err = strconv.Btoui64(s[2:len(s)], 16)
                                } else {
-                                       n, err = strconv.Btoui64(s[1:len(s)], 10);
+                                       n, err = strconv.Btoui64(s[1:len(s)], 10)
                                }
                                if err == nil && n <= unicode.MaxRune {
                                        text = string(n);
@@ -762,7 +762,7 @@ Input:
                                        text = string(r);
                                        haveText = true;
                                } else {
-                                       text, haveText = p.Entity[s];
+                                       text, haveText = p.Entity[s]
                                }
                        }
                        if !haveText {
@@ -791,7 +791,7 @@ Input:
                b := data[r];
                if b == '\r' {
                        if r+1 < len(data) && data[r+1] == '\n' {
-                               continue;
+                               continue
                        }
                        b = '\n';
                }
@@ -806,11 +806,11 @@ Input:
 func (p *Parser) nsname() (name Name, ok bool) {
        s, ok := p.name();
        if !ok {
-               return;
+               return
        }
        i := strings.Index(s, ":");
        if i < 0 {
-               name.Local = s;
+               name.Local = s
        } else {
                name.Space = s[0:i];
                name.Local = s[i+1 : len(s)];
@@ -823,7 +823,7 @@ func (p *Parser) nsname() (name Name, ok bool) {
 func (p *Parser) name() (s string, ok bool) {
        var b byte;
        if b, ok = p.getc(); !ok {
-               return;
+               return
        }
 
        // As a first approximation, we gather the bytes [A-Za-z_:.-\x80-\xFF]*
@@ -835,7 +835,7 @@ func (p *Parser) name() (s string, ok bool) {
        p.buf.WriteByte(b);
        for {
                if b, ok = p.getc(); !ok {
-                       return;
+                       return
                }
                if b < utf8.RuneSelf && !isNameByte(b) {
                        p.ungetc(b);
@@ -859,7 +859,7 @@ func isNameByte(c byte) bool {
        return 'A' <= c && c <= 'Z' ||
                'a' <= c && c <= 'z' ||
                '0' <= c && c <= '9' ||
-               c == '_' || c == ':' || c == '.' || c == '-';
+               c == '_' || c == ':' || c == '.' || c == '-'
 }
 
 // These tables were generated by cut and paste from Appendix B of
index 8b0fda60a50e8806f3a98840d98a447af9d5ff7d..058c1e7658e7169c4fcfc1786b46075ded48d65a 100644 (file)
@@ -97,7 +97,7 @@ type stringReader struct {
 
 func (r *stringReader) Read(b []byte) (n int, err os.Error) {
        if r.off >= len(r.s) {
-               return 0, os.EOF;
+               return 0, os.EOF
        }
        for r.off < len(r.s) && n < len(b) {
                b[n] = r.s[r.off];
@@ -109,7 +109,7 @@ func (r *stringReader) Read(b []byte) (n int, err os.Error) {
 
 func (r *stringReader) ReadByte() (b byte, err os.Error) {
        if r.off >= len(r.s) {
-               return 0, os.EOF;
+               return 0, os.EOF
        }
        b = r.s[r.off];
        r.off++;
@@ -124,10 +124,10 @@ func TestRawToken(t *testing.T) {
        for i, want := range rawTokens {
                have, err := p.RawToken();
                if err != nil {
-                       t.Fatalf("token %d: unexpected error: %s", i, err);
+                       t.Fatalf("token %d: unexpected error: %s", i, err)
                }
                if !reflect.DeepEqual(have, want) {
-                       t.Errorf("token %d = %#v want %#v", i, have, want);
+                       t.Errorf("token %d = %#v want %#v", i, have, want)
                }
        }
 }
@@ -138,10 +138,10 @@ func TestToken(t *testing.T) {
        for i, want := range cookedTokens {
                have, err := p.Token();
                if err != nil {
-                       t.Fatalf("token %d: unexpected error: %s", i, err);
+                       t.Fatalf("token %d: unexpected error: %s", i, err)
                }
                if !reflect.DeepEqual(have, want) {
-                       t.Errorf("token %d = %#v want %#v", i, have, want);
+                       t.Errorf("token %d = %#v want %#v", i, have, want)
                }
        }
 }