@@ -202,14 +202,13 @@ func (e *Exiftool) WriteMetadata(fileMetadata []FileMetadata) {
202
202
defer e .lock .Unlock ()
203
203
204
204
for i , md := range fileMetadata {
205
+ fileMetadata [i ].Err = nil
205
206
if _ , err := os .Stat (md .File ); err != nil {
206
207
if os .IsNotExist (err ) {
207
208
fileMetadata [i ].Err = ErrNotExist
208
209
continue
209
210
}
210
-
211
211
fileMetadata [i ].Err = err
212
-
213
212
continue
214
213
}
215
214
@@ -228,22 +227,25 @@ func (e *Exiftool) WriteMetadata(fileMetadata []FileMetadata) {
228
227
}
229
228
230
229
for k , v := range md .Fields {
231
- newValue := ""
232
230
switch v .(type ) {
233
231
case nil :
232
+ if _ , err := fmt .Fprintln (e .stdin , "-" + k + "=" ); err != nil {
233
+ fileMetadata [i ].Err = err
234
+ continue
235
+ }
234
236
default :
235
- var err error
236
- newValue , err = md .GetString (k )
237
+ strTab , err := md .GetStrings (k )
237
238
if err != nil {
238
239
fileMetadata [i ].Err = err
239
240
continue
240
241
}
241
- }
242
-
243
- // TODO: support writing an empty string via '^='
244
- if _ , err := fmt .Fprintln (e .stdin , "-" + k + "=" + newValue ); err != nil {
245
- fileMetadata [i ].Err = err
246
- continue
242
+ for _ , str := range strTab {
243
+ // TODO: support writing an empty string via '^='
244
+ if _ , err := fmt .Fprintln (e .stdin , "-" + k + "=" + str ); err != nil {
245
+ fileMetadata [i ].Err = err
246
+ continue
247
+ }
248
+ }
247
249
}
248
250
}
249
251
0 commit comments