all: single space after period

The tree's pretty inconsistent about single space vs double space
after a period in documentation. Make it consistently a single space,
per earlier decisions, and changes in go repository. This means
contributors won't be confused by misleading precedence.

This CL was generated with:

	perl -i -npe 's,^(\s*// .+[a-z]\.)  +([A-Z]),$1 $2,' $(git grep -l -E '^\s*//(.+\.)  +([A-Z])')

on top of copyright headers change in https://golang.org/cl/32878.

Follows https://golang.org/cl/20022.

Change-Id: I821e4a300122b4668aa31e12eaa914db615e5369
Reviewed-on: https://go-review.googlesource.com/32879
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
diff --git a/bpf/vm_bpf_test.go b/bpf/vm_bpf_test.go
index 4263623..77fa8fe 100644
--- a/bpf/vm_bpf_test.go
+++ b/bpf/vm_bpf_test.go
@@ -33,7 +33,7 @@
 }
 
 // All BPF tests against both the Go VM and OS VM are assumed to
-// be used with a UDP socket.  As a result, the entire contents
+// be used with a UDP socket. As a result, the entire contents
 // of a UDP datagram is sent through the BPF program, but only
 // the body after the UDP header will ever be returned in output.
 
@@ -85,7 +85,7 @@
 	}
 
 	// All tests have a UDP header as part of input, because the OS VM
-	// packets always will.  For the Go VM, this output is trimmed before
+	// packets always will. For the Go VM, this output is trimmed before
 	// being sent back to tests.
 	goOut, goErr := mvm.goVM.Run(in)
 	if goOut >= udpHeaderLen {
diff --git a/context/context.go b/context/context.go
index 134654c..f143ed6 100644
--- a/context/context.go
+++ b/context/context.go
@@ -7,7 +7,7 @@
 // and between processes.
 //
 // Incoming requests to a server should create a Context, and outgoing calls to
-// servers should accept a Context.  The chain of function calls between must
+// servers should accept a Context. The chain of function calls between must
 // propagate the Context, optionally replacing it with a modified copy created
 // using WithDeadline, WithTimeout, WithCancel, or WithValue.
 //
@@ -16,14 +16,14 @@
 // propagation:
 //
 // Do not store Contexts inside a struct type; instead, pass a Context
-// explicitly to each function that needs it.  The Context should be the first
+// explicitly to each function that needs it. The Context should be the first
 // parameter, typically named ctx:
 //
 // 	func DoSomething(ctx context.Context, arg Arg) error {
 // 		// ... use ctx ...
 // 	}
 //
-// Do not pass a nil Context, even if a function permits it.  Pass context.TODO
+// Do not pass a nil Context, even if a function permits it. Pass context.TODO
 // if you are unsure about which Context to use.
 //
 // Use context Values only for request-scoped data that transits processes and
@@ -44,13 +44,13 @@
 // Context's methods may be called by multiple goroutines simultaneously.
 type Context interface {
 	// Deadline returns the time when work done on behalf of this context
-	// should be canceled.  Deadline returns ok==false when no deadline is
-	// set.  Successive calls to Deadline return the same results.
+	// should be canceled. Deadline returns ok==false when no deadline is
+	// set. Successive calls to Deadline return the same results.
 	Deadline() (deadline time.Time, ok bool)
 
 	// Done returns a channel that's closed when work done on behalf of this
-	// context should be canceled.  Done may return nil if this context can
-	// never be canceled.  Successive calls to Done return the same value.
+	// context should be canceled. Done may return nil if this context can
+	// never be canceled. Successive calls to Done return the same value.
 	//
 	// WithCancel arranges for Done to be closed when cancel is called;
 	// WithDeadline arranges for Done to be closed when the deadline
@@ -79,24 +79,24 @@
 	// a Done channel for cancelation.
 	Done() <-chan struct{}
 
-	// Err returns a non-nil error value after Done is closed.  Err returns
+	// Err returns a non-nil error value after Done is closed. Err returns
 	// Canceled if the context was canceled or DeadlineExceeded if the
-	// context's deadline passed.  No other values for Err are defined.
+	// context's deadline passed. No other values for Err are defined.
 	// After Done is closed, successive calls to Err return the same value.
 	Err() error
 
 	// Value returns the value associated with this context for key, or nil
-	// if no value is associated with key.  Successive calls to Value with
+	// if no value is associated with key. Successive calls to Value with
 	// the same key returns the same result.
 	//
 	// Use context values only for request-scoped data that transits
 	// processes and API boundaries, not for passing optional parameters to
 	// functions.
 	//
-	// A key identifies a specific value in a Context.  Functions that wish
+	// A key identifies a specific value in a Context. Functions that wish
 	// to store values in Context typically allocate a key in a global
 	// variable then use that key as the argument to context.WithValue and
-	// Context.Value.  A key can be any type that supports equality;
+	// Context.Value. A key can be any type that supports equality;
 	// packages should define keys as an unexported type to avoid
 	// collisions.
 	//
@@ -115,7 +115,7 @@
 	// 	// This prevents collisions with keys defined in other packages.
 	// 	type key int
 	//
-	// 	// userKey is the key for user.User values in Contexts.  It is
+	// 	// userKey is the key for user.User values in Contexts. It is
 	// 	// unexported; clients use user.NewContext and user.FromContext
 	// 	// instead of using this key directly.
 	// 	var userKey key = 0
@@ -134,14 +134,14 @@
 }
 
 // Background returns a non-nil, empty Context. It is never canceled, has no
-// values, and has no deadline.  It is typically used by the main function,
+// values, and has no deadline. It is typically used by the main function,
 // initialization, and tests, and as the top-level Context for incoming
 // requests.
 func Background() Context {
 	return background
 }
 
-// TODO returns a non-nil, empty Context.  Code should use context.TODO when
+// TODO returns a non-nil, empty Context. Code should use context.TODO when
 // it's unclear which Context to use or it is not yet available (because the
 // surrounding function has not yet been extended to accept a Context
 // parameter).  TODO is recognized by static analysis tools that determine
diff --git a/context/go17.go b/context/go17.go
index f8cda19..d20f52b 100644
--- a/context/go17.go
+++ b/context/go17.go
@@ -35,8 +35,8 @@
 }
 
 // WithDeadline returns a copy of the parent context with the deadline adjusted
