You can subscribe to this list here.
2002 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
(22) |
Sep
(57) |
Oct
(39) |
Nov
(93) |
Dec
(72) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2003 |
Jan
(15) |
Feb
(8) |
Mar
(12) |
Apr
(25) |
May
(2) |
Jun
|
Jul
(11) |
Aug
(32) |
Sep
(18) |
Oct
(53) |
Nov
|
Dec
(11) |
2004 |
Jan
(19) |
Feb
(1) |
Mar
(15) |
Apr
(17) |
May
(56) |
Jun
(19) |
Jul
(6) |
Aug
(16) |
Sep
(44) |
Oct
(31) |
Nov
(36) |
Dec
(13) |
2005 |
Jan
(2) |
Feb
(41) |
Mar
(304) |
Apr
(176) |
May
(19) |
Jun
(33) |
Jul
(14) |
Aug
(21) |
Sep
(4) |
Oct
(3) |
Nov
|
Dec
(8) |
2006 |
Jan
(18) |
Feb
(9) |
Mar
(5) |
Apr
(2) |
May
(2) |
Jun
(4) |
Jul
(2) |
Aug
|
Sep
(7) |
Oct
(10) |
Nov
|
Dec
|
2007 |
Jan
|
Feb
(3) |
Mar
(1) |
Apr
(4) |
May
(124) |
Jun
(59) |
Jul
(1) |
Aug
(13) |
Sep
(3) |
Oct
(11) |
Nov
(30) |
Dec
(35) |
2008 |
Jan
(31) |
Feb
(42) |
Mar
(4) |
Apr
(5) |
May
(2) |
Jun
(12) |
Jul
(8) |
Aug
(2) |
Sep
(4) |
Oct
(5) |
Nov
(89) |
Dec
(23) |
2009 |
Jan
(71) |
Feb
(5) |
Mar
(8) |
Apr
(7) |
May
(8) |
Jun
(7) |
Jul
|
Aug
(4) |
Sep
(58) |
Oct
(74) |
Nov
(53) |
Dec
(32) |
2010 |
Jan
(8) |
Feb
(13) |
Mar
(4) |
Apr
|
May
|
Jun
(10) |
Jul
(1) |
Aug
(2) |
Sep
(12) |
Oct
(17) |
Nov
(2) |
Dec
(24) |
2011 |
Jan
(2) |
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2012 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
(24) |
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2013 |
Jan
|
Feb
(20) |
Mar
(18) |
Apr
|
May
|
Jun
|
Jul
(5) |
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2014 |
Jan
(2) |
Feb
|
Mar
|
Apr
|
May
(1) |
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2016 |
Jan
|
Feb
|
Mar
|
Apr
(4) |
May
|
Jun
|
Jul
|
Aug
|
Sep
(12) |
Oct
|
Nov
|
Dec
|
2017 |
Jan
|
Feb
|
Mar
|
Apr
|
May
(8) |
Jun
|
Jul
(7) |
Aug
|
Sep
|
Oct
|
Nov
(1) |
Dec
(5) |
From: Dan F. <dfa...@us...> - 2009-01-07 07:28:49
|
Update of /cvsroot/libexif/libexif/libexif In directory ddv4jf1.ch3.sourceforge.com:/tmp/cvs-serv10402/libexif Modified Files: exif-tag.c Log Message: libexif/exif-tags.c: Added remaining GPS tags from the EXIF 2.2 spec to the tag table. Index: exif-tag.c =================================================================== RCS file: /cvsroot/libexif/libexif/libexif/exif-tag.c,v retrieving revision 1.43 retrieving revision 1.44 diff -u -p -d -r1.43 -r1.44 --- exif-tag.c 27 Nov 2008 06:54:45 -0000 1.43 +++ exif-tag.c 7 Jan 2009 07:28:40 -0000 1.44 @@ -324,6 +324,7 @@ static const struct { "Interoperability structure of the GPS Info IFD, like that of " "Exif IFD, has no image data."), { ESL_NNNN, ESL_NNNN, ESL_NNNN, ESL_NNNN, ESL_NNNN } }, + {EXIF_TAG_GPS_VERSION_ID, "GPSVersionID", N_("GPS tag version"), N_("Indicates the version of <GPSInfoIFD>. The version is given " "as 2.0.0.0. This tag is mandatory when <GPSInfo> tag is " @@ -365,12 +366,111 @@ static const struct { N_("Indicates the altitude based on the reference in GPSAltitudeRef. " "Altitude is expressed as one RATIONAL value. The reference unit " "is meters."), ESL_GPS}, + {EXIF_TAG_GPS_TIME_STAMP, "GPSTimeStamp", N_("GPS time (atomic clock)"), + N_("Indicates the time as UTC (Coordinated Universal Time). " + "TimeStamp is expressed as three RATIONAL values giving " + "the hour, minute, and second."), ESL_GPS}, + {EXIF_TAG_GPS_SATELLITES, "GPSSatellites", N_("GPS satellites used for measurement"), + N_("Indicates the GPS satellites used for measurements. This " + "tag can be used to describe the number of satellites, their ID " + "number, angle of elevation, azimuth, SNR and other information " + "in ASCII notation. The format is not specified. If the GPS " + "receiver is incapable of taking measurements, value of the tag " + "shall be set to NULL."), ESL_GPS}, + {EXIF_TAG_GPS_STATUS, "GPSStatus", N_("GPS receiver status"), + N_("Indicates the status of the GPS receiver when the image is " + "recorded. 'A' means measurement is in progress, and 'V' means " + "the measurement is Interoperability."), ESL_GPS}, + {EXIF_TAG_GPS_MEASURE_MODE, "GPSMeasureMode", N_("GPS measurement mode"), + N_("Indicates the GPS measurement mode. '2' means " + "two-dimensional measurement and '3' means three-dimensional " + "measurement is in progress."), ESL_GPS}, + {EXIF_TAG_GPS_DOP, "GPSDOP", N_("Measurement precision"), + N_("Indicates the GPS DOP (data degree of precision). An HDOP " + "value is written during two-dimensional measurement, and PDOP " + "during three-dimensional measurement."), ESL_GPS}, + {EXIF_TAG_GPS_SPEED_REF, "GPSSpeedRef", N_("Speed unit"), + N_("Indicates the unit used to express the GPS receiver speed " + "of movement. 'K' 'M' and 'N' represents kilometers per hour, " + "miles per hour, and knots."), ESL_GPS}, + {EXIF_TAG_GPS_SPEED, "GPSSpeed", N_("Speed of GPS receiver"), + N_("Indicates the speed of GPS receiver movement."), ESL_GPS}, + {EXIF_TAG_GPS_TRACK_REF, "GPSTrackRef", N_("Reference for direction of movement"), + N_("Indicates the reference for giving the direction of GPS " + "receiver movement. 'T' denotes true direction and 'M' is " + "magnetic direction."), ESL_GPS}, + {EXIF_TAG_GPS_TRACK, "GPSTrack", N_("Direction of movement"), + N_("Indicates the direction of GPS receiver movement. The range " + "of values is from 0.00 to 359.99."), ESL_GPS}, {EXIF_TAG_GPS_IMG_DIRECTION_REF, "GPSImgDirectionRef", N_("GPS Img Direction Reference"), N_("Indicates the reference for giving the direction of the image when it is captured. " "'T' denotes true direction and 'M' is magnetic direction."), ESL_GPS}, {EXIF_TAG_GPS_IMG_DIRECTION, "GPSImgDirection", N_("GPS Img Direction"), N_("Indicates the direction of the image when it was captured. The range of values is " "from 0.00 to 359.99."), ESL_GPS}, + {EXIF_TAG_GPS_MAP_DATUM, "GPSMapDatum", N_("Geodetic survey data used"), + N_("Indicates the geodetic survey data used by the GPS " + "receiver. If the survey data is restricted to Japan, the value " + "of this tag is 'TOKYO' or 'WGS-84'. If a GPS Info tag is " + "recorded, it is strongly recommended that this tag be recorded."), ESL_GPS}, + {EXIF_TAG_GPS_DEST_LATITUDE_REF, "GPSDestLatitudeRef", N_("Reference for latitude of destination"), + N_("Indicates whether the latitude of the destination point is " + "north or south latitude. The ASCII value 'N' indicates north " + "latitude, and 'S' is south latitude."), ESL_GPS}, + {EXIF_TAG_GPS_DEST_LATITUDE, "GPSDestLatitude", N_("Latitude of destination"), + N_("Indicates the latitude of the destination point. The " + "latitude is expressed as three RATIONAL values giving the " + "degrees, minutes, and seconds, respectively. If latitude is " + "expressed as degrees, minutes and seconds, a typical format " + "would be dd/1,mm/1,ss/1. When degrees and minutes are used and, " + "for example, fractions of minutes are given up to two decimal " + "places, the format would be dd/1,mmmm/100,0/1."), ESL_GPS}, + {EXIF_TAG_GPS_DEST_LONGITUDE_REF, "GPSDestLongitudeRef", N_("Reference for longitude of destination"), + N_("Indicates whether the longitude of the destination point is " + "east or west longitude. ASCII 'E' indicates east longitude, and " + "'W' is west longitude."), ESL_GPS}, + {EXIF_TAG_GPS_DEST_LONGITUDE, "GPSDestLongitude", N_("Longitude of destination"), + N_("Indicates the longitude of the destination point. The " + "longitude is expressed as three RATIONAL values giving the " + "degrees, minutes, and seconds, respectively. If longitude is " + "expressed as degrees, minutes and seconds, a typical format " + "would be ddd/1,mm/1,ss/1. When degrees and minutes are used " + "and, for example, fractions of minutes are given up to two " + "decimal places, the format would be ddd/1,mmmm/100,0/1."), + ESL_GPS}, + {EXIF_TAG_GPS_DEST_BEARING_REF, "GPSDestBearingRef", N_("Reference for bearing of destination"), + N_("Indicates the reference used for giving the bearing to " + "the destination point. 'T' denotes true direction and 'M' is " + "magnetic direction."), ESL_GPS}, + {EXIF_TAG_GPS_DEST_BEARING, "GPSDestBearing", N_("Bearing of destination"), + N_("Indicates the bearing to the destination point. The range " + "of values is from 0.00 to 359.99."), ESL_GPS}, + {EXIF_TAG_GPS_DEST_DISTANCE_REF, "GPSDestDistanceRef", N_("Reference for distance to destination"), + N_("Indicates the unit used to express the distance to the " + "destination point. 'K', 'M' and 'N' represent kilometers, miles " + "and knots."), ESL_GPS}, + {EXIF_TAG_GPS_DEST_DISTANCE, "GPSDestDistance", N_("Distance to destination"), + N_("Indicates the distance to the destination point."), ESL_GPS}, + {EXIF_TAG_GPS_PROCESSING_METHOD, "GPSProcessingMethod", N_("Name of GPS processing method"), + N_("A character string recording the name of the method used " + "for location finding. The first byte indicates the character " + "code used (Table 6 Table 7), and this is followed by the name " + "of the method. Since the Type is not ASCII, NULL termination is " + "not necessary."), ESL_GPS}, + {EXIF_TAG_GPS_AREA_INFORMATION, "GPSAreaInformation", N_("Name of GPS area"), + N_("A character string recording the name of the GPS area. The " + "first byte indicates the character code used (Table 6 Table " + "7), and this is followed by the name of the GPS area. Since " + "the Type is not ASCII, NULL termination is not necessary."), ESL_GPS}, + {EXIF_TAG_GPS_DATE_STAMP, "GPSDateStamp", N_("GPS date"), + N_("A character string recording date and time information " + "relative to UTC (Coordinated Universal Time). The format is " + "\"YYYY:MM:DD\". The length of the string is 11 bytes including " + "NULL."), ESL_GPS}, + {EXIF_TAG_GPS_DIFFERENTIAL, "GPSDifferential", N_("GPS differential correction"), + N_("Indicates whether differential correction is applied to the " + "GPS receiver."), ESL_GPS}, + {EXIF_TAG_ISO_SPEED_RATINGS, "ISOSpeedRatings", N_("ISO Speed Ratings"), N_("Indicates the ISO Speed and ISO Latitude of the camera or " @@ -393,7 +493,7 @@ static const struct { { ESL_NNNN, ESL_NNNN, ESL_OOOO, ESL_NNNN, ESL_NNNN } }, {EXIF_TAG_DATE_TIME_DIGITIZED, "DateTimeDigitized", N_("Date and Time (digitized)"), - N_("The date and time when the image was stored as digital data. "), + N_("The date and time when the image was stored as digital data."), { ESL_NNNN, ESL_NNNN, ESL_OOOO, ESL_NNNN, ESL_NNNN } }, {EXIF_TAG_COMPONENTS_CONFIGURATION, "ComponentsConfiguration", N_("Components Configuration"), |
From: Dan F. <dfa...@us...> - 2009-01-03 08:19:27
|
Update of /cvsroot/libexif/libexif/libexif In directory ddv4jf1.ch3.sourceforge.com:/tmp/cvs-serv20514/libexif Modified Files: exif-content.h exif-mnote-data.h Log Message: Updated Doxygen comments Index: exif-mnote-data.h =================================================================== RCS file: /cvsroot/libexif/libexif/libexif/exif-mnote-data.h,v retrieving revision 1.8 retrieving revision 1.9 diff -u -p -d -r1.8 -r1.9 --- exif-mnote-data.h 27 Nov 2008 06:54:45 -0000 1.8 +++ exif-mnote-data.h 3 Jan 2009 08:19:20 -0000 1.9 @@ -77,15 +77,16 @@ unsigned int exif_mnote_data_get_id * containing only US-ASCII alphanumeric characters. * * \param[in] d MakerNote data - * \param[in] n tag number within the namespace of this type of MakerNote + * \param[in] n index of the entry within the MakerNote data * \return textual name of the tag */ const char *exif_mnote_data_get_name (ExifMnoteData *d, unsigned int n); /*! Returns textual title of the given MakerNote tag. + * The title is a short, localized textual description of the tag. * * \param[in] d MakerNote data - * \param[in] n tag number within the namespace of this type of MakerNote + * \param[in] n index of the entry within the MakerNote data * \return textual name of the tag */ const char *exif_mnote_data_get_title (ExifMnoteData *d, unsigned int n); @@ -93,7 +94,7 @@ const char *exif_mnote_data_get_title /*! Returns verbose textual description of the given MakerNote tag. * * \param[in] d MakerNote data - * \param[in] n tag number within the namespace of this type of MakerNote + * \param[in] n index of the entry within the MakerNote data * \return textual description of the tag */ const char *exif_mnote_data_get_description (ExifMnoteData *d, unsigned int n); @@ -105,7 +106,7 @@ const char *exif_mnote_data_get_descrip * of the camera. * * \param[in] d MakerNote data - * \param[in] n tag number within the namespace of this type of MakerNote + * \param[in] n index of the entry within the MakerNote data * \param[out] val buffer in which to store value * \param[in] maxlen length of the buffer val * \return val pointer, or NULL on error Index: exif-content.h =================================================================== RCS file: /cvsroot/libexif/libexif/libexif/exif-content.h,v retrieving revision 1.18 retrieving revision 1.19 diff -u -p -d -r1.18 -r1.19 --- exif-content.h 23 Dec 2008 08:33:55 -0000 1.18 +++ exif-content.h 3 Jan 2009 08:19:20 -0000 1.19 @@ -72,6 +72,8 @@ void exif_content_add_entry ( void exif_content_remove_entry (ExifContent *c, ExifEntry *e); /*! Return the #ExifEntry in this IFD corresponding to the given tag. + * This is a pointer into a member of the #ExifContent array and must NOT be + * freed by the caller. * * \param[in] content EXIF content for an IFD * \param[in] tag EXIF tag to return |
From: Dan F. <dfa...@us...> - 2009-01-03 08:17:44
|
Update of /cvsroot/libexif/libexif/contrib/examples In directory ddv4jf1.ch3.sourceforge.com:/tmp/cvs-serv20402/contrib/examples Modified Files: Makefile.am Added Files: photographer.c Log Message: contrib/examples/photographer.c: Added example program to show how to display EXIF and MakerNote tags Index: Makefile.am =================================================================== RCS file: /cvsroot/libexif/libexif/contrib/examples/Makefile.am,v retrieving revision 1.1 retrieving revision 1.2 diff -u -p -d -r1.1 -r1.2 --- Makefile.am 18 Nov 2008 20:42:13 -0000 1.1 +++ Makefile.am 3 Jan 2009 08:17:37 -0000 1.2 @@ -1,5 +1,5 @@ # Simple example programs -check_PROGRAMS = thumbnail +check_PROGRAMS = photographer thumbnail # Example programs with dependencies other than plain libexif COMPLICATED_EXAMPLES = cam_features.c --- NEW FILE: photographer.c --- /* * libexif example program to display the contents of a number of specific * EXIF and MakerNote tags. The tags selected are those that may aid in * identification of the photographer who took the image. * * Placed into the public domain by Dan Fandrich */ #include <stdio.h> #include <string.h> #include <libexif/exif-data.h> /* Remove spaces on the right of the string */ static void trim_spaces(char *buf) { char *s = buf-1; for (; *buf; ++buf) { if (*buf != ' ') s = buf; } *++s = 0; /* nul terminate the string on the first of the final spaces */ } /* Show the tag name and contents if the tag exists */ static void show_tag(ExifData *d, ExifIfd ifd, ExifTag tag) { /* See if this tag exists */ ExifEntry *entry = exif_content_get_entry(d->ifd[ifd],tag); if (entry) { char buf[1024]; /* Get the contents of the tag in human-readable form */ exif_entry_get_value(entry, buf, sizeof(buf)); /* Don't bother printing it if it's entirely blank */ trim_spaces(buf); if (*buf) { printf("%s: %s\n", exif_tag_get_name_in_ifd(tag,ifd), buf); } } } /* Show the given MakerNote tag if it exists */ static void show_mnote_tag(ExifData *d, unsigned tag) { ExifMnoteData *mn = exif_data_get_mnote_data(d); if (mn) { int num = exif_mnote_data_count(mn); int i; /* Loop through all MakerNote tags, searching for the desired one */ for (i=0; i < num; ++i) { char buf[1024]; if (exif_mnote_data_get_id(mn, i) == tag) { if (exif_mnote_data_get_value(mn, i, buf, sizeof(buf))) { /* Don't bother printing it if it's entirely blank */ trim_spaces(buf); if (*buf) { printf("%s: %s\n", exif_mnote_data_get_title(mn, i), buf); } } } } } } int main(int argc, char **argv) { ExifData *ed; if (argc < 2) { printf("Usage: %s image.jpg\n", argv[0]); printf("Displays tags potentially relating to ownership " "of the image.\n"); return 1; } /* Load an ExifData object from an EXIF file */ ed = exif_data_new_from_file(argv[1]); if (!ed) { printf("File not readable or no EXIF data in file %s\n", argv[1]); return 2; } /* Show all the tags that might contain information about the * photographer */ show_tag(ed, EXIF_IFD_0, EXIF_TAG_ARTIST); show_tag(ed, EXIF_IFD_0, EXIF_TAG_XP_AUTHOR); show_tag(ed, EXIF_IFD_0, EXIF_TAG_COPYRIGHT); /* These are much less likely to be useful */ show_tag(ed, EXIF_IFD_EXIF, EXIF_TAG_USER_COMMENT); show_tag(ed, EXIF_IFD_0, EXIF_TAG_IMAGE_DESCRIPTION); show_tag(ed, EXIF_IFD_1, EXIF_TAG_IMAGE_DESCRIPTION); /* A couple of MakerNote tags can contain useful data. Read the * manufacturer tag to see if this image could have one of the recognized * MakerNote tags. */ ExifEntry *entry = exif_content_get_entry(ed->ifd[EXIF_IFD_0], EXIF_TAG_MAKE); if (entry) { char buf[64]; /* Get the contents of the manufacturer tag as a string */ if (exif_entry_get_value(entry, buf, sizeof(buf))) { trim_spaces(buf); if (!strcmp(buf, "Canon")) { /* MNOTE_CANON_TAG_OWNER */ show_mnote_tag(ed, 9); } else if (!strcmp(buf, "Asahi Optical Co.,Ltd.") || !strcmp(buf, "PENTAX Corporation")) { /* MNOTE_PENTAX2_TAG_HOMETOWN_CITY */ show_mnote_tag(ed, 0x23); } } } /* Free the EXIF data */ exif_data_unref(ed); return 0; } |
From: Dan F. <dfa...@us...> - 2009-01-03 08:17:44
|
Update of /cvsroot/libexif/libexif In directory ddv4jf1.ch3.sourceforge.com:/tmp/cvs-serv20402 Modified Files: ChangeLog Log Message: contrib/examples/photographer.c: Added example program to show how to display EXIF and MakerNote tags Index: ChangeLog =================================================================== RCS file: /cvsroot/libexif/libexif/ChangeLog,v retrieving revision 1.294 retrieving revision 1.295 diff -u -p -d -r1.294 -r1.295 --- ChangeLog 23 Dec 2008 08:24:44 -0000 1.294 +++ ChangeLog 3 Jan 2009 08:17:35 -0000 1.295 @@ -1,3 +1,8 @@ +2009-01-03 Dan Fandrich <da...@co...> + + * contrib/examples/photographer.c: Added example program to show how + to display EXIF and MakerNote tags + 2008-12-22 Dan Fandrich <da...@co...> * po/vi.po: Updated Vietnamese translation by Clytie Siddall |
From: Dan F. <dfa...@us...> - 2008-12-23 08:50:29
|
Update of /cvsroot/libexif/libexif-testsuite/tests In directory ddv4jf1.ch3.sourceforge.com:/tmp/cvs-serv30934 Modified Files: check-1054323.sh Log Message: Add the -d flag to turn a Corrupt Data error into a warning Index: check-1054323.sh =================================================================== RCS file: /cvsroot/libexif/libexif-testsuite/tests/check-1054323.sh,v retrieving revision 1.1 retrieving revision 1.2 diff -u -p -d -r1.1 -r1.2 --- check-1054323.sh 12 Dec 2008 07:14:38 -0000 1.1 +++ check-1054323.sh 23 Dec 2008 08:50:23 -0000 1.2 @@ -1,4 +1,5 @@ #!/bin/sh . check-vars.sh set -x -"$EXIFEXE" -r -o ./1054323.out.jpg "$SRCDIR"/1054323.jpg +# -d flag turns a Corrupt Data error into a warning +"$EXIFEXE" -d -r -o ./1054323.out.jpg "$SRCDIR"/1054323.jpg >/dev/null |
From: Dan F. <dfa...@us...> - 2008-12-23 08:34:01
|
Update of /cvsroot/libexif/libexif/libexif In directory ddv4jf1.ch3.sourceforge.com:/tmp/cvs-serv30199 Modified Files: exif-content.h exif-data.h exif-entry.c exif-entry.h Log Message: Changed a few comments Index: exif-entry.c =================================================================== RCS file: /cvsroot/libexif/libexif/libexif/exif-entry.c,v retrieving revision 1.124 retrieving revision 1.125 diff -u -p -d -r1.124 -r1.125 --- exif-entry.c 10 Dec 2008 10:57:23 -0000 1.124 +++ exif-entry.c 23 Dec 2008 08:33:55 -0000 1.125 @@ -637,10 +637,12 @@ exif_entry_get_value (ExifEntry *e, char } if ((e->size >= 8) && !memcmp (e->data, "UNICODE\0", 8)) { strncpy (val, _("Unsupported UNICODE string"), maxlen); + /* FIXME: use iconv to convert into the locale encoding */ break; } if ((e->size >= 8) && !memcmp (e->data, "JIS\0\0\0\0\0", 8)) { strncpy (val, _("Unsupported JIS string"), maxlen); + /* FIXME: use iconv to convert into the locale encoding */ break; } @@ -988,7 +990,7 @@ exif_entry_get_value (ExifEntry *e, char case EXIF_TAG_XP_KEYWORDS: case EXIF_TAG_XP_SUBJECT: /* Warning! The texts are converted from UTF16 to UTF8 */ - /* TODO: use iconv to convert into the locale charmap instead */ + /* FIXME: use iconv to convert into the locale encoding */ exif_convert_utf16_to_utf8(val, (unsigned short*)e->data, MIN(maxlen, e->size)); break; case EXIF_TAG_INTEROPERABILITY_VERSION: Index: exif-content.h =================================================================== RCS file: /cvsroot/libexif/libexif/libexif/exif-content.h,v retrieving revision 1.17 retrieving revision 1.18 diff -u -p -d -r1.17 -r1.18 --- exif-content.h 27 Nov 2008 06:54:45 -0000 1.17 +++ exif-content.h 23 Dec 2008 08:33:55 -0000 1.18 @@ -90,7 +90,7 @@ void exif_content_fix ( typedef void (* ExifContentForeachEntryFunc) (ExifEntry *, void *user_data); -/*! Executes function on each EXIF tag in turn. +/*! Executes function on each EXIF tag in this IFD in turn. * * \param[in,out] content IFD over which to iterate * \param[in] func function to call for each entry Index: exif-data.h =================================================================== RCS file: /cvsroot/libexif/libexif/libexif/exif-data.h,v retrieving revision 1.21 retrieving revision 1.22 diff -u -p -d -r1.21 -r1.22 --- exif-data.h 11 Dec 2008 07:08:49 -0000 1.21 +++ exif-data.h 23 Dec 2008 08:33:55 -0000 1.22 @@ -45,6 +45,7 @@ typedef struct _ExifDataPrivate ExifData /*! Represents the entire EXIF data found in an image */ struct _ExifData { + /*! Data for each IFD */ ExifContent *ifd[EXIF_IFD_COUNT]; /*! Pointer to thumbnail image, or NULL if not available */ @@ -222,6 +223,8 @@ void exif_data_dump (ExifData *data); void exif_data_log (ExifData *data, ExifLog *log); /*! Return an #ExifEntry for the given tag if found in any IFD. + * Each IFD is searched in turn and the first containing a tag with + * this number is returned. * * \param[in] d #ExifData * \param[in] t #ExifTag Index: exif-entry.h =================================================================== RCS file: /cvsroot/libexif/libexif/libexif/exif-entry.h,v retrieving revision 1.20 retrieving revision 1.21 diff -u -p -d -r1.20 -r1.21 --- exif-entry.h 5 Dec 2008 07:07:15 -0000 1.20 +++ exif-entry.h 23 Dec 2008 08:33:55 -0000 1.21 @@ -130,7 +130,7 @@ void exif_entry_initialize (ExifE * valid. This may involve, for example, converting an EXIF_FORMAT_LONG into a * EXIF_FORMAT_SHORT. If the tag is unknown, its value is untouched. * - * \note Unfortunately, some conversions are to a type with a more resticted + * \note Unfortunately, some conversions are to a type with a more restricted * range, which could have the side effect that the converted data becomes * invalid. This is unlikely as the range of each tag in the standard is * designed to encompass all likely data. |
From: Dan F. <dfa...@us...> - 2008-12-23 08:24:52
|
Update of /cvsroot/libexif/libexif In directory ddv4jf1.ch3.sourceforge.com:/tmp/cvs-serv29788 Modified Files: configure.ac NEWS ChangeLog Log Message: Fixed bug #1946138 to stop ignoring CFLAGS in the sqrt configure test Index: NEWS =================================================================== RCS file: /cvsroot/libexif/libexif/NEWS,v retrieving revision 1.46 retrieving revision 1.47 diff -u -p -d -r1.46 -r1.47 --- NEWS 23 Dec 2008 04:56:01 -0000 1.46 +++ NEWS 23 Dec 2008 08:24:44 -0000 1.47 @@ -8,6 +8,7 @@ libexif-0.6.x: * Access to the raw EXIF data through the ExifEntry structure members is now officially documented * Fixed some Olympus/Sanyo MakerNote interpretations + * Fixed bug #1946138 to stop ignoring CFLAGS in the sqrt configure test libexif-0.6.17 (2008-11-06): * Updated translations: cs, de, pl, sk, vi Index: configure.ac =================================================================== RCS file: /cvsroot/libexif/libexif/configure.ac,v retrieving revision 1.49 retrieving revision 1.50 diff -u -p -d -r1.49 -r1.50 --- configure.ac 18 Nov 2008 20:42:11 -0000 1.49 +++ configure.ac 23 Dec 2008 08:24:44 -0000 1.50 @@ -94,31 +94,45 @@ dnl ------------------------------------ dnl Whether -lm is required for our math functions dnl --------------------------------------------------------------------------- -# we need sqrt and pow, but checking for sqrt should be sufficient -AC_ARG_VAR([MATHLIBS],[The libraries required for mathematical functions, e.g. -lm]) -if test "x$MATHLIBS" = "x"; then - # We must not compile with -Wall -Werror here: - # char *sqrt() conflicts with double sin(const double xx) in any case. - CFLAGS_save="$CFLAGS" - CPPFLAGS_save="$CPPFLAGS" - CPPFLAGS="" - CFLAGS="" - AC_CHECK_FUNC([sqrt],[ - MATHLIBS="" +# we need sqrt and pow which may be in libm +# We cannot use AC_CHECK_FUNC because if CFLAGS contains +# -Wall -Werror here the check fails because +# char *sqrt() conflicts with double sqrt(double xx) + +# Start by assuming -lm is needed, because it's possible that the little +# test program below will be optimized to in-line floating point code that +# doesn't require -lm, whereas the library itself cannot be so optimized +# (this actually seems to be the case on x86 with gcc 4.2). Assuming the +# reverse means that -lm could be needed but wouldn't be detected below. + +LIBS_orig="$LIBS" +LIBS="$LIBS -lm" +AC_MSG_CHECKING([for math functions in libm]) +AC_LINK_IFELSE([ + #include <math.h> + int main() { + double s = sqrt(0); + double p = pow(s,s); + return (int)p; + } +], [AC_MSG_RESULT(yes)], [ + AC_MSG_RESULT(no) + LIBS="$LIBS_orig" + AC_MSG_CHECKING([for math functions without libm]) + AC_LINK_IFELSE([ + #include <math.h> + int main() { + double s = sqrt(0); + double p = pow(s,s); + return (int)p; + } + ], [ + AC_MSG_RESULT(yes) ],[ - AC_CHECK_LIB([m],[sqrt],[ - MATHLIBS="-lm" - ],[ - AC_MSG_ERROR([ -*** Could not find sqrt() function -]) - ]) + AC_MSG_RESULT(no) + AC_MSG_ERROR([*** Could not find sqrt() & pow() functions]) ]) - CFLAGS="$CFLAGS_save" - CPPFLAGS="$CPPFLAGS_save" -fi -AC_SUBST([MATHLIBS]) - +]) # doc support GP_CHECK_DOC_DIR Index: ChangeLog =================================================================== RCS file: /cvsroot/libexif/libexif/ChangeLog,v retrieving revision 1.293 retrieving revision 1.294 diff -u -p -d -r1.293 -r1.294 --- ChangeLog 23 Dec 2008 04:56:01 -0000 1.293 +++ ChangeLog 23 Dec 2008 08:24:44 -0000 1.294 @@ -1,6 +1,7 @@ 2008-12-22 Dan Fandrich <da...@co...> * po/vi.po: Updated Vietnamese translation by Clytie Siddall + * Fixed bug #1946138 to stop ignoring CFLAGS in the sqrt configure test 2008-11-25 Dan Fandrich <da...@co...> |
From: Dan F. <dfa...@us...> - 2008-12-23 08:24:51
|
Update of /cvsroot/libexif/libexif/libexif In directory ddv4jf1.ch3.sourceforge.com:/tmp/cvs-serv29788/libexif Modified Files: Makefile.am Log Message: Fixed bug #1946138 to stop ignoring CFLAGS in the sqrt configure test Index: Makefile.am =================================================================== RCS file: /cvsroot/libexif/libexif/libexif/Makefile.am,v retrieving revision 1.41 retrieving revision 1.42 diff -u -p -d -r1.41 -r1.42 --- Makefile.am 7 Dec 2007 08:46:48 -0000 1.41 +++ Makefile.am 23 Dec 2008 08:24:46 -0000 1.42 @@ -37,7 +37,6 @@ libexif_la_DEPENDENCIES = \ libmnote-olympus.la \ libmnote-pentax.la libexif_la_LIBADD = \ - $(MATHLIBS) \ $(LTLIBINTL) \ libmnote-canon.la \ libmnote-fuji.la \ |
From: Dan F. <dfa...@us...> - 2008-12-23 04:58:10
|
Update of /cvsroot/libexif/exif/po In directory ddv4jf1.ch3.sourceforge.com:/tmp/cvs-serv17361/po Modified Files: vi.po Log Message: po/vi.po: Updated Vietnamese translation by Clytie Siddall Index: vi.po =================================================================== RCS file: /cvsroot/libexif/exif/po/vi.po,v retrieving revision 1.1 retrieving revision 1.2 diff -u -p -d -r1.1 -r1.2 --- vi.po 20 Mar 2008 19:05:02 -0000 1.1 +++ vi.po 23 Dec 2008 04:58:05 -0000 1.2 @@ -1,200 +1,262 @@ # Vietnamese translation for EXIF. # Copyright © 2008 Free Software Foundation, Inc. -# This file is distributed under the same license as the exif-0.6.16-pre1 package. +# This file is distributed under the same license as the exif package. # Clytie Siddall <cl...@ri...>, 2008 # msgid "" msgstr "" -"Project-Id-Version: exif 0.6.16-pre1\n" +"Project-Id-Version: exif 0.6.17\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2008-01-21 14:29-0800\n" -"PO-Revision-Date: 2008-03-20 22:32+1030\n" +"POT-Creation-Date: 2008-11-06 01:03-0800\n" +"PO-Revision-Date: 2008-12-22 22:49+0930\n" "Last-Translator: Clytie Siddall <cl...@ri...>\n" "Language-Team: Vietnamese <vi...@go...>\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" -"X-Generator: LocFactoryEditor 1.7b3\n" +"X-Generator: LocFactoryEditor 1.8\n" -#: exif/actions.c:45 +#: exif/actions.c:56 +#, c-format +msgid "Not enough memory." +msgstr "Không Äá»§ bá» nhá»." + +#: exif/actions.c:74 +#, c-format +msgid "Setting a value for this tag is unsupported!" +msgstr "Không há» trợ chức nÄng tạo má»t giá trá» cho thẻ nà y !" + +#: exif/actions.c:91 +#, c-format +msgid "Too few components specified!" +msgstr "Ghi rõ quá Ãt thà nh phần." + +#: exif/actions.c:106 +#, c-format +msgid "Internal error. Please contact <%s>." +msgstr "Lá»i ná»i bá». Hãy liên lạc vá»i <%s>." + +#: exif/actions.c:143 +#, c-format +msgid "Not yet implemented!" +msgstr "Chưa thá»±c hiá»n." + +#: exif/actions.c:150 +#, c-format +msgid "Warning; Too many components specified!" +msgstr "Cảnh báo : ghi rõ quá Ãt thà nh phần." + +#: exif/actions.c:172 +#, c-format +msgid "Too much EXIF data (%i bytes). Only %i bytes are allowed." +msgstr "Quá nhiá»u dữ liá»u EXIF (%i byte). Chá» cho phép %i byte." + +#: exif/actions.c:183 exif/actions.c:358 +#, c-format +msgid "Wrote file '%s'." +msgstr "Äã ghi táºp tin « %s »." + +#: exif/actions.c:203 +#, c-format +msgid "EXIF entry '%s' " +msgstr "Mục nháºp EXIF « %s »" + +#: exif/actions.c:205 +#, c-format +msgid "(0x%x, '%s') " +msgstr "(0x%x, '%s') " + +#: exif/actions.c:208 +#, c-format +msgid "exists in IFD '%s':\n" +msgstr "Äã tá»n tại trong IFD « %s »:\n" + +#: exif/actions.c:251 +#, c-format +msgid "IFD '%s' does not contain a tag '%s'!" +msgstr "IFD « %s » không chứa má»t thẻ « %s »." + +#: exif/actions.c:282 +#, c-format +msgid "Could not open '%s' (%m)!" +msgstr "Không thá» mỠ« %s » (%m)." + +#: exif/actions.c:285 +#, c-format +msgid "Could not open '%s' (%s)!" +msgstr "Không thá» mỠ« %s » (%s)." + +#: exif/actions.c:295 +#, c-format +msgid "Could not read '%s' (%m)." +msgstr "Không thá» Äá»c « %s » (%m)." + +#: exif/actions.c:298 +#, c-format +msgid "Could not read '%s' (%s)." +msgstr "Không thá» Äá»c « %s » (%s)." + +#: exif/actions.c:317 +#, c-format +msgid "IFD '%s' does not contain tag '%s'." +msgstr "IFD « %s » không chứa thẻ « %s »." + +#: exif/actions.c:323 +#, c-format +msgid "'%s' does not contain tag '%s'." +msgstr "« %s » không chứa thẻ « %s »." + +#: exif/actions.c:341 +#, c-format +msgid "'%s' does not contain a thumbnail!" +msgstr "IFD « %s » không chứa ảnh mẫu." + +#: exif/actions.c:350 +#, c-format +msgid "Could not open '%s' for writing (%m)!" +msgstr "Không thá» mỠ« %s » Äá» ghi (%m)." + +#: exif/actions.c:353 +#, c-format +msgid "Could not open '%s' for writing (%s)!" +msgstr "Không thá» mỠ« %s » Äá» ghi (%s)." + +#: exif/actions.c:371 #, c-format msgid "EXIF tags in '%s':" msgstr "Thá» EXIF trong « %s »:" -#: exif/actions.c:114 +#: exif/actions.c:440 #, c-format msgid "Unknown MakerNote format.\n" msgstr "Äá»nh dạng MakerNote không rõ.\n" -#: exif/actions.c:121 +#: exif/actions.c:447 #, c-format msgid "MakerNote does not contain any value.\n" msgstr "MakerNote không chứa giá trá».\n" -#: exif/actions.c:124 +#: exif/actions.c:450 #, c-format msgid "MakerNote contains %i value:\n" msgid_plural "MakerNote contains %i values:\n" msgstr[0] "MakerNote chứa %i giá trá»:\n" -#: exif/actions.c:134 +#: exif/actions.c:460 msgid "Unknown tag" msgstr "Thẻ lạ" -#: exif/actions.c:137 +#: exif/actions.c:464 msgid "Unknown value" msgstr "Giá trá» lạ" -#: exif/actions.c:162 +#: exif/actions.c:490 #, c-format msgid "EXIF tags in '%s' ('%s' byte order):" msgstr "Thẻ EXIF trong « %s » (thứ tá»± byte « %s »):" -#: exif/actions.c:167 exif/actions.c:169 +#: exif/actions.c:495 exif/actions.c:497 msgid "Tag" msgstr "Thẻ" -#: exif/actions.c:173 exif/actions.c:175 exif/main.c:361 +#: exif/actions.c:501 exif/actions.c:503 exif/main.c:199 msgid "Value" msgstr "Giá trá»" -#: exif/actions.c:181 +#: exif/actions.c:509 #, c-format msgid "EXIF data contains a thumbnail (%i bytes)." msgstr "Dữ liá»u EXIF chứa má»t ảnh mẫu (%i byte)." -#: exif/actions.c:217 +#: exif/actions.c:545 #, c-format msgid "ThumbnailSize\t%i\n" msgstr "KÃch cỡ ảnh mẫu\t%i\n" -#: exif/main.c:57 -#, c-format -msgid "Internal error. Please contact <%s>." -msgstr "Lá»i ná»i bá». Hãy liên lạc vá»i <%s>." - -#: exif/main.c:80 -#, c-format -msgid "EXIF entry '%s' " -msgstr "Mục nháºp EXIF « %s »" - -#: exif/main.c:82 -#, c-format -msgid "(0x%x, '%s') " -msgstr "(0x%x, '%s') " - -#: exif/main.c:85 -#, c-format -msgid "exists in IFD '%s':\n" -msgstr "Äã tá»n tại trong IFD « %s »:\n" - -#: exif/main.c:120 -#, c-format -msgid "Not enough memory." -msgstr "Không Äá»§ bá» nhá»." - -#: exif/main.c:138 -#, c-format -msgid "Too few components specified!" -msgstr "Ghi rõ quá Ãt thà nh phần." - -#: exif/main.c:168 -#, c-format -msgid "Not yet implemented!" -msgstr "Chưa thá»±c hiá»n." - -#: exif/main.c:241 -#, c-format -msgid "Too much EXIF data (%i bytes). Only %i bytes are allowed." -msgstr "Quá nhiá»u dữ liá»u EXIF (%i byte). Chá» cho phép %i byte." - -#: exif/main.c:255 exif/main.c:513 -#, c-format -msgid "Wrote file '%s'." -msgstr "Äã ghi táºp tin « %s »." - -#: exif/main.c:337 +#: exif/main.c:175 msgid "Display software version" msgstr "Hiá»n thá» phiên bản phần má»m" -#: exif/main.c:339 +#: exif/main.c:177 msgid "Show IDs instead of tag names" msgstr "Hiá»n thá» mã sá» thay cho tên thẻ" -#: exif/main.c:341 +#: exif/main.c:179 msgid "Select tag" msgstr "Chá»n thẻ" -#: exif/main.c:341 +#: exif/main.c:179 msgid "tag" msgstr "thẻ" -#: exif/main.c:343 +#: exif/main.c:181 msgid "Select IFD" msgstr "Chá»n IFD" -#: exif/main.c:343 +#: exif/main.c:181 msgid "IFD" msgstr "IFD" -#: exif/main.c:345 +#: exif/main.c:183 msgid "List all EXIF tags" msgstr "Liá»t kê má»i thá» EXIF" -#: exif/main.c:347 +#: exif/main.c:185 msgid "Show contents of tag MakerNote" msgstr "Hiá»n ná»i dung cá»§a thẻ MakerNote" -#: exif/main.c:349 +#: exif/main.c:187 msgid "Remove tag or ifd" msgstr "Bá» thẻ hoặc IFD" -#: exif/main.c:351 +#: exif/main.c:189 msgid "Show description of tag" msgstr "Hiá»n mô tả cá»§a thẻ" -#: exif/main.c:353 +#: exif/main.c:191 msgid "Extract thumbnail" msgstr "TrÃch ảnh mẫu" -#: exif/main.c:355 +#: exif/main.c:193 msgid "Remove thumbnail" msgstr "BỠảnh mẫu" -#: exif/main.c:357 +#: exif/main.c:195 msgid "Insert FILE as thumbnail" msgstr "Chèn TẬP TIN dạng ảnh mẫu" -#: exif/main.c:357 exif/main.c:359 +#: exif/main.c:195 exif/main.c:197 msgid "FILE" msgstr "TẬP TIN" -#: exif/main.c:359 +#: exif/main.c:197 msgid "Write data to FILE" msgstr "Ghi dữ liá»u và o TẬP TIN" -#: exif/main.c:363 +#: exif/main.c:201 +msgid "Create EXIF data if not existing" +msgstr "Táo dữ liá»u EXIF nếu không có" + +#: exif/main.c:203 msgid "Output in a machine-readable (tab delimited) format" msgstr "Xuất ra má»t Äá»nh dạng cho máy Äá»c ÄÆ°á»£c (Äá»nh giá»i bằng khoảng tab)" -#: exif/main.c:366 +#: exif/main.c:206 msgid "Output in a XML format" msgstr "Xuất ra Äá»nh dạng XML" -#: exif/main.c:369 +#: exif/main.c:209 msgid "Show debugging messages" msgstr "Hiá»n thông Äiá»p gỡ lá»i" -#: exif/main.c:386 +#: exif/main.c:229 msgid "[OPTION...] file" msgstr "[TÃY_CHá»N...] táºp_tin" -#: exif/main.c:414 +#: exif/main.c:241 #, c-format -msgid "" -"Invalid IFD '%s'. Valid IFDs are '0', '1', 'EXIF', 'GPS', and " -"'Interoperability'." +msgid "Invalid IFD '%s'. Valid IFDs are '0', '1', 'EXIF', 'GPS', and 'Interoperability'." msgstr "" "IFD không hợp lỠ« %s ». Các IFD hợp lá» là :\n" " ⢠0\n" @@ -203,79 +265,30 @@ msgstr "" " ⢠GPS\n" " ⢠Interoperability\t\tkhả nÄng thao tác vá»i nhau." -#: exif/main.c:422 +#: exif/main.c:250 #, c-format msgid "Invalid tag '%s'!" msgstr "Thẻ không hợp lỠ« %s »." -#: exif/main.c:427 -msgid "Please specify a tag!" -msgstr "Hãy ghi rõ má»t thẻ." +#: exif/main.c:258 +msgid "You need to specify a tag!" +msgstr "Bạn cần phải ghi rõ má»t thẻ." -#: exif/main.c:432 +#: exif/main.c:263 +msgid "You need to specify an IFD!" +msgstr "Bạn cần phải ghi rõ má»t IFD." + +#: exif/main.c:286 #, c-format msgid "Tag '%s' " msgstr "Thẻ « %s »" -#: exif/main.c:434 +#: exif/main.c:288 #, c-format msgid "(0x%04x, '%s'): " msgstr "(0x%04x, '%s'): " -#: exif/main.c:463 +#: exif/main.c:338 #, c-format msgid "'%s' does not contain EXIF data!" msgstr "« %s » không chứa dữ liá»u EXIF." - -#: exif/main.c:486 -#, c-format -msgid "IFD '%s' does not contain tag '%s'." -msgstr "IFD « %s » không chứa thẻ « %s »." - -#: exif/main.c:495 -#, c-format -msgid "'%s' does not contain a thumbnail!" -msgstr "IFD « %s » không chứa ảnh mẫu." - -#: exif/main.c:503 -#, c-format -msgid "Could not open '%s' for writing (%m)!" -msgstr "Không thá» mỠ« %s » Äá» ghi (%m)." - -#: exif/main.c:507 -#, c-format -msgid "Could not open '%s' for writing (%s)!" -msgstr "Không thá» mỠ« %s » Äá» ghi (%s)." - -#: exif/main.c:542 -#, c-format -msgid "Could not open '%s' (%m)!" -msgstr "Không thá» mỠ« %s » (%m)." - -#: exif/main.c:545 -#, c-format -msgid "Could not open '%s' (%s)!" -msgstr "Không thá» mỠ« %s » (%s)." - -#: exif/main.c:557 -#, c-format -msgid "Could not read '%s' (%m)." -msgstr "Không thá» Äá»c « %s » (%m)." - -#: exif/main.c:560 -#, c-format -msgid "Could not read '%s' (%s)." -msgstr "Không thá» Äá»c « %s » (%s)." - -#: exif/main.c:571 -msgid "You need to specify a tag!" -msgstr "Bạn cần phải ghi rõ má»t thẻ." - -#: exif/main.c:576 exif/main.c:595 -msgid "You need to specify an IFD!" -msgstr "Bạn cần phải ghi rõ má»t IFD." - -#: exif/main.c:607 -#, c-format -msgid "IFD '%s' does not contain a tag '%s'!" -msgstr "IFD « %s » không chứa má»t thẻ « %s »." |
From: Dan F. <dfa...@us...> - 2008-12-23 04:58:09
|
Update of /cvsroot/libexif/exif In directory ddv4jf1.ch3.sourceforge.com:/tmp/cvs-serv17361 Modified Files: NEWS ChangeLog Log Message: po/vi.po: Updated Vietnamese translation by Clytie Siddall Index: NEWS =================================================================== RCS file: /cvsroot/libexif/exif/NEWS,v retrieving revision 1.23 retrieving revision 1.24 diff -u -p -d -r1.23 -r1.24 --- NEWS 28 Nov 2008 18:45:35 -0000 1.23 +++ NEWS 23 Dec 2008 04:58:04 -0000 1.24 @@ -1,6 +1,6 @@ exif-0.6.x: * Added translation: it - * Updated translations: da, id, nl, pl, sk, sv, zh_CN + * Updated translations: da, id, nl, pl, sk, sv, vi, zh_CN * Fixed alignment of tables in locales with multibyte character encoding (bug #2034873) Index: ChangeLog =================================================================== RCS file: /cvsroot/libexif/exif/ChangeLog,v retrieving revision 1.83 retrieving revision 1.84 diff -u -p -d -r1.83 -r1.84 --- ChangeLog 28 Nov 2008 18:45:35 -0000 1.83 +++ ChangeLog 23 Dec 2008 04:58:04 -0000 1.84 @@ -1,3 +1,7 @@ +2008-12-22 Dan Fandrich <da...@co...> + + * po/vi.po: Updated Vietnamese translation by Clytie Siddall + 2008-11-28 Dan Fandrich <da...@co...> * po/it.po: Added new Italian translation by Vincenzo Campanella |
From: Dan F. <dfa...@us...> - 2008-12-23 04:56:08
|
Update of /cvsroot/libexif/libexif/po In directory ddv4jf1.ch3.sourceforge.com:/tmp/cvs-serv17214/po Modified Files: vi.po Log Message: po/vi.po: Updated Vietnamese translation by Clytie Siddall Index: vi.po =================================================================== RCS file: /cvsroot/libexif/libexif/po/vi.po,v retrieving revision 1.19 retrieving revision 1.20 diff -u -p -d -r1.19 -r1.20 --- vi.po 15 Jun 2008 15:41:44 -0000 1.19 +++ vi.po 23 Dec 2008 04:56:03 -0000 1.20 @@ -1,13 +1,14 @@ # Vietnamese translation for LibEXIF. -# Copyright © 2007 Free Software Foundation, Inc. -# Clytie Siddall <cl...@ri...>, 2006-2007. -# +# Copyright © 2008 Free Software Foundation, Inc. +# This file is distributed under the same license as the libexif package. +# Clytie Siddall <cl...@ri...>, 2006-2008. +# msgid "" msgstr "" -"Project-Id-Version: libexif 0.6.17-pre1\n" [...1268 lines suppressed...] -#~ msgstr "Äầy mây" - -#~ msgid "close" -#~ msgstr "gần" - -#~ msgid "Internal error." -#~ msgstr "Lá»i ná»i bá»." - -#~ msgid "Internal error (unknown value %i)." -#~ msgstr "Lá»i ná»i bá» (không biết giá trá» %i)." - -# Literal: don't translate / NghÄ©a chữ: Äừng dá»ch -#~ msgid "1x" -#~ msgstr "1x" - -#~ msgid "Unknown tag." -#~ msgstr "Thẻ lạ." - -#~ msgid "Manual Focus" -#~ msgstr "Tiêu Äiá»m thá»§ công" |
From: Dan F. <dfa...@us...> - 2008-12-23 04:56:08
|
Update of /cvsroot/libexif/libexif In directory ddv4jf1.ch3.sourceforge.com:/tmp/cvs-serv17214 Modified Files: NEWS ChangeLog Log Message: po/vi.po: Updated Vietnamese translation by Clytie Siddall Index: NEWS =================================================================== RCS file: /cvsroot/libexif/libexif/NEWS,v retrieving revision 1.45 retrieving revision 1.46 diff -u -p -d -r1.45 -r1.46 --- NEWS 11 Dec 2008 07:08:48 -0000 1.45 +++ NEWS 23 Dec 2008 04:56:01 -0000 1.46 @@ -1,5 +1,5 @@ libexif-0.6.x: - * Updated translations: nl, pl, sk + * Updated translations: nl, pl, sk, vi * Added some example programs * libexif is now thread safe when the underlying C library is thread safe and when each object allocated by libexif isn't used by more than one Index: ChangeLog =================================================================== RCS file: /cvsroot/libexif/libexif/ChangeLog,v retrieving revision 1.292 retrieving revision 1.293 diff -u -p -d -r1.292 -r1.293 --- ChangeLog 25 Nov 2008 18:54:42 -0000 1.292 +++ ChangeLog 23 Dec 2008 04:56:01 -0000 1.293 @@ -1,3 +1,7 @@ +2008-12-22 Dan Fandrich <da...@co...> + + * po/vi.po: Updated Vietnamese translation by Clytie Siddall + 2008-11-25 Dan Fandrich <da...@co...> * po/sk.po: Updated Slovak translation by Ivan Masár |
From: Dan F. <dfa...@us...> - 2008-12-12 07:21:05
|
Update of /cvsroot/libexif/libexif-testsuite/tests In directory ddv4jf1.ch3.sourceforge.com:/tmp/cvs-serv11541 Modified Files: check-general-images.sh Log Message: Use a temporary file name that's automatically cleaned up Index: check-general-images.sh =================================================================== RCS file: /cvsroot/libexif/libexif-testsuite/tests/check-general-images.sh,v retrieving revision 1.1 retrieving revision 1.2 diff -u -p -d -r1.1 -r1.2 --- check-general-images.sh 12 Dec 2008 07:14:38 -0000 1.1 +++ check-general-images.sh 12 Dec 2008 07:20:58 -0000 1.2 @@ -8,7 +8,7 @@ NOEXIFLIST='*canon-powershot-a400-001.jpg' tmpfile="./output.tmp" -tmpimg="./output.jpg" +tmpimg="./general.out.jpg" echo Testing "$EXIFEXE" |
From: Dan F. <dfa...@us...> - 2008-12-12 07:14:48
|
Update of /cvsroot/libexif/libexif-testsuite In directory ddv4jf1.ch3.sourceforge.com:/tmp/cvs-serv11234 Modified Files: NEWS configure.ac Log Message: Created check-vars.sh script to eliminate the need to generate all the tests scripts at build time Index: NEWS =================================================================== RCS file: /cvsroot/libexif/libexif-testsuite/NEWS,v retrieving revision 1.5 retrieving revision 1.6 diff -u -p -d -r1.5 -r1.6 --- NEWS 12 Nov 2008 03:48:12 -0000 1.5 +++ NEWS 12 Dec 2008 07:14:36 -0000 1.6 @@ -1,5 +1,6 @@ New in 0.7.x: - * + * Created check-vars.sh script to eliminate the need to generate all + the tests scripts at build time New in 0.7.13: * Working with libexif and exif ver. 0.6.17 Index: configure.ac =================================================================== RCS file: /cvsroot/libexif/libexif-testsuite/configure.ac,v retrieving revision 1.25 retrieving revision 1.26 diff -u -p -d -r1.25 -r1.26 --- configure.ac 12 Nov 2008 03:48:12 -0000 1.25 +++ configure.ac 12 Dec 2008 07:14:36 -0000 1.26 @@ -253,6 +253,7 @@ AC_CONFIG_FILES([ m4m/Makefile testlib/Makefile tests/Makefile + tests/check-vars.sh tests/images/Makefile ]) AC_OUTPUT |
Update of /cvsroot/libexif/libexif-testsuite/tests In directory ddv4jf1.ch3.sourceforge.com:/tmp/cvs-serv11234/tests Modified Files: Makefile.am Added Files: check-1054321.sh check-1054322.sh check-1054323.sh check-1169170.sh check-994706.sh check-exif-executable.sh check-general-images.sh check-vars.sh.in Removed Files: check-1054321.in check-1054322.in check-1054323.in check-1169170.in check-994706.in check-exif-executable.in check-general-images.in Log Message: Created check-vars.sh script to eliminate the need to generate all the tests scripts at build time --- NEW FILE: check-vars.sh.in --- # Specifies autoconf variables for use by the test scripts prefix=@prefix@ exec_prefix=@exec_prefix@ BINDIR=@bindir@ SRCDIR=@srcdir@ TOPSRCDIR=@top_srcdir@ TOPBLDDIR=@top_builddir@ EXIFEXE=`if test -x "$TOPBLDDIR/src/exif/exif/exif"; then echo "$TOPBLDDIR/src/exif/exif/exif"; elif test -x "$BINDIR/exif"; then echo "$BINDIR/exif"; else echo "Neither $TOPBLDDIR/src/exif/exif/exif nor $BINDIR/exif are executable." >&2; echo false; exit 1; fi` DIFFEXE=@DIFF@ --- NEW FILE: check-1054322.sh --- #!/bin/sh . check-vars.sh result_file="result-1054322-1.tmp" "$EXIFEXE" --remove-thumbnail --output ./1054322-1.out.jpg "$SRCDIR"/1054322.jpg > ${result_file} 2>&1 result="`cat ${result_file}`" s="$?" echo "$result" if echo "$result" | grep "The data supplied does not seem to contain EXIF data." > /dev/null; then : elif test "$s" -eq 0; then echo "Exit code $s reading EXIF from an HTML file? That must be wrong." exit 1 else echo "Exit code $s" exit 1 fi result_file="result-1054322-2.tmp" "$EXIFEXE" --remove-thumbnail --output ./1054323-2.out.jpg ./this-file-does-not-exist.jpg > ${result_file} 2>&1 result="`cat ${result_file}`" s="$?" echo "$result" if echo "$result" | grep "does not contain EXIF data" > /dev/null; then : elif test "$s" -eq 0; then echo "Exit code $s reading EXIF from a nonexisting file? That must be wrong." exit 1 else echo "Exit code $s" exit 1 fi exit 0 --- check-1054323.in DELETED --- Index: Makefile.am =================================================================== RCS file: /cvsroot/libexif/libexif-testsuite/tests/Makefile.am,v retrieving revision 1.20 retrieving revision 1.21 diff -u -p -d -r1.20 -r1.21 --- Makefile.am 22 May 2007 23:30:54 -0000 1.20 +++ Makefile.am 12 Dec 2008 07:14:38 -0000 1.21 @@ -5,14 +5,15 @@ SUBDIRS = images +# check-vars.sh.in is automatically included EXTRA_DIST = \ - check-exif-executable.in \ - check-general-images.in \ - check-994706.in check-994706.b.patch \ - check-1054321.in 1054321.jpg \ - check-1054322.in 1054322.jpg \ - check-1054323.in 1054323.jpg \ - check-1169170.in + check-exif-executable.sh \ + check-general-images.sh \ + check-994706.sh check-994706.b.patch \ + check-1054321.sh 1054321.jpg \ + check-1054322.sh 1054322.jpg \ + check-1054323.sh 1054323.jpg \ + check-1169170.sh if HAVE_EXIF_CLI @@ -29,13 +30,5 @@ TESTS = $(check_SCRIPTS) endif -CLEANFILES = $(check_SCRIPTS) *.out.jpg *.dst.txt *.src.txt *.modified.jpeg *.a.patch *.xpatch *.tmp - -# The embedded script for @exif@ is supposed to run at the time the -# .sh file is running. If not, we try to run the installed version. -# If that doesn't work, either, we fail. -.in.sh: Makefile - @echo "Creating $@" - @sed 's|@exif\@|`if test -x "$(top_builddir)/src/exif/exif/exif"; then echo "$(top_builddir)/src/exif/exif/exif"; elif test -x "$(bindir)/exif"; then echo "$(bindir)/exif"; else echo "Neither $(top_builddir)/src/exif/exif/exif nor $(bindir)/exif are executable." >&2; echo false; exit 1; fi`|g;s|@top_srcdir\@|$(top_srcdir)|g;s|@srcdir\@|$(srcdir)|g;s|@diff\@|$(DIFF)|g' < $< > $@ - @chmod +x $@ +CLEANFILES = *.out.jpg *.dst.txt *.src.txt *.modified.jpeg *.a.patch *.xpatch *.tmp --- check-1054322.in DELETED --- --- NEW FILE: check-general-images.sh --- #!/bin/sh # Execute a number of common sense checks on "real" images # (not specially prepared images) . check-vars.sh # |-separated list of test suite images that don't contain EXIF tags NOEXIFLIST='*canon-powershot-a400-001.jpg' tmpfile="./output.tmp" tmpimg="./output.jpg" echo Testing "$EXIFEXE" errors=0 total=0 total_img=0 for img in "$TOPSRCDIR"/src/pel-images/*.jpg "$SRCDIR"/images/*.jpg do test -f "$img" || continue total_img=$(expr $total_img + 1) echo \#${total_img} # Test images without EXIF tags case "$img" in *-thumb* | *no-exif* | $NOEXIFLIST) echo -n "Attempting list of nonexistent EXIF data from \`${img}'..." "$EXIFEXE" "${img}" > "$tmpfile" 2>&1 s="$?" if test "$s" -eq 1; then echo " ok." else echo " FAILED (${s})." errors=$(expr $errors + 1) cat "$tmpfile" fi continue ;; esac # Check that listing EXIF info works echo -n "Listing EXIF info from \`${img}'..." # Run this in the C locale so the messages are known env LANG=C LANGUAGE=C "$EXIFEXE" "${img}" > "$tmpfile" 2>&1 s="$?" if test "$s" -eq 0; then echo " ok." else echo " FAILED (${s})." errors=$(expr $errors + 1) cat "$tmpfile" continue # if listing EXIF info fails, the other tests cannot work anyway fi total=$(expr $total + 1) check_makernote= grep "^Maker Note" < "$tmpfile" > /dev/null && check_makernote=true check_thumbnail= grep "^EXIF data contains a thumbnail" < "$tmpfile" > /dev/null && check_thumbnail=true rm -f "$tmpfile" # Check that listing the makernote works echo -n "Listing MNote info from \`${img}'..." "$EXIFEXE" --show-mnote "${img}" > "$tmpfile" 2>&1 s="$?" if test "$s" -eq 0; then echo " ok." else echo " FAILED (${s})." errors=$(expr $errors + 1) cat "$tmpfile" fi total=$(expr $total + 1) # Check that removing a tag works echo -n "Removing tag from \`${img}'..." "$EXIFEXE" --tag=DateTime --remove "${img}" -o "$tmpimg" > "$tmpfile" 2>&1 s="$?" if test "$s" -eq 0; then echo " ok." else echo " FAILED (${s})." errors=$(expr $errors + 1) cat "$tmpfile" fi total=$(expr $total + 1) # Check that the tag is removed echo -n "Listing tag from \`${tmpimg}'..." "$EXIFEXE" --tag=DateTime "${tmpimg}" > "$tmpfile" 2>&1 s="$?" if test "$s" -eq 1; then echo " ok." else echo " FAILED (${s})." errors=$(expr $errors + 1) cat "$tmpfile" fi total=$(expr $total + 1) # Check that listing EXIF info still works echo -n "Listing EXIF info from \`${tmpimg}'..." "$EXIFEXE" "${tmpimg}" > "$tmpfile" 2>&1 s="$?" if test "$s" -eq 0; then echo " ok." else echo " FAILED (${s})." errors=$(expr $errors + 1) cat "$tmpfile" fi total=$(expr $total + 1) # Check that listing the makernote still works echo -n "Listing MNote info from \`${tmpimg}'..." "$EXIFEXE" --show-mnote "${tmpimg}" > "$tmpfile" 2>&1 s="$?" if test "$s" -eq 0; then echo " ok." else echo " FAILED (${s})." errors=$(expr $errors + 1) cat "$tmpfile" fi total=$(expr $total + 1) # Check that extracting thumbnail works if [ "$check_thumbnail" ] ; then echo -n "Extracting thumbnail from ${img}" thumb="./$(basename "$img").check-general-images.thumb.out.jpg" "$EXIFEXE" -e -o "$thumb" "$img" > "$tmpfile" 2>&1 s="$?" if test "$s" -eq 0; then echo " ok." else echo " FAILED (${s})." errors=$(expr $errors + 1) cat "$tmpfile" fi rm -f "$tmpfile" total=$(expr $total + 1) else echo "Skipping extract thumbnail test on ${img}" fi done self="$(basename "$0")" echo "$self: Performed $total checks on $total_img images." echo "$self: $errors checks failed." test "$errors" -eq 0 --- NEW FILE: check-exif-executable.sh --- #!/bin/sh . check-vars.sh if test -x "$EXIFEXE"; then echo "exif executable \`$EXIFEXE\' is executable. Good." ls -l "$EXIFEXE" else echo "exif executable \`$EXIFEXE\' is NOT executable. Bad." ls -l "$EXIFEXE" exit 1 fi --- check-general-images.in DELETED --- --- check-exif-executable.in DELETED --- --- check-1169170.in DELETED --- --- NEW FILE: check-1054323.sh --- #!/bin/sh . check-vars.sh set -x "$EXIFEXE" -r -o ./1054323.out.jpg "$SRCDIR"/1054323.jpg --- check-1054321.in DELETED --- --- NEW FILE: check-1054321.sh --- #!/bin/sh . check-vars.sh result_file="result-1054321.tmp" #set -x "$EXIFEXE" -m -o ./1054321.out.jpg "$SRCDIR"/1054321.jpg > "$result_file" 2>&1 s="$?" tail "$result_file" exit "$s" --- NEW FILE: check-1169170.sh --- #!/bin/sh . check-vars.sh if "$EXIFEXE" "$SRCDIR/images/canon-powershot-a400-001.jpg" > /dev/null 2>&1; then echo "This should have failed." exit 1 fi if "$EXIFEXE" --show-mnote "$SRCDIR/images/canon-powershot-a400-001.jpg" > /dev/null 2>&1; then echo "This should have failed." exit 1 fi "$EXIFEXE" "$SRCDIR/images/canon-powershot-g2-001.jpg" > /dev/null 2>&1 || exit $? "$EXIFEXE" --show-mnote "$SRCDIR/images/canon-powershot-g2-001.jpg" > /dev/null 2>&1 || exit $? exit 0 --- NEW FILE: check-994706.sh --- #!/bin/sh . check-vars.sh bug="994706" srcimg="$SRCDIR/images/canon-powershot-g2-001.jpg" dstimg="./${bug}.jpg.modified.jpeg" # Remove Maker Note echo "Removing EXIF Maker Note" "$EXIFEXE" "--ifd=EXIF" "--tag=Maker Note" --remove --output "$dstimg" "$srcimg" > /dev/null 2>&1 # List all tags "$EXIFEXE" --list-tags "$srcimg" | sed '1d' > "./check-${bug}.src.txt" "$EXIFEXE" --list-tags "$dstimg" | sed '1d' > "./check-${bug}.dst.txt" # Find different tags in source and destination image "$DIFFEXE" -u "./check-${bug}.src.txt" "./check-${bug}.dst.txt" > "./check-${bug}.a.patch" # Canonicalize diff files sed '1,3 d' < "./check-${bug}.a.patch" > "./check-${bug}.a.xpatch" sed '1,3 d' < "$SRCDIR/check-${bug}.b.patch" > "./check-${bug}.b.xpatch" # Compare diff files; they should be equal. "$DIFFEXE" -u "./check-${bug}.a.xpatch" "./check-${bug}.b.xpatch" s="$?" if test "$s" -ne 0; then echo "The Maker Note should have been removed. Bad." fi exit "$s" --- check-994706.in DELETED --- |
From: Dan F. <dfa...@us...> - 2008-12-11 07:08:55
|
Update of /cvsroot/libexif/libexif In directory ddv4jf1.ch3.sourceforge.com:/tmp/cvs-serv1946 Modified Files: README NEWS Log Message: Improved documentation Index: README =================================================================== RCS file: /cvsroot/libexif/libexif/README,v retrieving revision 1.21 retrieving revision 1.22 diff -u -p -d -r1.21 -r1.22 --- README 18 Nov 2008 20:48:53 -0000 1.21 +++ README 11 Dec 2008 07:08:48 -0000 1.22 @@ -120,11 +120,13 @@ Besides the standard arguments, configur Certain specialized applications can reduce the size of the libexif binary by setting one or both of the following macros in the CPPFLAGS environment variable at configure time. Each one removes certain kinds of -text strings from the binary. Applications which need to access specific, -known EXIF tags and know in advance the meaning of their data have no need -of those strings and can save considerable space by eliminating them. +text strings and constants from the binary. Applications which need +to access specific, known EXIF tags and know in advance the meaning of +their data have no need of those strings and can save considerable space +by eliminating them. - -DNO_VERBOSE_TAG_STRINGS Names and descriptions of EXIF tags, & debug messages + -DNO_VERBOSE_TAG_STRINGS Names and descriptions of EXIF tags, debug messages, + mandatory EXIF fields (disabling auto-tag-fixup) -DNO_VERBOSE_TAG_DATA Names of enumerated tag data contents Index: NEWS =================================================================== RCS file: /cvsroot/libexif/libexif/NEWS,v retrieving revision 1.44 retrieving revision 1.45 diff -u -p -d -r1.44 -r1.45 --- NEWS 5 Dec 2008 20:52:52 -0000 1.44 +++ NEWS 11 Dec 2008 07:08:48 -0000 1.45 @@ -5,7 +5,9 @@ libexif-0.6.x: and when each object allocated by libexif isn't used by more than one thread simultaneously * Expanded the Doxygen API documentation - * Fixed an Olympus MakerNote interpretation + * Access to the raw EXIF data through the ExifEntry structure members is + now officially documented + * Fixed some Olympus/Sanyo MakerNote interpretations libexif-0.6.17 (2008-11-06): * Updated translations: cs, de, pl, sk, vi |
From: Dan F. <dfa...@us...> - 2008-12-11 07:08:55
|
Update of /cvsroot/libexif/libexif/libexif In directory ddv4jf1.ch3.sourceforge.com:/tmp/cvs-serv1946/libexif Modified Files: exif-data.c exif-data.h exif-loader.c Log Message: Improved documentation Index: exif-data.h =================================================================== RCS file: /cvsroot/libexif/libexif/libexif/exif-data.h,v retrieving revision 1.20 retrieving revision 1.21 diff -u -p -d -r1.20 -r1.21 --- exif-data.h 5 Dec 2008 07:07:15 -0000 1.20 +++ exif-data.h 11 Dec 2008 07:08:49 -0000 1.21 @@ -42,12 +42,15 @@ typedef struct _ExifDataPrivate ExifData #include <libexif/exif-mnote-data.h> #include <libexif/exif-mem.h> -/*! \internal */ +/*! Represents the entire EXIF data found in an image */ struct _ExifData { ExifContent *ifd[EXIF_IFD_COUNT]; + /*! Pointer to thumbnail image, or NULL if not available */ unsigned char *data; + + /*! Number of bytes in thumbnail image at \c data */ unsigned int size; ExifDataPrivate *priv; Index: exif-loader.c =================================================================== RCS file: /cvsroot/libexif/libexif/libexif/exif-loader.c,v retrieving revision 1.34 retrieving revision 1.35 diff -u -p -d -r1.34 -r1.35 --- exif-loader.c 5 Dec 2008 07:07:15 -0000 1.34 +++ exif-loader.c 11 Dec 2008 07:08:49 -0000 1.35 @@ -70,6 +70,8 @@ struct _ExifLoader { /*! Small buffer used for detection of format */ unsigned char b[12]; + + /*! Number of bytes in the small buffer \c b */ unsigned char b_len; unsigned int size; @@ -176,6 +178,8 @@ exif_loader_write (ExifLoader *eld, unsi break; } break; + + case EL_READ: default: break; } Index: exif-data.c =================================================================== RCS file: /cvsroot/libexif/libexif/libexif/exif-data.c,v retrieving revision 1.114 retrieving revision 1.115 diff -u -p -d -r1.114 -r1.115 --- exif-data.c 2 Oct 2008 06:15:49 -0000 1.114 +++ exif-data.c 11 Dec 2008 07:08:49 -0000 1.115 @@ -341,6 +341,16 @@ if (data->ifd[(i)]->count) { \ break; \ } +/*! Load data for an IFD. + * + * \param[in/out] data #ExifData + * \param[in] ifd IFD to load + * \param[in] d pointer to buffer containing raw IFD data + * \param[in] ds size of raw data in buffer at \c d + * \param[in] offset offset into buffer at \c d at which IFD starts + * \param[in] recursion_depth number of times this function has been + * recursively called without returning + */ static void exif_data_load_data_content (ExifData *data, ExifIfd ifd, const unsigned char *d, |
From: Dan F. <dfa...@us...> - 2008-12-11 06:57:51
|
Update of /cvsroot/libexif/libexif/libexif/olympus In directory ddv4jf1.ch3.sourceforge.com:/tmp/cvs-serv773/libexif/olympus Modified Files: exif-mnote-data-olympus.c Log Message: A couple problems with corrupted Olympus-style MakerNote tags are fixed. First, corrupted MakerNote tags are dropped instead of causing the tag to be filled with garbage data. Second, a bug in some Sanyo cameras causes the MNOTE_OLYMPUS_TAG_THUMBNAILIMAGE data offset to be stored as an absolute offset in the file instead of relative to the IFD. An attempt is now made to detect and work around this problem. Index: exif-mnote-data-olympus.c =================================================================== RCS file: /cvsroot/libexif/libexif/libexif/olympus/exif-mnote-data-olympus.c,v retrieving revision 1.36 retrieving revision 1.37 diff -u -p -d -r1.36 -r1.37 --- exif-mnote-data-olympus.c 4 Oct 2008 11:31:27 -0000 1.36 +++ exif-mnote-data-olympus.c 11 Dec 2008 06:57:41 -0000 1.37 @@ -30,6 +30,8 @@ #define DEBUG +#define EXIF_OVERCOME_SANYO_OFFSET_BUG + static void exif_mnote_data_olympus_clear (ExifMnoteDataOlympus *n) { @@ -207,7 +209,7 @@ exif_mnote_data_olympus_load (ExifMnoteD { ExifMnoteDataOlympus *n = (ExifMnoteDataOlympus *) en; ExifShort c; - size_t i, s, o, o2 = 0, datao = 6, base = 0; + size_t i, tcount, s, o, o2 = 0, datao = 6, base = 0; if (!n || !buf) return; @@ -362,38 +364,75 @@ exif_mnote_data_olympus_load (ExifMnoteD n->entries = exif_mem_alloc (en->mem, sizeof (MnoteOlympusEntry) * c); if (!n->entries) return; - /* Parse the entries */ - for (i = 0; i < c; i++) { - o = o2 + 12 * i; - if (o + 12 > buf_size) return; + /* Parse all c entries, storing ones that are successfully parsed */ + for (i = c, tcount = 0, o = o2; i; --i, o += 12) { + size_t dataofs; + if (o + 12 > buf_size) { + exif_log (en->log, EXIF_LOG_CODE_CORRUPT_DATA, + "ExifMnoteOlympus", "Short MakerNote"); + break; + } - n->count = i + 1; - n->entries[i].tag = exif_get_short (buf + o, n->order) + base; - n->entries[i].format = exif_get_short (buf + o + 2, n->order); - n->entries[i].components = exif_get_long (buf + o + 4, n->order); - n->entries[i].order = n->order; + n->entries[tcount].tag = exif_get_short (buf + o, n->order) + base; + n->entries[tcount].format = exif_get_short (buf + o + 2, n->order); + n->entries[tcount].components = exif_get_long (buf + o + 4, n->order); + n->entries[tcount].order = n->order; exif_log (en->log, EXIF_LOG_CODE_DEBUG, "ExifMnoteOlympus", - "Loading entry 0x%x ('%s')...", n->entries[i].tag, - mnote_olympus_tag_get_name (n->entries[i].tag)); + "Loading entry 0x%x ('%s')...", n->entries[tcount].tag, + mnote_olympus_tag_get_name (n->entries[tcount].tag)); + exif_log (en->log, EXIF_LOG_CODE_DEBUG, "ExifMnoteOlympus", + "0x%x %d %ld*(%d)", + n->entries[tcount].tag, + n->entries[tcount].format, + n->entries[tcount].components, + (int)exif_format_get_size(n->entries[tcount].format)); /* * Size? If bigger than 4 bytes, the actual data is not * in the entry but somewhere else (offset). */ - s = exif_format_get_size (n->entries[i].format) * - n->entries[i].components; - if (!s) continue; - o += 8; - if (s > 4) o = exif_get_long (buf + o, n->order) + datao; - if (o + s > buf_size) continue; + s = exif_format_get_size (n->entries[tcount].format) * + n->entries[tcount].components; + n->entries[tcount].size = s; + if (s) { + dataofs = o + 8; + if (s > 4) { + dataofs = exif_get_long (buf + dataofs, n->order) + datao; +#ifdef EXIF_OVERCOME_SANYO_OFFSET_BUG + /* Some Sanyo models (e.g. VPC-C5, C40) suffer from a bug when + * writing the offset for the MNOTE_OLYMPUS_TAG_THUMBNAILIMAGE + * tag in its MakerNote. The offset is actually the absolute + * position in the file instead of the position within the IFD. + */ + if (dataofs + s > buf_size && n->version == sanyoV1) { + /* fix pointer */ + dataofs -= datao + 6; + exif_log (en->log, EXIF_LOG_CODE_DEBUG, + "ExifMnoteOlympus", + "Inconsistent thumbnail tag offset; attempting to recover"); + } +#endif + } + if (dataofs + s > buf_size) { + exif_log (en->log, EXIF_LOG_CODE_CORRUPT_DATA, + "ExifMnoteOlympus", + "Tag data past end of buffer (%u > %u)", + dataofs+s, buf_size); + continue; + } - /* Sanity check */ - n->entries[i].data = exif_mem_alloc (en->mem, s); - if (!n->entries[i].data) continue; - n->entries[i].size = s; - memcpy (n->entries[i].data, buf + o, s); + /* Sanity check */ + n->entries[tcount].data = exif_mem_alloc (en->mem, s); + if (!n->entries[tcount].data) continue; + memcpy (n->entries[tcount].data, buf + dataofs, s); + } + + /* Tag was successfully parsed */ + ++tcount; } + /* Store the count of successfully parsed tags */ + n->count = tcount; } static unsigned int |
From: Jan P. <pa...@us...> - 2008-12-10 10:57:32
|
Update of /cvsroot/libexif/libexif/libexif In directory ddv4jf1.ch3.sourceforge.com:/tmp/cvs-serv8416 Modified Files: exif-entry.c Log Message: Eliminated unreferenced variable Index: exif-entry.c =================================================================== RCS file: /cvsroot/libexif/libexif/libexif/exif-entry.c,v retrieving revision 1.123 retrieving revision 1.124 diff -u -p -d -r1.123 -r1.124 --- exif-entry.c 5 Dec 2008 07:08:43 -0000 1.123 +++ exif-entry.c 10 Dec 2008 10:57:23 -0000 1.124 @@ -1336,7 +1336,9 @@ exif_entry_initialize (ExifEntry *e, Exi case EXIF_TAG_DATE_TIME_DIGITIZED: { time_t t; +#ifdef HAVE_LOCALTIME_R struct tm tms; +#endif struct tm *tm; t = time (NULL); |
From: Dan F. <dfa...@us...> - 2008-12-09 20:17:45
|
Update of /cvsroot/libexif/exif/exif In directory ddv4jf1.ch3.sourceforge.com:/tmp/cvs-serv4567/exif Modified Files: main.c Log Message: EXIF_LOG_CODE_NO_MEMORY is always a fatal error Index: main.c =================================================================== RCS file: /cvsroot/libexif/exif/exif/main.c,v retrieving revision 1.66 retrieving revision 1.67 diff -u -p -d -r1.66 -r1.67 --- main.c 19 Nov 2008 08:44:47 -0000 1.66 +++ main.c 9 Dec 2008 20:17:39 -0000 1.67 @@ -122,6 +122,7 @@ log_func (ExifLog *log, ExifLogCode code /* We ignore corrupted data event in some cases */ if (log_arg->ignore_corrupted) return; + /* Fall through to EXIF_LOG_CODE_NO_MEMORY */ case EXIF_LOG_CODE_NO_MEMORY: put_colorstring (stderr, COL_RED COL_BOLD COL_UNDERLINE); fprintf (stderr, exif_log_code_get_title (code)); @@ -133,7 +134,17 @@ log_func (ExifLog *log, ExifLogCode code vfprintf (stderr, format, args); put_colorstring (stderr, COL_NORMAL); fprintf (stderr, "\n"); - if (!log_arg->debug) + + /* + * EXIF_LOG_CODE_NO_MEMORY is always a fatal error, so exit. + * EXIF_LOG_CODE_CORRUPT_DATA is only fatal if debug mode + * is off. + * + * Exiting the program due to a log message is really a bad + * idea to begin with. This should be removed once the libexif + * API is fixed to properly return error codes everywhere. + */ + if ((code == EXIF_LOG_CODE_NO_MEMORY) || !log_arg->debug) exit (1); break; default: |
From: Dan F. <dfa...@us...> - 2008-12-05 20:52:59
|
Update of /cvsroot/libexif/libexif/libexif/olympus In directory ddv4jf1.ch3.sourceforge.com:/tmp/cvs-serv3290/libexif/olympus Modified Files: mnote-olympus-entry.c Log Message: Fixed interpretation of the Olympus MNOTE_OLYMPUS_TAG_MODE tag Index: mnote-olympus-entry.c =================================================================== RCS file: /cvsroot/libexif/libexif/libexif/olympus/mnote-olympus-entry.c,v retrieving revision 1.41 retrieving revision 1.42 diff -u -p -d -r1.41 -r1.42 --- mnote-olympus-entry.c 26 Jun 2008 19:18:32 -0000 1.41 +++ mnote-olympus-entry.c 5 Dec 2008 20:52:53 -0000 1.42 @@ -556,7 +556,7 @@ mnote_olympus_entry_get_value (MnoteOlym vl = exif_get_long (entry->data + 4, entry->order); snprintf (buf, sizeof (buf), "/%li/", (long int) vl); strncat (v, buf, maxlen - strlen (v)); - vl = exif_get_long (entry->data + 4, entry->order); + vl = exif_get_long (entry->data + 8, entry->order); switch (vl) { case 1: strncat (v, _("left to right"), maxlen - strlen (v)); |
From: Dan F. <dfa...@us...> - 2008-12-05 20:52:58
|
Update of /cvsroot/libexif/libexif In directory ddv4jf1.ch3.sourceforge.com:/tmp/cvs-serv3290 Modified Files: NEWS Log Message: Fixed interpretation of the Olympus MNOTE_OLYMPUS_TAG_MODE tag Index: NEWS =================================================================== RCS file: /cvsroot/libexif/libexif/NEWS,v retrieving revision 1.43 retrieving revision 1.44 diff -u -p -d -r1.43 -r1.44 --- NEWS 2 Dec 2008 19:58:59 -0000 1.43 +++ NEWS 5 Dec 2008 20:52:52 -0000 1.44 @@ -5,6 +5,7 @@ libexif-0.6.x: and when each object allocated by libexif isn't used by more than one thread simultaneously * Expanded the Doxygen API documentation + * Fixed an Olympus MakerNote interpretation libexif-0.6.17 (2008-11-06): * Updated translations: cs, de, pl, sk, vi |
From: Dan F. <dfa...@us...> - 2008-12-05 07:08:51
|
Update of /cvsroot/libexif/libexif/libexif In directory ddv4jf1.ch3.sourceforge.com:/tmp/cvs-serv13987/libexif Modified Files: exif-entry.c Log Message: Made a log entry translatable. Index: exif-entry.c =================================================================== RCS file: /cvsroot/libexif/libexif/libexif/exif-entry.c,v retrieving revision 1.122 retrieving revision 1.123 diff -u -p -d -r1.122 -r1.123 --- exif-entry.c 25 Nov 2008 09:30:38 -0000 1.122 +++ exif-entry.c 5 Dec 2008 07:08:43 -0000 1.123 @@ -302,8 +302,9 @@ exif_entry_fix (ExifEntry *e) if (!i) for ( ; (i < e->size) && (e->data[i] == ' '); i++); if ((i >= 8) && (i < e->size)) { exif_entry_log (e, EXIF_LOG_CODE_DEBUG, - "Tag 'UserComment' is not empty but does not start with " - "format identifyer. This has been fixed."); + _("Tag 'UserComment' is not empty but does not " + "start with a format identifier. " + "This has been fixed.")); memcpy (e->data, "ASCII\0\0\0", 8); break; } |
From: Dan F. <dfa...@us...> - 2008-12-05 07:07:21
|
Update of /cvsroot/libexif/libexif/libexif In directory ddv4jf1.ch3.sourceforge.com:/tmp/cvs-serv13825/libexif Modified Files: exif-data.h exif-entry.h exif-loader.c exif-loader.h exif-log.h exif-tag.h Log Message: Improved Doxygen documentation. Index: exif-loader.c =================================================================== RCS file: /cvsroot/libexif/libexif/libexif/exif-loader.c,v retrieving revision 1.33 retrieving revision 1.34 diff -u -p -d -r1.33 -r1.34 --- exif-loader.c 25 Nov 2008 09:30:38 -0000 1.33 +++ exif-loader.c 5 Dec 2008 07:07:15 -0000 1.34 @@ -63,11 +63,12 @@ typedef enum { EL_DATA_FORMAT_FUJI_RAW } ExifLoaderDataFormat; +/*! \internal */ struct _ExifLoader { ExifLoaderState state; ExifLoaderDataFormat data_format; - /* Small buffer used for detection of format */ + /*! Small buffer used for detection of format */ unsigned char b[12]; unsigned char b_len; @@ -81,6 +82,7 @@ struct _ExifLoader { ExifMem *mem; }; +/*! Magic number for EXIF header */ static const unsigned char ExifHeader[] = {0x45, 0x78, 0x69, 0x66, 0x00, 0x00}; static void * Index: exif-tag.h =================================================================== RCS file: /cvsroot/libexif/libexif/libexif/exif-tag.h,v retrieving revision 1.20 retrieving revision 1.21 diff -u -p -d -r1.20 -r1.21 --- exif-tag.h 27 Nov 2008 06:54:45 -0000 1.20 +++ exif-tag.h 5 Dec 2008 07:07:15 -0000 1.21 @@ -210,24 +210,25 @@ ExifTag exif_tag_from_name * * \param[in] tag EXIF tag * \param[in] ifd IFD - * \return textual name of the tag + * \return textual name of the tag, or NULL if the tag is unknown */ const char *exif_tag_get_name_in_ifd (ExifTag tag, ExifIfd ifd); /*! Return a textual title of the given tag when found in the given IFD. + * The title is a short, localized description of the tag. * * \param[in] tag EXIF tag * \param[in] ifd IFD - * \return textual title of the tag + * \return textual title of the tag, or NULL if the tag is unknown */ const char *exif_tag_get_title_in_ifd (ExifTag tag, ExifIfd ifd); /*! Return a verbose textual description of the given tag when found in the - * given IFD. + * given IFD. The description is a verbose, localized description of the tag. * * \param[in] tag EXIF tag * \param[in] ifd IFD - * \return textual description of the tag + * \return textual description of the tag, or NULL if the tag is unknown */ const char *exif_tag_get_description_in_ifd (ExifTag tag, ExifIfd ifd); Index: exif-loader.h =================================================================== RCS file: /cvsroot/libexif/libexif/libexif/exif-loader.h,v retrieving revision 1.10 retrieving revision 1.11 diff -u -p -d -r1.10 -r1.11 --- exif-loader.h 27 Nov 2008 06:54:45 -0000 1.10 +++ exif-loader.h 5 Dec 2008 07:07:15 -0000 1.11 @@ -34,20 +34,20 @@ extern "C" { /*! Data used by the loader interface */ typedef struct _ExifLoader ExifLoader; -/*! Allocate a new #ExifLoader +/*! Allocate a new #ExifLoader. * * \return allocated ExifLoader */ ExifLoader *exif_loader_new (void); -/*! Allocate a new #ExifLoader using an #ExifMem +/*! Allocate a new #ExifLoader using the specified memory allocator. * * \param[in] mem the ExifMem * \return allocated ExifLoader */ ExifLoader *exif_loader_new_mem (ExifMem *mem); -/*! Increase the refcount of the #ExifLoader +/*! Increase the refcount of the #ExifLoader. * * \param[in] loader the ExifLoader to increase the refcount of. */ @@ -61,6 +61,7 @@ void exif_loader_ref (ExifLoa void exif_loader_unref (ExifLoader *loader); /*! Load a file into the given #ExifLoader from the filesystem. + * The relevant data is copied in raw form into the #ExifLoader. * * \param[in] loader loader to write to * \param[in] fname path to the file to read @@ -68,6 +69,7 @@ void exif_loader_unref (ExifLoa void exif_loader_write_file (ExifLoader *loader, const char *fname); /*! Load a buffer into the #ExifLoader from a memory buffer. + * The relevant data is copied in raw form into the #ExifLoader. * * \param[in] loader loader to write to * \param[in] buf buffer to read from @@ -77,13 +79,16 @@ void exif_loader_write_file (Exif */ unsigned char exif_loader_write (ExifLoader *loader, unsigned char *buf, unsigned int sz); -/*! Reset the ExifLoader to its newly-initialized state +/*! Free any data previously loaded and reset the #ExifLoader to its + * newly-initialized state. * * \param[in] loader the loader */ void exif_loader_reset (ExifLoader *loader); -/*! Create an ExifData from an ExifLoader +/*! Create an #ExifData from the data in the loader. The loader must + * already contain data from a previous call to #exif_loader_write_file + * or #exif_loader_write. * * \param[in] loader the loader * \return allocated ExifData Index: exif-entry.h =================================================================== RCS file: /cvsroot/libexif/libexif/libexif/exif-entry.h,v retrieving revision 1.19 retrieving revision 1.20 diff -u -p -d -r1.19 -r1.20 --- exif-entry.h 27 Nov 2008 06:54:45 -0000 1.19 +++ exif-entry.h 5 Dec 2008 07:07:15 -0000 1.20 @@ -27,7 +27,11 @@ extern "C" { #endif /* __cplusplus */ -/*! Data found in one EXIF tag */ +/*! Data found in one EXIF tag. + * The #exif_entry_get_value function can provide access to the + * formatted contents, or the struct members can be used directly to + * access the raw contents. + */ typedef struct _ExifEntry ExifEntry; typedef struct _ExifEntryPrivate ExifEntryPrivate; @@ -35,33 +39,61 @@ typedef struct _ExifEntryPrivate ExifEnt #include <libexif/exif-format.h> #include <libexif/exif-mem.h> -/*! */ +/*! Data found in one EXIF tag */ struct _ExifEntry { + /*! EXIF tag for this entry */ ExifTag tag; + + /*! Type of data in this entry */ ExifFormat format; + + /*! Number of elements in the array, if this is an array entry. + * Contains 1 for non-array data types. */ unsigned long components; + /*! Pointer to the raw EXIF data for this entry. It is allocated + * by #exif_entry_initialize and is NULL beforehand. Data contained + * here may be manipulated using the functions in exif-utils.h */ unsigned char *data; + + /*! Number of bytes in the buffer at \c data. This must be no less + * than exif_format_get_size(format)*components */ unsigned int size; - /* Content containing this entry */ + /*! #ExifContent containing this entry. + * \see #exif_entry_get_ifd */ ExifContent *parent; + /*! Internal data to be used by libexif itself */ ExifEntryPrivate *priv; }; /* Lifecycle */ -/*! Reserve memory for and initialize new #ExifEntry. - * \return new allocated #ExifEntry +/*! Reserve memory for and initialize a new #ExifEntry. + * No memory is allocated for the \c data element of the returned #ExifEntry. + * + * \return new allocated #ExifEntry, or NULL on error + * + * \see exif_entry_new_mem, exif_entry_unref */ ExifEntry *exif_entry_new (void); +/*! Reserve memory for and initialize new #ExifEntry using the specified + * memory allocator. + * No memory is allocated for the \c data element of the returned #ExifEntry. + * + * \return new allocated #ExifEntry, or NULL on error + * + * \see exif_entry_new, exif_entry_unref + */ ExifEntry *exif_entry_new_mem (ExifMem *); /*! Increase reference counter for #ExifEntry. * * \param[in] entry #ExifEntry + * + * \see exif_entry_unref */ void exif_entry_ref (ExifEntry *entry); @@ -84,19 +116,30 @@ void exif_entry_free (ExifEntry /*! Initialize an empty #ExifEntry with default data in the correct format * for the given tag. If the entry is already initialized, this function * does nothing. + * This call allocates memory for the \c data element of the given #ExifEntry. + * That memory is freed at the same time as the #ExifEntry. * * \param[out] e entry to initialize * \param[in] tag tag number to initialize as */ void exif_entry_initialize (ExifEntry *e, ExifTag tag); -/*! When necessary and possible, fix the type or format of the given - * EXIF entry when it is of the wrong type or in an invalid format. +/*! Fix the type or format of the given EXIF entry to bring it into spec. + * If the data for this EXIF tag is in of the wrong type or is in an invalid + * format according to the EXIF specification, then it is converted to make it + * valid. This may involve, for example, converting an EXIF_FORMAT_LONG into a + * EXIF_FORMAT_SHORT. If the tag is unknown, its value is untouched. + * + * \note Unfortunately, some conversions are to a type with a more resticted + * range, which could have the side effect that the converted data becomes + * invalid. This is unlikely as the range of each tag in the standard is + * designed to encompass all likely data. * * \param[in,out] entry EXIF entry */ void exif_entry_fix (ExifEntry *entry); + /* For your convenience */ /*! Return a textual representation of the value of the EXIF entry. @@ -121,7 +164,7 @@ const char *exif_entry_get_value (ExifEn */ void exif_entry_dump (ExifEntry *entry, unsigned int indent); -/*! Returns the IFD number of the given #ExifEntry +/*! Return the IFD number of the given #ExifEntry * * \param[in] e an #ExifEntry* * \return #ExifIfd, or #EXIF_IFD_COUNT on error Index: exif-log.h =================================================================== RCS file: /cvsroot/libexif/libexif/libexif/exif-log.h,v retrieving revision 1.11 retrieving revision 1.12 diff -u -p -d -r1.11 -r1.12 --- exif-log.h 27 Nov 2008 06:54:45 -0000 1.11 +++ exif-log.h 5 Dec 2008 07:07:15 -0000 1.12 @@ -78,8 +78,9 @@ typedef void (* ExifLogFunc) (ExifLog *l const char *format, va_list args, void *data); /*! Register log callback function. + * Calls to the log callback function are purely for diagnostic purposes. * - * \param[in] log #ExifLog + * \param[in] log logging state variable * \param[in] func callback function to set * \param[in] data data to pass into callback function */ Index: exif-data.h =================================================================== RCS file: /cvsroot/libexif/libexif/libexif/exif-data.h,v retrieving revision 1.19 retrieving revision 1.20 diff -u -p -d -r1.19 -r1.20 --- exif-data.h 27 Nov 2008 06:54:45 -0000 1.19 +++ exif-data.h 5 Dec 2008 07:07:15 -0000 1.20 @@ -42,6 +42,7 @@ typedef struct _ExifDataPrivate ExifData #include <libexif/exif-mnote-data.h> #include <libexif/exif-mem.h> +/*! \internal */ struct _ExifData { ExifContent *ifd[EXIF_IFD_COUNT]; |
From: Dan F. <dfa...@us...> - 2008-12-05 07:07:21
|
Update of /cvsroot/libexif/libexif/libexif/olympus In directory ddv4jf1.ch3.sourceforge.com:/tmp/cvs-serv13825/libexif/olympus Modified Files: mnote-olympus-tag.h Log Message: Improved Doxygen documentation. Index: mnote-olympus-tag.h =================================================================== RCS file: /cvsroot/libexif/libexif/libexif/olympus/mnote-olympus-tag.h,v retrieving revision 1.8 retrieving revision 1.9 diff -u -p -d -r1.8 -r1.9 --- mnote-olympus-tag.h 17 Feb 2008 18:31:56 -0000 1.8 +++ mnote-olympus-tag.h 5 Dec 2008 07:07:17 -0000 1.9 @@ -187,8 +187,31 @@ typedef enum _MnoteOlympusTag MnoteOlymp #define MNOTE_OLYMPUS_TAG_UNKNOWN_2 MNOTE_OLYMPUS_TAG_FOCALPLANEDIAGONAL #define MNOTE_OLYMPUS_TAG_UNKNOWN_3 MNOTE_OLYMPUS_TAG_LENSDISTORTION +/*! Return a textual name of the given tag within the Olympus-style MakerNote. + * The name is a short, unique, non-localized text string containing only + * US-ASCII alphanumeric characters. + * + * \param[in] tag Olympus-style MakerNote tag + * \return textual name of the tag, or NULL if the tag is unknown + */ const char *mnote_olympus_tag_get_name (MnoteOlympusTag tag); + +/*! Return a textual title of the given tag within the Olympus-style MakerNote. + * The title is a short, localized description of the tag. + * + * \param[in] tag Olympus-style MakerNote tag + * \return textual title of the tag, or NULL if the tag is unknown + */ const char *mnote_olympus_tag_get_title (MnoteOlympusTag tag); + +/*! Return a verbose textual description of the given tag within the + * Olympus-style MakerNote. + * The description is a verbose, localized description of the tag. + * + * \param[in] tag EXIF tag + * \param[in] ifd IFD + * \return textual description of the tag, or NULL if the tag is unknown + */ const char *mnote_olympus_tag_get_description (MnoteOlympusTag tag); #ifdef __cplusplus |