ifd_enumerate: Implemented (*Ifd).ChildWithName() .

- Corrected some tabs that weren't correctly changed to spaces.
pull/3/head
Dustin Oprea 2018-06-07 21:36:14 -04:00
parent f4db9f31af
commit 4cd9e35801
3 changed files with 669 additions and 639 deletions

File diff suppressed because it is too large Load Diff

View File

@ -367,6 +367,23 @@ func (ifd *Ifd) ChildWithIfdIdentity(ii IfdIdentity) (childIfd *Ifd, err error)
return nil, nil
}
func (ifd *Ifd) ChildWithName(ifdName string) (childIfd *Ifd, err error) {
defer func() {
if state := recover(); state != nil {
err = log.Wrap(state.(error))
}
}()
for _, childIfd := range ifd.Children {
if childIfd.Ii.IfdName == ifdName {
return childIfd, nil
}
}
log.Panic(ErrTagNotFound)
return nil, nil
}
func (ifd *Ifd) TagValue(ite *IfdTagEntry) (value interface{}, err error) {
defer func() {
if state := recover(); state != nil {
@ -552,7 +569,13 @@ func (ifd *Ifd) printTagTree(populateValues bool, index, level int, nextLink boo
var err error
value, err = ifd.TagValue(tag)
log.PanicIf(err)
if err != nil {
if log.Is(err, ErrUnhandledUnknownTypedTag) == true {
value = UnparseableUnknownTagValuePlaceholder
} else {
log.Panic(err)
}
}
}
fmt.Printf("%s - TAG: %s NAME=[%s] VALUE=[%v]\n", indent, tag, tagName, value)

View File

@ -10,6 +10,10 @@ import (
"github.com/dsoprea/go-logging"
)
const (
UnparseableUnknownTagValuePlaceholder = "!UNPARSEABLE"
)
const (
TagUnknownType_9298_UserComment_Encoding_ASCII = iota
TagUnknownType_9298_UserComment_Encoding_JIS = iota