-// to be no later than d.  If the parent's deadline is already earlier than d,
-// WithDeadline(parent, d) is semantically equivalent to parent.  The returned
+// to be no later than d. If the parent's deadline is already earlier than d,
+// WithDeadline(parent, d) is semantically equivalent to parent. The returned
 // context's Done channel is closed when the deadline expires, when the returned
 // cancel function is called, or when the parent context's Done channel is
 // closed, whichever happens first.
diff --git a/context/pre_go17.go b/context/pre_go17.go
index 5a30aca..0f35592 100644
--- a/context/pre_go17.go
+++ b/context/pre_go17.go
@@ -13,7 +13,7 @@
 	"time"
 )
 
-// An emptyCtx is never canceled, has no values, and has no deadline.  It is not
+// An emptyCtx is never canceled, has no values, and has no deadline. It is not
 // struct{}, since vars of this type must have distinct addresses.
 type emptyCtx int
 
@@ -104,7 +104,7 @@
 }
 
 // parentCancelCtx follows a chain of parent references until it finds a
-// *cancelCtx.  This function understands how each of the concrete types in this
+// *cancelCtx. This function understands how each of the concrete types in this
 // package represents its parent.
 func parentCancelCtx(parent Context) (*cancelCtx, bool) {
 	for {
@@ -134,14 +134,14 @@
 	p.mu.Unlock()
 }
 
-// A canceler is a context type that can be canceled directly.  The
+// A canceler is a context type that can be canceled directly. The
 // implementations are *cancelCtx and *timerCtx.
 type canceler interface {
 	cancel(removeFromParent bool, err error)
 	Done() <-chan struct{}
 }
 
-// A cancelCtx can be canceled.  When canceled, it also cancels any children
+// A cancelCtx can be canceled. When canceled, it also cancels any children
 // that implement canceler.
 type cancelCtx struct {
 	Context
@@ -193,8 +193,8 @@
 }
 
 // WithDeadline returns a copy of the parent context with the deadline adjusted
-// to be no later than d.  If the parent's deadline is already earlier than d,
-// WithDeadline(parent, d) is semantically equivalent to parent.  The returned
+// to be no later than d. If the parent's deadline is already earlier than d,
+// WithDeadline(parent, d) is semantically equivalent to parent. The returned
 // context's Done channel is closed when the deadline expires, when the returned
 // cancel function is called, or when the parent context's Done channel is
 // closed, whichever happens first.
@@ -226,8 +226,8 @@
 	return c, func() { c.cancel(true, Canceled) }
 }
 
-// A timerCtx carries a timer and a deadline.  It embeds a cancelCtx to
-// implement Done and Err.  It implements cancel by stopping its timer then
+// A timerCtx carries a timer and a deadline. It embeds a cancelCtx to
+// implement Done and Err. It implements cancel by stopping its timer then
 // delegating to cancelCtx.cancel.
 type timerCtx struct {
 	*cancelCtx
@@ -281,7 +281,7 @@
 	return &valueCtx{parent, key, val}
 }
 
-// A valueCtx carries a key-value pair.  It implements Value for that key and
+// A valueCtx carries a key-value pair. It implements Value for that key and
 // delegates all other calls to the embedded Context.
 type valueCtx struct {
 	Context
diff --git a/http2/client_conn_pool.go b/http2/client_conn_pool.go
index b139412..bdf5652 100644
--- a/http2/client_conn_pool.go
+++ b/http2/client_conn_pool.go
@@ -247,7 +247,7 @@
 }
 
 // noDialClientConnPool is an implementation of http2.ClientConnPool
