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...> - 2008-12-02 19:59:07
|
Update of /cvsroot/libexif/libexif/doc In directory ddv4jf1.ch3.sourceforge.com:/tmp/cvs-serv12323/doc Modified Files: Doxyfile-internals.in Doxyfile.in Log Message: Enabled QT_AUTOBRIEF to automatically produce function summaries. Removed an obsolete Doxygen entry. Index: Doxyfile.in =================================================================== RCS file: /cvsroot/libexif/libexif/doc/Doxyfile.in,v retrieving revision 1.10 retrieving revision 1.11 diff -u -p -d -r1.10 -r1.11 --- Doxyfile.in 21 May 2007 15:43:01 -0000 1.10 +++ Doxyfile.in 2 Dec 2008 19:59:03 -0000 1.11 @@ -53,16 +53,6 @@ CREATE_SUBDIRS = NO OUTPUT_LANGUAGE = English -# This tag can be used to specify the encoding used in the generated output. -# The encoding is not always determined by the language that is chosen, -# but also whether or not the output is meant for Windows or non-Windows users. -# In case there is a difference, setting the USE_WINDOWS_ENCODING tag to YES -# forces the Windows encoding (this is the default for the Windows binary), -# whereas setting the tag to NO uses a Unix-style encoding (the default for -# all platforms other than Windows). - -USE_WINDOWS_ENCODING = NO - # If the BRIEF_MEMBER_DESC tag is set to YES (the default) Doxygen will # include brief member descriptions after the members that are listed in # the file and class documentation (similar to JavaDoc). @@ -140,6 +130,14 @@ SHORT_NAMES = NO JAVADOC_AUTOBRIEF = NO +# If the QT_AUTOBRIEF tag is set to YES then Doxygen will +# interpret the first line (until the first dot) of a Qt-style +# comment as the brief description. If set to NO, the comments +# will behave just like regular Qt-style comments (thus requiring +# an explicit \brief command for a brief description.) + +QT_AUTOBRIEF = YES + # The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make Doxygen # treat a multi-line C++ special comment block (i.e. a block of //! or /// # comments) as a brief description. This used to be the default behaviour. Index: Doxyfile-internals.in =================================================================== RCS file: /cvsroot/libexif/libexif/doc/Doxyfile-internals.in,v retrieving revision 1.6 retrieving revision 1.7 diff -u -p -d -r1.6 -r1.7 --- Doxyfile-internals.in 14 Aug 2007 19:55:36 -0000 1.6 +++ Doxyfile-internals.in 2 Dec 2008 19:59:03 -0000 1.7 @@ -53,16 +53,6 @@ CREATE_SUBDIRS = NO OUTPUT_LANGUAGE = English -# This tag can be used to specify the encoding used in the generated output. -# The encoding is not always determined by the language that is chosen, -# but also whether or not the output is meant for Windows or non-Windows users. -# In case there is a difference, setting the USE_WINDOWS_ENCODING tag to YES -# forces the Windows encoding (this is the default for the Windows binary), -# whereas setting the tag to NO uses a Unix-style encoding (the default for -# all platforms other than Windows). - -USE_WINDOWS_ENCODING = NO - # If the BRIEF_MEMBER_DESC tag is set to YES (the default) Doxygen will # include brief member descriptions after the members that are listed in # the file and class documentation (similar to JavaDoc). @@ -140,6 +130,14 @@ SHORT_NAMES = NO JAVADOC_AUTOBRIEF = NO +# If the QT_AUTOBRIEF tag is set to YES then Doxygen will +# interpret the first line (until the first dot) of a Qt-style +# comment as the brief description. If set to NO, the comments +# will behave just like regular Qt-style comments (thus requiring +# an explicit \brief command for a brief description.) + +QT_AUTOBRIEF = YES + # The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make Doxygen # treat a multi-line C++ special comment block (i.e. a block of //! or /// # comments) as a brief description. This used to be the default behaviour. |
From: Dan F. <dfa...@us...> - 2008-12-02 19:59:07
|
Update of /cvsroot/libexif/libexif In directory ddv4jf1.ch3.sourceforge.com:/tmp/cvs-serv12323 Modified Files: NEWS Log Message: Enabled QT_AUTOBRIEF to automatically produce function summaries. Removed an obsolete Doxygen entry. Index: NEWS =================================================================== RCS file: /cvsroot/libexif/libexif/NEWS,v retrieving revision 1.42 retrieving revision 1.43 diff -u -p -d -r1.42 -r1.43 --- NEWS 25 Nov 2008 18:54:42 -0000 1.42 +++ NEWS 2 Dec 2008 19:58:59 -0000 1.43 @@ -4,6 +4,7 @@ libexif-0.6.x: * 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 thread simultaneously + * Expanded the Doxygen API documentation libexif-0.6.17 (2008-11-06): * Updated translations: cs, de, pl, sk, vi |
From: Dan F. <dfa...@us...> - 2008-11-29 16:17:28
|
Update of /cvsroot/libexif/exif/po In directory ddv4jf1.ch3.sourceforge.com:/tmp/cvs-serv24733 Modified Files: da.po Log Message: Minor update of the Danish translation from TP Index: da.po =================================================================== RCS file: /cvsroot/libexif/exif/po/da.po,v retrieving revision 1.2 retrieving revision 1.3 diff -u -p -d -r1.2 -r1.3 --- da.po 26 Nov 2008 21:22:20 -0000 1.2 +++ da.po 29 Nov 2008 16:15:49 -0000 1.3 @@ -33,7 +33,7 @@ msgstr "Indstilling af en værdi for det #: exif/actions.c:91 #, c-format msgid "Too few components specified!" -msgstr "For få komponenter specificeret!" +msgstr "For få komponenter angivet!" #: exif/actions.c:106 #, c-format @@ -48,7 +48,7 @@ msgstr "Ikke implementeret endnu!" #: exif/actions.c:150 #, c-format msgid "Warning; Too many components specified!" -msgstr "Advarsel; for mange komponenter specificeret!" +msgstr "Advarsel; for mange komponenter angivet!" #: exif/actions.c:172 #, c-format |
From: Dan F. <dfa...@us...> - 2008-11-28 18:45:43
|
Update of /cvsroot/libexif/exif In directory ddv4jf1.ch3.sourceforge.com:/tmp/cvs-serv23670 Modified Files: ChangeLog NEWS configure.ac Log Message: po/it.po: Added new Italian translation by Vincenzo Campanella Index: NEWS =================================================================== RCS file: /cvsroot/libexif/exif/NEWS,v retrieving revision 1.22 retrieving revision 1.23 diff -u -p -d -r1.22 -r1.23 --- NEWS 26 Nov 2008 21:22:18 -0000 1.22 +++ NEWS 28 Nov 2008 18:45:35 -0000 1.23 @@ -1,4 +1,5 @@ exif-0.6.x: + * Added translation: it * Updated translations: da, id, nl, pl, sk, sv, zh_CN * Fixed alignment of tables in locales with multibyte character encoding (bug #2034873) Index: configure.ac =================================================================== RCS file: /cvsroot/libexif/exif/configure.ac,v retrieving revision 1.24 retrieving revision 1.25 diff -u -p -d -r1.24 -r1.25 --- configure.ac 26 Nov 2008 08:34:03 -0000 1.24 +++ configure.ac 28 Nov 2008 18:45:35 -0000 1.25 @@ -39,7 +39,7 @@ GP_PKG_CONFIG # i18n support # --------------------------------------------------------------------------- GP_GETTEXT_HACK([${PACKAGE}],[Lutz Mueller and others]) -ALL_LINGUAS="da de es fr id nl pl sk sv vi zh_CN" +ALL_LINGUAS="da de es fr id it nl pl sk sv vi zh_CN" AM_GNU_GETTEXT_VERSION([0.14.1]) AM_GNU_GETTEXT([external]) AM_PO_SUBDIRS() Index: ChangeLog =================================================================== RCS file: /cvsroot/libexif/exif/ChangeLog,v retrieving revision 1.82 retrieving revision 1.83 diff -u -p -d -r1.82 -r1.83 --- ChangeLog 26 Nov 2008 21:22:18 -0000 1.82 +++ ChangeLog 28 Nov 2008 18:45:35 -0000 1.83 @@ -1,3 +1,7 @@ +2008-11-28 Dan Fandrich <da...@co...> + + * po/it.po: Added new Italian translation by Vincenzo Campanella + 2008-11-26 Dan Fandrich <da...@co...> * po/da.po: Updated Danish translation by Joe Hansen |
From: Dan F. <dfa...@us...> - 2008-11-28 18:45:42
|
Update of /cvsroot/libexif/exif/po In directory ddv4jf1.ch3.sourceforge.com:/tmp/cvs-serv23670/po Added Files: it.po Log Message: po/it.po: Added new Italian translation by Vincenzo Campanella --- NEW FILE: it.po --- # ITALIAN TRANSLATION OF EXIF-0.6.17 # Copyright (C) 2008 Lutz Mueller and others # This file is distributed under the same license as the exif package. # # Vincenzo Campanella <vi...@gm...>, 2008. msgid "" msgstr "" "Project-Id-Version: exif-0.6.17\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2008-11-06 01:03-0800\n" "PO-Revision-Date: 2008-11-22 15:35+0100\n" "Last-Translator: Vincenzo Campanella <vi...@gm...>\n" "Language-Team: Italian <tp...@li...>\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Generator: KBabel 1.11.4\n" #: exif/actions.c:56 #, c-format msgid "Not enough memory." msgstr "Memoria insufficiente." #: exif/actions.c:74 #, c-format msgid "Setting a value for this tag is unsupported!" msgstr "L'impostazione di un valore per questo tag non è supportata." #: exif/actions.c:91 #, c-format msgid "Too few components specified!" msgstr "Troppo pochi componenti specificati." #: exif/actions.c:106 #, c-format msgid "Internal error. Please contact <%s>." msgstr "Errore interno. Contattare <%s>." #: exif/actions.c:143 #, c-format msgid "Not yet implemented!" msgstr "Non ancora implementato." #: exif/actions.c:150 #, c-format msgid "Warning; Too many components specified!" msgstr "Attenzione: sono stati specificati troppi componenti." #: exif/actions.c:172 #, c-format msgid "Too much EXIF data (%i bytes). Only %i bytes are allowed." msgstr "Troppi dati EXIF (%i byte). Solo %i byte sono ammessi." #: exif/actions.c:183 exif/actions.c:358 #, c-format msgid "Wrote file '%s'." msgstr "Il file «%s» è stato scritto." #: exif/actions.c:203 #, c-format msgid "EXIF entry '%s' " msgstr "Voce 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 "esiste in IFD «%s»:\n" #: exif/actions.c:251 #, c-format msgid "IFD '%s' does not contain a tag '%s'!" msgstr "IFD «%s» non contiene un tag «%s»." #: exif/actions.c:282 #, c-format msgid "Could not open '%s' (%m)!" msgstr "Impossibile aprire «%s» (%m)." #: exif/actions.c:285 #, c-format msgid "Could not open '%s' (%s)!" msgstr "Impossibile aprire «%s» (%s)." #: exif/actions.c:295 #, c-format msgid "Could not read '%s' (%m)." msgstr "Impossibile leggere «%s» (%m)." #: exif/actions.c:298 #, c-format msgid "Could not read '%s' (%s)." msgstr "Impossibile leggere «%s» (%s)." #: exif/actions.c:317 #, c-format msgid "IFD '%s' does not contain tag '%s'." msgstr "IFD «%s» non contiene un tag «%s»." #: exif/actions.c:323 #, c-format msgid "'%s' does not contain tag '%s'." msgstr "«%s» non contiene un tag «%s»." #: exif/actions.c:341 #, c-format msgid "'%s' does not contain a thumbnail!" msgstr "«%s» non contiene un'anteprima." #: exif/actions.c:350 #, c-format msgid "Could not open '%s' for writing (%m)!" msgstr "Impossibile aprire «%s» per la lettura (%m)." #: exif/actions.c:353 #, c-format msgid "Could not open '%s' for writing (%s)!" msgstr "Impossibile aprire «%s» per la lettura (%s)." #: exif/actions.c:371 #, c-format msgid "EXIF tags in '%s':" msgstr "Tag EXIF in «%s»:" #: exif/actions.c:440 #, c-format msgid "Unknown MakerNote format.\n" msgstr "Formato MakerNote sconosciuto.\n" #: exif/actions.c:447 #, c-format msgid "MakerNote does not contain any value.\n" msgstr "MakerNote non contiene alcun valore.\n" #: exif/actions.c:450 #, c-format msgid "MakerNote contains %i value:\n" msgid_plural "MakerNote contains %i values:\n" msgstr[0] "MakerNote contiene %i valore:\n" msgstr[1] "MakerNote contiene %i valori:\n" #: exif/actions.c:460 msgid "Unknown tag" msgstr "Tag sconosciuto" #: exif/actions.c:464 msgid "Unknown value" msgstr "Valore sconosciuto" #: exif/actions.c:490 #, c-format msgid "EXIF tags in '%s' ('%s' byte order):" msgstr "Tag EXIF in «%s» (ordinato per byte «%s»):" #: exif/actions.c:495 exif/actions.c:497 msgid "Tag" msgstr "Tag" #: exif/actions.c:501 exif/actions.c:503 exif/main.c:199 msgid "Value" msgstr "Valore" #: exif/actions.c:509 #, c-format msgid "EXIF data contains a thumbnail (%i bytes)." msgstr "Il dato EXIF contiene un'anteprima (%i byte)." #: exif/actions.c:545 #, c-format msgid "ThumbnailSize\t%i\n" msgstr "DimensioneAnteprima\t%i\n" #: exif/main.c:175 msgid "Display software version" msgstr "Mostra la versione del software" #: exif/main.c:177 msgid "Show IDs instead of tag names" msgstr "Mostra gli ID anziché i nomi dei tag" #: exif/main.c:179 msgid "Select tag" msgstr "Seleziona il tag" #: exif/main.c:179 msgid "tag" msgstr "tag" #: exif/main.c:181 msgid "Select IFD" msgstr "Seleziona l'IFD" #: exif/main.c:181 msgid "IFD" msgstr "IFD" #: exif/main.c:183 msgid "List all EXIF tags" msgstr "Elenca tutti i tag EXIF" #: exif/main.c:185 msgid "Show contents of tag MakerNote" msgstr "Mostra il contenuto del tag MakerNote" #: exif/main.c:187 msgid "Remove tag or ifd" msgstr "Rimuove il tag o l'IFD" #: exif/main.c:189 msgid "Show description of tag" msgstr "Mostra la descrizione del tag" #: exif/main.c:191 msgid "Extract thumbnail" msgstr "Estrae l'anteprima" #: exif/main.c:193 msgid "Remove thumbnail" msgstr "Rimuove l'anteprima" #: exif/main.c:195 msgid "Insert FILE as thumbnail" msgstr "Inserisce il FILE come anteprima" #: exif/main.c:195 exif/main.c:197 msgid "FILE" msgstr "FILE" #: exif/main.c:197 msgid "Write data to FILE" msgstr "Scrive i dati nel FILE" #: exif/main.c:201 msgid "Create EXIF data if not existing" msgstr "Crea i dati EXIF se mancanti" #: exif/main.c:203 msgid "Output in a machine-readable (tab delimited) format" msgstr "Output in formato leggibile (delimitato da tabulatori)" #: exif/main.c:206 msgid "Output in a XML format" msgstr "Output in formato XML" #: exif/main.c:209 msgid "Show debugging messages" msgstr "Mostra i messaggi di debug" #: exif/main.c:229 msgid "[OPTION...] file" msgstr "[OPZIONE...] file" #: exif/main.c:241 #, c-format msgid "Invalid IFD '%s'. Valid IFDs are '0', '1', 'EXIF', 'GPS', and 'Interoperability'." msgstr "IFD «%s» non valido. IFD validi sono «0», «1», «EXIF», «GPS» e «Interoperability»." #: exif/main.c:250 #, c-format msgid "Invalid tag '%s'!" msgstr "Tag «%s» non valido." #: exif/main.c:258 msgid "You need to specify a tag!" msgstr "à necessario specificare un tag." #: exif/main.c:263 msgid "You need to specify an IFD!" msgstr "à necessario specificare un IFD." #: exif/main.c:286 #, c-format msgid "Tag '%s' " msgstr "Tag «%s» " #: exif/main.c:288 #, c-format msgid "(0x%04x, '%s'): " msgstr "(0x%04x, '%s'): " #: exif/main.c:338 #, c-format msgid "'%s' does not contain EXIF data!" msgstr "«%s» non contiene dati EXIF." |
From: Dan F. <dfa...@us...> - 2008-11-27 23:28:29
|
Update of /cvsroot/libexif/libexif-website/static In directory ddv4jf1.ch3.sourceforge.com:/tmp/cvs-serv21658/static Modified Files: index.html Log Message: Added some sites offering binary libexif downloads. Index: index.html =================================================================== RCS file: /cvsroot/libexif/libexif-website/static/index.html,v retrieving revision 1.20 retrieving revision 1.21 diff -u -p -d -r1.20 -r1.21 --- index.html 19 Nov 2008 05:54:28 -0000 1.20 +++ index.html 27 Nov 2008 23:28:18 -0000 1.21 @@ -110,6 +110,39 @@ svn co https://libexif.svn.sourceforge.n </li--> </ul> </li> +<li>Download binaries +<p>The libexif project supplies only source code packages. Helpful people +around the world compile the source code and provide binaries for a +number of platforms. Here is a list of some of the sites you can look.</p> +<ul> + <li>DragonFly BSD: <a href="http://chlamydia.fs.ei.tum.de/pub/DragonFly/packages/DragonFly-2.0/stable/graphics/?P=*exif*">DragonFly project</a></li> + + <li>FreeBSD: <a href="ftp://ftp.freebsd.org/pub/FreeBSD/ports/i386/packages-current/All/">FreeBSD project</a></li> + + <li>IRIX: <a href="http://freeware.sgi.com/index-by-alpha.html#exif">SGI</a></li> + + <li>Linux: Chances are, libexif is already supplied by your + distribution provider. Use your distributions's package install + tool to find and install it, or + <a href="http://rpmfind.net/linux/rpm2html/search.php?query=exif&submit=Search+...&system=&arch=">search</a> + <a href="http://rpmfind.net/linux/rpm2html/search.php?query=libexif&submit=Search+...&system=&arch=">at</a> + <a href="http://rpmfind.net/linux/rpm2html/search.php?query=libexif12&submit=Search+...&system=&arch=">rpmfind.net</a>. + </li> + + <li>Mac OS X: <a href="http://www.hmug.org/pub/MacOS_X/BSD/Libraries/Graphics/libexif/">HMUG</a></li> + + <li>Solaris: + <a href="http://www.blastwave.org/packages.php/libexif">Blastwave</a>, + <a href="http://gnusolaris.intergenia.de/nexenta/dists/elatte-stable/main/binary-solaris-i386/libs/?P=*libexif*">Nexenta</a>, + <a href="ftp://ftp.sunfreeware.com/pub/freeware/intel/10/">Sun Freeware</a> + </li> + + <li>Windows: + <a href="http://cygwin.com/cgi-bin2/package-grep.cgi?grep=exif">Cygwin</a>, + <a href="http://www.gimp.org/~tml/gimp/win32/downloads.html">GIMP project</a> + </li> +</ul> +</li> </ul> <h2>Feedback on libexif</h2> |
From: Dan F. <dfa...@us...> - 2008-11-27 06:54:59
|
Update of /cvsroot/libexif/libexif/libexif In directory ddv4jf1.ch3.sourceforge.com:/tmp/cvs-serv8532 Modified Files: exif-content.h exif-data.h exif-entry.h exif-format.h exif-ifd.h exif-loader.h exif-log.h exif-mem.h exif-mnote-data.h exif-tag.c exif-tag.h exif-utils.h exif.h Log Message: Improved Doxygen documentation. Index: exif-tag.c =================================================================== RCS file: /cvsroot/libexif/libexif/libexif/exif-tag.c,v retrieving revision 1.42 retrieving revision 1.43 diff -u -p -d -r1.42 -r1.43 --- exif-tag.c 8 Oct 2008 05:23:37 -0000 1.42 +++ exif-tag.c 27 Nov 2008 06:54:45 -0000 1.43 @@ -692,8 +692,14 @@ static const struct { }; /* For now, do not use these functions. */ + +/*! \internal */ ExifTag exif_tag_table_get_tag (unsigned int n); + +/*! \internal */ const char *exif_tag_table_get_name (unsigned int n); + +/*! \internal */ unsigned int exif_tag_table_count (void); ExifTag Index: exif-content.h =================================================================== RCS file: /cvsroot/libexif/libexif/libexif/exif-content.h,v retrieving revision 1.16 retrieving revision 1.17 diff -u -p -d -r1.16 -r1.17 --- exif-content.h 25 Nov 2008 09:30:38 -0000 1.16 +++ exif-content.h 27 Nov 2008 06:54:45 -0000 1.17 @@ -57,6 +57,7 @@ void exif_content_free (ExifC /*! Add an EXIF tag to an IFD. * If this tag already exists in the IFD, this function does nothing. + * * \param[out] c IFD * \param[in] entry EXIF entry to add */ @@ -64,22 +65,25 @@ void exif_content_add_entry ( /*! Remove an EXIF tag from an IFD. * If this tag does not exist in the IFD, this function does nothing. + * * \param[out] c IFD * \param[in] e EXIF entry to remove */ void exif_content_remove_entry (ExifContent *c, ExifEntry *e); /*! Return the #ExifEntry in this IFD corresponding to the given tag. + * * \param[in] content EXIF content for an IFD * \param[in] tag EXIF tag to return * \return #ExifEntry of the tag, or NULL on error */ ExifEntry *exif_content_get_entry (ExifContent *content, ExifTag tag); -/*! Fix the IFD to bring it into specification. Call exif_entry_fix on +/*! Fix the IFD to bring it into specification. Call #exif_entry_fix on * each entry in this IFD to fix existing entries, create any new entries * that are mandatory in this IFD but do not yet exist, and remove any * entries that are not allowed in this IFD. + * * \param[in,out] c EXIF content for an IFD */ void exif_content_fix (ExifContent *c); @@ -87,6 +91,7 @@ void exif_content_fix ( typedef void (* ExifContentForeachEntryFunc) (ExifEntry *, void *user_data); /*! Executes function on each EXIF tag in turn. + * * \param[in,out] content IFD over which to iterate * \param[in] func function to call for each entry * \param[in] user_data data to pass into func on each call @@ -96,17 +101,19 @@ void exif_content_foreach_entry void *user_data); /*! Return the IFD number in which the given #ExifContent is found. + * * \param[in] c an #ExifContent* - * \return IFD number, or EXIF_IFD_COUNT on error + * \return IFD number, or #EXIF_IFD_COUNT on error */ ExifIfd exif_content_get_ifd (ExifContent *c); /*! Return a textual representation of the EXIF data for a tag. + * * \param[in] c #ExifContent* for an IFD * \param[in] t #ExifTag to return * \param[out] v char* buffer in which to store value * \param[in] m unsigned int length of the buffer v - * \return v pointer, or NULL on error + * \return the v pointer, or NULL on error */ #define exif_content_get_value(c,t,v,m) \ (exif_content_get_entry (c,t) ? \ @@ -114,12 +121,14 @@ ExifIfd exif_content_get_ifd (ExifConten /*! Dump contents of the IFD to stdout. * This is intended for diagnostic purposes only. + * * \param[in] content IFD data * \param[in] indent how many levels deep to indent the data */ void exif_content_dump (ExifContent *content, unsigned int indent); /*! Set the log message object for this IFD. + * * \param[in] content IFD * \param[in] log #ExifLog* */ Index: exif-utils.h =================================================================== RCS file: /cvsroot/libexif/libexif/libexif/exif-utils.h,v retrieving revision 1.20 retrieving revision 1.21 diff -u -p -d -r1.20 -r1.21 --- exif-utils.h 25 Nov 2008 09:30:38 -0000 1.20 +++ exif-utils.h 27 Nov 2008 06:54:45 -0000 1.21 @@ -35,31 +35,86 @@ extern "C" { /* If these definitions don't work for you, please let us fix the * macro generating _stdint.h */ +/*! EXIF Unsigned Byte data type */ typedef unsigned char ExifByte; /* 1 byte */ + +/*! EXIF Signed Byte data type */ typedef signed char ExifSByte; /* 1 byte */ + +/*! EXIF Text String data type */ typedef char * ExifAscii; + +/*! EXIF Unsigned Short data type */ typedef uint16_t ExifShort; /* 2 bytes */ + +/*! EXIF Signed Short data type */ typedef int16_t ExifSShort; /* 2 bytes */ + +/*! EXIF Unsigned Long data type */ typedef uint32_t ExifLong; /* 4 bytes */ + +/*! EXIF Signed Long data type */ +typedef int32_t ExifSLong; /* 4 bytes */ -/*! EXIF Unsigned Rational */ +/*! EXIF Unsigned Rational data type */ typedef struct {ExifLong numerator; ExifLong denominator;} ExifRational; typedef char ExifUndefined; /* 1 byte */ -typedef int32_t ExifSLong; /* 4 bytes */ -/*! EXIF Signed Rational. */ +/*! EXIF Signed Rational data type */ typedef struct {ExifSLong numerator; ExifSLong denominator;} ExifSRational; +/*! Retrieve an #ExifShort value from memory. + * + * \param[in] b pointer to raw EXIF value in memory + * \param[in] order byte order of raw value + * \return value + */ ExifShort exif_get_short (const unsigned char *b, ExifByteOrder order); + +/*! Retrieve an #ExifSShort value from memory. + * + * \param[in] b pointer to raw EXIF value in memory + * \param[in] order byte order of raw value + * \return value + */ ExifSShort exif_get_sshort (const unsigned char *b, ExifByteOrder order); + +/*! Retrieve an #ExifLong value from memory. + * + * \param[in] b pointer to raw EXIF value in memory + * \param[in] order byte order of raw value + * \return value + */ ExifLong exif_get_long (const unsigned char *b, ExifByteOrder order); + +/*! Retrieve an #ExifSLong value from memory. + * + * \param[in] b pointer to raw EXIF value in memory + * \param[in] order byte order of raw value + * \return value + */ ExifSLong exif_get_slong (const unsigned char *b, ExifByteOrder order); + +/*! Retrieve an #ExifRational value from memory. + * + * \param[in] b pointer to raw EXIF value in memory + * \param[in] order byte order of raw value + * \return value + */ ExifRational exif_get_rational (const unsigned char *b, ExifByteOrder order); + +/*! Retrieve an #ExifSRational value from memory. + * + * \param[in] b pointer to raw EXIF value in memory + * \param[in] order byte order of raw value + * \return value + */ ExifSRational exif_get_srational (const unsigned char *b, ExifByteOrder order); -/*! Store an ExifShort value into memory in EXIF format +/*! Store an ExifShort value into memory in EXIF format. + * * \param[out] b buffer in which to write raw value * \param[in] order byte order to use * \param[in] value data value to store @@ -67,7 +122,8 @@ ExifSRational exif_get_srational (const void exif_set_short (unsigned char *b, ExifByteOrder order, ExifShort value); -/*! Store an ExifSShort value into memory in EXIF format +/*! Store an ExifSShort value into memory in EXIF format. + * * \param[out] b buffer in which to write raw value * \param[in] order byte order to use * \param[in] value data value to store @@ -75,7 +131,8 @@ void exif_set_short (unsigned char * void exif_set_sshort (unsigned char *b, ExifByteOrder order, ExifSShort value); -/*! Store an ExifLong value into memory in EXIF format +/*! Store an ExifLong value into memory in EXIF format. + * * \param[out] b buffer in which to write raw value * \param[in] order byte order to use * \param[in] value data value to store @@ -83,7 +140,8 @@ void exif_set_sshort (unsigned char * void exif_set_long (unsigned char *b, ExifByteOrder order, ExifLong value); -/*! Store an ExifSLong value into memory in EXIF format +/*! Store an ExifSLong value into memory in EXIF format. + * * \param[out] b buffer in which to write raw value * \param[in] order byte order to use * \param[in] value data value to store @@ -91,7 +149,8 @@ void exif_set_long (unsigned char * void exif_set_slong (unsigned char *b, ExifByteOrder order, ExifSLong value); -/*! Store an ExifRational value into memory in EXIF format +/*! Store an ExifRational value into memory in EXIF format. + * * \param[out] b buffer in which to write raw value * \param[in] order byte order to use * \param[in] value data value to store @@ -99,7 +158,8 @@ void exif_set_slong (unsigned char * void exif_set_rational (unsigned char *b, ExifByteOrder order, ExifRational value); -/*! Store an ExifSRational value into memory in EXIF format +/*! Store an ExifSRational value into memory in EXIF format. + * * \param[out] b buffer in which to write raw value * \param[in] order byte order to use * \param[in] value data value to store @@ -107,9 +167,12 @@ void exif_set_rational (unsigned char * void exif_set_srational (unsigned char *b, ExifByteOrder order, ExifSRational value); +/*! \internal */ void exif_convert_utf16_to_utf8 (char *out, const unsigned short *in, int maxlen); /* Please do not use this function outside of the library. */ + +/*! \internal */ void exif_array_set_byte_order (ExifFormat, unsigned char *, unsigned int, ExifByteOrder o_orig, ExifByteOrder o_new); @@ -121,7 +184,7 @@ void exif_array_set_byte_order (ExifForm /* For compatibility with older versions */ -/*! \deprecated Use EXIF_TAG_SUB_SEC_TIME instead */ +/*! \deprecated Use EXIF_TAG_SUB_SEC_TIME instead. */ #define EXIF_TAG_SUBSEC_TIME EXIF_TAG_SUB_SEC_TIME #ifdef __cplusplus Index: exif-tag.h =================================================================== RCS file: /cvsroot/libexif/libexif/libexif/exif-tag.h,v retrieving revision 1.19 retrieving revision 1.20 diff -u -p -d -r1.19 -r1.20 --- exif-tag.h 25 Nov 2008 09:30:38 -0000 1.19 +++ exif-tag.h 27 Nov 2008 06:54:45 -0000 1.20 @@ -184,13 +184,21 @@ typedef enum { /*! What level of support a tag enjoys in the EXIF standard */ typedef enum { + /*! The meaning of this tag is unknown */ EXIF_SUPPORT_LEVEL_UNKNOWN = 0, + + /*! This tag is not found in the given IFD */ EXIF_SUPPORT_LEVEL_NOT_RECORDED, + + /*! This tag is mandatory in the given IFD */ EXIF_SUPPORT_LEVEL_MANDATORY, + + /*! This tag is optional in the given IFD */ EXIF_SUPPORT_LEVEL_OPTIONAL } ExifSupportLevel; /*! Return the tag ID given its unique textual name. + * * \param[in] name tag name * \return tag ID */ @@ -199,6 +207,7 @@ ExifTag exif_tag_from_name /*! Return a textual name of the given tag when found in the given IFD. The * name is a short, unique, non-localized text string containing only * US-ASCII alphanumeric characters. + * * \param[in] tag EXIF tag * \param[in] ifd IFD * \return textual name of the tag @@ -206,6 +215,7 @@ ExifTag exif_tag_from_name 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. + * * \param[in] tag EXIF tag * \param[in] ifd IFD * \return textual title of the tag @@ -214,6 +224,7 @@ const char *exif_tag_get_title_in_i /*! Return a verbose textual description of the given tag when found in the * given IFD. + * * \param[in] tag EXIF tag * \param[in] ifd IFD * \return textual description of the tag @@ -222,6 +233,7 @@ const char *exif_tag_get_descriptio /*! Return whether the given tag is mandatory or not in the given IFD and * data type according to the EXIF specification. + * * \param[in] tag EXIF tag * \param[in] ifd IFD * \param[in] t data type @@ -231,18 +243,18 @@ ExifSupportLevel exif_tag_get_support_le /* Don't use these functions. They are here for compatibility only. */ -/*! \deprecated Use exif_tag_get_name_in_ifd instead */ +/*! \deprecated Use #exif_tag_get_name_in_ifd instead */ const char *exif_tag_get_name (ExifTag tag); -/*! \deprecated Use exif_tag_get_title_in_ifd instead */ +/*! \deprecated Use #exif_tag_get_title_in_ifd instead */ const char *exif_tag_get_title (ExifTag tag); -/*! \deprecated Use exif_tag_get_description_in_ifd instead */ +/*! \deprecated Use #exif_tag_get_description_in_ifd instead */ const char *exif_tag_get_description (ExifTag tag); /* Don't use these definitions. They are here for compatibility only. */ -/*! \deprecated Use EXIF_TAG_PRINT_IMAGE_MATCHING instead */ +/*! \deprecated Use EXIF_TAG_PRINT_IMAGE_MATCHING instead. */ #define EXIF_TAG_UNKNOWN_C4A5 EXIF_TAG_PRINT_IMAGE_MATCHING #ifdef __cplusplus Index: exif-mnote-data.h =================================================================== RCS file: /cvsroot/libexif/libexif/libexif/exif-mnote-data.h,v retrieving revision 1.7 retrieving revision 1.8 diff -u -p -d -r1.7 -r1.8 --- exif-mnote-data.h 25 Nov 2008 09:30:38 -0000 1.7 +++ exif-mnote-data.h 27 Nov 2008 06:54:45 -0000 1.8 @@ -35,11 +35,29 @@ typedef struct _ExifMnoteData ExifMnoteD void exif_mnote_data_ref (ExifMnoteData *); void exif_mnote_data_unref (ExifMnoteData *); -void exif_mnote_data_load (ExifMnoteData *, const unsigned char *, - unsigned int); -void exif_mnote_data_save (ExifMnoteData *, unsigned char **, unsigned int *); +/*! Load the MakerNote data from a memory buffer. + * + * \param[in] d MakerNote data + * \param[in] buf pointer to raw MakerNote tag data + * \param[in] buf_siz number of bytes of data at buf + */ +void exif_mnote_data_load (ExifMnoteData *d, const unsigned char *buf, + unsigned int buf_siz); + +/*! + * Save the raw MakerNote data into a memory buffer. The buffer is + * allocated by this function and must subsequently be freed by the + * caller. + * + * \param[in,out] d extract the data from this structure + * \param[out] buf pointer to buffer pointer containing MakerNote data on return + * \param[out] buf_siz pointer to the size of the buffer + */ +void exif_mnote_data_save (ExifMnoteData *d, unsigned char **buf, + unsigned int *buf_siz); /*! Return the number of tags in the MakerNote. + * * \param[in] d MakerNote data * \return number of tags, or 0 if no MakerNote or the type is not supported */ @@ -47,6 +65,7 @@ unsigned int exif_mnote_data_count /*! Return the MakerNote tag number for the tag at the specified index within * the MakerNote. + * * \param[in] d MakerNote data * \param[in] n index of the entry within the MakerNote data * \return MakerNote tag number @@ -56,6 +75,7 @@ unsigned int exif_mnote_data_get_id /*! Returns textual name of the given MakerNote tag. The name is a short, * unique (within this type of MakerNote), non-localized text string * containing only US-ASCII alphanumeric characters. + * * \param[in] d MakerNote data * \param[in] n tag number within the namespace of this type of MakerNote * \return textual name of the tag @@ -63,6 +83,7 @@ unsigned int exif_mnote_data_get_id const char *exif_mnote_data_get_name (ExifMnoteData *d, unsigned int n); /*! Returns textual title of the given MakerNote tag. + * * \param[in] d MakerNote data * \param[in] n tag number within the namespace of this type of MakerNote * \return textual name of the tag @@ -70,6 +91,7 @@ const char *exif_mnote_data_get_name const char *exif_mnote_data_get_title (ExifMnoteData *d, unsigned int n); /*! 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 * \return textual description of the tag Index: exif-mem.h =================================================================== RCS file: /cvsroot/libexif/libexif/libexif/exif-mem.h,v retrieving revision 1.7 retrieving revision 1.8 diff -u -p -d -r1.7 -r1.8 --- exif-mem.h 22 Nov 2008 07:08:56 -0000 1.7 +++ exif-mem.h 27 Nov 2008 06:54:45 -0000 1.8 @@ -32,20 +32,24 @@ extern "C" { #endif /* __cplusplus */ /*! Should work like calloc() + * * \param[in] s the size of the block to allocate. - * \returns the allocated memory and initialized. + * \return the allocated memory and initialized. */ typedef void * (* ExifMemAllocFunc) (ExifLong s); /*! Should work like realloc() + * * \param[in] p the pointer to reallocate * \param[in] s the size of the reallocated block - * \returns allocated memory + * \return allocated memory */ typedef void * (* ExifMemReallocFunc) (void *p, ExifLong s); + /*! Free method for ExifMem + * * \param[in] p the pointer to free - * \returns the freed pointer + * \return the freed pointer */ typedef void (* ExifMemFreeFunc) (void *p); @@ -53,6 +57,7 @@ typedef void (* ExifMemFreeFunc) (v typedef struct _ExifMem ExifMem; /*! Create a new ExifMem + * * \param[in] a the allocator function * \param[in] r the reallocator function * \param[in] f the free function @@ -62,7 +67,8 @@ ExifMem *exif_mem_new (ExifMemAllocFun /*! Refcount an ExifMem */ void exif_mem_ref (ExifMem *); -/*! Unrefcount an ExifMem + +/*! Unrefcount an ExifMem. * If the refcount reaches 0, the ExifMem is freed */ void exif_mem_unref (ExifMem *); @@ -72,7 +78,8 @@ void *exif_mem_realloc (ExifMem *m, void void exif_mem_free (ExifMem *m, void *p); /*! The default ExifMem for your convenience - * \returns return the default ExifMem + * + * \return return the default ExifMem */ ExifMem *exif_mem_new_default (void); Index: exif-loader.h =================================================================== RCS file: /cvsroot/libexif/libexif/libexif/exif-loader.h,v retrieving revision 1.9 retrieving revision 1.10 diff -u -p -d -r1.9 -r1.10 --- exif-loader.h 25 Nov 2008 09:30:38 -0000 1.9 +++ exif-loader.h 27 Nov 2008 06:54:45 -0000 1.10 @@ -35,34 +35,40 @@ extern "C" { typedef struct _ExifLoader ExifLoader; /*! Allocate a new #ExifLoader + * * \return allocated ExifLoader */ ExifLoader *exif_loader_new (void); /*! Allocate a new #ExifLoader using an #ExifMem + * * \param[in] mem the ExifMem * \return allocated ExifLoader */ ExifLoader *exif_loader_new_mem (ExifMem *mem); /*! Increase the refcount of the #ExifLoader + * * \param[in] loader the ExifLoader to increase the refcount of. */ void exif_loader_ref (ExifLoader *loader); -/*! Decrease the refcount of the #ExifLoader - * \param[in] loader ExifLoader for which to decrease the refcount - * If the refcount reaches 0, the ExifLoader is freed. +/*! Decrease the refcount of the #ExifLoader. + * If the refcount reaches 0, the loader is freed. + * + * \param[in] loader ExifLoader for which to decrease the refcount */ void exif_loader_unref (ExifLoader *loader); /*! Load a file into the given #ExifLoader from the filesystem. + * * \param[in] loader loader to write to * \param[in] fname path to the file to read */ void exif_loader_write_file (ExifLoader *loader, const char *fname); /*! Load a buffer into the #ExifLoader from a memory buffer. + * * \param[in] loader loader to write to * \param[in] buf buffer to read from * \param[in] sz size of the buffer @@ -72,11 +78,13 @@ 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 + * * \param[in] loader the loader */ void exif_loader_reset (ExifLoader *loader); /*! Create an ExifData from an ExifLoader + * * \param[in] loader the loader * \return allocated ExifData */ Index: exif.h =================================================================== RCS file: /cvsroot/libexif/libexif/libexif/exif.h,v retrieving revision 1.10 retrieving revision 1.11 diff -u -p -d -r1.10 -r1.11 --- exif.h 25 Nov 2008 09:30:38 -0000 1.10 +++ exif.h 27 Nov 2008 06:54:45 -0000 1.11 @@ -66,7 +66,7 @@ * The programmer must ensure that each object allocated by libexif is only * used in a single thread at once. For example, an ExifData* allocated * in one thread can't be used in a second thread if there is any chance - * that the first thread could use it at the same time. Two threads + * that the first thread could use it at the same time. Multiple threads * can use libexif without issues if they never share handles. * */ Index: exif-entry.h =================================================================== RCS file: /cvsroot/libexif/libexif/libexif/exif-entry.h,v retrieving revision 1.18 retrieving revision 1.19 diff -u -p -d -r1.18 -r1.19 --- exif-entry.h 25 Nov 2008 09:30:38 -0000 1.18 +++ exif-entry.h 27 Nov 2008 06:54:45 -0000 1.19 @@ -52,25 +52,30 @@ struct _ExifEntry { /* Lifecycle */ -/*! Reserve memory for and initialize new #ExifEntry* */ +/*! Reserve memory for and initialize new #ExifEntry. + * \return new allocated #ExifEntry + */ ExifEntry *exif_entry_new (void); ExifEntry *exif_entry_new_mem (ExifMem *); -/*! Increase reference counter for #ExifEntry* +/*! Increase reference counter for #ExifEntry. + * * \param[in] entry #ExifEntry */ void exif_entry_ref (ExifEntry *entry); -/*! Decrease reference counter for #ExifEntry* +/*! Decrease reference counter for #ExifEntry. + * When the reference count drops to zero, free the entry. + * * \param[in] entry #ExifEntry */ void exif_entry_unref (ExifEntry *entry); -/*! Actually free the #ExifEntry* +/*! Actually free the #ExifEntry. * - * \deprecated Should not be called directly. Use exif_entry_ref() and - * exif_entry_unref() instead. + * \deprecated Should not be called directly. Use #exif_entry_ref and + * #exif_entry_unref instead. * * \param[in] entry EXIF entry */ @@ -79,6 +84,7 @@ 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. + * * \param[out] e entry to initialize * \param[in] tag tag number to initialize as */ @@ -86,6 +92,7 @@ void exif_entry_initialize (ExifE /*! 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. + * * \param[in,out] entry EXIF entry */ void exif_entry_fix (ExifEntry *entry); @@ -108,14 +115,16 @@ const char *exif_entry_get_value (ExifEn /*! Dump text representation of #ExifEntry to stdout. * This is intended for diagnostic purposes only. + * * \param[in] entry EXIF tag data * \param[in] indent how many levels deep to indent the data */ void exif_entry_dump (ExifEntry *entry, unsigned int indent); /*! Returns the IFD number of the given #ExifEntry + * * \param[in] e an #ExifEntry* - * \return IFD number, or EXIF_IFD_COUNT on error + * \return #ExifIfd, or #EXIF_IFD_COUNT on error */ #define exif_entry_get_ifd(e) ((e)?exif_content_get_ifd((e)->parent):EXIF_IFD_COUNT) Index: exif-data.h =================================================================== RCS file: /cvsroot/libexif/libexif/libexif/exif-data.h,v retrieving revision 1.18 retrieving revision 1.19 diff -u -p -d -r1.18 -r1.19 --- exif-data.h 25 Nov 2008 09:30:38 -0000 1.18 +++ exif-data.h 27 Nov 2008 06:54:45 -0000 1.19 @@ -52,24 +52,35 @@ struct _ExifData ExifDataPrivate *priv; }; -/*! Allocate a new #ExifData. - * \return allocated #ExifData +/*! Allocate a new, empty #ExifData. + * + * \return allocated #ExifData, or NULL on error */ ExifData *exif_data_new (void); ExifData *exif_data_new_mem (ExifMem *); -/*! Load EXIF data from a JPEG file. - * \param[in] path filename including path - * \return allocated #ExifData, or NULL on error +/*! Allocate a new #ExifData and load EXIF data from a JPEG file. + * Uses an #ExifLoader internally to do the loading. + * + * \param[in] path filename including path + * \return allocated #ExifData, or NULL on error */ ExifData *exif_data_new_from_file (const char *path); +/*! Allocate a new #ExifData and load EXIF data from a memory buffer. + * + * \param[in] data pointer to raw JPEG or EXIF data + * \param[in] size number of bytes of data at data + * \return allocated #ExifData, or NULL on error + */ ExifData *exif_data_new_from_data (const unsigned char *data, unsigned int size); /*! Load the #ExifData structure from the raw JPEG or EXIF data in the given - * memory buffer. + * memory buffer. If the EXIF data contains a recognized MakerNote, it is + * loaded and stored as well for later retrieval by #exif_data_get_mnote_data. + * * \param[in,out] data EXIF data * \param[in] d pointer to raw JPEG or EXIF data * \param[in] size number of bytes of data at d @@ -80,6 +91,7 @@ void exif_data_load_data (ExifData /*! Store raw EXIF data representing the #ExifData structure into a memory * buffer. The buffer is allocated by this function and must subsequently be * freed by the caller. + * * \param[in] data EXIF data * \param[out] d pointer to buffer pointer containing raw EXIF data on return * \param[out] ds pointer to variable to hold the number of bytes of @@ -93,6 +105,7 @@ void exif_data_unref (ExifData *dat void exif_data_free (ExifData *data); /*! Return the byte order in use by this EXIF structure. + * * \param[in] data EXIF data * \return byte order */ @@ -101,21 +114,25 @@ ExifByteOrder exif_data_get_byte_order /*! Set the byte order to use for this EXIF data. If any tags already exist * (including MakerNote tags) they are are converted to the specified byte * order. + * * \param[in,out] data EXIF data * \param[in] order byte order */ void exif_data_set_byte_order (ExifData *data, ExifByteOrder order); -/*! Return the MakerNote data out of the EXIF data. +/*! Return the MakerNote data out of the EXIF data. Only certain + * MakerNote formats that are recognized by libexif are supported. + * * \param[in] d EXIF data - * \return MakerNote data, or NULL if not found + * \return MakerNote data, or NULL if not found or not supported */ ExifMnoteData *exif_data_get_mnote_data (ExifData *d); -/*! Fix the EXIF data to bring it into specification. Call exif_content_fix +/*! Fix the EXIF data to bring it into specification. Call #exif_content_fix * on each IFD to fix existing entries, create any new entries that are * mandatory but do not yet exist, and remove any entries that are not * allowed. + * * \param[in,out] d EXIF data */ void exif_data_fix (ExifData *d); @@ -123,6 +140,7 @@ void exif_data_fix (ExifData * typedef void (* ExifDataForeachContentFunc) (ExifContent *, void *user_data); /*! Execute a function on each IFD in turn. + * * \param[in] data EXIF data over which to iterate * \param[in] func function to call for each entry * \param[in] user_data data to pass into func on each call @@ -143,58 +161,67 @@ typedef enum { EXIF_DATA_OPTION_DONT_CHANGE_MAKER_NOTE = 1 << 2 } ExifDataOption; -/*! Returns short textual description of the given #ExifDataOption. +/*! Return a short textual description of the given #ExifDataOption. + * * \param[in] o option * \return localized textual description of the option */ const char *exif_data_option_get_name (ExifDataOption o); -/*! Returns verbose textual description of the given #ExifDataOption. +/*! Return a verbose textual description of the given #ExifDataOption. + * * \param[in] o option * \return verbose localized textual description of the option */ const char *exif_data_option_get_description (ExifDataOption o); /*! Set the given option on the given #ExifData. + * * \param[in] d EXIF data * \param[in] o option */ void exif_data_set_option (ExifData *d, ExifDataOption o); /*! Clear the given option on the given #ExifData. + * * \param[in] d EXIF data * \param[in] o option */ void exif_data_unset_option (ExifData *d, ExifDataOption o); /*! Set the data type for the given #ExifData. + * * \param[in] d EXIF data * \param[in] dt data type */ void exif_data_set_data_type (ExifData *d, ExifDataType dt); /*! Return the data type for the given #ExifData. + * * \param[in] d EXIF data - * \return data type, or EXIF_DATA_TYPE_COUNT on error + * \return data type, or #EXIF_DATA_TYPE_COUNT on error */ ExifDataType exif_data_get_data_type (ExifData *d); /*! Dump all EXIF data to stdout. * This is intended for diagnostic purposes only. + * * \param[in] data EXIF data */ void exif_data_dump (ExifData *data); /*! Set the log message object for all IFDs. + * * \param[in] data EXIF data * \param[in] log #ExifLog */ void exif_data_log (ExifData *data, ExifLog *log); /*! Return an #ExifEntry for the given tag if found in any IFD. + * * \param[in] d #ExifData * \param[in] t #ExifTag - * \return entry if found, else NULL if not found + * \return #ExifEntry* if found, else NULL if not found */ #define exif_data_get_entry(d,t) \ (exif_content_get_entry(d->ifd[EXIF_IFD_0],t) ? \ Index: exif-log.h =================================================================== RCS file: /cvsroot/libexif/libexif/libexif/exif-log.h,v retrieving revision 1.10 retrieving revision 1.11 diff -u -p -d -r1.10 -r1.11 --- exif-log.h 22 Nov 2008 07:08:56 -0000 1.10 +++ exif-log.h 27 Nov 2008 06:54:45 -0000 1.11 @@ -34,18 +34,20 @@ extern "C" { typedef struct _ExifLog ExifLog; /*! Create a new logging instance. - * \return new instance of #ExifLog * \see exif_log_free + * + * \return new instance of #ExifLog */ ExifLog *exif_log_new (void); ExifLog *exif_log_new_mem (ExifMem *); void exif_log_ref (ExifLog *log); void exif_log_unref (ExifLog *log); -/*! Deletes instance of #ExifLog. +/*! Delete instance of #ExifLog. + * \see exif_log_new + * * \param[in] log #ExifLog * \return new instance of #ExifLog - * \see exif_log_new */ void exif_log_free (ExifLog *log); @@ -57,12 +59,14 @@ typedef enum { } ExifLogCode; /*! Return a textual description of the given class of error log. + * * \param[in] code logging message class * \return textual description of the log class */ const char *exif_log_code_get_title (ExifLogCode code); /*! Return a verbose description of the given class of error log. + * * \param[in] code logging message class * \return verbose description of the log class */ @@ -74,6 +78,7 @@ typedef void (* ExifLogFunc) (ExifLog *l const char *format, va_list args, void *data); /*! Register log callback function. + * * \param[in] log #ExifLog * \param[in] func callback function to set * \param[in] data data to pass into callback function Index: exif-ifd.h =================================================================== RCS file: /cvsroot/libexif/libexif/libexif/exif-ifd.h,v retrieving revision 1.4 retrieving revision 1.5 diff -u -p -d -r1.4 -r1.5 --- exif-ifd.h 17 Feb 2008 18:31:55 -0000 1.4 +++ exif-ifd.h 27 Nov 2008 06:54:45 -0000 1.5 @@ -21,6 +21,7 @@ #ifndef __EXIF_IFD_H__ #define __EXIF_IFD_H__ +/*! Possible EXIF Image File Directories */ typedef enum { EXIF_IFD_0 = 0, /*!< */ EXIF_IFD_1, /*!< */ @@ -30,6 +31,13 @@ typedef enum { EXIF_IFD_COUNT /*!< Not a real value, just (max_value + 1). */ } ExifIfd; +/*! Return a textual name of the given IFD. The name is a short, unique, + * non-localized text string containing only US-ASCII alphanumeric + * characters. + * + * \param[in] ifd IFD + * \return textual name of the IFD + */ const char *exif_ifd_get_name (ExifIfd ifd); #endif /* __EXIF_IFD_H__ */ Index: exif-format.h =================================================================== RCS file: /cvsroot/libexif/libexif/libexif/exif-format.h,v retrieving revision 1.8 retrieving revision 1.9 diff -u -p -d -r1.8 -r1.9 --- exif-format.h 22 Nov 2008 07:08:56 -0000 1.8 +++ exif-format.h 27 Nov 2008 06:54:45 -0000 1.9 @@ -45,12 +45,14 @@ typedef enum { } ExifFormat; /*! Return a textual representation of the given EXIF data type. + * * \param[in] format EXIF data format * \return localized textual name */ const char *exif_format_get_name (ExifFormat format); /*! Return the raw size of the given EXIF data type. + * * \param[in] format EXIF data format * \return size in bytes */ |
From: Dan F. <dfa...@us...> - 2008-11-26 21:22:26
|
Update of /cvsroot/libexif/exif/po In directory ddv4jf1.ch3.sourceforge.com:/tmp/cvs-serv3177/po Modified Files: da.po Log Message: Updated Danish translation by Joe Hansen Index: da.po =================================================================== RCS file: /cvsroot/libexif/exif/po/da.po,v retrieving revision 1.1 retrieving revision 1.2 diff -u -p -d -r1.1 -r1.2 --- da.po 8 Sep 2008 20:05:12 -0000 1.1 +++ da.po 26 Nov 2008 21:22:20 -0000 1.2 @@ -9,10 +9,10 @@ # 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-09-07 00:00+0000\n" +"POT-Creation-Date: 2008-11-06 01:03-0800\n" +"PO-Revision-Date: 2008-11-26 00:00+0000\n" "Last-Translator: Joe Hansen <joe...@ya...>\n" "Language-Team: Danish <da...@da...>\n" "MIME-Version: 1.0\n" @@ -20,258 +20,276 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: exif/actions.c:45 +#: exif/actions.c:56 +#, c-format +msgid "Not enough memory." +msgstr "Ikke nok hukommelse." + +#: exif/actions.c:74 +#, c-format +msgid "Setting a value for this tag is unsupported!" +msgstr "Indstilling af en værdi for dette mærke er ikke understøttet!" + +#: exif/actions.c:91 +#, c-format +msgid "Too few components specified!" +msgstr "For få komponenter specificeret!" + +#: exif/actions.c:106 +#, c-format +msgid "Internal error. Please contact <%s>." +msgstr "Intern fejl. Kontakt venligst <%s>." + +#: exif/actions.c:143 +#, c-format +msgid "Not yet implemented!" +msgstr "Ikke implementeret endnu!" + +#: exif/actions.c:150 +#, c-format +msgid "Warning; Too many components specified!" +msgstr "Advarsel; for mange komponenter specificeret!" + +#: exif/actions.c:172 +#, c-format +msgid "Too much EXIF data (%i bytes). Only %i bytes are allowed." +msgstr "For megen EXIF-data (%i byte). Kun %i byte er tilladt." + +#: exif/actions.c:183 exif/actions.c:358 +#, c-format +msgid "Wrote file '%s'." +msgstr "Skrev fil '%s'." + +#: exif/actions.c:203 +#, c-format +msgid "EXIF entry '%s' " +msgstr "EXIF-post '%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 "eksisterer i IFD '%s':\n" + +#: exif/actions.c:251 +#, c-format +msgid "IFD '%s' does not contain a tag '%s'!" +msgstr "IFD '%s' indeholder ikke et mærke '%s'!" + +#: exif/actions.c:282 +#, c-format +msgid "Could not open '%s' (%m)!" +msgstr "Kunne ikke åbne '%s' (%m)!" + +#: exif/actions.c:285 +#, c-format +msgid "Could not open '%s' (%s)!" +msgstr "Kunne ikke åbne '%s' (%s)!" + +#: exif/actions.c:295 +#, c-format +msgid "Could not read '%s' (%m)." +msgstr "Kunne ikke læse '%s' (%m)." + +#: exif/actions.c:298 +#, c-format +msgid "Could not read '%s' (%s)." +msgstr "Kunne ikke læse '%s' (%s)." + +#: exif/actions.c:317 +#, c-format +msgid "IFD '%s' does not contain tag '%s'." +msgstr "IFD '%s' indeholder ikke mærke '%s'." + +#: exif/actions.c:323 +#, c-format +msgid "'%s' does not contain tag '%s'." +msgstr "'%s' indeholder ikke mærke '%s'." + +#: exif/actions.c:341 +#, c-format +msgid "'%s' does not contain a thumbnail!" +msgstr "'%s' indeholder ikke et miniatureportræt!" + +#: exif/actions.c:350 +#, c-format +msgid "Could not open '%s' for writing (%m)!" +msgstr "Kunne ikke åbne '%s' til skrivning (%m)!" + +#: exif/actions.c:353 +#, c-format +msgid "Could not open '%s' for writing (%s)!" +msgstr "Ikke ikke åbne '%s' til skrivning (%s)!" + +#: exif/actions.c:371 #, c-format msgid "EXIF tags in '%s':" msgstr "EXIF-mærker i '%s':" -#: exif/actions.c:114 +#: exif/actions.c:440 #, c-format msgid "Unknown MakerNote format.\n" msgstr "Ukendt MakerNote-format.\n" -#: exif/actions.c:121 +#: exif/actions.c:447 #, c-format msgid "MakerNote does not contain any value.\n" msgstr "MakerNote indeholder ingen værdier.\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 indeholder %i værdi:\n" msgstr[1] "MakerNote indeholder %i værdier:\n" -#: exif/actions.c:134 +#: exif/actions.c:460 msgid "Unknown tag" msgstr "Ukendt mærke" -#: exif/actions.c:137 +#: exif/actions.c:464 msgid "Unknown value" msgstr "Ukendt værdi" -#: exif/actions.c:162 +#: exif/actions.c:490 #, c-format msgid "EXIF tags in '%s' ('%s' byte order):" msgstr "EXIF-mærke i '%s' ('%s' byte orden):" -#: exif/actions.c:167 exif/actions.c:169 +#: exif/actions.c:495 exif/actions.c:497 msgid "Tag" msgstr "Mærke" -#: 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 "Værdi" -#: exif/actions.c:181 +#: exif/actions.c:509 #, c-format msgid "EXIF data contains a thumbnail (%i bytes)." msgstr "EXIF-data indeholder et miniatureportræt (%i byte)." -#: exif/actions.c:217 +#: exif/actions.c:545 #, c-format msgid "ThumbnailSize\t%i\n" msgstr "MiniatureportrætStørrelse\t%i\n" -#: exif/main.c:57 -#, c-format -msgid "Internal error. Please contact <%s>." -msgstr "Intern fejl. Kontakt venligst <%s>." - -#: exif/main.c:80 -#, c-format -msgid "EXIF entry '%s' " -msgstr "EXIF-post '%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 "eksisterer i IFD '%s':\n" - -#: exif/main.c:120 -#, c-format -msgid "Not enough memory." -msgstr "Ikke nok hukommelse." - -#: exif/main.c:138 -#, c-format -msgid "Too few components specified!" -msgstr "For få komponenter specificeret!" - -#: exif/main.c:168 -#, c-format -msgid "Not yet implemented!" -msgstr "Ikke implementeret endnu!" - -#: exif/main.c:241 -#, c-format -msgid "Too much EXIF data (%i bytes). Only %i bytes are allowed." -msgstr "For megen EXIF-data (%i byte). Kun %i byte er tilladt." - -#: exif/main.c:255 exif/main.c:513 -#, c-format -msgid "Wrote file '%s'." -msgstr "Skrev fil '%s'." - -#: exif/main.c:337 +#: exif/main.c:175 msgid "Display software version" msgstr "Vis softwareversion" -#: exif/main.c:339 +#: exif/main.c:177 msgid "Show IDs instead of tag names" msgstr "Vis ID'er i steden for mærkenavne" -#: exif/main.c:341 +#: exif/main.c:179 msgid "Select tag" msgstr "Vælg mærke" -#: exif/main.c:341 +#: exif/main.c:179 msgid "tag" msgstr "mærke" -#: exif/main.c:343 +#: exif/main.c:181 msgid "Select IFD" msgstr "Vælg 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 "Vis alle EXIF-mærker" -#: exif/main.c:347 +#: exif/main.c:185 msgid "Show contents of tag MakerNote" msgstr "Vis indhold af mærke MakerNote" -#: exif/main.c:349 +#: exif/main.c:187 msgid "Remove tag or ifd" msgstr "Fjern mærke eller ifd" -#: exif/main.c:351 +#: exif/main.c:189 msgid "Show description of tag" msgstr "Vis beskrivelse af mærke" -#: exif/main.c:353 +#: exif/main.c:191 msgid "Extract thumbnail" msgstr "Udtræk miniatureportræt" -#: exif/main.c:355 +#: exif/main.c:193 msgid "Remove thumbnail" msgstr "Fjern miniatureportræt" -#: exif/main.c:357 +#: exif/main.c:195 msgid "Insert FILE as thumbnail" msgstr "Indæst FIl som miniatureportræt" -#: exif/main.c:357 exif/main.c:359 +#: exif/main.c:195 exif/main.c:197 msgid "FILE" msgstr "FIL" -#: exif/main.c:359 +#: exif/main.c:197 msgid "Write data to FILE" msgstr "Skriv data til FIL" -#: exif/main.c:363 +#: exif/main.c:201 +msgid "Create EXIF data if not existing" +msgstr "Opret EXIF-data hvis de ikke eksisterer" + +#: exif/main.c:203 msgid "Output in a machine-readable (tab delimited) format" msgstr "Uddata i maskinlæsbart format (faneblad afgrænset)" -#: exif/main.c:366 +#: exif/main.c:206 msgid "Output in a XML format" msgstr "Uddata i XML-format" -#: exif/main.c:369 +#: exif/main.c:209 msgid "Show debugging messages" msgstr "Vis fejlsøgningsbeskeder" -#: exif/main.c:386 +#: exif/main.c:229 msgid "[OPTION...] file" msgstr "[INDSTILLING...] fil" -#: exif/main.c:414 +#: exif/main.c:241 #, c-format msgid "Invalid IFD '%s'. Valid IFDs are '0', '1', 'EXIF', 'GPS', and 'Interoperability'." msgstr "Ugyldig IFD '%s'. Gyldige IFD'er er '0', '1', 'EXIF', 'GPS', og 'Interoperability'." -#: exif/main.c:422 +#: exif/main.c:250 #, c-format msgid "Invalid tag '%s'!" msgstr "Ugyldig mærke '%s'!" -#: exif/main.c:427 -msgid "Please specify a tag!" -msgstr "Vælg venligst et mærke!" +#: exif/main.c:258 +msgid "You need to specify a tag!" +msgstr "Du skal angive et mærke!" -#: exif/main.c:432 +#: exif/main.c:263 +msgid "You need to specify an IFD!" +msgstr "Du skal angive en IFD!" + +#: exif/main.c:286 #, c-format msgid "Tag '%s' " msgstr "Mærke '%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' indeholder ikke EXIF-data!" -#: exif/main.c:486 -#, c-format -msgid "IFD '%s' does not contain tag '%s'." -msgstr "IFD '%s' indeholder ikke mærke '%s'." - -#: exif/main.c:495 -#, c-format -msgid "'%s' does not contain a thumbnail!" -msgstr "'%s' indeholder ikke et miniatureportræt!" - -#: exif/main.c:503 -#, c-format -msgid "Could not open '%s' for writing (%m)!" -msgstr "Kunne ikke åbne '%s' til skrivning (%m)!" - -#: exif/main.c:507 -#, c-format -msgid "Could not open '%s' for writing (%s)!" -msgstr "Ikke ikke åbne '%s' til skrivning (%s)!" - -#: exif/main.c:542 -#, c-format -msgid "Could not open '%s' (%m)!" -msgstr "Kunne ikke åbne '%s' (%m)!" - -#: exif/main.c:545 -#, c-format -msgid "Could not open '%s' (%s)!" -msgstr "Kunne ikke åbne '%s' (%s)!" - -#: exif/main.c:557 -#, c-format -msgid "Could not read '%s' (%m)." -msgstr "Kunne ikke læse '%s' (%m)." - -#: exif/main.c:560 -#, c-format -msgid "Could not read '%s' (%s)." -msgstr "Kunne ikke læse '%s' (%s)." - -#: exif/main.c:571 -msgid "You need to specify a tag!" -msgstr "Du skal angive et mærke!" - -#: exif/main.c:576 exif/main.c:595 -msgid "You need to specify an IFD!" -msgstr "Du skal angive en IFD!" - -#: exif/main.c:607 -#, c-format -msgid "IFD '%s' does not contain a tag '%s'!" -msgstr "IFD '%s' indeholder ikke et mærke '%s'!" +#~ msgid "Please specify a tag!" +#~ msgstr "Vælg venligst et mærke!" |
From: Dan F. <dfa...@us...> - 2008-11-26 21:22:26
|
Update of /cvsroot/libexif/exif In directory ddv4jf1.ch3.sourceforge.com:/tmp/cvs-serv3177 Modified Files: ChangeLog NEWS Log Message: Updated Danish translation by Joe Hansen Index: NEWS =================================================================== RCS file: /cvsroot/libexif/exif/NEWS,v retrieving revision 1.21 retrieving revision 1.22 diff -u -p -d -r1.21 -r1.22 --- NEWS 26 Nov 2008 08:34:03 -0000 1.21 +++ NEWS 26 Nov 2008 21:22:18 -0000 1.22 @@ -1,5 +1,5 @@ exif-0.6.x: - * Updated translations: id, nl, pl, sk, sv, zh_CN + * Updated translations: da, id, nl, pl, sk, sv, 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.81 retrieving revision 1.82 diff -u -p -d -r1.81 -r1.82 --- ChangeLog 25 Nov 2008 18:52:04 -0000 1.81 +++ ChangeLog 26 Nov 2008 21:22:18 -0000 1.82 @@ -1,3 +1,7 @@ +2008-11-26 Dan Fandrich <da...@co...> + + * po/da.po: Updated Danish translation by Joe Hansen + 2008-11-25 Dan Fandrich <da...@co...> * po/sk.po: Updated Slovak translation by Ivan Masár |
From: Dan F. <dfa...@us...> - 2008-11-26 09:11:16
|
Update of /cvsroot/libexif/exif/exif In directory ddv4jf1.ch3.sourceforge.com:/tmp/cvs-serv21560/exif Modified Files: actions.c Log Message: Removed the glibc extension code for printing errors since it just made the source code longer. Fixed a problem where an NULL file handle could be used. Index: actions.c =================================================================== RCS file: /cvsroot/libexif/exif/exif/actions.c,v retrieving revision 1.38 retrieving revision 1.39 diff -u -p -d -r1.38 -r1.39 --- actions.c 26 Nov 2008 08:34:06 -0000 1.38 +++ actions.c 26 Nov 2008 09:11:03 -0000 1.39 @@ -27,6 +27,7 @@ #include <stdio.h> #include <stdlib.h> #include <string.h> +#include <errno.h> #include <libexif/exif-ifd.h> @@ -279,28 +280,20 @@ action_insert_thumb (ExifData *ed, ExifL /* Insert new thumbnail */ f = fopen (p.set_thumb, "rb"); - if (!f) -#ifdef __GNUC__ - exif_log (log, -1, "exif", _("Could not open " - "'%s' (%m)!"), p.set_thumb); -#else + if (!f) { exif_log (log, -1, "exif", _("Could not open " "'%s' (%s)!"), p.set_thumb, strerror (errno)); -#endif - fseek (f, 0, SEEK_END); - ed->size = ftell (f); - ed->data = malloc (sizeof (char) * ed->size); - if (ed->size && !ed->data) EXIF_LOG_NO_MEMORY (log, "exif", ed->size); - fseek (f, 0, SEEK_SET); - if (fread (ed->data, sizeof (char), ed->size, f) != ed->size) -#ifdef __GNUC__ - exif_log (log, -1, "exif", _("Could not read " - "'%s' (%m)."), p.set_thumb); -#else - exif_log (log, -1, "exif", _("Could not read " - "'%s' (%s)."), p.set_thumb, strerror (errno)); -#endif - fclose (f); + } else { + fseek (f, 0, SEEK_END); + ed->size = ftell (f); + ed->data = malloc (sizeof (char) * ed->size); + if (ed->size && !ed->data) EXIF_LOG_NO_MEMORY (log, "exif", ed->size); + fseek (f, 0, SEEK_SET); + if (fread (ed->data, sizeof (char), ed->size, f) != ed->size) + exif_log (log, -1, "exif", _("Could not read " + "'%s' (%s)."), p.set_thumb, strerror (errno)); + fclose (f); + } } void @@ -348,17 +341,14 @@ action_save_thumb (ExifData *ed, ExifLog /* Save the thumbnail */ f = fopen (fout, "wb"); if (!f) -#ifdef __GNUC__ - exif_log (log, -1, "exif", _("Could not open '%s' for " - "writing (%m)!"), fout); -#else - exif_log (log, -1, "exif", _("Could not open '%s' for " - "writing (%s)!"), fout, strerror (errno)); -#endif - fwrite (ed->data, 1, ed->size, f); - fclose (f); - fprintf (stdout, _("Wrote file '%s'."), fout); - fprintf (stdout, "\n"); + exif_log (log, -1, "exif", _("Could not open '%s' for " + "writing (%s)!"), fout, strerror (errno)); + else { + fwrite (ed->data, 1, ed->size, f); + fclose (f); + fprintf (stdout, _("Wrote file '%s'."), fout); + fprintf (stdout, "\n"); + } } void |
From: Dan F. <dfa...@us...> - 2008-11-26 08:34:10
|
Update of /cvsroot/libexif/exif In directory ddv4jf1.ch3.sourceforge.com:/tmp/cvs-serv18393 Modified Files: NEWS configure.ac Log Message: Fixed alignment of tables in locales with multibyte character encoding (bug #2034873) Index: NEWS =================================================================== RCS file: /cvsroot/libexif/exif/NEWS,v retrieving revision 1.20 retrieving revision 1.21 diff -u -p -d -r1.20 -r1.21 --- NEWS 25 Nov 2008 18:52:05 -0000 1.20 +++ NEWS 26 Nov 2008 08:34:03 -0000 1.21 @@ -1,5 +1,7 @@ exif-0.6.x: * Updated translations: id, nl, pl, sk, sv, zh_CN + * Fixed alignment of tables in locales with multibyte character encoding + (bug #2034873) exif-0.6.17 (2008-11-06): * Fixed the output of -s and -t when iconv is configured Index: configure.ac =================================================================== RCS file: /cvsroot/libexif/exif/configure.ac,v retrieving revision 1.23 retrieving revision 1.24 diff -u -p -d -r1.23 -r1.24 --- configure.ac 6 Nov 2008 08:50:23 -0000 1.23 +++ configure.ac 26 Nov 2008 08:34:03 -0000 1.24 @@ -62,6 +62,7 @@ AC_ARG_ENABLE(gettext-iconv, [ --enable-gettext-iconv convert character encodings (only needed when gettext doesn't do it itself)], [ AC_DEFINE(ENABLE_GETTEXT_ICONV,1,[whether to run iconv on gettext output]) ]) +AC_CHECK_FUNCS(mblen) # --------------------------------------------------------------------------- # libraries needed |
From: Dan F. <dfa...@us...> - 2008-11-26 08:34:09
|
Update of /cvsroot/libexif/exif/exif In directory ddv4jf1.ch3.sourceforge.com:/tmp/cvs-serv18393/exif Modified Files: actions.c utils.c utils.h Log Message: Fixed alignment of tables in locales with multibyte character encoding (bug #2034873) Index: utils.c =================================================================== RCS file: /cvsroot/libexif/exif/exif/utils.c,v retrieving revision 1.10 retrieving revision 1.11 diff -u -p -d -r1.10 -r1.11 --- utils.c 10 Feb 2008 09:20:17 -0000 1.10 +++ utils.c 26 Nov 2008 08:34:06 -0000 1.11 @@ -71,3 +71,45 @@ exif_ifd_from_string (const char *string return (-1); } + + +/*! Returns the number of bytes of data needed to display n characters of + * the given multibyte string in the current locale character encoding. + * Any multibyte conversion error is treated as the end of the string. + * \param[in] mbs multibyte string + * \param[in,out] len number of characters for which a count of bytes is + * requested; on exit, returns the number of characters that are represented + * by the returned number of bytes (this may be less but never more than the + * value on entry) + * \return number of bytes starting at mbs make up len characters + */ +#ifdef HAVE_MBLEN +size_t exif_mbstrlen(const char *mbs, size_t *len) +{ + int clen; + size_t blen = 0, count = 0, maxlen = strlen(mbs); + + /* Iterate through the multibyte string one character at a time */ + while (*mbs && *len) { + clen = mblen(mbs, maxlen); + if (clen < 0) + break; + mbs += clen; + blen += clen; /* total bytes needed for string so far */ + --*len; + ++count; /* number of characters in string so far */ + maxlen -= clen; + } + *len = count; + return blen; +} +#else +/* Simple version that works only with single-byte-per-character encodings */ +size_t exif_mbstrlen(const char *mbs, size_t *len) +{ + size_t clen = strlen(mbs); + if (clen < *len) + *len = clen; + return *len; +} +#endif Index: utils.h =================================================================== RCS file: /cvsroot/libexif/exif/exif/utils.h,v retrieving revision 1.6 retrieving revision 1.7 diff -u -p -d -r1.6 -r1.7 --- utils.h 5 Dec 2004 21:29:06 -0000 1.6 +++ utils.h 26 Nov 2008 08:34:06 -0000 1.7 @@ -21,10 +21,12 @@ #ifndef __UTILS_H__ #define __UTILS_H__ +#include <sys/types.h> #include <libexif/exif-tag.h> #include <libexif/exif-ifd.h> ExifTag exif_tag_from_string (const char *string); ExifIfd exif_ifd_from_string (const char *string); +size_t exif_mbstrlen(const char *mbs, size_t *len); #endif /* __UTILS_H__ */ Index: actions.c =================================================================== RCS file: /cvsroot/libexif/exif/exif/actions.c,v retrieving revision 1.37 retrieving revision 1.38 diff -u -p -d -r1.37 -r1.38 --- actions.c 25 Nov 2008 20:37:48 -0000 1.37 +++ actions.c 26 Nov 2008 08:34:06 -0000 1.38 @@ -22,6 +22,7 @@ #include "actions.h" #include "exif-i18n.h" #include "libjpeg/jpeg-data.h" +#include "utils.h" #include <stdio.h> #include <stdlib.h> @@ -29,11 +30,12 @@ #include <libexif/exif-ifd.h> -#define ENTRY_FOUND " * " -#define ENTRY_NOT_FOUND " - " - #define CN(s) ((s) ? (s) : "(NULL)") +#define TAG_VALUE_BUF 1024 + +#define SCREEN_WIDTH 80 + static void convert_arg_to_entry (const char *set_value, ExifEntry *e, ExifByteOrder o, ExifLog *log) { @@ -190,7 +192,7 @@ show_entry (ExifEntry *entry, unsigned i ExifIfd ifd = exif_entry_get_ifd (entry); if (machine_readable) { - char b[1024]; + char b[TAG_VALUE_BUF]; fprintf (stdout, "%s\n", C(exif_entry_get_value (entry, b, sizeof (b)))); return; @@ -364,14 +366,26 @@ action_tag_table (ExifData *ed, ExifPara { unsigned int tag; const char *name; - char txt[1024]; + char txt[TAG_VALUE_BUF]; ExifIfd i; + size_t fieldwidth, width, bytes; + +#define ENTRY_FOUND " * " +#define ENTRY_NOT_FOUND " - " - memset (txt, 0, sizeof (txt)); snprintf (txt, sizeof (txt) - 1, _("EXIF tags in '%s':"), p.fin); - fprintf (stdout, "%-38.38s", txt); - for (i = (ExifIfd)0; i < EXIF_IFD_COUNT; i++) - fprintf (stdout, "%-7.7s", exif_ifd_get_name (i)); + fieldwidth = width = 38; + bytes = exif_mbstrlen(txt, &width); + printf ("%.*s%*s", bytes, txt, fieldwidth-width, ""); + + for (i = (ExifIfd)0; i < EXIF_IFD_COUNT; i++) { + size_t space; + fieldwidth = width = 7; + bytes = exif_mbstrlen(exif_ifd_get_name (i), &width); + space = fieldwidth-width; + printf ("%*s%.*s%*s", space/2, "", bytes, exif_ifd_get_name (i), + space - space/2, ""); + } fputc ('\n', stdout); for (tag = 0; tag < 0xffff; tag++) { @@ -384,7 +398,11 @@ action_tag_table (ExifData *ed, ExifPara name = exif_tag_get_title(tag); if (!name) continue; - fprintf (stdout, " 0x%04x %-29.29s", tag, C(name)); + + fieldwidth = width = SCREEN_WIDTH - 38 - 13; + bytes = exif_mbstrlen(C(name), &width); + printf (" 0x%04x %.*s%*s", + tag, bytes, C(name), fieldwidth-width, ""); for (i = (ExifIfd)0; i < EXIF_IFD_COUNT; i++) if (exif_content_get_entry (ed->ifd[i], tag)) printf (ENTRY_FOUND); @@ -398,20 +416,25 @@ static void show_entry_list (ExifEntry *e, void *data) { unsigned char *ids = data; - char v[128]; + char v[TAG_VALUE_BUF]; ExifIfd ifd = exif_entry_get_ifd (e); + const char *str; + size_t fieldwidth, width, bytes; if (*ids) - fprintf (stdout, "0x%04x", e->tag); - else - fprintf (stdout, "%-20.20s", C(exif_tag_get_title_in_ifd (e->tag, ifd))); + printf("0x%04x", e->tag); + else { + str = C(exif_tag_get_title_in_ifd (e->tag, ifd)); + fieldwidth = width = 20; + bytes = exif_mbstrlen(str, &width); + printf ("%.*s%*s", bytes, str, fieldwidth-width, ""); + } printf ("|"); - if (*ids) - fprintf (stdout, "%-72.72s", - C(exif_entry_get_value (e, v, 73))); - else - fprintf (stdout, "%-58.58s", - C(exif_entry_get_value (e, v, 59))); + + fieldwidth = width = *ids ? SCREEN_WIDTH-8 : SCREEN_WIDTH-22; + str = C(exif_entry_get_value (e, v, sizeof(v))); + bytes = exif_mbstrlen(str, &width); + printf("%.*s", bytes, str); fputc ('\n', stdout); } @@ -426,21 +449,23 @@ print_hline (unsigned char ids) { unsigned int i, width; - width = (ids ? 6 : 20); - for (i = 0; i < width; i++) fputc ('-', stdout); + width = ids ? 6 : 20; + for (i = 0; i < width; i++) + fputc ('-', stdout); fputc ('+', stdout); - for (i = 0; i < 78 - width; i++) fputc ('-', stdout); + for (i = 0; i < SCREEN_WIDTH - 2 - width; i++) + fputc ('-', stdout); fputc ('\n', stdout); } void action_mnote_list (ExifData *ed, ExifParams p) { - unsigned int i, bs = 1024, c, id; - char b[1024]; - char b1[1024], b2[1024]; + char b[TAG_VALUE_BUF], b1[TAG_VALUE_BUF], b2[TAG_VALUE_BUF]; + unsigned int i, c, id; ExifMnoteData *n; const char *s; + size_t fieldwidth, width, bytes; n = exif_data_get_mnote_data (ed); if (!n) { @@ -464,22 +489,23 @@ action_mnote_list (ExifData *ed, ExifPar sprintf(b1,"0x%04x",id); } else { s = C (exif_mnote_data_get_title (n, i)); - strncpy (b1, s && *s ? s : _("Unknown tag"), bs); + strncpy (b1, s && *s ? s : _("Unknown tag"), TAG_VALUE_BUF); b1[sizeof(b1)-1] = 0; } - s = C (exif_mnote_data_get_value (n, i, b, bs)); - strncpy (b2, s ? s : _("Unknown value"), bs); - b2[sizeof(b2)-1] = 0; - /* printf ("%s|%s\n", b1, b2); */ - if (p.use_ids) - fprintf (stdout, "%-6.6s", b1); - else - fprintf (stdout, "%-20.20s", b1); + fieldwidth = width = p.use_ids ? 6 : 20; + bytes = exif_mbstrlen(b1, &width); + printf ("%.*s%*s", bytes, b1, fieldwidth-width, ""); fputc ('|', stdout); + + s = C (exif_mnote_data_get_value (n, i, b, TAG_VALUE_BUF)); + strncpy (b2, s ? s : _("Unknown value"), TAG_VALUE_BUF); + b2[sizeof(b2)-1] = 0; if (p.use_ids) { fputs (b2, stdout); } else { - fprintf (stdout, "%-58.58s", b2); + fieldwidth = width = SCREEN_WIDTH-22; + bytes = exif_mbstrlen(b2, &width); + printf ("%.*s", bytes, b2); } fputc ('\n', stdout); } @@ -489,32 +515,36 @@ void action_tag_list (ExifData *ed, ExifParams p) { ExifByteOrder order; + const char *s; + size_t fieldwidth, width, bytes; if (!ed) return; order = exif_data_get_byte_order (ed); - fprintf (stdout, _("EXIF tags in '%s' ('%s' byte order):"), p.fin, + printf (_("EXIF tags in '%s' ('%s' byte order):"), p.fin, exif_byte_order_get_name (order)); fputc ('\n', stdout); print_hline (p.use_ids); - if (p.use_ids) { - fprintf (stdout, "%-6.6s", _("Tag")); - } else { - fprintf (stdout, "%-20.20s", _("Tag")); - } + + fieldwidth = width = p.use_ids ? 6 : 20; + s = _("Tag"); + bytes = exif_mbstrlen(s, &width); + printf ("%.*s%*s", bytes, s, fieldwidth-width, ""); fputc ('|', stdout); - if (p.use_ids) - fprintf (stdout, "%-72.72s", _("Value")); - else - fprintf (stdout, "%-58.58s", _("Value")); + + fieldwidth = width = p.use_ids ? SCREEN_WIDTH-8 : SCREEN_WIDTH-22; + s = _("Value"); + bytes = exif_mbstrlen(s, &width); + printf ("%.*s", bytes, s); fputc ('\n', stdout); print_hline (p.use_ids); + exif_data_foreach_content (ed, show_ifd, &p.use_ids); print_hline (p.use_ids); if (ed->size) { - fprintf (stdout, _("EXIF data contains a thumbnail " - "(%i bytes)."), ed->size); + printf (_("EXIF data contains a thumbnail " + "(%i bytes)."), ed->size); fputc ('\n', stdout); } } @@ -523,7 +553,7 @@ static void show_entry_machine (ExifEntry *e, void *data) { unsigned char *ids = data; - char v[1024]; + char v[TAG_VALUE_BUF]; ExifIfd ifd = exif_entry_get_ifd (e); if (*ids) { @@ -552,24 +582,34 @@ action_tag_list_machine (ExifData *ed, E fprintf (stdout, _("ThumbnailSize\t%i\n"), ed->size); } +/*! + * Replace characters which are invalid in an XML tag with safe characters. + */ +static inline void +remove_bad_chars(char *s) +{ + while (*s) { + if ((*s == '(') || (*s == ')') || (*s == ' ')) + *s = '_'; + ++s; + } +} + static void show_entry_xml (ExifEntry *e, void *data) { unsigned char *ids = data; - char v[1024], t[1024]; + char v[TAG_VALUE_BUF], t[TAG_VALUE_BUF]; if (*ids) { fprintf (stdout, "<0x%04x>", e->tag); fprintf (stdout, "%s", exif_entry_get_value (e, v, sizeof (v))); fprintf (stdout, "</0x%04x>", e->tag); } else { - int x; strncpy (t, exif_tag_get_title_in_ifd(e->tag, exif_entry_get_ifd(e)), sizeof (t)); /* Remove invalid characters from tag eg. (, ), space */ - for (x = 0; x < strlen (t); x++) - if ((t[x] == '(') || (t[x] == ')') || (t[x] == ' ')) - t[x] = '_'; + remove_bad_chars(t); fprintf (stdout, "\t<%s>", t); fprintf (stdout, "%s", exif_entry_get_value (e, v, sizeof (v))); |
From: Dan F. <dfa...@us...> - 2008-11-25 20:37:57
|
Update of /cvsroot/libexif/exif/exif In directory ddv4jf1.ch3.sourceforge.com:/tmp/cvs-serv824/exif Modified Files: actions.c Log Message: Remove use of a deprecated function. Index: actions.c =================================================================== RCS file: /cvsroot/libexif/exif/exif/actions.c,v retrieving revision 1.36 retrieving revision 1.37 diff -u -p -d -r1.36 -r1.37 --- actions.c 19 Nov 2008 05:38:45 -0000 1.36 +++ actions.c 25 Nov 2008 20:37:48 -0000 1.37 @@ -365,20 +365,27 @@ action_tag_table (ExifData *ed, ExifPara unsigned int tag; const char *name; char txt[1024]; - unsigned int i; + ExifIfd i; memset (txt, 0, sizeof (txt)); snprintf (txt, sizeof (txt) - 1, _("EXIF tags in '%s':"), p.fin); fprintf (stdout, "%-38.38s", txt); - for (i = 0; i < EXIF_IFD_COUNT; i++) + for (i = (ExifIfd)0; i < EXIF_IFD_COUNT; i++) fprintf (stdout, "%-7.7s", exif_ifd_get_name (i)); fputc ('\n', stdout); + for (tag = 0; tag < 0xffff; tag++) { - name = exif_tag_get_title (tag); + /* + * Display the name of the first tag of this number found. + * Since there is some overlap (e.g. with GPS tags), this + * name could sometimes be incorrect for the specific tags + * found in this file. + */ + name = exif_tag_get_title(tag); if (!name) continue; fprintf (stdout, " 0x%04x %-29.29s", tag, C(name)); - for (i = 0; i < EXIF_IFD_COUNT; i++) + for (i = (ExifIfd)0; i < EXIF_IFD_COUNT; i++) if (exif_content_get_entry (ed->ifd[i], tag)) printf (ENTRY_FOUND); else @@ -557,7 +564,7 @@ show_entry_xml (ExifEntry *e, void *data fprintf (stdout, "</0x%04x>", e->tag); } else { int x; - strncpy (t, exif_tag_get_title (e->tag), sizeof (t)); + strncpy (t, exif_tag_get_title_in_ifd(e->tag, exif_entry_get_ifd(e)), sizeof (t)); /* Remove invalid characters from tag eg. (, ), space */ for (x = 0; x < strlen (t); x++) |
From: Dan F. <dfa...@us...> - 2008-11-25 18:54:54
|
Update of /cvsroot/libexif/libexif/po In directory ddv4jf1.ch3.sourceforge.com:/tmp/cvs-serv28000/po Modified Files: sk.po Log Message: po/sk.po: Updated Slovak translation by Ivan Masár Index: sk.po =================================================================== RCS file: /cvsroot/libexif/libexif/po/sk.po,v retrieving revision 1.14 retrieving revision 1.15 diff -u -p -d -r1.14 -r1.15 --- sk.po 8 Apr 2008 17:32:22 -0000 1.14 +++ sk.po 25 Nov 2008 18:54:43 -0000 1.15 @@ -1,14 +1,14 @@ -# translation of libexif-0.6.16.pot to Slovak +# translation of libexif to Slovak # Copyright (C) 2007 Lutz Müller and others # This file is distributed under the same license as the libexif package. # Ivan Masár <he...@ce...>, 2007, 2008. # msgid "" msgstr "" -"Project-Id-Version: libexif 0.6.17-pre1\n" +"Project-Id-Version: libexif 0.6.17\n" "Report-Msgid-Bugs-To: \n" [...1293 lines suppressed...] msgid "Manual: Unknown" msgstr "RuÄné: neznáme" -#: libexif/olympus/mnote-olympus-entry.c:661 +#: libexif/olympus/mnote-olympus-entry.c:679 msgid "One-touch" msgstr "jedným dotykom" -#: libexif/olympus/mnote-olympus-entry.c:717 -#: libexif/olympus/mnote-olympus-entry.c:727 +#: libexif/olympus/mnote-olympus-entry.c:735 +#: libexif/olympus/mnote-olympus-entry.c:745 msgid "Infinite" msgstr "nekoneÄno" -#: libexif/olympus/mnote-olympus-entry.c:735 +#: libexif/olympus/mnote-olympus-entry.c:753 #, c-format msgid "%i bytes unknown data: " msgstr "%i bajtov neznámych údajov:" |
From: Dan F. <dfa...@us...> - 2008-11-25 18:54:54
|
Update of /cvsroot/libexif/libexif In directory ddv4jf1.ch3.sourceforge.com:/tmp/cvs-serv28000 Modified Files: NEWS ChangeLog Log Message: po/sk.po: Updated Slovak translation by Ivan Masár Index: NEWS =================================================================== RCS file: /cvsroot/libexif/libexif/NEWS,v retrieving revision 1.41 retrieving revision 1.42 diff -u -p -d -r1.41 -r1.42 --- NEWS 19 Nov 2008 08:14:43 -0000 1.41 +++ NEWS 25 Nov 2008 18:54:42 -0000 1.42 @@ -1,5 +1,5 @@ libexif-0.6.x: - * Updated translations: nl, pl + * Updated translations: nl, pl, sk * 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.291 retrieving revision 1.292 diff -u -p -d -r1.291 -r1.292 --- ChangeLog 22 Nov 2008 07:08:53 -0000 1.291 +++ ChangeLog 25 Nov 2008 18:54:42 -0000 1.292 @@ -1,3 +1,7 @@ +2008-11-25 Dan Fandrich <da...@co...> + + * po/sk.po: Updated Slovak translation by Ivan Masár + 2008-11-22 Dan Fandrich <da...@co...> * Added Doxygen comments for the main API entry points and data |
From: Dan F. <dfa...@us...> - 2008-11-25 18:52:22
|
Update of /cvsroot/libexif/exif In directory ddv4jf1.ch3.sourceforge.com:/tmp/cvs-serv27852 Modified Files: ChangeLog NEWS Log Message: po/sk.po: Updated Slovak translation by Ivan Masár Index: NEWS =================================================================== RCS file: /cvsroot/libexif/exif/NEWS,v retrieving revision 1.19 retrieving revision 1.20 diff -u -p -d -r1.19 -r1.20 --- NEWS 19 Nov 2008 05:39:26 -0000 1.19 +++ NEWS 25 Nov 2008 18:52:05 -0000 1.20 @@ -1,5 +1,5 @@ exif-0.6.x: - * Updated translations: id, nl, pl, sv, zh_CN + * Updated translations: id, nl, pl, sk, sv, zh_CN exif-0.6.17 (2008-11-06): * Fixed the output of -s and -t when iconv is configured Index: ChangeLog =================================================================== RCS file: /cvsroot/libexif/exif/ChangeLog,v retrieving revision 1.80 retrieving revision 1.81 diff -u -p -d -r1.80 -r1.81 --- ChangeLog 21 Nov 2008 19:01:58 -0000 1.80 +++ ChangeLog 25 Nov 2008 18:52:04 -0000 1.81 @@ -1,3 +1,7 @@ +2008-11-25 Dan Fandrich <da...@co...> + + * po/sk.po: Updated Slovak translation by Ivan Masár + 2008-11-21 Dan Fandrich <da...@co...> * po/zh_CN.po: Updated Chinese (simplified) translation by Ji ZhengYu |
From: Dan F. <dfa...@us...> - 2008-11-25 18:52:17
|
Update of /cvsroot/libexif/exif/po In directory ddv4jf1.ch3.sourceforge.com:/tmp/cvs-serv27852/po Modified Files: sk.po Log Message: po/sk.po: Updated Slovak translation by Ivan Masár Index: sk.po =================================================================== RCS file: /cvsroot/libexif/exif/po/sk.po,v retrieving revision 1.1 retrieving revision 1.2 diff -u -p -d -r1.1 -r1.2 --- sk.po 10 Apr 2008 21:13:36 -0000 1.1 +++ sk.po 25 Nov 2008 18:52:11 -0000 1.2 @@ -5,10 +5,10 @@ # 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-04-10 22:53+0100\n" +"POT-Creation-Date: 2008-11-06 01:03-0800\n" +"PO-Revision-Date: 2008-11-25 11:42+0100\n" "Last-Translator: Ivan Masár <he...@ce...>\n" "Language-Team: Slovak <sk...@li...>\n" "MIME-Version: 1.0\n" @@ -16,22 +16,127 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=((n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2);\n" -#: exif/actions.c:45 +#: exif/actions.c:56 +#, c-format +msgid "Not enough memory." +msgstr "Nedostatok pamäte." + +#: exif/actions.c:74 +#, c-format +msgid "Setting a value for this tag is unsupported!" +msgstr "Nastavenie hodnoty tejto znaÄky nie je podporované!" + +#: exif/actions.c:91 +#, c-format +msgid "Too few components specified!" +msgstr "Bolo uvedených prÃliÅ¡ málo zložiek." + +#: exif/actions.c:106 +#, c-format +msgid "Internal error. Please contact <%s>." +msgstr "Vnútorná chyba. ProsÃm, kontaktujte <%s>." + +#: exif/actions.c:143 +#, c-format +msgid "Not yet implemented!" +msgstr "Funkcia zatiaľ nie je implementovaná!" + +#: exif/actions.c:150 +#, c-format +msgid "Warning; Too many components specified!" +msgstr "Upozornenie - bolo uvedených prÃliÅ¡ veľa zložiek." + +#: exif/actions.c:172 +#, c-format +msgid "Too much EXIF data (%i bytes). Only %i bytes are allowed." +msgstr "PrÃliÅ¡ mnoho EXIF údajov (%i bajtov). Je povolených iba %i bajtov." + +#: exif/actions.c:183 exif/actions.c:358 +#, c-format +msgid "Wrote file '%s'." +msgstr "ZapÃsaný súbor â%sâ." + +#: exif/actions.c:203 +#, c-format +msgid "EXIF entry '%s' " +msgstr "EXIF záznam â%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 "existuje v IFD â%sâ:\n" + +#: exif/actions.c:251 +#, c-format +msgid "IFD '%s' does not contain a tag '%s'!" +msgstr "IFD â%sâ neobsahuje znaÄku â%sâ!" + +#: exif/actions.c:282 +#, c-format +msgid "Could not open '%s' (%m)!" +msgstr "Nebolo možné otvoriÅ¥ â%sâ (%m)!" + +#: exif/actions.c:285 +#, c-format +msgid "Could not open '%s' (%s)!" +msgstr "Nebolo možné otvoriÅ¥ â%sâ (%s)!" + +#: exif/actions.c:295 +#, c-format +msgid "Could not read '%s' (%m)." +msgstr "Nebolo možné preÄÃtaÅ¥ â%sâ (%m)." + +#: exif/actions.c:298 +#, c-format +msgid "Could not read '%s' (%s)." +msgstr "Nebolo možné preÄÃtaÅ¥ â%sâ (%s)." + +#: exif/actions.c:317 +#, c-format +msgid "IFD '%s' does not contain tag '%s'." +msgstr "IFD â%sâ neobsahuje znaÄku â%sâ." + +#: exif/actions.c:323 +#, c-format +msgid "'%s' does not contain tag '%s'." +msgstr "IFD â%sâ neobsahuje znaÄku â%sâ." + +#: exif/actions.c:341 +#, c-format +msgid "'%s' does not contain a thumbnail!" +msgstr "â%sâ neobsahuje náhľad!" + +#: exif/actions.c:350 +#, c-format +msgid "Could not open '%s' for writing (%m)!" +msgstr "Nebolo možné otvoriÅ¥ â%sâ na zápis (%m)!" + +#: exif/actions.c:353 +#, c-format +msgid "Could not open '%s' for writing (%s)!" +msgstr "Nebolo možné otvoriÅ¥ â%sâ na zápis (%s)!" + +#: exif/actions.c:371 #, c-format msgid "EXIF tags in '%s':" -msgstr "EXIF Å¡tÃtky v â%sâ:" +msgstr "EXIF znaÄky v â%sâ:" -#: exif/actions.c:114 +#: exif/actions.c:440 #, c-format msgid "Unknown MakerNote format.\n" msgstr "Neznámy formát Poznámky výrobcu.\n" -#: exif/actions.c:121 +#: exif/actions.c:447 #, c-format msgid "MakerNote does not contain any value.\n" msgstr "Poznámka výrobcu neobsahuje žiadnu hodnotu.\n" -#: exif/actions.c:124 +#: exif/actions.c:450 #, c-format msgid "MakerNote contains %i value:\n" msgid_plural "MakerNote contains %i values:\n" @@ -39,236 +144,149 @@ msgstr[0] "Poznámka výrobcu obsahuje % msgstr[1] "Poznámka výrobcu obsahuje %i hodnoty.\n" msgstr[2] "Poznámka výrobcu obsahuje %i hodnôt.\n" -#: exif/actions.c:134 +#: exif/actions.c:460 msgid "Unknown tag" -msgstr "Neznámy Å¡tÃtok" +msgstr "Neznáma znaÄka" -#: exif/actions.c:137 +#: exif/actions.c:464 msgid "Unknown value" msgstr "Neznáma hodnota" -#: exif/actions.c:162 +#: exif/actions.c:490 #, c-format msgid "EXIF tags in '%s' ('%s' byte order):" -msgstr "EXIF Å¡tÃtky v â%sâ (poradie bajtov â%sâ):" +msgstr "EXIF znaÄky v â%sâ (poradie bajtov â%sâ):" -#: exif/actions.c:167 exif/actions.c:169 +#: exif/actions.c:495 exif/actions.c:497 msgid "Tag" -msgstr "Å tÃtok" +msgstr "ZnaÄka" -#: 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 "Hodnota" -#: exif/actions.c:181 +#: exif/actions.c:509 #, c-format msgid "EXIF data contains a thumbnail (%i bytes)." msgstr "EXIF údaje obsahujú náhľad (%i bajtov)." -#: exif/actions.c:217 +#: exif/actions.c:545 #, c-format msgid "ThumbnailSize\t%i\n" msgstr "VeľkosÅ¥ náhľadu\t%i\n" -#: exif/main.c:57 -#, c-format -msgid "Internal error. Please contact <%s>." -msgstr "Vnútorná chyba. ProsÃm, kontaktujte <%s>." - -#: exif/main.c:80 -#, c-format -msgid "EXIF entry '%s' " -msgstr "EXIF záznam â%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 "existuje v IFD â%sâ:\n" - -#: exif/main.c:120 -#, c-format -msgid "Not enough memory." -msgstr "Nedostatok pamäte." - -#: exif/main.c:138 -#, c-format -msgid "Too few components specified!" -msgstr "Bolo uvedených prÃliÅ¡ málo zložiek." - -#: exif/main.c:168 -#, c-format -msgid "Not yet implemented!" -msgstr "Funkcia zatiaľ nie je implementovaná!" - -#: exif/main.c:241 -#, c-format -msgid "Too much EXIF data (%i bytes). Only %i bytes are allowed." -msgstr "PrÃliÅ¡ mnoho EXIF údajov (%i bajtov). Je povolených iba %i bajtov." - -#: exif/main.c:255 exif/main.c:513 -#, c-format -msgid "Wrote file '%s'." -msgstr "ZapÃsaný súbor â%sâ." - -#: exif/main.c:337 +#: exif/main.c:175 msgid "Display software version" msgstr "ZobraziÅ¥ verziu softvéru" -#: exif/main.c:339 +#: exif/main.c:177 msgid "Show IDs instead of tag names" -msgstr "ZobraziÅ¥ ID namiesto názvov Å¡tÃtkov" +msgstr "ZobraziÅ¥ ID namiesto názvov znaÄiek" -#: exif/main.c:341 +#: exif/main.c:179 msgid "Select tag" -msgstr "VybraÅ¥ Å¡tÃtok" +msgstr "VybraÅ¥ znaÄku" -#: exif/main.c:341 +#: exif/main.c:179 msgid "tag" -msgstr "Å¡tÃtok" +msgstr "znaÄka" -#: exif/main.c:343 +#: exif/main.c:181 msgid "Select IFD" msgstr "VybraÅ¥ 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 "Zoznam vÅ¡etkých EXIF Å¡tÃtkov" +msgstr "Zoznam vÅ¡etkých EXIF znaÄiek" -#: exif/main.c:347 +#: exif/main.c:185 msgid "Show contents of tag MakerNote" -msgstr "ZobraziÅ¥ obsah Å¡tÃtka Poznámka výrobcu" +msgstr "ZobraziÅ¥ obsah znaÄky Poznámka výrobcu" -#: exif/main.c:349 +#: exif/main.c:187 msgid "Remove tag or ifd" -msgstr "OdstrániÅ¥ Å¡tÃtok alebo IFD" +msgstr "OdstrániÅ¥ znaÄku alebo IFD" -#: exif/main.c:351 +#: exif/main.c:189 msgid "Show description of tag" -msgstr "ZobraziÅ¥ popis Å¡tÃtka" +msgstr "ZobraziÅ¥ popis znaÄky" -#: exif/main.c:353 +#: exif/main.c:191 msgid "Extract thumbnail" msgstr "ExtrahovaÅ¥ náhľad" -#: exif/main.c:355 +#: exif/main.c:193 msgid "Remove thumbnail" msgstr "OdstrániÅ¥ náhľad" -#: exif/main.c:357 +#: exif/main.c:195 msgid "Insert FILE as thumbnail" msgstr "VložiÅ¥ SÃBOR ako náhľad" -#: exif/main.c:357 exif/main.c:359 +#: exif/main.c:195 exif/main.c:197 msgid "FILE" msgstr "SÃBOR" -#: exif/main.c:359 +#: exif/main.c:197 msgid "Write data to FILE" msgstr "ZapÃsaÅ¥ údaje do SÃBORu" -#: exif/main.c:363 +#: exif/main.c:201 +msgid "Create EXIF data if not existing" +msgstr "VytvoriÅ¥ EXIF údaje ak neexistujú" + +#: exif/main.c:203 msgid "Output in a machine-readable (tab delimited) format" msgstr "Výstup v strojovo Äitateľnom formáte (oddeľovaÄ je tabulátor)" -#: exif/main.c:366 +#: exif/main.c:206 msgid "Output in a XML format" msgstr "Výstup vo formáte XML" -#: exif/main.c:369 +#: exif/main.c:209 msgid "Show debugging messages" msgstr "ZobraziÅ¥ ladiace správy" -#: exif/main.c:386 +#: exif/main.c:229 msgid "[OPTION...] file" msgstr "[VOĽBA...] súbor" -#: exif/main.c:414 +#: exif/main.c:241 #, c-format msgid "Invalid IFD '%s'. Valid IFDs are '0', '1', 'EXIF', 'GPS', and 'Interoperability'." msgstr "Neplatný IFD â%sâ. Platné IFD sú â0â, â1â, âEXIFâ, âGPSâ a âInteroperabilityâ." -#: exif/main.c:422 +#: exif/main.c:250 #, c-format msgid "Invalid tag '%s'!" -msgstr "Neplatný Å¡tÃtok â%sâ!" +msgstr "Neplatná znaÄka â%sâ!" -#: exif/main.c:427 -msgid "Please specify a tag!" -msgstr "ProsÃm, zadajte Å¡tÃtok!" +#: exif/main.c:258 +msgid "You need to specify a tag!" +msgstr "MusÃte zadaÅ¥ znaÄku!" -#: exif/main.c:432 +#: exif/main.c:263 +msgid "You need to specify an IFD!" +msgstr "MusÃte zadaÅ¥ IFD!" + +#: exif/main.c:286 #, c-format msgid "Tag '%s' " -msgstr "Å tÃtok â%sâ" +msgstr "ZnaÄka â%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â neobsahuje EXIF údaje!" -#: exif/main.c:486 -#, c-format -msgid "IFD '%s' does not contain tag '%s'." -msgstr "IFD â%sâ neobsahuje Å¡tÃtok â%sâ." - -#: exif/main.c:495 -#, c-format -msgid "'%s' does not contain a thumbnail!" -msgstr "â%sâ neobsahuje náhľad!" - -#: exif/main.c:503 -#, c-format -msgid "Could not open '%s' for writing (%m)!" -msgstr "Nebolo možné otvoriÅ¥ â%sâ na zápis (%m)!" - -#: exif/main.c:507 -#, c-format -msgid "Could not open '%s' for writing (%s)!" -msgstr "Nebolo možné otvoriÅ¥ â%sâ na zápis (%s)!" - -#: exif/main.c:542 -#, c-format -msgid "Could not open '%s' (%m)!" -msgstr "Nebolo možné otvoriÅ¥ â%sâ (%m)!" - -#: exif/main.c:545 -#, c-format -msgid "Could not open '%s' (%s)!" -msgstr "Nebolo možné otvoriÅ¥ â%sâ (%s)!" - -#: exif/main.c:557 -#, c-format -msgid "Could not read '%s' (%m)." -msgstr "Nebolo možné preÄÃtaÅ¥ â%sâ (%m)." - -#: exif/main.c:560 -#, c-format -msgid "Could not read '%s' (%s)." -msgstr "Nebolo možné preÄÃtaÅ¥ â%sâ (%s)." - -#: exif/main.c:571 -msgid "You need to specify a tag!" -msgstr "MusÃte zadaÅ¥ Å¡tÃtok!" - -#: exif/main.c:576 exif/main.c:595 -msgid "You need to specify an IFD!" -msgstr "MusÃte zadaÅ¥ IFD!" - -#: exif/main.c:607 -#, c-format -msgid "IFD '%s' does not contain a tag '%s'!" -msgstr "IFD â%sâ neobsahuje Å¡tÃtok â%sâ!" +#~ msgid "Please specify a tag!" +#~ msgstr "ProsÃm, zadajte Å¡tÃtok!" |
From: Dan F. <dfa...@us...> - 2008-11-25 09:30:47
|
Update of /cvsroot/libexif/libexif/libexif In directory ddv4jf1.ch3.sourceforge.com:/tmp/cvs-serv21332/libexif Modified Files: exif-content.h exif-data.h exif-entry.c exif-entry.h exif-loader.c exif-loader.h exif-mnote-data.h exif-tag.h exif-utils.h exif.h Log Message: Added Doxygen documentation Index: exif-utils.h =================================================================== RCS file: /cvsroot/libexif/libexif/libexif/exif-utils.h,v retrieving revision 1.19 retrieving revision 1.20 diff -u -p -d -r1.19 -r1.20 --- exif-utils.h 22 Nov 2008 07:08:56 -0000 1.19 +++ exif-utils.h 25 Nov 2008 09:30:38 -0000 1.20 @@ -120,6 +120,8 @@ void exif_array_set_byte_order (ExifForm #define MAX(a, b) (((a) > (b)) ? (a) : (b)) /* For compatibility with older versions */ + +/*! \deprecated Use EXIF_TAG_SUB_SEC_TIME instead */ #define EXIF_TAG_SUBSEC_TIME EXIF_TAG_SUB_SEC_TIME #ifdef __cplusplus Index: exif-tag.h =================================================================== RCS file: /cvsroot/libexif/libexif/libexif/exif-tag.h,v retrieving revision 1.18 retrieving revision 1.19 diff -u -p -d -r1.18 -r1.19 --- exif-tag.h 22 Nov 2008 07:08:56 -0000 1.18 +++ exif-tag.h 25 Nov 2008 09:30:38 -0000 1.19 @@ -182,6 +182,7 @@ typedef enum { #define EXIF_TAG_GPS_DATE_STAMP 0x001d #define EXIF_TAG_GPS_DIFFERENTIAL 0x001e +/*! What level of support a tag enjoys in the EXIF standard */ typedef enum { EXIF_SUPPORT_LEVEL_UNKNOWN = 0, EXIF_SUPPORT_LEVEL_NOT_RECORDED, @@ -189,13 +190,13 @@ typedef enum { EXIF_SUPPORT_LEVEL_OPTIONAL } ExifSupportLevel; -/*! Returns the tag ID given its unique textual name. +/*! Return the tag ID given its unique textual name. * \param[in] name tag name * \return tag ID */ ExifTag exif_tag_from_name (const char *name); -/*! Returns textual name of the given tag when found in the given IFD. The +/*! Return a textual name of the given tag when found in the given IFD. The * name is a short, unique, non-localized text string containing only * US-ASCII alphanumeric characters. * \param[in] tag EXIF tag @@ -204,14 +205,14 @@ ExifTag exif_tag_from_name */ const char *exif_tag_get_name_in_ifd (ExifTag tag, ExifIfd ifd); -/*! Returns textual title of the given tag when found in the given IFD. +/*! Return a textual title of the given tag when found in the given IFD. * \param[in] tag EXIF tag * \param[in] ifd IFD * \return textual title of the tag */ const char *exif_tag_get_title_in_ifd (ExifTag tag, ExifIfd ifd); -/*! Returns verbose textual description of the given tag when found in the +/*! Return a verbose textual description of the given tag when found in the * given IFD. * \param[in] tag EXIF tag * \param[in] ifd IFD @@ -219,15 +220,29 @@ const char *exif_tag_get_title_in_i */ const char *exif_tag_get_description_in_ifd (ExifTag tag, ExifIfd ifd); -ExifSupportLevel exif_tag_get_support_level_in_ifd (ExifTag, ExifIfd, - ExifDataType); +/*! Return whether the given tag is mandatory or not in the given IFD and + * data type according to the EXIF specification. + * \param[in] tag EXIF tag + * \param[in] ifd IFD + * \param[in] t data type + */ +ExifSupportLevel exif_tag_get_support_level_in_ifd (ExifTag tag, ExifIfd ifd, + ExifDataType t); /* Don't use these functions. They are here for compatibility only. */ + +/*! \deprecated Use exif_tag_get_name_in_ifd instead */ const char *exif_tag_get_name (ExifTag tag); + +/*! \deprecated Use exif_tag_get_title_in_ifd instead */ const char *exif_tag_get_title (ExifTag tag); + +/*! \deprecated Use exif_tag_get_description_in_ifd instead */ const char *exif_tag_get_description (ExifTag tag); /* Don't use these definitions. They are here for compatibility only. */ + +/*! \deprecated Use EXIF_TAG_PRINT_IMAGE_MATCHING instead */ #define EXIF_TAG_UNKNOWN_C4A5 EXIF_TAG_PRINT_IMAGE_MATCHING #ifdef __cplusplus Index: exif-mnote-data.h =================================================================== RCS file: /cvsroot/libexif/libexif/libexif/exif-mnote-data.h,v retrieving revision 1.6 retrieving revision 1.7 diff -u -p -d -r1.6 -r1.7 --- exif-mnote-data.h 22 Nov 2008 07:08:56 -0000 1.6 +++ exif-mnote-data.h 25 Nov 2008 09:30:38 -0000 1.7 @@ -78,7 +78,7 @@ const char *exif_mnote_data_get_descrip /*! Return a textual representation of the value of the MakerNote entry. * - * CAUTION: The character set of the returned string may be in + * \warning The character set of the returned string may be in * the encoding of the current locale or the native encoding * of the camera. * Index: exif-content.h =================================================================== RCS file: /cvsroot/libexif/libexif/libexif/exif-content.h,v retrieving revision 1.15 retrieving revision 1.16 diff -u -p -d -r1.15 -r1.16 --- exif-content.h 22 Nov 2008 07:08:56 -0000 1.15 +++ exif-content.h 25 Nov 2008 09:30:38 -0000 1.16 @@ -75,12 +75,19 @@ void exif_content_remove_entry ( * \return #ExifEntry of the tag, or NULL on error */ ExifEntry *exif_content_get_entry (ExifContent *content, ExifTag tag); -void exif_content_fix (ExifContent *); + +/*! Fix the IFD to bring it into specification. Call exif_entry_fix on + * each entry in this IFD to fix existing entries, create any new entries + * that are mandatory in this IFD but do not yet exist, and remove any + * entries that are not allowed in this IFD. + * \param[in,out] c EXIF content for an IFD + */ +void exif_content_fix (ExifContent *c); typedef void (* ExifContentForeachEntryFunc) (ExifEntry *, void *user_data); /*! Executes function on each EXIF tag in turn. - * \param[in] content IFD over which to iterate + * \param[in,out] content IFD over which to iterate * \param[in] func function to call for each entry * \param[in] user_data data to pass into func on each call */ @@ -88,17 +95,17 @@ void exif_content_foreach_entry ExifContentForeachEntryFunc func, void *user_data); -/*! Returns the IFD number in which the given #ExifContent is found. +/*! Return the IFD number in which the given #ExifContent is found. * \param[in] c an #ExifContent* * \return IFD number, or EXIF_IFD_COUNT on error */ ExifIfd exif_content_get_ifd (ExifContent *c); -/*! Returns a textual representation of the EXIF data for a tag. - * \param[in] c #ExifContent for an IFD +/*! Return a textual representation of the EXIF data for a tag. + * \param[in] c #ExifContent* for an IFD * \param[in] t #ExifTag to return - * \param[out] v buffer in which to store value - * \param[in] m length of the buffer v + * \param[out] v char* buffer in which to store value + * \param[in] m unsigned int length of the buffer v * \return v pointer, or NULL on error */ #define exif_content_get_value(c,t,v,m) \ @@ -114,7 +121,7 @@ void exif_content_dump (ExifContent *co /*! Set the log message object for this IFD. * \param[in] content IFD - * \param[in] log #ExifLog + * \param[in] log #ExifLog* */ void exif_content_log (ExifContent *content, ExifLog *log); Index: exif-loader.h =================================================================== RCS file: /cvsroot/libexif/libexif/libexif/exif-loader.h,v retrieving revision 1.8 retrieving revision 1.9 diff -u -p -d -r1.8 -r1.9 --- exif-loader.h 22 Nov 2008 07:08:56 -0000 1.8 +++ exif-loader.h 25 Nov 2008 09:30:38 -0000 1.9 @@ -51,31 +51,32 @@ ExifLoader *exif_loader_new_mem (ExifMem void exif_loader_ref (ExifLoader *loader); /*! Decrease the refcount of the #ExifLoader - * \param[in] loader ExifLoader to decrease the refcount of. - * If the refcount reaches 0, the ExifLoader is freed. + * \param[in] loader ExifLoader for which to decrease the refcount + * If the refcount reaches 0, the ExifLoader is freed. */ void exif_loader_unref (ExifLoader *loader); -/*! Write a file into the #ExifLoader from the filesystem. - * \param[in] loader loader +/*! Load a file into the given #ExifLoader from the filesystem. + * \param[in] loader loader to write to * \param[in] fname path to the file to read */ void exif_loader_write_file (ExifLoader *loader, const char *fname); -/*! Write a buffer into the ExifLoader from a memory block. +/*! Load a buffer into the #ExifLoader from a memory buffer. * \param[in] loader loader to write to * \param[in] buf buffer to read from * \param[in] sz size of the buffer - * \return 1 while EXIF data is read (or while there is still hope that there will be EXIF data later on), 0 otherwise. + * \return 1 while EXIF data is read (or while there is still hope that + * there will be EXIF data later on), 0 otherwise. */ unsigned char exif_loader_write (ExifLoader *loader, unsigned char *buf, unsigned int sz); -/*! Reset the ExifLoader +/*! Reset the ExifLoader to its newly-initialized state * \param[in] loader the loader */ void exif_loader_reset (ExifLoader *loader); -/*! Get an ExifData out of an ExifLoader +/*! Create an ExifData from an ExifLoader * \param[in] loader the loader * \return allocated ExifData */ Index: exif.h =================================================================== RCS file: /cvsroot/libexif/libexif/libexif/exif.h,v retrieving revision 1.9 retrieving revision 1.10 diff -u -p -d -r1.9 -r1.10 --- exif.h 22 Nov 2008 07:08:56 -0000 1.9 +++ exif.h 25 Nov 2008 09:30:38 -0000 1.10 @@ -43,7 +43,7 @@ * Strings of 8 bit characters ("char*"). When libexif is compiled with * NLS, character set and encoding are as set in the current locale, * except for strings that come directly from the data in EXIF - * tags which are currently returned in raw form. + * tags which are generally returned in raw form. * * \section memory_management Memory Management Patterns * Index: exif-entry.h =================================================================== RCS file: /cvsroot/libexif/libexif/libexif/exif-entry.h,v retrieving revision 1.17 retrieving revision 1.18 diff -u -p -d -r1.17 -r1.18 --- exif-entry.h 22 Nov 2008 07:08:56 -0000 1.17 +++ exif-entry.h 25 Nov 2008 09:30:38 -0000 1.18 @@ -76,20 +76,25 @@ void exif_entry_unref (ExifEntr */ void exif_entry_free (ExifEntry *entry); -/*! Initialize an empty #ExifEntry with default data for the given tag. - * If the entry is already initialized, this function does nothing. +/*! 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. * \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. + * \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. * - * CAUTION: The character set of the returned string may be in + * \warning The character set of the returned string may be in * the encoding of the current locale or the native encoding * of the camera. * Index: exif-data.h =================================================================== RCS file: /cvsroot/libexif/libexif/libexif/exif-data.h,v retrieving revision 1.17 retrieving revision 1.18 diff -u -p -d -r1.17 -r1.18 --- exif-data.h 22 Nov 2008 07:08:56 -0000 1.17 +++ exif-data.h 25 Nov 2008 09:30:38 -0000 1.18 @@ -59,7 +59,7 @@ ExifData *exif_data_new (void) ExifData *exif_data_new_mem (ExifMem *); -/*! Load EXIF data from file +/*! Load EXIF data from a JPEG file. * \param[in] path filename including path * \return allocated #ExifData, or NULL on error */ @@ -68,10 +68,25 @@ ExifData *exif_data_new_from_file (const ExifData *exif_data_new_from_data (const unsigned char *data, unsigned int size); +/*! Load the #ExifData structure from the raw JPEG or EXIF data in the given + * memory buffer. + * \param[in,out] data EXIF data + * \param[in] d pointer to raw JPEG or EXIF data + * \param[in] size number of bytes of data at d + */ void exif_data_load_data (ExifData *data, const unsigned char *d, unsigned int size); + +/*! Store raw EXIF data representing the #ExifData structure into a memory + * buffer. The buffer is allocated by this function and must subsequently be + * freed by the caller. + * \param[in] data EXIF data + * \param[out] d pointer to buffer pointer containing raw EXIF data on return + * \param[out] ds pointer to variable to hold the number of bytes of + * data at d, or set to 0 on error + */ void exif_data_save_data (ExifData *data, unsigned char **d, - unsigned int *size); + unsigned int *ds); void exif_data_ref (ExifData *data); void exif_data_unref (ExifData *data); @@ -83,6 +98,12 @@ void exif_data_free (ExifData *dat */ ExifByteOrder exif_data_get_byte_order (ExifData *data); +/*! Set the byte order to use for this EXIF data. If any tags already exist + * (including MakerNote tags) they are are converted to the specified byte + * order. + * \param[in,out] data EXIF data + * \param[in] order byte order + */ void exif_data_set_byte_order (ExifData *data, ExifByteOrder order); /*! Return the MakerNote data out of the EXIF data. @@ -91,32 +112,72 @@ void exif_data_set_byte_order */ ExifMnoteData *exif_data_get_mnote_data (ExifData *d); -void exif_data_fix (ExifData *); +/*! Fix the EXIF data to bring it into specification. Call exif_content_fix + * on each IFD to fix existing entries, create any new entries that are + * mandatory but do not yet exist, and remove any entries that are not + * allowed. + * \param[in,out] d EXIF data + */ +void exif_data_fix (ExifData *d); typedef void (* ExifDataForeachContentFunc) (ExifContent *, void *user_data); -/*! Executes function on each IFD in turn. +/*! Execute a function on each IFD in turn. * \param[in] data EXIF data over which to iterate * \param[in] func function to call for each entry - * \param[in] data data to pass into func on each call + * \param[in] user_data data to pass into func on each call */ void exif_data_foreach_content (ExifData *data, ExifDataForeachContentFunc func, void *user_data); +/*! Options to configure the behaviour of #ExifData */ typedef enum { + /*! Act as though unknown tags are not present */ EXIF_DATA_OPTION_IGNORE_UNKNOWN_TAGS = 1 << 0, + + /*! Fix the EXIF tags to follow the spec */ EXIF_DATA_OPTION_FOLLOW_SPECIFICATION = 1 << 1, + + /*! Leave the MakerNote alone, which could cause it to be corrupted */ EXIF_DATA_OPTION_DONT_CHANGE_MAKER_NOTE = 1 << 2 } ExifDataOption; -const char *exif_data_option_get_name (ExifDataOption); -const char *exif_data_option_get_description (ExifDataOption); -void exif_data_set_option (ExifData *, ExifDataOption); -void exif_data_unset_option (ExifData *, ExifDataOption); +/*! Returns short textual description of the given #ExifDataOption. + * \param[in] o option + * \return localized textual description of the option + */ +const char *exif_data_option_get_name (ExifDataOption o); -void exif_data_set_data_type (ExifData *, ExifDataType); -ExifDataType exif_data_get_data_type (ExifData *); +/*! Returns verbose textual description of the given #ExifDataOption. + * \param[in] o option + * \return verbose localized textual description of the option + */ +const char *exif_data_option_get_description (ExifDataOption o); + +/*! Set the given option on the given #ExifData. + * \param[in] d EXIF data + * \param[in] o option + */ +void exif_data_set_option (ExifData *d, ExifDataOption o); + +/*! Clear the given option on the given #ExifData. + * \param[in] d EXIF data + * \param[in] o option + */ +void exif_data_unset_option (ExifData *d, ExifDataOption o); + +/*! Set the data type for the given #ExifData. + * \param[in] d EXIF data + * \param[in] dt data type + */ +void exif_data_set_data_type (ExifData *d, ExifDataType dt); + +/*! Return the data type for the given #ExifData. + * \param[in] d EXIF data + * \return data type, or EXIF_DATA_TYPE_COUNT on error + */ +ExifDataType exif_data_get_data_type (ExifData *d); /*! Dump all EXIF data to stdout. * This is intended for diagnostic purposes only. Index: exif-entry.c =================================================================== RCS file: /cvsroot/libexif/libexif/libexif/exif-entry.c,v retrieving revision 1.121 retrieving revision 1.122 diff -u -p -d -r1.121 -r1.122 --- exif-entry.c 22 Nov 2008 07:08:56 -0000 1.121 +++ exif-entry.c 25 Nov 2008 09:30:38 -0000 1.122 @@ -804,15 +804,15 @@ exif_entry_get_value (ExifEntry *e, char snprintf (b, sizeof (b), " (APEX: %i)", (int) pow (sqrt(2), d)); if (maxlen > strlen (val) + strlen (b)) strncat (val, b, maxlen - strlen (val) - 1); - d = 1. / pow (2, d); - if (d < 1) - snprintf (b, sizeof (b), _(" 1/%d sec.)"), (int) (1. / d)); - else - snprintf (b, sizeof (b), _(" %d sec.)"), (int) d); - if (maxlen > strlen (val) + strlen (b)) { - val[strlen (val) - 1] = ','; - strncat (val, b, maxlen - strlen (val) - 1); - } + d = 1. / pow (2, d); + if (d < 1) + snprintf (b, sizeof (b), _(" 1/%d sec.)"), (int) (1. / d)); + else + snprintf (b, sizeof (b), _(" %d sec.)"), (int) d); + if (maxlen > strlen (val) + strlen (b)) { + val[strlen (val) - 1] = ','; + strncat (val, b, maxlen - strlen (val) - 1); + } break; case EXIF_TAG_BRIGHTNESS_VALUE: CF (e, EXIF_FORMAT_SRATIONAL, val, maxlen); @@ -987,6 +987,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 */ exif_convert_utf16_to_utf8(val, (unsigned short*)e->data, MIN(maxlen, e->size)); break; case EXIF_TAG_INTEROPERABILITY_VERSION: Index: exif-loader.c =================================================================== RCS file: /cvsroot/libexif/libexif/libexif/exif-loader.c,v retrieving revision 1.32 retrieving revision 1.33 diff -u -p -d -r1.32 -r1.33 --- exif-loader.c 3 Nov 2008 20:46:46 -0000 1.32 +++ exif-loader.c 25 Nov 2008 09:30:38 -0000 1.33 @@ -99,9 +99,6 @@ exif_loader_alloc (ExifLoader *l, unsign return NULL; } -#undef MIN -#define MIN(a, b) (((a) < (b)) ? (a) : (b)) - void exif_loader_write_file (ExifLoader *l, const char *path) { |
From: Dan F. <dfa...@us...> - 2008-11-22 07:09:03
|
Update of /cvsroot/libexif/libexif In directory ddv4jf1.ch3.sourceforge.com:/tmp/cvs-serv29808 Modified Files: ChangeLog Log Message: Added Doxygen comments for the main API entry points and data structures Index: ChangeLog =================================================================== RCS file: /cvsroot/libexif/libexif/ChangeLog,v retrieving revision 1.290 retrieving revision 1.291 diff -u -p -d -r1.290 -r1.291 --- ChangeLog 19 Nov 2008 08:14:43 -0000 1.290 +++ ChangeLog 22 Nov 2008 07:08:53 -0000 1.291 @@ -1,3 +1,8 @@ +2008-11-22 Dan Fandrich <da...@co...> + + * Added Doxygen comments for the main API entry points and data + structures + 2008-11-18 Dan Fandrich <da...@co...> * libexif/exif-entry.c & configure.ac: use localtime_r when available |
From: Dan F. <dfa...@us...> - 2008-11-22 07:09:00
|
Update of /cvsroot/libexif/libexif/libexif In directory ddv4jf1.ch3.sourceforge.com:/tmp/cvs-serv29808/libexif Modified Files: exif-content.h exif-data.h exif-entry.c exif-entry.h exif-format.h exif-loader.h exif-log.h exif-mem.h exif-mnote-data.h exif-system.h exif-tag.h exif-utils.h exif.h Log Message: Added Doxygen comments for the main API entry points and data structures Index: exif-content.h =================================================================== RCS file: /cvsroot/libexif/libexif/libexif/exif-content.h,v retrieving revision 1.14 retrieving revision 1.15 diff -u -p -d -r1.14 -r1.15 --- exif-content.h 17 Feb 2008 18:31:55 -0000 1.14 +++ exif-content.h 22 Nov 2008 07:08:56 -0000 1.15 @@ -1,5 +1,7 @@ -/* exif-content.h - * +/*! \file exif-content.h + * \brief Handling EXIF IFDs + */ +/* * Copyright (c) 2001 Lutz Mueller <lu...@us...> * * This library is free software; you can redistribute it and/or @@ -25,6 +27,7 @@ extern "C" { #endif /* __cplusplus */ +/*! Holds all EXIF tags in a single IFD */ typedef struct _ExifContent ExifContent; typedef struct _ExifContentPrivate ExifContentPrivate; @@ -52,23 +55,67 @@ void exif_content_ref (ExifC void exif_content_unref (ExifContent *content); void exif_content_free (ExifContent *content); -void exif_content_add_entry (ExifContent *, ExifEntry *); -void exif_content_remove_entry (ExifContent *, ExifEntry *); -ExifEntry *exif_content_get_entry (ExifContent *, ExifTag); +/*! Add an EXIF tag to an IFD. + * If this tag already exists in the IFD, this function does nothing. + * \param[out] c IFD + * \param[in] entry EXIF entry to add + */ +void exif_content_add_entry (ExifContent *c, ExifEntry *entry); + +/*! Remove an EXIF tag from an IFD. + * If this tag does not exist in the IFD, this function does nothing. + * \param[out] c IFD + * \param[in] e EXIF entry to remove + */ +void exif_content_remove_entry (ExifContent *c, ExifEntry *e); + +/*! Return the #ExifEntry in this IFD corresponding to the given tag. + * \param[in] content EXIF content for an IFD + * \param[in] tag EXIF tag to return + * \return #ExifEntry of the tag, or NULL on error + */ +ExifEntry *exif_content_get_entry (ExifContent *content, ExifTag tag); void exif_content_fix (ExifContent *); typedef void (* ExifContentForeachEntryFunc) (ExifEntry *, void *user_data); + +/*! Executes function on each EXIF tag in turn. + * \param[in] content IFD over which to iterate + * \param[in] func function to call for each entry + * \param[in] user_data data to pass into func on each call + */ void exif_content_foreach_entry (ExifContent *content, ExifContentForeachEntryFunc func, void *user_data); -/* For your convenience */ -ExifIfd exif_content_get_ifd (ExifContent *); +/*! Returns the IFD number in which the given #ExifContent is found. + * \param[in] c an #ExifContent* + * \return IFD number, or EXIF_IFD_COUNT on error + */ +ExifIfd exif_content_get_ifd (ExifContent *c); + +/*! Returns a textual representation of the EXIF data for a tag. + * \param[in] c #ExifContent for an IFD + * \param[in] t #ExifTag to return + * \param[out] v buffer in which to store value + * \param[in] m length of the buffer v + * \return v pointer, or NULL on error + */ #define exif_content_get_value(c,t,v,m) \ (exif_content_get_entry (c,t) ? \ exif_entry_get_value (exif_content_get_entry (c,t),v,m) : NULL) +/*! Dump contents of the IFD to stdout. + * This is intended for diagnostic purposes only. + * \param[in] content IFD data + * \param[in] indent how many levels deep to indent the data + */ void exif_content_dump (ExifContent *content, unsigned int indent); + +/*! Set the log message object for this IFD. + * \param[in] content IFD + * \param[in] log #ExifLog + */ void exif_content_log (ExifContent *content, ExifLog *log); #ifdef __cplusplus Index: exif-utils.h =================================================================== RCS file: /cvsroot/libexif/libexif/libexif/exif-utils.h,v retrieving revision 1.18 retrieving revision 1.19 diff -u -p -d -r1.18 -r1.19 --- exif-utils.h 17 Feb 2008 18:31:56 -0000 1.18 +++ exif-utils.h 22 Nov 2008 07:08:56 -0000 1.19 @@ -1,5 +1,7 @@ -/* exif-utils.h - * +/*! \file exif-utils.h + * \brief EXIF data manipulation functions and types + */ +/* * Copyright (c) 2001 Lutz Mueller <lu...@us...> * * This library is free software; you can redistribute it and/or @@ -40,13 +42,13 @@ typedef uint16_t ExifShort; /* 2 typedef int16_t ExifSShort; /* 2 bytes */ typedef uint32_t ExifLong; /* 4 bytes */ -/** EXIF Unsigned Rational */ +/*! EXIF Unsigned Rational */ typedef struct {ExifLong numerator; ExifLong denominator;} ExifRational; typedef char ExifUndefined; /* 1 byte */ typedef int32_t ExifSLong; /* 4 bytes */ -/** EXIF Signed Rational. */ +/*! EXIF Signed Rational. */ typedef struct {ExifSLong numerator; ExifSLong denominator;} ExifSRational; @@ -57,16 +59,51 @@ ExifSLong exif_get_slong (const ExifRational exif_get_rational (const unsigned char *b, ExifByteOrder order); ExifSRational exif_get_srational (const unsigned char *b, ExifByteOrder order); +/*! Store an ExifShort value into memory in EXIF format + * \param[out] b buffer in which to write raw value + * \param[in] order byte order to use + * \param[in] value data value to store + */ void exif_set_short (unsigned char *b, ExifByteOrder order, ExifShort value); + +/*! Store an ExifSShort value into memory in EXIF format + * \param[out] b buffer in which to write raw value + * \param[in] order byte order to use + * \param[in] value data value to store + */ void exif_set_sshort (unsigned char *b, ExifByteOrder order, ExifSShort value); + +/*! Store an ExifLong value into memory in EXIF format + * \param[out] b buffer in which to write raw value + * \param[in] order byte order to use + * \param[in] value data value to store + */ void exif_set_long (unsigned char *b, ExifByteOrder order, ExifLong value); + +/*! Store an ExifSLong value into memory in EXIF format + * \param[out] b buffer in which to write raw value + * \param[in] order byte order to use + * \param[in] value data value to store + */ void exif_set_slong (unsigned char *b, ExifByteOrder order, ExifSLong value); + +/*! Store an ExifRational value into memory in EXIF format + * \param[out] b buffer in which to write raw value + * \param[in] order byte order to use + * \param[in] value data value to store + */ void exif_set_rational (unsigned char *b, ExifByteOrder order, ExifRational value); + +/*! Store an ExifSRational value into memory in EXIF format + * \param[out] b buffer in which to write raw value + * \param[in] order byte order to use + * \param[in] value data value to store + */ void exif_set_srational (unsigned char *b, ExifByteOrder order, ExifSRational value); Index: exif-tag.h =================================================================== RCS file: /cvsroot/libexif/libexif/libexif/exif-tag.h,v retrieving revision 1.17 retrieving revision 1.18 diff -u -p -d -r1.17 -r1.18 --- exif-tag.h 17 Feb 2008 18:31:56 -0000 1.17 +++ exif-tag.h 22 Nov 2008 07:08:56 -0000 1.18 @@ -1,5 +1,7 @@ -/* exif-tag.h - * +/*! \file exif-tag.h + * \brief Handling EXIF tags + */ +/* * Copyright (c) 2001 Lutz Mueller <lu...@us...> * * This library is free software; you can redistribute it and/or @@ -28,6 +30,7 @@ extern "C" { #include <libexif/exif-ifd.h> #include <libexif/exif-data-type.h> +/*! EXIF tags */ typedef enum { EXIF_TAG_INTEROPERABILITY_INDEX = 0x0001, EXIF_TAG_INTEROPERABILITY_VERSION = 0x0002, @@ -186,10 +189,36 @@ typedef enum { EXIF_SUPPORT_LEVEL_OPTIONAL } ExifSupportLevel; -ExifTag exif_tag_from_name (const char *); -const char *exif_tag_get_name_in_ifd (ExifTag, ExifIfd); -const char *exif_tag_get_title_in_ifd (ExifTag, ExifIfd); -const char *exif_tag_get_description_in_ifd (ExifTag, ExifIfd); +/*! Returns the tag ID given its unique textual name. + * \param[in] name tag name + * \return tag ID + */ +ExifTag exif_tag_from_name (const char *name); + +/*! Returns textual name of the given tag when found in the given IFD. The + * name is a short, unique, non-localized text string containing only + * US-ASCII alphanumeric characters. + * \param[in] tag EXIF tag + * \param[in] ifd IFD + * \return textual name of the tag + */ +const char *exif_tag_get_name_in_ifd (ExifTag tag, ExifIfd ifd); + +/*! Returns textual title of the given tag when found in the given IFD. + * \param[in] tag EXIF tag + * \param[in] ifd IFD + * \return textual title of the tag + */ +const char *exif_tag_get_title_in_ifd (ExifTag tag, ExifIfd ifd); + +/*! Returns verbose textual description of the given tag when found in the + * given IFD. + * \param[in] tag EXIF tag + * \param[in] ifd IFD + * \return textual description of the tag + */ +const char *exif_tag_get_description_in_ifd (ExifTag tag, ExifIfd ifd); + ExifSupportLevel exif_tag_get_support_level_in_ifd (ExifTag, ExifIfd, ExifDataType); Index: exif-mnote-data.h =================================================================== RCS file: /cvsroot/libexif/libexif/libexif/exif-mnote-data.h,v retrieving revision 1.5 retrieving revision 1.6 diff -u -p -d -r1.5 -r1.6 --- exif-mnote-data.h 17 Feb 2008 18:31:56 -0000 1.5 +++ exif-mnote-data.h 22 Nov 2008 07:08:56 -0000 1.6 @@ -1,5 +1,7 @@ -/* exif-mnote-data.h - * +/*! \file exif-mnote-data.h + * \brief Handling EXIF MakerNote tags + */ +/* * Copyright (c) 2003 Lutz Mueller <lu...@us...> * * This library is free software; you can redistribute it and/or @@ -27,6 +29,7 @@ extern "C" { #include <libexif/exif-log.h> +/*! Data found in the MakerNote tag */ typedef struct _ExifMnoteData ExifMnoteData; void exif_mnote_data_ref (ExifMnoteData *); @@ -36,14 +39,56 @@ void exif_mnote_data_load (ExifMnoteData unsigned int); void exif_mnote_data_save (ExifMnoteData *, unsigned char **, unsigned int *); -unsigned int exif_mnote_data_count (ExifMnoteData *); -unsigned int exif_mnote_data_get_id (ExifMnoteData *, unsigned int); -const char *exif_mnote_data_get_name (ExifMnoteData *, unsigned int); -const char *exif_mnote_data_get_title (ExifMnoteData *, unsigned int); -const char *exif_mnote_data_get_description (ExifMnoteData *, unsigned int); +/*! Return the number of tags in the MakerNote. + * \param[in] d MakerNote data + * \return number of tags, or 0 if no MakerNote or the type is not supported + */ +unsigned int exif_mnote_data_count (ExifMnoteData *d); -/* Returns NULL or val */ -char *exif_mnote_data_get_value (ExifMnoteData *, unsigned int, char *val, unsigned int maxlen); +/*! Return the MakerNote tag number for the tag at the specified index within + * the MakerNote. + * \param[in] d MakerNote data + * \param[in] n index of the entry within the MakerNote data + * \return MakerNote tag number + */ +unsigned int exif_mnote_data_get_id (ExifMnoteData *d, unsigned int n); + +/*! Returns textual name of the given MakerNote tag. The name is a short, + * unique (within this type of MakerNote), non-localized text string + * containing only US-ASCII alphanumeric characters. + * \param[in] d MakerNote data + * \param[in] n tag number within the namespace of this type of MakerNote + * \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. + * \param[in] d MakerNote data + * \param[in] n tag number within the namespace of this type of MakerNote + * \return textual name of the tag + */ +const char *exif_mnote_data_get_title (ExifMnoteData *d, unsigned int n); + +/*! 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 + * \return textual description of the tag + */ +const char *exif_mnote_data_get_description (ExifMnoteData *d, unsigned int n); + +/*! Return a textual representation of the value of the MakerNote entry. + * + * CAUTION: The character set of the returned string may be in + * the encoding of the current locale or the native encoding + * of the camera. + * + * \param[in] d MakerNote data + * \param[in] n tag number within the namespace of this type of MakerNote + * \param[out] val buffer in which to store value + * \param[in] maxlen length of the buffer val + * \return val pointer, or NULL on error + */ +char *exif_mnote_data_get_value (ExifMnoteData *d, unsigned int n, char *val, unsigned int maxlen); void exif_mnote_data_log (ExifMnoteData *, ExifLog *); Index: exif-mem.h =================================================================== RCS file: /cvsroot/libexif/libexif/libexif/exif-mem.h,v retrieving revision 1.6 retrieving revision 1.7 diff -u -p -d -r1.6 -r1.7 --- exif-mem.h 17 Feb 2008 18:31:56 -0000 1.6 +++ exif-mem.h 22 Nov 2008 07:08:56 -0000 1.7 @@ -2,7 +2,6 @@ * \brief Define the ExifMem data type and the associated functions. * ExifMem defines the memory management functions used by the ExifLoader. */ - /* exif-mem.h * * Copyright (c) 2003 Lutz Mueller <lu...@us...> Index: exif-system.h =================================================================== RCS file: /cvsroot/libexif/libexif/libexif/exif-system.h,v retrieving revision 1.2 retrieving revision 1.3 diff -u -p -d -r1.2 -r1.3 --- exif-system.h 14 Aug 2007 19:57:42 -0000 1.2 +++ exif-system.h 22 Nov 2008 07:08:56 -0000 1.3 @@ -1,6 +1,7 @@ -/** \file exif-system.h +/*! \file exif-system.h * \brief System specific definitions, not for installation! - * + */ +/* * Copyright (C) 2007 Hans Ulrich Niedermann <gp...@n-...> * * This library is free software; you can redistribute it and/or Index: exif-loader.h =================================================================== RCS file: /cvsroot/libexif/libexif/libexif/exif-loader.h,v retrieving revision 1.7 retrieving revision 1.8 diff -u -p -d -r1.7 -r1.8 --- exif-loader.h 17 Feb 2008 18:31:56 -0000 1.7 +++ exif-loader.h 22 Nov 2008 07:08:56 -0000 1.8 @@ -31,38 +31,42 @@ extern "C" { #endif /* __cplusplus */ +/*! Data used by the loader interface */ typedef struct _ExifLoader ExifLoader; -/*! Allocate a new ExifLoader - * \returns the allocated 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 an #ExifMem * \param[in] mem the ExifMem - * \returns the allocated ExifLoader + * \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. */ void exif_loader_ref (ExifLoader *loader); -/*! Decrease the refcount of the ExifLoader - * \param[in] loader the ExifLoader to decrease the refcount of. - * If the refcount reaches 0, the ExifLoader is freeed. + +/*! Decrease the refcount of the #ExifLoader + * \param[in] loader ExifLoader to decrease the refcount of. + * If the refcount reaches 0, the ExifLoader is freed. */ void exif_loader_unref (ExifLoader *loader); -/*! Write a file to the ExifLoader - * \param[in] loader the loader - * \param[in] fname the path to the file to read +/*! Write a file into the #ExifLoader from the filesystem. + * \param[in] loader loader + * \param[in] fname path to the file to read */ void exif_loader_write_file (ExifLoader *loader, const char *fname); -/*! Write a buffer to the ExifLoader - * \param[in] loader the loader to write too - * \param[in] buf the buffer to read from - * \param[in] sz the size of the buffer - * \returns 1 while EXIF data is read (or while there is still hope that there will be EXIF data later on), 0 otherwise. +/*! Write a buffer into the ExifLoader from a memory block. + * \param[in] loader loader to write to + * \param[in] buf buffer to read from + * \param[in] sz size of the buffer + * \return 1 while EXIF data is read (or while there is still hope that there will be EXIF data later on), 0 otherwise. */ unsigned char exif_loader_write (ExifLoader *loader, unsigned char *buf, unsigned int sz); @@ -70,9 +74,10 @@ unsigned char exif_loader_write (ExifLoa * \param[in] loader the loader */ void exif_loader_reset (ExifLoader *loader); + /*! Get an ExifData out of an ExifLoader * \param[in] loader the loader - * \returns and allocated ExifData + * \return allocated ExifData */ ExifData *exif_loader_get_data (ExifLoader *loader); Index: exif.h =================================================================== RCS file: /cvsroot/libexif/libexif/libexif/exif.h,v retrieving revision 1.8 retrieving revision 1.9 diff -u -p -d -r1.8 -r1.9 --- exif.h 19 Nov 2008 08:14:44 -0000 1.8 +++ exif.h 22 Nov 2008 07:08:56 -0000 1.9 @@ -11,18 +11,39 @@ * * \section using_libexif Using libexif * - * ##include <libexif/exif-data.h> + * \#include <libexif/exif-data.h> * * libexif provides a libexif.pc file for use with pkgconfig on the * libexif installation. If you are using libtool to build your * package, you can also integrate make use of libexif-uninstalled.pc. * + * \section data_structures Primary Data Structures + * + * #ExifLoader + * State maintained by the loader interface while importing EXIF data + * from an external file or memory + * + * #ExifData + * The entirety of EXIF data found in an image + * + * #ExifContent + * All EXIF tags in a single IFD + * + * #ExifEntry + * Data found in a single EXIF tag + * + * #ExifMnoteData + * All data found in the MakerNote tag + * + * #ExifLog + * State maintained by the logging interface + * * \section string_conventions String Conventions * * Strings of 8 bit characters ("char*"). When libexif is compiled with * NLS, character set and encoding are as set in the current locale, * except for strings that come directly from the data in EXIF - * tags which are returned in raw form. + * tags which are currently returned in raw form. * * \section memory_management Memory Management Patterns * Index: exif-entry.h =================================================================== RCS file: /cvsroot/libexif/libexif/libexif/exif-entry.h,v retrieving revision 1.16 retrieving revision 1.17 diff -u -p -d -r1.16 -r1.17 --- exif-entry.h 17 Feb 2008 18:31:55 -0000 1.16 +++ exif-entry.h 22 Nov 2008 07:08:56 -0000 1.17 @@ -1,6 +1,7 @@ /*! \file exif-entry.h * \brief Handling EXIF entries - * + */ +/* * Copyright (c) 2001 Lutz Mueller <lu...@us...> * * This library is free software; you can redistribute it and/or @@ -26,6 +27,7 @@ extern "C" { #endif /* __cplusplus */ +/*! Data found in one EXIF tag */ typedef struct _ExifEntry ExifEntry; typedef struct _ExifEntryPrivate ExifEntryPrivate; @@ -55,36 +57,61 @@ ExifEntry *exif_entry_new (void); ExifEntry *exif_entry_new_mem (ExifMem *); -/*! Increase reference counter for #ExifEntry* */ +/*! Increase reference counter for #ExifEntry* + * \param[in] entry #ExifEntry + */ void exif_entry_ref (ExifEntry *entry); -/*! Decrease reference counter for #ExifEntry* */ +/*! Decrease reference counter for #ExifEntry* + * \param[in] entry #ExifEntry + */ void exif_entry_unref (ExifEntry *entry); /*! Actually free the #ExifEntry* * * \deprecated Should not be called directly. Use exif_entry_ref() and * exif_entry_unref() instead. + * + * \param[in] entry EXIF entry */ void exif_entry_free (ExifEntry *entry); -void exif_entry_initialize (ExifEntry *entry, ExifTag tag); +/*! Initialize an empty #ExifEntry with default data for the given tag. + * If the entry is already initialized, this function does nothing. + * \param[out] e entry to initialize + * \param[in] tag tag number to initialize as + */ +void exif_entry_initialize (ExifEntry *e, ExifTag tag); + void exif_entry_fix (ExifEntry *entry); /* For your convenience */ -/*! Return the value of the EXIF entry +/*! Return a textual representation of the value of the EXIF entry. * - * CAUTION: The character set of the returned string is not defined. - * It may be UTF-8, latin1, the native encoding of the - * computer, or the native encoding of the camera. + * CAUTION: The character set of the returned string may be in + * the encoding of the current locale or the native encoding + * of the camera. + * + * \param[in] entry EXIF entry + * \param[out] val buffer in which to store value + * \param[in] maxlen length of the buffer val + * \return val pointer */ const char *exif_entry_get_value (ExifEntry *entry, char *val, unsigned int maxlen); -/*! Dump text representation of #ExifEntry to stdout */ +/*! Dump text representation of #ExifEntry to stdout. + * This is intended for diagnostic purposes only. + * \param[in] entry EXIF tag data + * \param[in] indent how many levels deep to indent the data + */ void exif_entry_dump (ExifEntry *entry, unsigned int indent); +/*! Returns the IFD number of the given #ExifEntry + * \param[in] e an #ExifEntry* + * \return IFD number, or EXIF_IFD_COUNT on error + */ #define exif_entry_get_ifd(e) ((e)?exif_content_get_ifd((e)->parent):EXIF_IFD_COUNT) #ifdef __cplusplus Index: exif-log.h =================================================================== RCS file: /cvsroot/libexif/libexif/libexif/exif-log.h,v retrieving revision 1.9 retrieving revision 1.10 diff -u -p -d -r1.9 -r1.10 --- exif-log.h 17 Feb 2008 18:31:56 -0000 1.9 +++ exif-log.h 22 Nov 2008 07:08:56 -0000 1.10 @@ -1,6 +1,7 @@ /*! \file exif-log.h - * \brief log message infrastructure - * + * \brief Log message infrastructure + */ +/* * Copyright (c) 2004 Lutz Mueller <lu...@us...> * * This library is free software; you can redistribute it and/or @@ -29,12 +30,23 @@ extern "C" { #include <libexif/exif-mem.h> #include <stdarg.h> +/*! State maintained by the logging interface */ typedef struct _ExifLog ExifLog; +/*! Create a new logging instance. + * \return new instance of #ExifLog + * \see exif_log_free + */ ExifLog *exif_log_new (void); ExifLog *exif_log_new_mem (ExifMem *); void exif_log_ref (ExifLog *log); void exif_log_unref (ExifLog *log); + +/*! Deletes instance of #ExifLog. + * \param[in] log #ExifLog + * \return new instance of #ExifLog + * \see exif_log_new + */ void exif_log_free (ExifLog *log); typedef enum { @@ -43,15 +55,28 @@ typedef enum { EXIF_LOG_CODE_NO_MEMORY, EXIF_LOG_CODE_CORRUPT_DATA } ExifLogCode; -const char *exif_log_code_get_title (ExifLogCode); /* Title for dialog */ -const char *exif_log_code_get_message (ExifLogCode); /* Message for dialog */ -/** Log callback function prototype. +/*! Return a textual description of the given class of error log. + * \param[in] code logging message class + * \return textual description of the log class + */ +const char *exif_log_code_get_title (ExifLogCode code); + +/*! Return a verbose description of the given class of error log. + * \param[in] code logging message class + * \return verbose description of the log class + */ +const char *exif_log_code_get_message (ExifLogCode code); + +/*! Log callback function prototype. */ typedef void (* ExifLogFunc) (ExifLog *log, ExifLogCode, const char *domain, const char *format, va_list args, void *data); -/** Register log callback function. +/*! Register log callback function. + * \param[in] log #ExifLog + * \param[in] func callback function to set + * \param[in] data data to pass into callback function */ void exif_log_set_func (ExifLog *log, ExifLogFunc func, void *data); Index: exif-entry.c =================================================================== RCS file: /cvsroot/libexif/libexif/libexif/exif-entry.c,v retrieving revision 1.120 retrieving revision 1.121 diff -u -p -d -r1.120 -r1.121 --- exif-entry.c 18 Nov 2008 10:15:50 -0000 1.120 +++ exif-entry.c 22 Nov 2008 07:08:56 -0000 1.121 @@ -1124,7 +1124,7 @@ exif_entry_get_value (ExifEntry *e, char } -/** +/*! * \bug Log and report failed exif_mem_malloc() calls. */ void Index: exif-data.h =================================================================== RCS file: /cvsroot/libexif/libexif/libexif/exif-data.h,v retrieving revision 1.16 retrieving revision 1.17 diff -u -p -d -r1.16 -r1.17 --- exif-data.h 6 Nov 2008 07:31:28 -0000 1.16 +++ exif-data.h 22 Nov 2008 07:08:56 -0000 1.17 @@ -1,6 +1,7 @@ /*! \file exif-data.h * \brief Defines the ExifData type and the associated functions. - * + */ +/* * \author Lutz Mueller <lu...@us...> * \date 2001-2005 * @@ -33,6 +34,7 @@ extern "C" { #include <libexif/exif-log.h> #include <libexif/exif-tag.h> +/*! Represents the entire EXIF data found in an image */ typedef struct _ExifData ExifData; typedef struct _ExifDataPrivate ExifDataPrivate; @@ -50,13 +52,19 @@ struct _ExifData ExifDataPrivate *priv; }; +/*! Allocate a new #ExifData. + * \return allocated #ExifData + */ ExifData *exif_data_new (void); + ExifData *exif_data_new_mem (ExifMem *); -/*! \brief load exif data from file +/*! Load EXIF data from file * \param[in] path filename including path + * \return allocated #ExifData, or NULL on error */ ExifData *exif_data_new_from_file (const char *path); + ExifData *exif_data_new_from_data (const unsigned char *data, unsigned int size); @@ -69,13 +77,29 @@ void exif_data_ref (ExifData *dat void exif_data_unref (ExifData *data); void exif_data_free (ExifData *data); +/*! Return the byte order in use by this EXIF structure. + * \param[in] data EXIF data + * \return byte order + */ ExifByteOrder exif_data_get_byte_order (ExifData *data); + void exif_data_set_byte_order (ExifData *data, ExifByteOrder order); -ExifMnoteData *exif_data_get_mnote_data (ExifData *); +/*! Return the MakerNote data out of the EXIF data. + * \param[in] d EXIF data + * \return MakerNote data, or NULL if not found + */ +ExifMnoteData *exif_data_get_mnote_data (ExifData *d); + void exif_data_fix (ExifData *); typedef void (* ExifDataForeachContentFunc) (ExifContent *, void *user_data); + +/*! Executes function on each IFD in turn. + * \param[in] data EXIF data over which to iterate + * \param[in] func function to call for each entry + * \param[in] data data to pass into func on each call + */ void exif_data_foreach_content (ExifData *data, ExifDataForeachContentFunc func, void *user_data); @@ -94,11 +118,23 @@ void exif_data_unset_option void exif_data_set_data_type (ExifData *, ExifDataType); ExifDataType exif_data_get_data_type (ExifData *); -/* For debugging purposes and error reporting */ +/*! Dump all EXIF data to stdout. + * This is intended for diagnostic purposes only. + * \param[in] data EXIF data + */ void exif_data_dump (ExifData *data); + +/*! Set the log message object for all IFDs. + * \param[in] data EXIF data + * \param[in] log #ExifLog + */ void exif_data_log (ExifData *data, ExifLog *log); -/** convenience macro. */ +/*! Return an #ExifEntry for the given tag if found in any IFD. + * \param[in] d #ExifData + * \param[in] t #ExifTag + * \return entry if found, else NULL if not found + */ #define exif_data_get_entry(d,t) \ (exif_content_get_entry(d->ifd[EXIF_IFD_0],t) ? \ exif_content_get_entry(d->ifd[EXIF_IFD_0],t) : \ Index: exif-format.h =================================================================== RCS file: /cvsroot/libexif/libexif/libexif/exif-format.h,v retrieving revision 1.7 retrieving revision 1.8 diff -u -p -d -r1.7 -r1.8 --- exif-format.h 17 Feb 2008 18:31:55 -0000 1.7 +++ exif-format.h 22 Nov 2008 07:08:56 -0000 1.8 @@ -1,4 +1,7 @@ -/* exif-format.h +/*! \file exif-format.h + * \brief Handling native EXIF data types + */ +/* * * Copyright (c) 2001 Lutz Mueller <lu...@us...> * @@ -25,6 +28,7 @@ extern "C" { #endif /* __cplusplus */ +/*! EXIF tag data formats */ typedef enum { EXIF_FORMAT_BYTE = 1, EXIF_FORMAT_ASCII = 2, @@ -40,7 +44,16 @@ typedef enum { EXIF_FORMAT_DOUBLE = 12 } ExifFormat; +/*! Return a textual representation of the given EXIF data type. + * \param[in] format EXIF data format + * \return localized textual name + */ const char *exif_format_get_name (ExifFormat format); + +/*! Return the raw size of the given EXIF data type. + * \param[in] format EXIF data format + * \return size in bytes + */ unsigned char exif_format_get_size (ExifFormat format); #ifdef __cplusplus |
From: Dan F. <dfa...@us...> - 2008-11-21 19:02:06
|
Update of /cvsroot/libexif/exif/po In directory ddv4jf1.ch3.sourceforge.com:/tmp/cvs-serv10751/po Modified Files: zh_CN.po Log Message: po/zh_CN.po: Updated Chinese (simplified) translation by Ji ZhengYu Index: zh_CN.po =================================================================== RCS file: /cvsroot/libexif/exif/po/zh_CN.po,v retrieving revision 1.2 retrieving revision 1.3 diff -u -p -d -r1.2 -r1.3 --- zh_CN.po 12 Nov 2008 03:29:22 -0000 1.2 +++ zh_CN.po 21 Nov 2008 19:02:00 -0000 1.3 @@ -6,10 +6,10 @@ # 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-11-11 20:17+0800\n" +"POT-Creation-Date: 2008-11-06 01:03-0800\n" +"PO-Revision-Date: 2008-11-21 19:09ä¸å½æ åæ¶é´\n" "Last-Translator: Ji ZhengYu <zhe...@gm...>\n" "Language-Team: Chinese (simplified) <tra...@li...>\n" "MIME-Version: 1.0\n" @@ -17,257 +17,275 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" -#: exif/actions.c:45 +#: exif/actions.c:56 +#, c-format +msgid "Not enough memory." +msgstr "没æè¶³å¤çå åã" + +#: exif/actions.c:74 +#, c-format +msgid "Setting a value for this tag is unsupported!" +msgstr "䏿¯æè®¾å®æ¤æ è¯çå¼ï¼" + +#: exif/actions.c:91 +#, c-format +msgid "Too few components specified!" +msgstr "åæ°å¤ªå°ï¼" + +#: exif/actions.c:106 +#, c-format +msgid "Internal error. Please contact <%s>." +msgstr "å é¨é误ã请èç³» <%s>ã" + +#: exif/actions.c:143 +#, c-format +msgid "Not yet implemented!" +msgstr "䏿¯æçåè½ï¼" + +#: exif/actions.c:150 +#, c-format +msgid "Warning; Too many components specified!" +msgstr "è¦åï¼æå®äºå¤ªå¤åæ°ï¼" + +#: exif/actions.c:172 +#, c-format +msgid "Too much EXIF data (%i bytes). Only %i bytes are allowed." +msgstr "EXIF æ°æ®å¤ªå¤(%i 个åè)ãåªå 许 %i 个åèã" + +#: exif/actions.c:183 exif/actions.c:358 +#, c-format +msgid "Wrote file '%s'." +msgstr "åå ¥æä»¶â%sâã" + +#: exif/actions.c:203 +#, c-format +msgid "EXIF entry '%s' " +msgstr "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 "åå¨äº IFDâ%sâä¸:\n" + +#: exif/actions.c:251 +#, c-format +msgid "IFD '%s' does not contain a tag '%s'!" +msgstr "IFDâ%sâ䏿²¡æ EXIF ä¿¡æ¯æ è¯â%sâï¼" + +#: exif/actions.c:282 +#, c-format +msgid "Could not open '%s' (%m)!" +msgstr "æ æ³æå¼â%sâ(%m)ï¼" + +#: exif/actions.c:285 +#, c-format +msgid "Could not open '%s' (%s)!" +msgstr "æ æ³æå¼â%sâ(%s)ï¼" + +#: exif/actions.c:295 +#, c-format +msgid "Could not read '%s' (%m)." +msgstr "æ æ³è¯»åâ%sâ(%m)ã" + +#: exif/actions.c:298 +#, c-format +msgid "Could not read '%s' (%s)." +msgstr "æ æ³è¯»åâ%sâ(%s)ã" + +#: exif/actions.c:317 +#, c-format +msgid "IFD '%s' does not contain tag '%s'." +msgstr "IFD â%sâä¸ä¸å« EXIF ä¿¡æ¯æ è¯â%sâã" + +#: exif/actions.c:323 +#, c-format +msgid "'%s' does not contain tag '%s'." +msgstr "â%sâä¸ä¸å«æ è¯â%sâã" + +#: exif/actions.c:341 +#, c-format +msgid "'%s' does not contain a thumbnail!" +msgstr "â%sâä¸ä¸å«ç¼©ç¥å¾ï¼" + +#: exif/actions.c:350 +#, c-format +msgid "Could not open '%s' for writing (%m)!" +msgstr "æ æ³ä»¥åæ¹å¼æå¼â%sâ(%m)ï¼" + +#: exif/actions.c:353 +#, c-format +msgid "Could not open '%s' for writing (%s)!" +msgstr "æ æ³ä»¥åæ¹å¼æå¼â%sâ(%s)ï¼" + +#: exif/actions.c:371 #, c-format msgid "EXIF tags in '%s':" msgstr "â%sâä¸ç EXIF ä¿¡æ¯æ è¯ä¸º:" -#: exif/actions.c:114 +#: exif/actions.c:440 #, c-format msgid "Unknown MakerNote format.\n" msgstr "æªç¥ç MakerNote æ ¼å¼ã\n" -#: exif/actions.c:121 +#: exif/actions.c:447 #, c-format msgid "MakerNote does not contain any value.\n" msgstr "MakerNote 没æä»»ä½å 容ã\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 嫿 %i 个å¼:\n" -#: exif/actions.c:134 +#: exif/actions.c:460 msgid "Unknown tag" msgstr "æªç¥çä¿¡æ¯æ è¯" -#: exif/actions.c:137 +#: exif/actions.c:464 msgid "Unknown value" msgstr "æªç¥å¼" -#: exif/actions.c:162 +#: exif/actions.c:490 #, c-format msgid "EXIF tags in '%s' ('%s' byte order):" msgstr "â%sâä¸çEXIF ä¿¡æ¯æ è¯(â%sâåè顺åº):" -#: exif/actions.c:167 exif/actions.c:169 +#: exif/actions.c:495 exif/actions.c:497 msgid "Tag" msgstr "ä¿¡æ¯æ è¯" -#: 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 "å¼" -#: exif/actions.c:181 +#: exif/actions.c:509 #, c-format msgid "EXIF data contains a thumbnail (%i bytes)." msgstr "EXIF æ°æ®ä¸å«æç¼©ç¥å¾(%i 个åè)ã" -#: exif/actions.c:217 +#: exif/actions.c:545 #, c-format msgid "ThumbnailSize\t%i\n" msgstr "缩ç¥å¾å°ºå¯¸\t%i\n" -#: exif/main.c:57 -#, c-format -msgid "Internal error. Please contact <%s>." -msgstr "å é¨é误ã请èç³» <%s>ã" - -#: exif/main.c:80 -#, c-format -msgid "EXIF entry '%s' " -msgstr "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 "åå¨äº IFDâ%sâä¸:\n" - -#: exif/main.c:120 -#, c-format -msgid "Not enough memory." -msgstr "没æè¶³å¤çå åã" - -#: exif/main.c:138 -#, c-format -msgid "Too few components specified!" -msgstr "åæ°å¤ªå°ï¼" - -#: exif/main.c:168 -#, c-format -msgid "Not yet implemented!" -msgstr "䏿¯æçåè½ï¼" - -#: exif/main.c:241 -#, c-format -msgid "Too much EXIF data (%i bytes). Only %i bytes are allowed." -msgstr "EXIF æ°æ®å¤ªå¤(%i 个åè)ãåªå 许 %i 个åèã" - -#: exif/main.c:255 exif/main.c:513 -#, c-format -msgid "Wrote file '%s'." -msgstr "åå ¥æä»¶â%sâã" - -#: exif/main.c:337 +#: exif/main.c:175 msgid "Display software version" msgstr "æ¾ç¤ºè½¯ä»¶çæ¬" -#: exif/main.c:339 +#: exif/main.c:177 msgid "Show IDs instead of tag names" msgstr "æ¾ç¤º IDsï¼ä»¥ä»£æ¿ä¿¡æ¯æ è¯åç§°" -#: exif/main.c:341 +#: exif/main.c:179 msgid "Select tag" msgstr "éæ©ä¿¡æ¯æ è¯" -#: exif/main.c:341 +#: exif/main.c:179 msgid "tag" msgstr "ä¿¡æ¯æ è¯" -#: exif/main.c:343 +#: exif/main.c:181 msgid "Select IFD" msgstr "éæ© 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 "ååºææ EXIF ä¿¡æ¯æ è¯" -#: exif/main.c:347 +#: exif/main.c:185 msgid "Show contents of tag MakerNote" msgstr "æ¾ç¤º MakerNote çå 容" -#: exif/main.c:349 +#: exif/main.c:187 msgid "Remove tag or ifd" msgstr "å é¤ä¿¡æ¯æ è¯ææ¯ ifd" -#: exif/main.c:351 +#: exif/main.c:189 msgid "Show description of tag" msgstr "æ¾ç¤ºä¿¡æ¯æ è¯è¯´æ" -#: exif/main.c:353 +#: exif/main.c:191 msgid "Extract thumbnail" msgstr "è§£åºç¼©ç¥å¾" -#: exif/main.c:355 +#: exif/main.c:193 msgid "Remove thumbnail" msgstr "å é¤ç¼©ç¥å¾" -#: exif/main.c:357 +#: exif/main.c:195 msgid "Insert FILE as thumbnail" msgstr "å° FILE ä½ä¸ºç¼©ç¥å¾æå ¥" -#: exif/main.c:357 exif/main.c:359 +#: exif/main.c:195 exif/main.c:197 msgid "FILE" msgstr "FILE" -#: exif/main.c:359 +#: exif/main.c:197 msgid "Write data to FILE" msgstr "å°æ°æ®åå ¥ FILE" -#: exif/main.c:363 +#: exif/main.c:201 +msgid "Create EXIF data if not existing" +msgstr "妿 EXIF æ°æ®ä¸åå¨å°±å建å®" + +#: exif/main.c:203 msgid "Output in a machine-readable (tab delimited) format" msgstr "以æºå¨å¯è¯»çæ ¼å¼(tab åé)è¾åº" -#: exif/main.c:366 +#: exif/main.c:206 msgid "Output in a XML format" msgstr "以 XML æ ¼å¼è¾åº" -#: exif/main.c:369 +#: exif/main.c:209 msgid "Show debugging messages" msgstr "æ¾ç¤ºè°ç¤ºä¿¡æ¯" -#: exif/main.c:386 +#: exif/main.c:229 msgid "[OPTION...] file" msgstr "[é项...] æä»¶" -#: exif/main.c:414 +#: exif/main.c:241 #, c-format msgid "Invalid IFD '%s'. Valid IFDs are '0', '1', 'EXIF', 'GPS', and 'Interoperability'." msgstr "æ æç IFDâ%sâãææç IFDs æ¯â0â,â1â,âEXIFâï¼âGPSâï¼ä»¥åâInteroperabilityâã" -#: exif/main.c:422 +#: exif/main.c:250 #, c-format msgid "Invalid tag '%s'!" msgstr "æ æç EXIF ä¿¡æ¯æ è¯â%sâï¼" -#: exif/main.c:427 -msgid "Please specify a tag!" -msgstr "请æå®ä¸ä¸ª EXIF ä¿¡æ¯æ è¯ï¼" +#: exif/main.c:258 +msgid "You need to specify a tag!" +msgstr "æ¨éè¦æå®ä¸ä¸ª EXIF ä¿¡æ¯æ è¯ï¼" -#: exif/main.c:432 +#: exif/main.c:263 +msgid "You need to specify an IFD!" +msgstr "æ¨éè¦æå®ä¸ä¸ªIFDï¼" + +#: exif/main.c:286 #, c-format msgid "Tag '%s' " msgstr "ä¿¡æ¯æ è¯â%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â䏿²¡æ EXIF æ°æ®ï¼" -#: exif/main.c:486 -#, c-format -msgid "IFD '%s' does not contain tag '%s'." -msgstr "IFD â%sâä¸ä¸å« EXIF ä¿¡æ¯æ è¯â%sâã" - -#: exif/main.c:495 -#, c-format -msgid "'%s' does not contain a thumbnail!" -msgstr "â%sâä¸ä¸å«ç¼©ç¥å¾ï¼" - -#: exif/main.c:503 -#, c-format -msgid "Could not open '%s' for writing (%m)!" -msgstr "æ æ³ä»¥åæ¹å¼æå¼â%sâ(%m)ï¼" - -#: exif/main.c:507 -#, c-format -msgid "Could not open '%s' for writing (%s)!" -msgstr "æ æ³ä»¥åæ¹å¼æå¼â%sâ(%s)ï¼" - -#: exif/main.c:542 -#, c-format -msgid "Could not open '%s' (%m)!" -msgstr "æ æ³æå¼â%sâ(%m)ï¼" - -#: exif/main.c:545 -#, c-format -msgid "Could not open '%s' (%s)!" -msgstr "æ æ³æå¼â%sâ(%s)ï¼" - -#: exif/main.c:557 -#, c-format -msgid "Could not read '%s' (%m)." -msgstr "æ æ³è¯»åâ%sâ(%m)ã" - -#: exif/main.c:560 -#, c-format -msgid "Could not read '%s' (%s)." -msgstr "æ æ³è¯»åâ%sâ(%s)ã" - -#: exif/main.c:571 -msgid "You need to specify a tag!" -msgstr "æ¨éè¦æå®ä¸ä¸ª EXIF ä¿¡æ¯æ è¯ï¼" - -#: exif/main.c:576 exif/main.c:595 -msgid "You need to specify an IFD!" -msgstr "æ¨éè¦æå®ä¸ä¸ªIFDï¼" - -#: exif/main.c:607 -#, c-format -msgid "IFD '%s' does not contain a tag '%s'!" -msgstr "IFDâ%sâ䏿²¡æ EXIF ä¿¡æ¯æ è¯â%sâï¼" +#~ msgid "Please specify a tag!" +#~ msgstr "请æå®ä¸ä¸ª EXIF ä¿¡æ¯æ è¯ï¼" |
From: Dan F. <dfa...@us...> - 2008-11-21 19:02:06
|
Update of /cvsroot/libexif/exif In directory ddv4jf1.ch3.sourceforge.com:/tmp/cvs-serv10751 Modified Files: ChangeLog Log Message: po/zh_CN.po: Updated Chinese (simplified) translation by Ji ZhengYu Index: ChangeLog =================================================================== RCS file: /cvsroot/libexif/exif/ChangeLog,v retrieving revision 1.79 retrieving revision 1.80 diff -u -p -d -r1.79 -r1.80 --- ChangeLog 19 Nov 2008 05:36:53 -0000 1.79 +++ ChangeLog 21 Nov 2008 19:01:58 -0000 1.80 @@ -1,3 +1,7 @@ +2008-11-21 Dan Fandrich <da...@co...> + + * po/zh_CN.po: Updated Chinese (simplified) translation by Ji ZhengYu + 2008-11-18 Dan Fandrich <da...@co...> * po/id.po: Updated Indonesian translation by Andhika Padmawan |
From: Dan F. <dfa...@us...> - 2008-11-20 00:49:16
|
Update of /cvsroot/libexif/exif/libjpeg In directory ddv4jf1.ch3.sourceforge.com:/tmp/cvs-serv993 Modified Files: jpeg-data.h Log Message: Including the directory name is more portable Index: jpeg-data.h =================================================================== RCS file: /cvsroot/libexif/exif/libjpeg/jpeg-data.h,v retrieving revision 1.6 retrieving revision 1.7 diff -u -p -d -r1.6 -r1.7 --- jpeg-data.h 20 Nov 2008 00:25:47 -0000 1.6 +++ jpeg-data.h 20 Nov 2008 00:49:10 -0000 1.7 @@ -21,7 +21,7 @@ #ifndef __JPEG_DATA_H__ #define __JPEG_DATA_H__ -#include "jpeg-marker.h" +#include "libjpeg/jpeg-marker.h" #include <libexif/exif-data.h> #include <libexif/exif-log.h> |
From: Dan F. <dfa...@us...> - 2008-11-20 00:25:53
|
Update of /cvsroot/libexif/exif/libjpeg In directory ddv4jf1.ch3.sourceforge.com:/tmp/cvs-serv31639 Modified Files: jpeg-data.h Log Message: Don't use angle brackets around a non-system header file Index: jpeg-data.h =================================================================== RCS file: /cvsroot/libexif/exif/libjpeg/jpeg-data.h,v retrieving revision 1.5 retrieving revision 1.6 diff -u -p -d -r1.5 -r1.6 --- jpeg-data.h 30 Mar 2005 08:33:00 -0000 1.5 +++ jpeg-data.h 20 Nov 2008 00:25:47 -0000 1.6 @@ -21,7 +21,7 @@ #ifndef __JPEG_DATA_H__ #define __JPEG_DATA_H__ -#include <libjpeg/jpeg-marker.h> +#include "jpeg-marker.h" #include <libexif/exif-data.h> #include <libexif/exif-log.h> |
From: Dan F. <dfa...@us...> - 2008-11-19 08:44:59
|
Update of /cvsroot/libexif/exif/exif In directory ddv4jf1.ch3.sourceforge.com:/tmp/cvs-serv14941/exif Modified Files: main.c Log Message: Put all the terminal escape sequences into macros. Fixed a buffer overflow problem when creating a destination file name. Index: main.c =================================================================== RCS file: /cvsroot/libexif/exif/exif/main.c,v retrieving revision 1.65 retrieving revision 1.66 diff -u -p -d -r1.65 -r1.66 --- main.c 15 Jun 2008 15:29:20 -0000 1.65 +++ main.c 19 Nov 2008 08:44:47 -0000 1.66 @@ -53,15 +53,18 @@ # define POPT_TABLEEND { NULL, '\0', 0, 0, 0, NULL, NULL } #endif -/* escape codes for output colors */ -#define COL_BLUE "\033[34m" -#define COL_GREEN "\033[32m" -#define COL_RED "\033[31m" -#define COL_NORMAL "\033[0m" +/* ANSI escape codes for output colors */ +#define COL_BLUE "\033[34m" +#define COL_GREEN "\033[32m" +#define COL_RED "\033[31m" +#define COL_BOLD "\033[1m" +#define COL_UNDERLINE "\033[4m" +#define COL_NORMAL "\033[m" -/* Ensure that we're actuall printing the escape codes to a TTY. +/* Ensure that we're actually printing the escape codes to a TTY. * FIXME: We should make sure the terminal can actually understand these - * escape sequences + * escape sequences, or better yet, use vidattr(3X) to set colours + * instead. */ #if defined(HAVE_ISATTY) && defined(HAVE_FILENO) @@ -120,12 +123,10 @@ log_func (ExifLog *log, ExifLogCode code if (log_arg->ignore_corrupted) return; case EXIF_LOG_CODE_NO_MEMORY: - put_colorstring (stderr, "\033[31;1m"); - put_colorstring (stderr, "\033[31;4m"); + put_colorstring (stderr, COL_RED COL_BOLD COL_UNDERLINE); fprintf (stderr, exif_log_code_get_title (code)); fprintf (stderr, "\n"); - put_colorstring (stderr, "\033[;0m"); - put_colorstring (stderr, COL_RED); + put_colorstring (stderr, COL_NORMAL COL_RED); fprintf (stderr, exif_log_code_get_message (code)); fprintf (stderr, "\n"); fprintf (stderr, "%s: ", domain); @@ -311,7 +312,8 @@ main (int argc, const char **argv) else { strncpy (fout, *args, sizeof (fout) - 1); strncat (fout, ".modified.jpeg", - sizeof (fout) - 1); + sizeof (fout) - strlen(fout) - 1); + /* Should really abort if this file name is too long */ } p.fin = *args; |