diff options
Diffstat (limited to 'src/pkg/patch/apply.go')
-rw-r--r-- | src/pkg/patch/apply.go | 54 |
1 files changed, 0 insertions, 54 deletions
diff --git a/src/pkg/patch/apply.go b/src/pkg/patch/apply.go deleted file mode 100644 index 0dd9080bf..000000000 --- a/src/pkg/patch/apply.go +++ /dev/null @@ -1,54 +0,0 @@ -// Copyright 2009 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package patch - -import "os" - -// An Op is a single operation to execute to apply a patch. -type Op struct { - Verb Verb // action - Src string // source file - Dst string // destination file - Mode int // mode for destination (if non-zero) - Data []byte // data for destination (if non-nil) -} - -// Apply applies the patch set to the files named in the patch set, -// constructing an in-memory copy of the new file state. -// It is the client's job to write the changes to the file system -// if desired. -// -// The function readFile should return the contents of the named file. -// Typically this function will be io.ReadFile. -// -func (set *Set) Apply(readFile func(string) ([]byte, os.Error)) ([]Op, os.Error) { - op := make([]Op, len(set.File)) - - for i, f := range set.File { - o := &op[i] - o.Verb = f.Verb - o.Src = f.Src - o.Dst = f.Dst - o.Mode = f.NewMode - if f.Diff != NoDiff || o.Verb != Edit { - // Clients assume o.Data == nil means no data diff. - // Start with a non-nil data. - var old []byte = make([]byte, 0) // not nil - var err os.Error - if f.Src != "" { - old, err = readFile(f.Src) - if err != nil { - 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 op, nil -} |