-// which never dials.  We let the HTTP/1.1 client dial and use its TLS
+// which never dials. We let the HTTP/1.1 client dial and use its TLS
 // connection instead.
 type noDialClientConnPool struct{ *clientConnPool }
 
diff --git a/http2/frame.go b/http2/frame.go
index 358833f..0f075ba 100644
--- a/http2/frame.go
+++ b/http2/frame.go
@@ -312,7 +312,7 @@
 	MaxHeaderListSize uint32
 
 	// TODO: track which type of frame & with which flags was sent
-	// last.  Then return an error (unless AllowIllegalWrites) if
+	// last. Then return an error (unless AllowIllegalWrites) if
 	// we're in the middle of a header block and a
 	// non-Continuation or Continuation on a different stream is
 	// attempted to be written.
@@ -663,7 +663,7 @@
 func parseSettingsFrame(fh FrameHeader, p []byte) (Frame, error) {
 	if fh.Flags.Has(FlagSettingsAck) && fh.Length > 0 {
 		// When this (ACK 0x1) bit is set, the payload of the
-		// SETTINGS frame MUST be empty.  Receipt of a
+		// SETTINGS frame MUST be empty. Receipt of a
 		// SETTINGS frame with the ACK flag set and a length
 		// field value other than 0 MUST be treated as a
 		// connection error (Section 5.4.1) of type
@@ -672,7 +672,7 @@
 	}
 	if fh.StreamID != 0 {
 		// SETTINGS frames always apply to a connection,
-		// never a single stream.  The stream identifier for a
+		// never a single stream. The stream identifier for a
 		// SETTINGS frame MUST be zero (0x0).  If an endpoint
 		// receives a SETTINGS frame whose stream identifier
 		// field is anything other than 0x0, the endpoint MUST
@@ -923,7 +923,7 @@
 		FrameHeader: fh,
 	}
 	if fh.StreamID == 0 {
-		// HEADERS frames MUST be associated with a stream.  If a HEADERS frame
+		// HEADERS frames MUST be associated with a stream. If a HEADERS frame
 		// is received whose stream identifier field is 0x0, the recipient MUST
 		// respond with a connection error (Section 5.4.1) of type
 		// PROTOCOL_ERROR.
@@ -1045,7 +1045,7 @@
 	Exclusive bool
 
 	// Weight is the stream's zero-indexed weight. It should be
-	// set together with StreamDep, or neither should be set.  Per
+	// set together with StreamDep, or neither should be set. Per
 	// the spec, "Add one to the value to obtain a weight between
 	// 1 and 256."
 	Weight uint8
diff --git a/http2/hpack/encode.go b/http2/hpack/encode.go
index f9bb033..6b3b9f8 100644
--- a/http2/hpack/encode.go
+++ b/http2/hpack/encode.go
@@ -45,7 +45,7 @@
 
 // WriteField encodes f into a single Write to e's underlying Writer.
 // This function may also produce bytes for "Header Table Size Update"
-// if necessary.  If produced, it is done before encoding f.
+// if necessary. If produced, it is done before encoding f.
 func (e *Encoder) WriteField(f HeaderField) error {
 	e.buf = e.buf[:0]
 
diff --git a/http2/hpack/hpack.go b/http2/hpack/hpack.go
index 135b9f6..007bc7f 100644
--- a/http2/hpack/hpack.go
+++ b/http2/hpack/hpack.go
@@ -61,7 +61,7 @@
 func (hf HeaderField) Size() uint32 {
 	// http://http2.github.io/http2-spec/compression.html#rfc.section.4.1
 	// "The size of the dynamic table is the sum of the size of
-	// its entries.  The size of an entry is the sum of its name's
+	// its entries. The size of an entry is the sum of its name's
 	// length in octets (as defined in Section 5.2), its value's
 	// length in octets (see Section 5.2), plus 32.  The size of
 	// an entry is calculated using the length of the name and
@@ -307,7 +307,7 @@
 		err = d.parseHeaderFieldRepr()
 		if err == errNeedMore {
 			// Extra paranoia, making sure saveBuf won't
-			// get too large.  All the varint and string
+			// get too large. All the varint and string
 			// reading code earlier should already catch
 			// overlong things and return ErrStringLength,
 			// but keep this as a last resort.
diff --git a/http2/pipe.go b/http2/pipe.go
index 53b7a1d..914aaf8 100644
--- a/http2/pipe.go
+++ b/http2/pipe.go
@@ -10,7 +10,7 @@
 	"sync"
 )
 
-// pipe is a goroutine-safe io.Reader/io.Writer pair.  It's like
+// pipe is a goroutine-safe io.Reader/io.Writer pair. It's like
 // io.Pipe except there are no PipeReader/PipeWriter halves, and the
 // underlying buffer is an interface. (io.Pipe is always unbuffered)
 type pipe struct {
diff --git a/http2/server.go b/http2/server.go
index 3c6b90c..3c641a8 100644
--- a/http2/server.go
+++ b/http2/server.go
@@ -710,7 +710,7 @@
 		return
 	}
 	// Now that we've got the preface, get us out of the
-	// "StateNew" state.  We can't go directly to idle, though.
+	// "StateNew" state. We can't go directly to idle, though.
 	// Active means we read some data and anticipate a request. We'll
 	// do another Active when we get a HEADERS frame.
 	sc.setConnState(http.StateActive)
@@ -2103,8 +2103,8 @@
 	return
 }
 
-// responseWriter is the http.ResponseWriter implementation.  It's
-// intentionally small (1 pointer wide) to minimize garbage.  The
+// responseWriter is the http.ResponseWriter implementation. It's
+// intentionally small (1 pointer wide) to minimize garbage. The
 // responseWriterState pointer inside is zeroed at the end of a
 // request (in handlerDone) and calls on the responseWriter thereafter
 // simply crash (caller's mistake), but the much larger responseWriterState
@@ -2278,7 +2278,7 @@
 // says you SHOULD (but not must) predeclare any trailers in the
 // header, the official ResponseWriter rules said trailers in Go must
 // be predeclared, and then we reuse the same ResponseWriter.Header()
-// map to mean both Headers and Trailers.  When it's time to write the
+// map to mean both Headers and Trailers. When it's time to write the
 // Trailers, we pick out the fields of Headers that were declared as
 // trailers. That worked for a while, until we found the first major
 // user of Trailers in the wild: gRPC (using them only over http2),
diff --git a/http2/server_test.go b/http2/server_test.go
index dfa4cff..c3bd384 100644
--- a/http2/server_test.go
+++ b/http2/server_test.go
@@ -318,7 +318,7 @@
 }
 
 // encodeHeader encodes headers and returns their HPACK bytes. headers
-// must contain an even number of key/value pairs.  There may be
+// must contain an even number of key/value pairs. There may be
 // multiple pairs for keys (e.g. "cookie").  The :method, :path, and
 // :scheme headers default to GET, / and https. The :authority header
 // defaults to st.ts.Listener.Addr().
@@ -656,7 +656,7 @@
 }
 
 // TODO: add a test with EndStream=true on the HEADERS but setting a
-// Content-Length anyway.  Should we just omit it and force it to
+// Content-Length anyway. Should we just omit it and force it to
 // zero?
 
 func TestServer_Request_Post_NoContentLength_EndStream(t *testing.T) {
diff --git a/http2/transport.go b/http2/transport.go
index 0c7e859..fef8396 100644
--- a/http2/transport.go
+++ b/http2/transport.go
@@ -575,7 +575,7 @@
 		cc.nextStreamID < math.MaxInt32
 }
 
-// onIdleTimeout is called from a time.AfterFunc goroutine.  It will
+// onIdleTimeout is called from a time.AfterFunc goroutine. It will
 // only be called when we're idle, but because we're coming from a new
 // goroutine, there could be a new request coming in at the same time,
 // so this simply calls the synchronized closeIfIdle to shut down this
@@ -809,8 +809,8 @@
 			// 2xx, however, then assume the server DOES potentially
 			// want our body (e.g. full-duplex streaming:
 			// golang.org/issue/13444). If it turns out the server
-			// doesn't, they'll RST_STREAM us soon enough.  This is a
-			// heuristic to avoid adding knobs to Transport.  Hopefully
+			// doesn't, they'll RST_STREAM us soon enough. This is a
+			// heuristic to avoid adding knobs to Transport. Hopefully
 			// we can keep it.
 			bodyWriter.cancel()
 			cs.abortRequestBodyWrite(errStopReqBodyWrite)
diff --git a/internal/timeseries/timeseries.go b/internal/timeseries/timeseries.go
index 1119f34..685f0e7 100644
--- a/internal/timeseries/timeseries.go
+++ b/internal/timeseries/timeseries.go
@@ -371,7 +371,7 @@
 		}
 	}
 
