--- parser3/src/classes/image.C 2013/10/02 20:37:29 1.144 +++ parser3/src/classes/image.C 2015/10/12 16:59:43 1.149 @@ -25,7 +25,7 @@ #include "pa_vdate.h" #include "pa_table.h" -volatile const char * IDENT_IMAGE_C="$Id: image.C,v 1.144 2013/10/02 20:37:29 moko Exp $"; +volatile const char * IDENT_IMAGE_C="$Id: image.C,v 1.149 2015/10/12 16:59:43 moko Exp $"; // defines @@ -179,6 +179,14 @@ public: EXIF_TAG(0xa40b, DeviceSettingDescription); EXIF_TAG(0xa40c, SubjectDistanceRange); EXIF_TAG(0xa420, ImageUniqueID); + + // other tags + EXIF_TAG(0xa430, CameraOwnerName); + EXIF_TAG(0xa431, BodySerialNumber); + EXIF_TAG(0xa432, LensSpecification); + EXIF_TAG(0xa433, LensManufactor); + EXIF_TAG(0xa434, LensModel); + EXIF_TAG(0xa435, LensSerialNumber); } } exif_tag_value2name; @@ -459,7 +467,7 @@ static Value* parse_IFD_entry_formatted_ } // date.C -tm cstr_to_time_t(char *cstr); +tm cstr_to_time_t(char *, const char **); static Value* parse_IFD_entry_formatted_value(bool is_big, ushort format, size_t component_size, uint components_count, @@ -475,7 +483,8 @@ static Value* parse_IFD_entry_formatted_ strcpy(cstr_writable, cstr); try { - return new VDate(cstr_to_time_t(cstr_writable)); + tm tmIn=cstr_to_time_t(cstr_writable, 0); + return new VDate(tmIn); } catch(...) { /*ignore bad date times*/ } } @@ -576,7 +585,7 @@ static void parse_IFD_entry(HashStringVa if(Value* value=parse_IFD_entry_value(is_big, reader, tiff_base, entry)) { if(const char* name=(gps)?exif_gps_tag_value2name.get(tag):exif_tag_value2name.get(tag)) - hash.put(String::Body(name), value); + hash.put(name, value); else hash.put(String::Body::Format(tag), value); } @@ -823,7 +832,7 @@ static void _html(Request& r, MethodPara if(params.count()) { // for backward compatibility: someday was ^html{} Value& vattribs=r.process_to_value(params[0], false/*don't intercept string*/); - if(!vattribs.is_string()) // allow empty + if(!vattribs.is_string()) { // allow empty if((attribs=vattribs.get_hash())) { Attrib_info info={&tag, 0}; attribs->for_each(append_attrib_pair, &info); @@ -831,6 +840,7 @@ static void _html(Request& r, MethodPara throw Exception(PARSER_RUNTIME, 0, "attributes must be hash"); + } } {