func keywordsToSet(img *model.Image, file_kwds []string, oldex map[string][]string) ([]string, bool) { // log.Printf("%s file: %s\n", img.Name(), strings.Join(file_kwds, ", ")) // log.Printf("%s db : %s\n", img.Name(), strings.Join(img.Keywords(), ", ")) present := make(map[string]bool) var kwds []string var k string for _, k = range img.Keywords() { kwds = appendIfNew(kwds, k, present) } for _, k = range file_kwds { kwds = appendIfNew(kwds, k, present) } old_kwds, has_old := oldex[img.Name()] if has_old { for _, k = range old_kwds { kwds = appendIfNew(kwds, k, present) } } return kwds, len(kwds) != len(file_kwds) }