-	// Failed to find a level that covers the desired range.  So just
+	// Failed to find a level that covers the desired range. So just
 	// extract from the last level, even if it doesn't cover the entire
 	// desired range.
 	ts.extract(ts.levels[len(ts.levels)-1], start, finish, num, results)
diff --git a/ipv4/doc.go b/ipv4/doc.go
index b4ce40f..b43935a 100644
--- a/ipv4/doc.go
+++ b/ipv4/doc.go
@@ -21,7 +21,7 @@
 //
 // The options for unicasting are available for net.TCPConn,
 // net.UDPConn and net.IPConn which are created as network connections
-// that use the IPv4 transport.  When a single TCP connection carrying
+// that use the IPv4 transport. When a single TCP connection carrying
 // a data flow of multiple packets needs to indicate the flow is
 // important, Conn is used to set the type-of-service field on the
 // IPv4 header for each packet.
@@ -56,7 +56,7 @@
 //
 // The options for multicasting are available for net.UDPConn and
 // net.IPconn which are created as network connections that use the
-// IPv4 transport.  A few network facilities must be prepared before
+// IPv4 transport. A few network facilities must be prepared before
 // you begin multicasting, at a minimum joining network interfaces and
 // multicast groups.
 //
@@ -80,7 +80,7 @@
 //	defer c.Close()
 //
 // Second, the application joins multicast groups, starts listening to
