/usr/share/tdiary/exifparser/makernote/minolta.rb is in tdiary-contrib 3.2.2-1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 | #
# exifparser/makernote/minolta.rb
#
# $Revision: 1.2 $
# $Date: 2003/05/13 15:41:28 $
#
require 'exifparser/tag'
require 'exifparser/utils'
module Exif
module Tag
module MakerNote
end
MinoltaIFDTable = {
}
end
class Minolta
def initialize(fin, tiff_origin, dataPos, byteOrder_module)
@fin = fin
@tiffHeader0 = tiff_origin
@dataPos = dataPos
@byteOrder_module = byteOrder_module
self.extend @byteOrder_module
end
def scan_IFD
#
# Minolta MakerNote starts from 0 byte from the origin
#
@fin.pos = @dataPos + 0
#
# get the number of tags
#
numDirs = decode_ushort(fin_read_n(2))
#
# now scan them
#
1.upto(numDirs) {
curpos_tag = @fin.pos
tag = parseTagID(fin_read_n(2))
tagclass = Tag.find(tag.hex, Tag::MinoltaIFDTable)
unit, formatter = Tag::Format::Unit[decode_ushort(fin_read_n(2))]
count = decode_ulong(fin_read_n(4))
tagdata = fin_read_n(4)
obj = tagclass.new(tag, "MakerNote", count)
obj.extend formatter, @byteOrder_module
obj.pos = curpos_tag
if unit * count > 4
curpos = @fin.pos
begin
@fin.pos = @tiffHeader0 + decode_ulong(tagdata)
obj.dataPos = @fin.pos
obj.data = fin_read_n(unit*count)
ensure
@fin.pos = curpos
end
else
obj.dataPos = @fin.pos - 4
obj.data = tagdata
end
obj.processData
yield obj
}
end
private
def fin_read_n(n)
@fin.read(n)
end
end
end
|