Skip to content

Commit

Permalink
Merge pull request #141 from cyphar/xattr-correct-prefix-handling
Browse files Browse the repository at this point in the history
compare: correctly use .Prefix() during comparisons
  • Loading branch information
vbatts authored Sep 29, 2017
2 parents ba49f2f + 8e5c54f commit 6fec2c6
Show file tree
Hide file tree
Showing 3 changed files with 17 additions and 4 deletions.
6 changes: 3 additions & 3 deletions compare.go
Original file line number Diff line number Diff line change
Expand Up @@ -197,7 +197,7 @@ func compareEntry(oldEntry, newEntry Entry) ([]KeyDelta, error) {
for _, kv := range oldKeys {
key := kv.Keyword()
// only add this diff if the new keys has this keyword
if key != "tar_time" && key != "time" && key != "xattr" && len(HasKeyword(newKeys, key)) == 0 {
if key != "tar_time" && key != "time" && key.Prefix() != "xattr" && len(HasKeyword(newKeys, key)) == 0 {
continue
}

Expand All @@ -216,7 +216,7 @@ func compareEntry(oldEntry, newEntry Entry) ([]KeyDelta, error) {
for _, kv := range newKeys {
key := kv.Keyword()
// only add this diff if the old keys has this keyword
if key != "tar_time" && key != "time" && key != "xattr" && len(HasKeyword(oldKeys, key)) == 0 {
if key != "tar_time" && key != "time" && key.Prefix() != "xattr" && len(HasKeyword(oldKeys, key)) == 0 {
continue
}

Expand Down Expand Up @@ -414,7 +414,7 @@ func Compare(oldDh, newDh *DirectoryHierarchy, keys []Keyword) ([]InodeDelta, er
if keys != nil {
var filterChanged []KeyDelta
for _, keyDiff := range changed {
if InKeywordSlice(keyDiff.name, keys) {
if InKeywordSlice(keyDiff.name.Prefix(), keys) {
filterChanged = append(filterChanged, keyDiff)
}
}
Expand Down
2 changes: 1 addition & 1 deletion hierarchy.go
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ func (dh DirectoryHierarchy) UsedKeywords() []Keyword {
if e.Type != SpecialType || e.Name == "/set" {
kvs := e.Keywords
for _, kv := range kvs {
kw := KeyVal(kv).Keyword()
kw := KeyVal(kv).Keyword().Prefix()
if !InKeywordSlice(kw, usedkeywords) {
usedkeywords = append(usedkeywords, KeywordSynonym(string(kw)))
}
Expand Down
13 changes: 13 additions & 0 deletions hierarchy_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,19 @@ var checklist = []struct {
.COMMIT_EDITMSG.un~ size=1006 mode=0644 time=1479325423.450468662 sha1digest=dead0face
.TAG_EDITMSG.un~ size=1069 mode=0600 time=1471362316.801317529 sha256digest=dead0face
`, set: []Keyword{"size", "mode", "time", "sha256digest"}},
{blob: `
# user: cyphar
# machine: ryuk
# tree: xattr
# date: Fri Sep 29 21:00:41 2017
# keywords: size,type,uid,gid,mode,link,nlink,time,xattr
# .
/set type=file nlink=1 mode=0664 uid=1000 gid=100 xattr.user.kira=SSdsbCB0YWtlIGEgcG90YXRvIGNoaXAuLi4gYW5kIGVhdCBpdCE=
. size=8 type=dir mode=0755 time=1506666472.255992830
file size=0 mode=0644 time=1506666472.255992830 xattr.user.something=dGVzdA==
..
`, set: []Keyword{"size", "type", "uid", "gid", "mode", "nlink", "time", "xattr"}},
}

func TestUsedKeywords(t *testing.T) {
Expand Down

0 comments on commit 6fec2c6

Please sign in to comment.