-// the groups on the specified network interfaces.  Note that the
+// the groups on the specified network interfaces. Note that the
 // service port for transport layer protocol does not matter with this
 // operation as joining groups affects only network and link layer
 // protocols, such as IPv4 and Ethernet.
@@ -94,7 +94,7 @@
 //	}
 //
 // The application might set per packet control message transmissions
-// between the protocol stack within the kernel.  When the application
+// between the protocol stack within the kernel. When the application
 // needs a destination address on an incoming packet,
 // SetControlMessage of PacketConn is used to enable control message
 // transmissions.
@@ -145,7 +145,7 @@
 // More multicasting
 //
 // An application that uses PacketConn or RawConn may join multiple
-// multicast groups.  For example, a UDP listener with port 1024 might
+// multicast groups. For example, a UDP listener with port 1024 might
 // join two different groups across over two different network
 // interfaces by using:
 //
@@ -166,7 +166,7 @@
 //	}
 //
 // It is possible for multiple UDP listeners that listen on the same
-// UDP port to join the same multicast group.  The net package will
+// UDP port to join the same multicast group. The net package will
 // provide a socket that listens to a wildcard address with reusable
 // UDP port when an appropriate multicast address prefix is passed to
 // the net.ListenPacket or net.ListenUDP.
diff --git a/ipv4/endpoint.go b/ipv4/endpoint.go
index 01c4e39..8f7e07a 100644
--- a/ipv4/endpoint.go
+++ b/ipv4/endpoint.go
@@ -38,8 +38,8 @@
 }
 
 // A PacketConn represents a packet network endpoint that uses the
-// IPv4 transport.  It is used to control several IP-level socket
-// options including multicasting.  It also provides datagram based
+// IPv4 transport. It is used to control several IP-level socket
+// options including multicasting. It also provides datagram based
 // network I/O methods specific to the IPv4 and higher layer protocols
 // such as UDP.
 type PacketConn struct {
@@ -118,8 +118,8 @@
 }
 
 // A RawConn represents a packet network endpoint that uses the IPv4
