1
0
mirror of https://github.com/golang/go synced 2024-09-30 00:24:29 -06:00
The Go programming language
Go to file
Rob Pike 9364868a07 archive/tar,zip: implement the os.FileInfo interface correctly.
This is potentially an API-breaking change, but it is an important bug fix.

The CL https://golang.org/cl/7305072/ added stuff to make
the tar file look more like a file system internally, including providing an
implementation of os.FileInfo for the file headers within the archive.
But the code is incorrect because FileInfo.Name is supposed to return
the base name only; this implementation returns the full path. A round
trip test added in the same shows this in action, as the slashes are
preserved as we create a header using the local implementation of
FileInfo.

The CL here changes the behavior of the tar (and zip) FileInfo to honor
the Go spec for that interface. It also clarifies that the FileInfoHeader
function, which takes a FileInfo as an argument, will therefore create
a header with only the base name of the file recorded, and that
subsequent adjustment may be necessary.

There may be code out there that depends on the broken behavior.
We can call out the risk in the release notes.

Fixes #6180.

R=golang-dev, dsymonds, adg, bradfitz
CC=golang-dev
https://golang.org/cl/13118043
2013-08-21 08:29:41 +10:00
api api: update next.txt, except.txt 2013-08-20 11:14:45 +10:00
doc doc/go_faq.html: link to the SPLASH talk near the top 2013-08-20 06:44:41 +10:00
include include/plan9: define size_t to fix build breakage 2013-06-28 12:16:33 -07:00
lib cmd/godoc: delete from core repository 2013-08-01 11:21:17 +10:00
misc misc/xcode: use xcode-select to determine path 2013-08-20 20:48:29 +10:00
src archive/tar,zip: implement the os.FileInfo interface correctly. 2013-08-21 08:29:41 +10:00
test test: exit non-zero on error from nilptr2.go. 2013-08-19 17:50:22 -04:00
.hgignore build: ignore new zfiles, delete temp goplay binary in run.bash 2013-08-02 19:14:13 -07:00
.hgtags tag go1.1.2 2013-08-13 16:33:59 +10:00
AUTHORS A+C: Sokolov Yura (individual CLA) 2013-08-20 08:21:58 -07:00
CONTRIBUTORS A+C: Sokolov Yura (individual CLA) 2013-08-20 08:21:58 -07:00
favicon.ico godoc: update favicon 2012-10-11 17:02:36 +11:00
LICENSE doc: update licensing text one more time 2012-03-27 15:09:13 +11:00
PATENTS
README
robots.txt godoc: serve robots.txt raw 2011-02-19 05:46:20 +11:00

This is the source code repository for the Go programming language.  

For documentation about how to install and use Go,
visit http://golang.org/ or load doc/install.html in your web browser.

After installing Go, you can view a nicely formatted
doc/install.html by running godoc --http=:6060
and then visiting http://localhost:6060/doc/install.html.

Unless otherwise noted, the Go source files are distributed
under the BSD-style license found in the LICENSE file.

--

Binary Distribution Notes

If you have just untarred a binary Go distribution, you need to set
the environment variable $GOROOT to the full path of the go
directory (the one containing this README).  You can omit the
variable if you unpack it into /usr/local/go, or if you rebuild
from sources by running all.bash (see doc/install.html).
You should also add the Go binary directory $GOROOT/bin
to your shell's path.

For example, if you extracted the tar file into $HOME/go, you might
put the following in your .profile:

    export GOROOT=$HOME/go
    export PATH=$PATH:$GOROOT/bin

See doc/install.html for more details.