Possible bug with -TAG# and filter

Started by StarGeek, November 11, 2017, 06:18:09 PM

Previous topic - Next topic

StarGeek

With exiftool 10.65 and using the -api Filter option, I've come across a change from ver 10.64.  The hashtag at the end of a tag name isn't giving the pre-printconv value.  This doesn't seem to affect cases when the tag is treated as a string e.g. -if "$Description ne $Description#"

Example output.  Exiftool_10.64 is version 10.64.
C:\>exiftool -ver
10.65

C:\>exiftool -g1 -s -description y:\!temp\Test3.jpg
---- XMP-dc ----
Description                     : Testtest

C:\>exiftool -g1 -s -api "Filter=s/test/Live/ig" -description -description# y:\!temp\Test3.jpg
---- XMP-dc ----
Description                     : Testtest
Description                     : Testtest

C:\>exiftool_10.64 -g1 -s -api "Filter=s/test/Live/ig" -description -description# y:\!temp\Test3.jpg
---- XMP-dc ----
Description                     : LiveLive
Description                     : Testtest
"It didn't work" isn't helpful. What was the exact command used and the output.
Read FAQ #3 and use that cmd
Please use the Code button for exiftool output

Please include your OS/Exiftool version/filetype

Phil Harvey

Thanks.  I'll look into this and post back here when I get a chance.

- Phil
...where DIR is the name of a directory/folder containing the images.  On Mac/Linux/PowerShell, use single quotes (') instead of double quotes (") around arguments containing a dollar sign ($).

Phil Harvey

Thanks for this report.  I'm glad you found this!  This fix in ExifTool 10.65 caused the problem:

  - Fixed bug which could result in runtime warning when excluding some tags
    from being extracted


I'll work on fixing the fix.  :)

This command shows both problems:

exiftool -api filter='$_="x"' -description -filename -description# --filename FILE

For older versions of ExifTool, this will give runtime warnings as well as not outputting the proper values for Description.

- Phil
...where DIR is the name of a directory/folder containing the images.  On Mac/Linux/PowerShell, use single quotes (') instead of double quotes (") around arguments containing a dollar sign ($).

Phil Harvey

I've got a fix implemented in my test version of ExifTool 10.66.  Here is a console log showing this command for the 3 versions of ExifTool:

> Image-ExifTool-10.64/exiftool -api filter='$_="x"' -description -filename -description# --filename a.jpg
Use of uninitialized value in hash element at Image-ExifTool-10.64/lib/Image/ExifTool.pm line 2472.
Use of uninitialized value $tag in hash element at Image-ExifTool-10.64/lib/Image/ExifTool.pm line 2654.
Description                     : x
Description                     : x
> Image-ExifTool-10.65/exiftool -api filter='$_="x"' -description -filename -description# --filename a.jpg
Description                     : test
Description                     : test
> Image-ExifTool-10.66/exiftool -api filter='$_="x"' -description -filename -description# --filename a.jpg
Description                     : x
Description                     : test


I'll be releasing 10.66 within a few days.

- Phil
...where DIR is the name of a directory/folder containing the images.  On Mac/Linux/PowerShell, use single quotes (') instead of double quotes (") around arguments containing a dollar sign ($).