-// transport.  It is used to control several IP-level socket options
-// including IPv4 header manipulation.  It also provides datagram
+// transport. It is used to control several IP-level socket options
+// including IPv4 header manipulation. It also provides datagram
 // based network I/O methods specific to the IPv4 and higher layer
 // protocols that handle IPv4 datagram directly such as OSPF, GRE.
 type RawConn struct {
diff --git a/ipv4/packet.go b/ipv4/packet.go
index 7f3bf48..d43723c 100644
--- a/ipv4/packet.go
+++ b/ipv4/packet.go
@@ -21,7 +21,7 @@
 func (c *packetHandler) ok() bool { return c != nil && c.c != nil }
 
 // ReadFrom reads an IPv4 datagram from the endpoint c, copying the
-// datagram into b.  It returns the received datagram as the IPv4
+// datagram into b. It returns the received datagram as the IPv4
 // header h, the payload p and the control message cm.
 func (c *packetHandler) ReadFrom(b []byte) (h *Header, p []byte, cm *ControlMessage, err error) {
 	if !c.ok() {
@@ -57,9 +57,9 @@
 }
 
 // WriteTo writes an IPv4 datagram through the endpoint c, copying the
-// datagram from the IPv4 header h and the payload p.  The control
+// datagram from the IPv4 header h and the payload p. The control
 // message cm allows the datagram path and the outgoing interface to be
-// specified.  Currently only Darwin and Linux support this.  The cm
+// specified.  Currently only Darwin and Linux support this. The cm
 // may be nil if control of the outgoing datagram is not required.
 //
 // The IPv4 header h must contain appropriate fields that include:
diff --git a/ipv4/payload_cmsg.go b/ipv4/payload_cmsg.go
index 9bcde8f..5e6e55c 100644
--- a/ipv4/payload_cmsg.go
+++ b/ipv4/payload_cmsg.go
@@ -12,7 +12,7 @@
 )
 
 // ReadFrom reads a payload of the received IPv4 datagram, from the
-// endpoint c, copying the payload into b.  It returns the number of
+// endpoint c, copying the payload into b. It returns the number of
 // bytes copied into b, the control message cm and the source address
 // src of the received datagram.
 func (c *payloadHandler) ReadFrom(b []byte) (n int, cm *ControlMessage, src net.Addr, err error) {
@@ -53,10 +53,10 @@
 }
 
 // WriteTo writes a payload of the IPv4 datagram, to the destination
-// address dst through the endpoint c, copying the payload from b.  It
-// returns the number of bytes written.  The control message cm allows
+// address dst through the endpoint c, copying the payload from b. It
+// returns the number of bytes written. The control message cm allows
 // the datagram path and the outgoing interface to be specified.
-// Currently only Darwin and Linux support this.  The cm may be nil if
+// Currently only Darwin and Linux support this. The cm may be nil if
 // control of the outgoing datagram is not required.
 func (c *payloadHandler) WriteTo(b []byte, cm *ControlMessage, dst net.Addr) (n int, err error) {
 	if !c.ok() {
diff --git a/ipv4/payload_nocmsg.go b/ipv4/payload_nocmsg.go
index 6f1b402..6f9d5b0 100644
--- a/ipv4/payload_nocmsg.go
+++ b/ipv4/payload_nocmsg.go
@@ -12,7 +12,7 @@
 )
 
 // ReadFrom reads a payload of the received IPv4 datagram, from the
-// endpoint c, copying the payload into b.  It returns the number of
+// endpoint c, copying the payload into b. It returns the number of
 // bytes copied into b, the control message cm and the source address
 // src of the received datagram.
 func (c *payloadHandler) ReadFrom(b []byte) (n int, cm *ControlMessage, src net.Addr, err error) {
@@ -26,10 +26,10 @@
 }
 
 // WriteTo writes a payload of the IPv4 datagram, to the destination
-// address dst through the endpoint c, copying the payload from b.  It
-// returns the number of bytes written.  The control message cm allows
+// address dst through the endpoint c, copying the payload from b. It
+// returns the number of bytes written. The control message cm allows
 // the datagram path and the outgoing interface to be specified.
-// Currently only Darwin and Linux support this.  The cm may be nil if
+// Currently only Darwin and Linux support this. The cm may be nil if
 // control of the outgoing datagram is not required.
 func (c *payloadHandler) WriteTo(b []byte, cm *ControlMessage, dst net.Addr) (n int, err error) {
 	if !c.ok() {
diff --git a/ipv6/control.go b/ipv6/control.go
index 56303f0..674628d 100644
--- a/ipv6/control.go
+++ b/ipv6/control.go
@@ -11,7 +11,7 @@
 )
 
 // Note that RFC 3542 obsoletes RFC 2292 but OS X Snow Leopard and the
-// former still support RFC 2292 only.  Please be aware that almost
+// former still support RFC 2292 only. Please be aware that almost
 // all protocol implementations prohibit using a combination of RFC
 // 2292 and RFC 3542 for some practical reasons.
 
diff --git a/ipv6/dgramopt_posix.go b/ipv6/dgramopt_posix.go
index 5714308..a448cba 100644
--- a/ipv6/dgramopt_posix.go
+++ b/ipv6/dgramopt_posix.go
@@ -227,7 +227,7 @@
 }
 
 // Checksum reports whether the kernel will compute, store or verify a
-// checksum for both incoming and outgoing packets.  If on is true, it
+// checksum for both incoming and outgoing packets. If on is true, it
 // returns an offset in bytes into the data of where the checksum
 // field is located.
 func (c *dgramOpt) Checksum() (on bool, offset int, err error) {
@@ -248,7 +248,7 @@
 	return true, offset, nil
 }
 
-// SetChecksum enables the kernel checksum processing.  If on is ture,
+// SetChecksum enables the kernel checksum processing. If on is ture,
 // the offset should be an offset in bytes into the data of where the
 // checksum field is located.
 func (c *dgramOpt) SetChecksum(on bool, offset int) error {
diff --git a/ipv6/dgramopt_stub.go b/ipv6/dgramopt_stub.go
index bc3290a..82b0686 100644
--- a/ipv6/dgramopt_stub.go
+++ b/ipv6/dgramopt_stub.go
@@ -94,14 +94,14 @@
 }
 
 // Checksum reports whether the kernel will compute, store or verify a
-// checksum for both incoming and outgoing packets.  If on is true, it
+// checksum for both incoming and outgoing packets. If on is true, it
 // returns an offset in bytes into the data of where the checksum
 // field is located.
 func (c *dgramOpt) Checksum() (on bool, offset int, err error) {
 	return false, 0, errOpNoSupport
 }
 
-// SetChecksum enables the kernel checksum processing.  If on is ture,
+// SetChecksum enables the kernel checksum processing. If on is ture,
 // the offset should be an offset in bytes into the data of where the
 // checksum field is located.
 func (c *dgramOpt) SetChecksum(on bool, offset int) error {
diff --git a/ipv6/doc.go b/ipv6/doc.go
index 88383e9..eaa24c5 100644
--- a/ipv6/doc.go
+++ b/ipv6/doc.go
@@ -22,7 +22,7 @@
 //
 // The options for unicasting are available for net.TCPConn,
 // net.UDPConn and net.IPConn which are created as network connections
-// that use the IPv6 transport.  When a single TCP connection carrying
+// that use the IPv6 transport. When a single TCP connection carrying
 // a data flow of multiple packets needs to indicate the flow is
 // important, Conn is used to set the traffic class field on the IPv6
 // header for each packet.
@@ -57,7 +57,7 @@
 //
 // The options for multicasting are available for net.UDPConn and
 // net.IPconn which are created as network connections that use the
-// IPv6 transport.  A few network facilities must be prepared before
+// IPv6 transport. A few network facilities must be prepared before
 // you begin multicasting, at a minimum joining network interfaces and
 // multicast groups.
 //
@@ -81,7 +81,7 @@
 //	defer c.Close()
 //
 // Second, the application joins multicast groups, starts listening to
-// the groups on the specified network interfaces.  Note that the
+// the groups on the specified network interfaces. Note that the
 // service port for transport layer protocol does not matter with this
 // operation as joining groups affects only network and link layer
 // protocols, such as IPv6 and Ethernet.
@@ -95,7 +95,7 @@
 //	}
 //
 // The application might set per packet control message transmissions
-// between the protocol stack within the kernel.  When the application
+// between the protocol stack within the kernel. When the application
 // needs a destination address on an incoming packet,
 // SetControlMessage of PacketConn is used to enable control message
 // transmissions.
@@ -144,7 +144,7 @@
 // More multicasting
 //
 // An application that uses PacketConn may join multiple multicast
-// groups.  For example, a UDP listener with port 1024 might join two
+// groups. For example, a UDP listener with port 1024 might join two
 // different groups across over two different network interfaces by
 // using:
 //
@@ -165,7 +165,7 @@
 //	}
 //
 // It is possible for multiple UDP listeners that listen on the same
-// UDP port to join the same multicast group.  The net package will
+// UDP port to join the same multicast group. The net package will
 // provide a socket that listens to a wildcard address with reusable
 // UDP port when an appropriate multicast address prefix is passed to
 // the net.ListenPacket or net.ListenUDP.
diff --git a/ipv6/endpoint.go b/ipv6/endpoint.go
index f6a68ab..ce0b0ce 100644
--- a/ipv6/endpoint.go
+++ b/ipv6/endpoint.go
@@ -55,8 +55,8 @@
 }
 
 // A PacketConn represents a packet network endpoint that uses IPv6
-// transport.  It is used to control several IP-level socket options
-// including IPv6 header manipulation.  It also provides datagram
+// transport. It is used to control several IP-level socket options
+// including IPv6 header manipulation. It also provides datagram
 // based network I/O methods specific to the IPv6 and higher layer
 // protocols such as OSPF, GRE, and UDP.
 type PacketConn struct {
diff --git a/ipv6/payload_cmsg.go b/ipv6/payload_cmsg.go
index 3a33585..e853c80 100644
--- a/ipv6/payload_cmsg.go
+++ b/ipv6/payload_cmsg.go
@@ -12,7 +12,7 @@
 )
 
 // ReadFrom reads a payload of the received IPv6 datagram, from the
-// endpoint c, copying the payload into b.  It returns the number of
+// endpoint c, copying the payload into b. It returns the number of
 // bytes copied into b, the control message cm and the source address
 // src of the received datagram.
 func (c *payloadHandler) ReadFrom(b []byte) (n int, cm *ControlMessage, src net.Addr, err error) {
@@ -43,9 +43,9 @@
 }
 
 // WriteTo writes a payload of the IPv6 datagram, to the destination
-// address dst through the endpoint c, copying the payload from b.  It
-// returns the number of bytes written.  The control message cm allows
-// the IPv6 header fields and the datagram path to be specified.  The
+// address dst through the endpoint c, copying the payload from b. It
+// returns the number of bytes written. The control message cm allows
+// the IPv6 header fields and the datagram path to be specified. The
 // cm may be nil if control of the outgoing datagram is not required.
 func (c *payloadHandler) WriteTo(b []byte, cm *ControlMessage, dst net.Addr) (n int, err error) {
 	if !c.ok() {
diff --git a/ipv6/payload_nocmsg.go b/ipv6/payload_nocmsg.go
index 9731cba..99a4354 100644
--- a/ipv6/payload_nocmsg.go
+++ b/ipv6/payload_nocmsg.go
@@ -12,7 +12,7 @@
 )
 
 // ReadFrom reads a payload of the received IPv6 datagram, from the
-// endpoint c, copying the payload into b.  It returns the number of
+// endpoint c, copying the payload into b. It returns the number of
 // bytes copied into b, the control message cm and the source address
 // src of the received datagram.
 func (c *payloadHandler) ReadFrom(b []byte) (n int, cm *ControlMessage, src net.Addr, err error) {
@@ -26,9 +26,9 @@
 }
 
 // WriteTo writes a payload of the IPv6 datagram, to the destination
-// address dst through the endpoint c, copying the payload from b.  It
-// returns the number of bytes written.  The control message cm allows
-// the IPv6 header fields and the datagram path to be specified.  The
+// address dst through the endpoint c, copying the payload from b. It
+// returns the number of bytes written. The control message cm allows
+// the IPv6 header fields and the datagram path to be specified. The
 // cm may be nil if control of the outgoing datagram is not required.
 func (c *payloadHandler) WriteTo(b []byte, cm *ControlMessage, dst net.Addr) (n int, err error) {
 	if !c.ok() {
diff --git a/webdav/internal/xml/marshal.go b/webdav/internal/xml/marshal.go
index 3c3b6ac..cb82ec2 100644
--- a/webdav/internal/xml/marshal.go
+++ b/webdav/internal/xml/marshal.go
@@ -26,9 +26,9 @@
 //
 // Marshal handles an array or slice by marshalling each of the elements.
 // Marshal handles a pointer by marshalling the value it points at or, if the
-// pointer is nil, by writing nothing.  Marshal handles an interface value by
+// pointer is nil, by writing nothing. Marshal handles an interface value by
 // marshalling the value it contains or, if the interface value is nil, by
-// writing nothing.  Marshal handles all other data by writing one or more XML
+// writing nothing. Marshal handles all other data by writing one or more XML
 // elements containing the data.
 //
 // The name for the XML elements is taken from, in order of preference:
@@ -61,7 +61,7 @@
 //       value were part of the outer struct.
 //
 // If a field uses a tag "a>b>c", then the element c will be nested inside
-// parent elements a and b.  Fields that appear next to each other that name
+// parent elements a and b. Fields that appear next to each other that name
 // the same parent will be enclosed in one XML element.
 //
 // See MarshalIndent for an example.
@@ -222,7 +222,7 @@
 		return p.cachedWriteError()
 	case ProcInst:
 		// First token to be encoded which is also a ProcInst with target of xml
-		// is the xml declaration.  The only ProcInst where target of xml is allowed.
+		// is the xml declaration. The only ProcInst where target of xml is allowed.
 		if t.Target == "xml" && p.Buffered() != 0 {
 			return fmt.Errorf("xml: EncodeToken of ProcInst xml target only valid for xml declaration, first token encoded")
 		}
diff --git a/webdav/internal/xml/read.go b/webdav/internal/xml/read.go
index 3ece08c..4089056 100644
--- a/webdav/internal/xml/read.go
+++ b/webdav/internal/xml/read.go
@@ -27,7 +27,7 @@
 // discarded.
 //
 // Because Unmarshal uses the reflect package, it can only assign
-// to exported (upper case) fields.  Unmarshal uses a case-sensitive
+// to exported (upper case) fields. Unmarshal uses a case-sensitive
 // comparison to match XML element names to tag values and struct
 // field names.
 //
@@ -37,7 +37,7 @@
 //
 //   * If the struct has a field of type []byte or string with tag
 //      ",innerxml", Unmarshal accumulates the raw XML nested inside the
-//      element in that field.  The rest of the rules still apply.
+//      element in that field. The rest of the rules still apply.
 //
 //   * If the struct has a field named XMLName of type xml.Name,
 //      Unmarshal records the element name in that field.
@@ -59,7 +59,7 @@
 //
 //   * If the XML element contains comments, they are accumulated in
 //      the first struct field that has tag ",comment".  The struct
-//      field may have type []byte or string.  If there is no such
+//      field may have type []byte or string. If there is no such
 //      field, the comments are discarded.
 //
 //   * If the XML element contains a sub-element whose name matches
@@ -102,7 +102,7 @@
 //
 // Unmarshal maps an XML element or attribute value to an integer or
 // floating-point field by setting the field to the result of
-// interpreting the string value in decimal.  There is no check for
+// interpreting the string value in decimal. There is no check for
 // overflow.
 //
 // Unmarshal maps an XML element to an xml.Name by recording the
diff --git a/webdav/internal/xml/xml.go b/webdav/internal/xml/xml.go
index ffab4a7..5b79cbe 100644
--- a/webdav/internal/xml/xml.go
+++ b/webdav/internal/xml/xml.go
@@ -252,7 +252,7 @@
 //
 // Slices of bytes in the returned token data refer to the
 // parser's internal buffer and remain valid only until the next
-// call to Token.  To acquire a copy of the bytes, call CopyToken
+// call to Token. To acquire a copy of the bytes, call CopyToken
 // or the token's Copy method.
 //
 // Token expands self-closing elements such as <br/>
@@ -360,7 +360,7 @@
 }
 
 // Parsing state - stack holds old name space translations
-// and the current set of open elements.  The translations to pop when
+// and the current set of open elements. The translations to pop when
 // ending a given tag are *below* it on the stack, which is
 // more work but forced on us by XML.
 type stack struct {
@@ -1253,7 +1253,7 @@
 
 // These tables were generated by cut and paste from Appendix B of
 // the XML spec at http://www.xml.com/axml/testaxml.htm
-// and then reformatting.  First corresponds to (Letter | '_' | ':')
+// and then reformatting. First corresponds to (Letter | '_' | ':')
 // and second corresponds to NameChar.
 
 var first = &unicode.RangeTable{