commit 90a1fbd3658995b8a6ef55ddd8a9e75087449343
parent a68b76bb9d6b7ff69dbc52341c20c1a7429954da
Author: Christian Grothoff <christian@grothoff.org>
Date: Sun, 5 Jul 2026 23:04:47 +0200
misc minor fixes, releasing v1.17
Diffstat:
35 files changed, 425 insertions(+), 329 deletions(-)
diff --git a/ChangeLog b/ChangeLog
@@ -1,3 +1,9 @@
+Sun Jul 5 10:55:57 PM CEST 2026
+ Fixing various minor issues, including a missing 0 terminator
+ in ZIP handling under particular circumstances.
+ Thanks to Haitam Lazaar for reporting.
+ Releasing GNU libextractor 1.17. -CG
+
Tue Jun 30 05:13:30 PM CEST 2026
Fix tIME chunk parser in PNG plugin.
Fix mime-type detection in QT plugin.
diff --git a/configure.ac b/configure.ac
@@ -16,7 +16,7 @@
#
#
AC_PREREQ([2.72])
-AC_INIT([libextractor],[1.16],[bug-libextractor@gnu.org])
+AC_INIT([libextractor],[1.17],[bug-libextractor@gnu.org])
AC_CONFIG_AUX_DIR([build-aux])
AC_CONFIG_HEADERS([config.h])
AC_CONFIG_MACRO_DIR([m4])
diff --git a/po/ar.po b/po/ar.po
@@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: libextractor 1.9\n"
"Report-Msgid-Bugs-To: libextractor@gnu.org\n"
-"POT-Creation-Date: 2026-06-30 19:11+0200\n"
+"POT-Creation-Date: 2026-07-05 22:58+0200\n"
"PO-Revision-Date: 2026-01-24 21:12+0400\n"
"Last-Translator: Zayed Al-Saidi <zayed.alsaidi@gmail.com>\n"
"Language-Team: Arabic <(nothing)>\n"
@@ -94,46 +94,46 @@ msgstr "استخرج [خيارات] [اسم_الملف]*"
msgid "Extract metadata from files."
msgstr "استخراج البيانات الوصفية من الملفات."
-#: src/main/extract.c:294
+#: src/main/extract.c:297
#, c-format
msgid "Found by `%s' plugin:\n"
msgstr "عثر عليه بواسطة ملحق `%s':\n"
-#: src/main/extract.c:297 src/main/extract.c:386
+#: src/main/extract.c:300 src/main/extract.c:389
#: src/main/extractor_metatypes.c:153 src/main/extractor_print.c:86
#: src/main/extractor_print.c:96
msgid "unknown"
msgstr "مجهول"
-#: src/main/extract.c:302
+#: src/main/extract.c:305
#, c-format
msgid "%s - (unknown, %u bytes)\n"
msgstr "%s - (مجهول، %u بايت)\n"
-#: src/main/extract.c:333
+#: src/main/extract.c:336
#, c-format
msgid "%s - (binary, %u bytes)\n"
msgstr "%s - (ثنائي، %u بايت)\n"
-#: src/main/extract.c:861 src/main/extract.c:875
+#: src/main/extract.c:867 src/main/extract.c:881
msgid ""
"Illegal combination of options, cannot combine multiple styles of printing.\n"
msgstr "مزيج غير قانوني من الخيارات، لا يمكن دمج أنماط طباعة متعددة.\n"
-#: src/main/extract.c:910
+#: src/main/extract.c:916
#, c-format
msgid "You must specify an argument for the `%s' option (option ignored).\n"
msgstr "يجب عليك تحديد معطى للخيار `%s' (تجاهل الخيار).\n"
-#: src/main/extract.c:979
+#: src/main/extract.c:985
msgid "Use --help to get a list of options.\n"
msgstr "استخدم --help للحصول على قائمة الخيارات.\n"
-#: src/main/extract.c:1022
+#: src/main/extract.c:1028
msgid "% BiBTeX file\n"
msgstr "% ملف BiBTeX\n"
-#: src/main/extract.c:1032
+#: src/main/extract.c:1038
#, c-format
msgid "Keywords for file %s:\n"
msgstr "الكلمات المفتاحية للملف %s:\n"
@@ -2648,10 +2648,10 @@ msgstr "مراجعة رقم %u: المؤلف `%s' عمل على `%s'"
msgid "codec: %s, %u fps, %u ms"
msgstr "الترميز: %s، %u إطار في الثانية، %u ملي ثانية"
-#: src/plugins/wav_extractor.c:128
+#: src/plugins/wav_extractor.c:129
msgid "mono"
msgstr "أحادي"
-#: src/plugins/wav_extractor.c:128
+#: src/plugins/wav_extractor.c:129
msgid "stereo"
msgstr "مجسمي"
diff --git a/po/da.po b/po/da.po
@@ -10,7 +10,7 @@ msgid ""
msgstr ""
"Project-Id-Version: libextractor-1.9\n"
"Report-Msgid-Bugs-To: libextractor@gnu.org\n"
-"POT-Creation-Date: 2026-06-30 19:11+0200\n"
+"POT-Creation-Date: 2026-07-05 22:58+0200\n"
"PO-Revision-Date: 2019-02-14 16:38+0100\n"
"Last-Translator: Joe Hansen <joedalton2@yahoo.dk>\n"
"Language-Team: Danish <dansk@dansk-gruppen.dk>\n"
@@ -95,47 +95,47 @@ msgstr "udtræk [TILVALG] [FILNAVN]"
msgid "Extract metadata from files."
msgstr "Udtræk metadata fra filer."
-#: src/main/extract.c:294
+#: src/main/extract.c:297
#, c-format
msgid "Found by `%s' plugin:\n"
msgstr "Fundet af »%s«-udvidelsesmodulet:\n"
-#: src/main/extract.c:297 src/main/extract.c:386
+#: src/main/extract.c:300 src/main/extract.c:389
#: src/main/extractor_metatypes.c:153 src/main/extractor_print.c:86
#: src/main/extractor_print.c:96
msgid "unknown"
msgstr "ukendt"
-#: src/main/extract.c:302
+#: src/main/extract.c:305
#, c-format
msgid "%s - (unknown, %u bytes)\n"
msgstr "%s - (ukendt, %u byte)\n"
-#: src/main/extract.c:333
+#: src/main/extract.c:336
#, c-format
msgid "%s - (binary, %u bytes)\n"
msgstr "%s - (binær, %u byte)\n"
-#: src/main/extract.c:861 src/main/extract.c:875
+#: src/main/extract.c:867 src/main/extract.c:881
msgid ""
"Illegal combination of options, cannot combine multiple styles of printing.\n"
msgstr ""
"Ulovlig kombination af tilvalg, kan ikke kombinere flere udskrivningsstile.\n"
-#: src/main/extract.c:910
+#: src/main/extract.c:916
#, c-format
msgid "You must specify an argument for the `%s' option (option ignored).\n"
msgstr "Du skal angive et argument for tilvalget »%s« (tilvalg ignoreret).\n"
-#: src/main/extract.c:979
+#: src/main/extract.c:985
msgid "Use --help to get a list of options.\n"
msgstr "Brug --help for en liste over indstillinger.\n"
-#: src/main/extract.c:1022
+#: src/main/extract.c:1028
msgid "% BiBTeX file\n"
msgstr "% BiBTeX-fil\n"
-#: src/main/extract.c:1032
+#: src/main/extract.c:1038
#, c-format
msgid "Keywords for file %s:\n"
msgstr "Nøgleord for filen %s:\n"
@@ -2667,10 +2667,10 @@ msgstr "Revision #%u: Forfatteren »%s« arbejdede på »%s«"
msgid "codec: %s, %u fps, %u ms"
msgstr "kodning: %s, %u fps, %u ms"
-#: src/plugins/wav_extractor.c:128
+#: src/plugins/wav_extractor.c:129
msgid "mono"
msgstr "mono"
-#: src/plugins/wav_extractor.c:128
+#: src/plugins/wav_extractor.c:129
msgid "stereo"
msgstr "stereo"
diff --git a/po/de.po b/po/de.po
@@ -10,7 +10,7 @@ msgid ""
msgstr ""
"Project-Id-Version: libextractor 1.9\n"
"Report-Msgid-Bugs-To: libextractor@gnu.org\n"
-"POT-Creation-Date: 2026-06-30 19:11+0200\n"
+"POT-Creation-Date: 2026-07-05 22:58+0200\n"
"PO-Revision-Date: 2019-02-15 13:41+0100\n"
"Last-Translator: Mario Blättermann <mario.blaettermann@gmail.com>\n"
"Language-Team: German <translation-team-de@lists.sourceforge.net>\n"
@@ -102,50 +102,50 @@ msgstr "extract [OPTIONEN] [DATEINAME]*"
msgid "Extract metadata from files."
msgstr "Metadaten aus den Dateien extrahieren."
-#: src/main/extract.c:294
+#: src/main/extract.c:297
#, c-format
msgid "Found by `%s' plugin:\n"
msgstr "Gefunden vom »%s«-Plugin:\n"
-#: src/main/extract.c:297 src/main/extract.c:386
+#: src/main/extract.c:300 src/main/extract.c:389
#: src/main/extractor_metatypes.c:153 src/main/extractor_print.c:86
#: src/main/extractor_print.c:96
msgid "unknown"
msgstr "unbekannt"
-#: src/main/extract.c:302
+#: src/main/extract.c:305
#, c-format
msgid "%s - (unknown, %u bytes)\n"
msgstr "%s - (unbekannt, %u Bytes)\n"
-#: src/main/extract.c:333
+#: src/main/extract.c:336
#, c-format
msgid "%s - (binary, %u bytes)\n"
msgstr "%s - (binär, %u Bytes)\n"
-#: src/main/extract.c:861 src/main/extract.c:875
+#: src/main/extract.c:867 src/main/extract.c:881
msgid ""
"Illegal combination of options, cannot combine multiple styles of printing.\n"
msgstr ""
"Unzulässige Kombination der Optionen, mehrere Ausgabestile können nicht "
"gemischt werden.\n"
-#: src/main/extract.c:910
+#: src/main/extract.c:916
#, c-format
msgid "You must specify an argument for the `%s' option (option ignored).\n"
msgstr ""
"Sie müssen ein Argument für die Option »%s« angeben (Option wird "
"ignoriert).\n"
-#: src/main/extract.c:979
+#: src/main/extract.c:985
msgid "Use --help to get a list of options.\n"
msgstr "Verwenden Sie --help, um eine Liste aller Optionen zu sehen.\n"
-#: src/main/extract.c:1022
+#: src/main/extract.c:1028
msgid "% BiBTeX file\n"
msgstr "% BibTeX-Datei\n"
-#: src/main/extract.c:1032
+#: src/main/extract.c:1038
#, c-format
msgid "Keywords for file %s:\n"
msgstr "Schlüsserwörter für die Datei %s:\n"
@@ -2690,11 +2690,11 @@ msgstr "Revision #%u: Autor »%s« arbeitete an »%s«"
msgid "codec: %s, %u fps, %u ms"
msgstr "Codec: %s, %u fps, %u ms"
-#: src/plugins/wav_extractor.c:128
+#: src/plugins/wav_extractor.c:129
msgid "mono"
msgstr "Mono"
-#: src/plugins/wav_extractor.c:128
+#: src/plugins/wav_extractor.c:129
msgid "stereo"
msgstr "Stereo"
diff --git a/po/es.po b/po/es.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: libextractor 1.0.0-pre1\n"
"Report-Msgid-Bugs-To: libextractor@gnu.org\n"
-"POT-Creation-Date: 2026-06-30 19:11+0200\n"
+"POT-Creation-Date: 2026-07-05 22:58+0200\n"
"PO-Revision-Date: 2018-04-27 22:53+0200\n"
"Last-Translator: Francisco Javier Serrador <fserrador@gmail.com>\n"
"Language-Team: Spanish <es@tp.org.es>\n"
@@ -97,47 +97,47 @@ msgstr "extract [OPCIONES] [NOMBREFICHERO]*"
msgid "Extract metadata from files."
msgstr "Extrae metadatos desde ficheros."
-#: src/main/extract.c:294
+#: src/main/extract.c:297
#, c-format
msgid "Found by `%s' plugin:\n"
msgstr "Encontrado por complemento `%s':\n"
-#: src/main/extract.c:297 src/main/extract.c:386
+#: src/main/extract.c:300 src/main/extract.c:389
#: src/main/extractor_metatypes.c:153 src/main/extractor_print.c:86
#: src/main/extractor_print.c:96
msgid "unknown"
msgstr "desconocida"
-#: src/main/extract.c:302
+#: src/main/extract.c:305
#, c-format
msgid "%s - (unknown, %u bytes)\n"
msgstr "%s - (desconocido, %u bytes)\n"
-#: src/main/extract.c:333
+#: src/main/extract.c:336
#, c-format
msgid "%s - (binary, %u bytes)\n"
msgstr "%s - (binario, %u bytes)\n"
-#: src/main/extract.c:861 src/main/extract.c:875
+#: src/main/extract.c:867 src/main/extract.c:881
msgid ""
"Illegal combination of options, cannot combine multiple styles of printing.\n"
msgstr ""
-#: src/main/extract.c:910
+#: src/main/extract.c:916
#, c-format
msgid "You must specify an argument for the `%s' option (option ignored).\n"
msgstr "Debe especificar un argumento de la opción «%s» (opción ignorada).\n"
-#: src/main/extract.c:979
+#: src/main/extract.c:985
msgid "Use --help to get a list of options.\n"
msgstr "Emplee '--help' para obtener una lista de opciones.\n"
-#: src/main/extract.c:1022
+#: src/main/extract.c:1028
#, fuzzy
msgid "% BiBTeX file\n"
msgstr "Fichero %% BiBTeX\n"
-#: src/main/extract.c:1032
+#: src/main/extract.c:1038
#, c-format
msgid "Keywords for file %s:\n"
msgstr "Palabras claves para fichero %s:\n"
@@ -2659,10 +2659,10 @@ msgstr "Revisión #%u: Autor «%s» trabajado en «%s»"
msgid "codec: %s, %u fps, %u ms"
msgstr "código: %s, %u ppp, %u ms"
-#: src/plugins/wav_extractor.c:128
+#: src/plugins/wav_extractor.c:129
msgid "mono"
msgstr "mono"
-#: src/plugins/wav_extractor.c:128
+#: src/plugins/wav_extractor.c:129
msgid "stereo"
msgstr "estéreo"
diff --git a/po/fr.po b/po/fr.po
@@ -9,7 +9,7 @@ msgid ""
msgstr ""
"Project-Id-Version: libextractor 1.9\n"
"Report-Msgid-Bugs-To: libextractor@gnu.org\n"
-"POT-Creation-Date: 2026-06-30 19:11+0200\n"
+"POT-Creation-Date: 2026-07-05 22:58+0200\n"
"PO-Revision-Date: 2019-05-12 04:34+0200\n"
"Last-Translator: Stéphane Aulery <lkppo@free.fr>\n"
"Language-Team: French <traduc@traduc.org>\n"
@@ -99,49 +99,49 @@ msgstr "extract [OPTIONS] [FICHIER]*"
msgid "Extract metadata from files."
msgstr "Extraction des métadonnées des fichiers."
-#: src/main/extract.c:294
+#: src/main/extract.c:297
#, c-format
msgid "Found by `%s' plugin:\n"
msgstr "Trouvé par l’extension « %s » :\n"
-#: src/main/extract.c:297 src/main/extract.c:386
+#: src/main/extract.c:300 src/main/extract.c:389
#: src/main/extractor_metatypes.c:153 src/main/extractor_print.c:86
#: src/main/extractor_print.c:96
msgid "unknown"
msgstr "inconnu"
-#: src/main/extract.c:302
+#: src/main/extract.c:305
#, c-format
msgid "%s - (unknown, %u bytes)\n"
msgstr "%s - (inconnu, %u octets)\n"
-#: src/main/extract.c:333
+#: src/main/extract.c:336
#, c-format
msgid "%s - (binary, %u bytes)\n"
msgstr "%s - (binaire, %u octets)\n"
-#: src/main/extract.c:861 src/main/extract.c:875
+#: src/main/extract.c:867 src/main/extract.c:881
msgid ""
"Illegal combination of options, cannot combine multiple styles of printing.\n"
msgstr ""
"Combinaison d’options non permise : impossible de combiner des modes "
"d’impression différent.\n"
-#: src/main/extract.c:910
+#: src/main/extract.c:916
#, c-format
msgid "You must specify an argument for the `%s' option (option ignored).\n"
msgstr ""
"Vous devez préciser un argument pour l’option « %s » (option ignorée).\n"
-#: src/main/extract.c:979
+#: src/main/extract.c:985
msgid "Use --help to get a list of options.\n"
msgstr "Utilisez --help pour obtenir une liste d’options.\n"
-#: src/main/extract.c:1022
+#: src/main/extract.c:1028
msgid "% BiBTeX file\n"
msgstr "% fichier BiBTeX\n"
-#: src/main/extract.c:1032
+#: src/main/extract.c:1038
#, c-format
msgid "Keywords for file %s:\n"
msgstr "Mots-clés pour le fichier %s:\n"
@@ -2670,10 +2670,10 @@ msgstr "Révision %u : « %s » est l’auteur de « %s »"
msgid "codec: %s, %u fps, %u ms"
msgstr "codec : %s, %u fps, %u ms"
-#: src/plugins/wav_extractor.c:128
+#: src/plugins/wav_extractor.c:129
msgid "mono"
msgstr "mono"
-#: src/plugins/wav_extractor.c:128
+#: src/plugins/wav_extractor.c:129
msgid "stereo"
msgstr "stereo"
diff --git a/po/ga.po b/po/ga.po
@@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: libextractor 0.5.20\n"
"Report-Msgid-Bugs-To: libextractor@gnu.org\n"
-"POT-Creation-Date: 2026-06-30 19:11+0200\n"
+"POT-Creation-Date: 2026-07-05 22:58+0200\n"
"PO-Revision-Date: 2008-03-21 20:46-0700\n"
"Last-Translator: Kevin Scannell <kscanne@gmail.com>\n"
"Language-Team: Irish <gaeilge-gnulinux@lists.sourceforge.net>\n"
@@ -93,48 +93,48 @@ msgstr "extract [ROGHANNA] [COMHADAINM]*"
msgid "Extract metadata from files."
msgstr "Bain meiteashonra as comhaid."
-#: src/main/extract.c:294
+#: src/main/extract.c:297
#, fuzzy, c-format
msgid "Found by `%s' plugin:\n"
msgstr "Theip ar lucht an bhreisein `%s': %s\n"
-#: src/main/extract.c:297 src/main/extract.c:386
+#: src/main/extract.c:300 src/main/extract.c:389
#: src/main/extractor_metatypes.c:153 src/main/extractor_print.c:86
#: src/main/extractor_print.c:96
msgid "unknown"
msgstr "anaithnid"
-#: src/main/extract.c:302
+#: src/main/extract.c:305
#, c-format
msgid "%s - (unknown, %u bytes)\n"
msgstr ""
-#: src/main/extract.c:333
+#: src/main/extract.c:336
#, fuzzy, c-format
msgid "%s - (binary, %u bytes)\n"
msgstr "%s - (dnrtha)\n"
-#: src/main/extract.c:861 src/main/extract.c:875
+#: src/main/extract.c:867 src/main/extract.c:881
msgid ""
"Illegal combination of options, cannot combine multiple styles of printing.\n"
msgstr ""
-#: src/main/extract.c:910
+#: src/main/extract.c:916
#, c-format
msgid "You must specify an argument for the `%s' option (option ignored).\n"
msgstr ""
"N mr duit argint a thabhairt i ndiaidh na rogha `%s' ( ligean thart).\n"
-#: src/main/extract.c:979
+#: src/main/extract.c:985
msgid "Use --help to get a list of options.\n"
msgstr "Bain sid as '--help' le haghaidh nos m roghanna.\n"
-#: src/main/extract.c:1022
+#: src/main/extract.c:1028
#, fuzzy
msgid "% BiBTeX file\n"
msgstr "%% Comhad BiBTeX\n"
-#: src/main/extract.c:1032
+#: src/main/extract.c:1038
#, c-format
msgid "Keywords for file %s:\n"
msgstr "Lorgfhocail do chomhad %s:\n"
@@ -2734,11 +2734,11 @@ msgstr "Leas
msgid "codec: %s, %u fps, %u ms"
msgstr "codec: %s, %u fss, %u ms"
-#: src/plugins/wav_extractor.c:128
+#: src/plugins/wav_extractor.c:129
msgid "mono"
msgstr "mona"
-#: src/plugins/wav_extractor.c:128
+#: src/plugins/wav_extractor.c:129
msgid "stereo"
msgstr "steiri"
diff --git a/po/it.po b/po/it.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: libextractor-0.6.0\n"
"Report-Msgid-Bugs-To: libextractor@gnu.org\n"
-"POT-Creation-Date: 2026-06-30 19:11+0200\n"
+"POT-Creation-Date: 2026-07-05 22:58+0200\n"
"PO-Revision-Date: 2010-09-30 23:41+0200\n"
"Last-Translator: Sergio Zanchetta <primes2h@ubuntu.com>\n"
"Language-Team: Italian <tp@lists.linux.it>\n"
@@ -89,49 +89,49 @@ msgstr ""
msgid "Extract metadata from files."
msgstr ""
-#: src/main/extract.c:294
+#: src/main/extract.c:297
#, c-format
msgid "Found by `%s' plugin:\n"
msgstr ""
-#: src/main/extract.c:297 src/main/extract.c:386
+#: src/main/extract.c:300 src/main/extract.c:389
#: src/main/extractor_metatypes.c:153 src/main/extractor_print.c:86
#: src/main/extractor_print.c:96
msgid "unknown"
msgstr ""
-#: src/main/extract.c:302
+#: src/main/extract.c:305
#, c-format
msgid "%s - (unknown, %u bytes)\n"
msgstr ""
-#: src/main/extract.c:333
+#: src/main/extract.c:336
#, c-format
msgid "%s - (binary, %u bytes)\n"
msgstr "%s - (binario, %u bite)\n"
-#: src/main/extract.c:861 src/main/extract.c:875
+#: src/main/extract.c:867 src/main/extract.c:881
msgid ""
"Illegal combination of options, cannot combine multiple styles of printing.\n"
msgstr ""
-#: src/main/extract.c:910
+#: src/main/extract.c:916
#, c-format
msgid "You must specify an argument for the `%s' option (option ignored).\n"
msgstr ""
"Deve essere specificato un argomento per l'opzione \"%s\" (opzione "
"ignorata).\n"
-#: src/main/extract.c:979
+#: src/main/extract.c:985
msgid "Use --help to get a list of options.\n"
msgstr "Usare --help per ottenere un elenco di opzioni.\n"
-#: src/main/extract.c:1022
+#: src/main/extract.c:1028
#, fuzzy
msgid "% BiBTeX file\n"
msgstr "%% file BiBTeX\n"
-#: src/main/extract.c:1032
+#: src/main/extract.c:1038
#, c-format
msgid "Keywords for file %s:\n"
msgstr ""
@@ -2679,11 +2679,11 @@ msgstr ""
msgid "codec: %s, %u fps, %u ms"
msgstr "codec: %s, %u fps, %u ms"
-#: src/plugins/wav_extractor.c:128
+#: src/plugins/wav_extractor.c:129
msgid "mono"
msgstr "mono"
-#: src/plugins/wav_extractor.c:128
+#: src/plugins/wav_extractor.c:129
msgid "stereo"
msgstr "stereo"
diff --git a/po/ka.po b/po/ka.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: libextractor 1.9\n"
"Report-Msgid-Bugs-To: libextractor@gnu.org\n"
-"POT-Creation-Date: 2026-06-30 19:11+0200\n"
+"POT-Creation-Date: 2026-07-05 22:58+0200\n"
"PO-Revision-Date: 2025-05-19 06:33+0200\n"
"Last-Translator: Temuri Doghonadze <temuri.doghonadze@gmail.com>\n"
"Language-Team: Georgian <(nothing)>\n"
@@ -91,46 +91,46 @@ msgstr ""
msgid "Extract metadata from files."
msgstr ""
-#: src/main/extract.c:294
+#: src/main/extract.c:297
#, c-format
msgid "Found by `%s' plugin:\n"
msgstr ""
-#: src/main/extract.c:297 src/main/extract.c:386
+#: src/main/extract.c:300 src/main/extract.c:389
#: src/main/extractor_metatypes.c:153 src/main/extractor_print.c:86
#: src/main/extractor_print.c:96
msgid "unknown"
msgstr "უცნობი"
-#: src/main/extract.c:302
+#: src/main/extract.c:305
#, c-format
msgid "%s - (unknown, %u bytes)\n"
msgstr ""
-#: src/main/extract.c:333
+#: src/main/extract.c:336
#, c-format
msgid "%s - (binary, %u bytes)\n"
msgstr ""
-#: src/main/extract.c:861 src/main/extract.c:875
+#: src/main/extract.c:867 src/main/extract.c:881
msgid ""
"Illegal combination of options, cannot combine multiple styles of printing.\n"
msgstr ""
-#: src/main/extract.c:910
+#: src/main/extract.c:916
#, c-format
msgid "You must specify an argument for the `%s' option (option ignored).\n"
msgstr ""
-#: src/main/extract.c:979
+#: src/main/extract.c:985
msgid "Use --help to get a list of options.\n"
msgstr ""
-#: src/main/extract.c:1022
+#: src/main/extract.c:1028
msgid "% BiBTeX file\n"
msgstr "% BiBTeX ფაილი\n"
-#: src/main/extract.c:1032
+#: src/main/extract.c:1038
#, c-format
msgid "Keywords for file %s:\n"
msgstr ""
@@ -2633,10 +2633,10 @@ msgstr ""
msgid "codec: %s, %u fps, %u ms"
msgstr ""
-#: src/plugins/wav_extractor.c:128
+#: src/plugins/wav_extractor.c:129
msgid "mono"
msgstr "მონო"
-#: src/plugins/wav_extractor.c:128
+#: src/plugins/wav_extractor.c:129
msgid "stereo"
msgstr "სტერეო"
diff --git a/po/libextractor.pot b/po/libextractor.pot
@@ -6,9 +6,9 @@
#, fuzzy
msgid ""
msgstr ""
-"Project-Id-Version: GNU libextractor 1.16\n"
+"Project-Id-Version: GNU libextractor 1.17\n"
"Report-Msgid-Bugs-To: libextractor@gnu.org\n"
-"POT-Creation-Date: 2026-06-30 19:11+0200\n"
+"POT-Creation-Date: 2026-07-05 22:58+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@@ -87,46 +87,46 @@ msgstr ""
msgid "Extract metadata from files."
msgstr ""
-#: src/main/extract.c:294
+#: src/main/extract.c:297
#, c-format
msgid "Found by `%s' plugin:\n"
msgstr ""
-#: src/main/extract.c:297 src/main/extract.c:386
+#: src/main/extract.c:300 src/main/extract.c:389
#: src/main/extractor_metatypes.c:153 src/main/extractor_print.c:86
#: src/main/extractor_print.c:96
msgid "unknown"
msgstr ""
-#: src/main/extract.c:302
+#: src/main/extract.c:305
#, c-format
msgid "%s - (unknown, %u bytes)\n"
msgstr ""
-#: src/main/extract.c:333
+#: src/main/extract.c:336
#, c-format
msgid "%s - (binary, %u bytes)\n"
msgstr ""
-#: src/main/extract.c:861 src/main/extract.c:875
+#: src/main/extract.c:867 src/main/extract.c:881
msgid ""
"Illegal combination of options, cannot combine multiple styles of printing.\n"
msgstr ""
-#: src/main/extract.c:910
+#: src/main/extract.c:916
#, c-format
msgid "You must specify an argument for the `%s' option (option ignored).\n"
msgstr ""
-#: src/main/extract.c:979
+#: src/main/extract.c:985
msgid "Use --help to get a list of options.\n"
msgstr ""
-#: src/main/extract.c:1022
+#: src/main/extract.c:1028
msgid "% BiBTeX file\n"
msgstr ""
-#: src/main/extract.c:1032
+#: src/main/extract.c:1038
#, c-format
msgid "Keywords for file %s:\n"
msgstr ""
@@ -2621,10 +2621,10 @@ msgstr ""
msgid "codec: %s, %u fps, %u ms"
msgstr ""
-#: src/plugins/wav_extractor.c:128
+#: src/plugins/wav_extractor.c:129
msgid "mono"
msgstr ""
-#: src/plugins/wav_extractor.c:128
+#: src/plugins/wav_extractor.c:129
msgid "stereo"
msgstr ""
diff --git a/po/nl.po b/po/nl.po
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: libextractor-1.0.0-pre1\n"
"Report-Msgid-Bugs-To: libextractor@gnu.org\n"
-"POT-Creation-Date: 2026-06-30 19:11+0200\n"
+"POT-Creation-Date: 2026-07-05 22:58+0200\n"
"PO-Revision-Date: 2013-08-21 22:41+0200\n"
"Last-Translator: Benno Schulenberg <benno@vertaalt.nl>\n"
"Language-Team: Dutch <vertaling@vrijschrift.org>\n"
@@ -97,48 +97,48 @@ msgstr "extract [OPTIES] [BESTANDSNAAM]*"
msgid "Extract metadata from files."
msgstr "Leest metadata uit bestanden."
-#: src/main/extract.c:294
+#: src/main/extract.c:297
#, c-format
msgid "Found by `%s' plugin:\n"
msgstr "Gevonden door plugin '%s':\n"
-#: src/main/extract.c:297 src/main/extract.c:386
+#: src/main/extract.c:300 src/main/extract.c:389
#: src/main/extractor_metatypes.c:153 src/main/extractor_print.c:86
#: src/main/extractor_print.c:96
msgid "unknown"
msgstr "onbekend"
-#: src/main/extract.c:302
+#: src/main/extract.c:305
#, c-format
msgid "%s - (unknown, %u bytes)\n"
msgstr "%s - (onbekend, %u bytes)\n"
-#: src/main/extract.c:333
+#: src/main/extract.c:336
#, c-format
msgid "%s - (binary, %u bytes)\n"
msgstr "%s - (binair, %u bytes)\n"
-#: src/main/extract.c:861 src/main/extract.c:875
+#: src/main/extract.c:867 src/main/extract.c:881
msgid ""
"Illegal combination of options, cannot combine multiple styles of printing.\n"
msgstr ""
"Ongeldige combinatie van opties; kan meerdere printstijlen niet combineren.\n"
-#: src/main/extract.c:910
+#: src/main/extract.c:916
#, c-format
msgid "You must specify an argument for the `%s' option (option ignored).\n"
msgstr "Optie '%s' vereist een argument -- optie is genegeerd.\n"
-#: src/main/extract.c:979
+#: src/main/extract.c:985
msgid "Use --help to get a list of options.\n"
msgstr "Gebruik '--help' voor een lijst met mogelijke opties.\n"
-#: src/main/extract.c:1022
+#: src/main/extract.c:1028
#, fuzzy
msgid "% BiBTeX file\n"
msgstr "%% BiBTeX-bestand\n"
-#: src/main/extract.c:1032
+#: src/main/extract.c:1038
#, c-format
msgid "Keywords for file %s:\n"
msgstr "Trefwoorden voor bestand %s:\n"
@@ -2678,11 +2678,11 @@ msgstr "Revisie #%u: Auteur '%s' werkte aan '%s'"
msgid "codec: %s, %u fps, %u ms"
msgstr "codec: %s, %u fps, %u ms"
-#: src/plugins/wav_extractor.c:128
+#: src/plugins/wav_extractor.c:129
msgid "mono"
msgstr "mono"
-#: src/plugins/wav_extractor.c:128
+#: src/plugins/wav_extractor.c:129
msgid "stereo"
msgstr "stereo"
diff --git a/po/pl.po b/po/pl.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: libextractor 1.9\n"
"Report-Msgid-Bugs-To: libextractor@gnu.org\n"
-"POT-Creation-Date: 2026-06-30 19:11+0200\n"
+"POT-Creation-Date: 2026-07-05 22:58+0200\n"
"PO-Revision-Date: 2019-02-12 16:02+0100\n"
"Last-Translator: Jakub Bogusz <qboosh@pld-linux.org>\n"
"Language-Team: Polish <translation-team-pl@lists.sourceforge.net>\n"
@@ -93,47 +93,47 @@ msgstr "extract [OPCJE] [NAZWA_PLIKU]*"
msgid "Extract metadata from files."
msgstr "Wyciąganie metadanych z plików."
-#: src/main/extract.c:294
+#: src/main/extract.c:297
#, c-format
msgid "Found by `%s' plugin:\n"
msgstr "Znalezione przez wtyczkę `%s':\n"
-#: src/main/extract.c:297 src/main/extract.c:386
+#: src/main/extract.c:300 src/main/extract.c:389
#: src/main/extractor_metatypes.c:153 src/main/extractor_print.c:86
#: src/main/extractor_print.c:96
msgid "unknown"
msgstr "nieznany"
-#: src/main/extract.c:302
+#: src/main/extract.c:305
#, c-format
msgid "%s - (unknown, %u bytes)\n"
msgstr "%s - (nieznany, bajtów: %u)\n"
-#: src/main/extract.c:333
+#: src/main/extract.c:336
#, c-format
msgid "%s - (binary, %u bytes)\n"
msgstr "%s - (binarny, bajtów: %u)\n"
-#: src/main/extract.c:861 src/main/extract.c:875
+#: src/main/extract.c:867 src/main/extract.c:881
msgid ""
"Illegal combination of options, cannot combine multiple styles of printing.\n"
msgstr ""
"Niedozwolona kombinacja opcji, nie można łączyć wielu styli wypisywania.\n"
-#: src/main/extract.c:910
+#: src/main/extract.c:916
#, c-format
msgid "You must specify an argument for the `%s' option (option ignored).\n"
msgstr "Opcja `%s' wymaga argumentu (zignorowano opcję).\n"
-#: src/main/extract.c:979
+#: src/main/extract.c:985
msgid "Use --help to get a list of options.\n"
msgstr "Opcja --help pozwala uzyskać listę opcji.\n"
-#: src/main/extract.c:1022
+#: src/main/extract.c:1028
msgid "% BiBTeX file\n"
msgstr "% plik BiBTeX\n"
-#: src/main/extract.c:1032
+#: src/main/extract.c:1038
#, c-format
msgid "Keywords for file %s:\n"
msgstr "Słowa kluczowe dla pliku %s:\n"
@@ -2663,10 +2663,10 @@ msgstr "Rewizja #%u: Autor `%s' pracował nad `%s'"
msgid "codec: %s, %u fps, %u ms"
msgstr "kodek: %s, %u fps, %u ms"
-#: src/plugins/wav_extractor.c:128
+#: src/plugins/wav_extractor.c:129
msgid "mono"
msgstr "mono"
-#: src/plugins/wav_extractor.c:128
+#: src/plugins/wav_extractor.c:129
msgid "stereo"
msgstr "stereo"
diff --git a/po/pt_BR.po b/po/pt_BR.po
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: libextractor 1.9\n"
"Report-Msgid-Bugs-To: libextractor@gnu.org\n"
-"POT-Creation-Date: 2026-06-30 19:11+0200\n"
+"POT-Creation-Date: 2026-07-05 22:58+0200\n"
"PO-Revision-Date: 2019-02-21 20:46-0200\n"
"Last-Translator: Rafael Fontenelle <rafaelff@gnome.org>\n"
"Language-Team: Brazilian Portuguese <ldpbr-"
@@ -97,49 +97,49 @@ msgstr "extract [OPÇÕES] [ARQUIVO]"
msgid "Extract metadata from files."
msgstr "Extrai metadados de arquivos."
-#: src/main/extract.c:294
+#: src/main/extract.c:297
#, c-format
msgid "Found by `%s' plugin:\n"
msgstr "Encontrado pelo plug-in \"%s\":\n"
-#: src/main/extract.c:297 src/main/extract.c:386
+#: src/main/extract.c:300 src/main/extract.c:389
#: src/main/extractor_metatypes.c:153 src/main/extractor_print.c:86
#: src/main/extractor_print.c:96
msgid "unknown"
msgstr "desconhecido"
-#: src/main/extract.c:302
+#: src/main/extract.c:305
#, c-format
msgid "%s - (unknown, %u bytes)\n"
msgstr "%s - (desconhecido, %u bytes)\n"
-#: src/main/extract.c:333
+#: src/main/extract.c:336
#, c-format
msgid "%s - (binary, %u bytes)\n"
msgstr "%s - (binário, %u bytes)\n"
-#: src/main/extract.c:861 src/main/extract.c:875
+#: src/main/extract.c:867 src/main/extract.c:881
msgid ""
"Illegal combination of options, cannot combine multiple styles of printing.\n"
msgstr ""
"Combinação ilegal de opções, não é possível combina múltiplos estilos de "
"impressão.\n"
-#: src/main/extract.c:910
+#: src/main/extract.c:916
#, c-format
msgid "You must specify an argument for the `%s' option (option ignored).\n"
msgstr ""
"Você deve especificar um argumento para a opção \"%s\" (opção ignorada).\n"
-#: src/main/extract.c:979
+#: src/main/extract.c:985
msgid "Use --help to get a list of options.\n"
msgstr "Use --help para obter uma lista de opções.\n"
-#: src/main/extract.c:1022
+#: src/main/extract.c:1028
msgid "% BiBTeX file\n"
msgstr "% arquivo BiBTeX\n"
-#: src/main/extract.c:1032
+#: src/main/extract.c:1038
#, c-format
msgid "Keywords for file %s:\n"
msgstr "Palavras-chave para o arquivo %s:\n"
@@ -2674,10 +2674,10 @@ msgstr "Revisão nº %u: Autor \"%s\" trabalhou em \"%s\""
msgid "codec: %s, %u fps, %u ms"
msgstr "CODEC: %s, %u fps, %u ms"
-#: src/plugins/wav_extractor.c:128
+#: src/plugins/wav_extractor.c:129
msgid "mono"
msgstr "mono"
-#: src/plugins/wav_extractor.c:128
+#: src/plugins/wav_extractor.c:129
msgid "stereo"
msgstr "estéreo"
diff --git a/po/ro.po b/po/ro.po
@@ -22,7 +22,7 @@ msgid ""
msgstr ""
"Project-Id-Version: libextractor 1.9\n"
"Report-Msgid-Bugs-To: libextractor@gnu.org\n"
-"POT-Creation-Date: 2026-06-30 19:11+0200\n"
+"POT-Creation-Date: 2026-07-05 22:58+0200\n"
"PO-Revision-Date: 2022-10-11 18:47+0200\n"
"Last-Translator: Remus-Gabriel Chelu <remusgabriel.chelu@disroot.org>\n"
"Language-Team: Romanian <translation-team-ro@lists.sourceforge.net>\n"
@@ -114,50 +114,50 @@ msgstr "extract [OPȚIUNI] [NUME_FIȘIER]*"
msgid "Extract metadata from files."
msgstr "Extrage metadatele din fișiere."
-#: src/main/extract.c:294
+#: src/main/extract.c:297
#, c-format
msgid "Found by `%s' plugin:\n"
msgstr "Găsit de pluginul „%s”:\n"
-#: src/main/extract.c:297 src/main/extract.c:386
+#: src/main/extract.c:300 src/main/extract.c:389
#: src/main/extractor_metatypes.c:153 src/main/extractor_print.c:86
#: src/main/extractor_print.c:96
msgid "unknown"
msgstr "necunoscut"
-#: src/main/extract.c:302
+#: src/main/extract.c:305
#, c-format
msgid "%s - (unknown, %u bytes)\n"
msgstr "%s - (necunoscut, %u octeți)\n"
-#: src/main/extract.c:333
+#: src/main/extract.c:336
#, c-format
msgid "%s - (binary, %u bytes)\n"
msgstr "%s - (binar, %u octeți)\n"
-#: src/main/extract.c:861 src/main/extract.c:875
+#: src/main/extract.c:867 src/main/extract.c:881
msgid ""
"Illegal combination of options, cannot combine multiple styles of printing.\n"
msgstr ""
"Combinație nevalidă de opțiuni, nu se pot combina mai multe stiluri de "
"imprimare.\n"
-#: src/main/extract.c:910
+#: src/main/extract.c:916
#, c-format
msgid "You must specify an argument for the `%s' option (option ignored).\n"
msgstr ""
"Trebuie să specificați un argument pentru opțiunea „%s” (opțiunea este "
"ignorată).\n"
-#: src/main/extract.c:979
+#: src/main/extract.c:985
msgid "Use --help to get a list of options.\n"
msgstr "Utilizați „--help” pentru a obține o listă de opțiuni.\n"
-#: src/main/extract.c:1022
+#: src/main/extract.c:1028
msgid "% BiBTeX file\n"
msgstr "%% fișier BiBTeX\n"
-#: src/main/extract.c:1032
+#: src/main/extract.c:1038
#, c-format
msgid "Keywords for file %s:\n"
msgstr "Cuvinte cheie pentru fișierul %s:\n"
@@ -2708,10 +2708,10 @@ msgstr "Revizia #%u: Autorul „%s” a lucrat la „%s”"
msgid "codec: %s, %u fps, %u ms"
msgstr "codec: %s, %u cadre/s, %u ms"
-#: src/plugins/wav_extractor.c:128
+#: src/plugins/wav_extractor.c:129
msgid "mono"
msgstr "mono"
-#: src/plugins/wav_extractor.c:128
+#: src/plugins/wav_extractor.c:129
msgid "stereo"
msgstr "stereo"
diff --git a/po/rw.po b/po/rw.po
@@ -16,7 +16,7 @@ msgid ""
msgstr ""
"Project-Id-Version: libextractor 0.4.2\n"
"Report-Msgid-Bugs-To: libextractor@gnu.org\n"
-"POT-Creation-Date: 2026-06-30 19:11+0200\n"
+"POT-Creation-Date: 2026-07-05 22:58+0200\n"
"PO-Revision-Date: 2005-04-04 10:55-0700\n"
"Last-Translator: Steven Michael Murphy <murf@e-tools.com>\n"
"Language-Team: Kinyarwanda <translation-team-rw@lists.sourceforge.net>\n"
@@ -104,47 +104,47 @@ msgstr ""
msgid "Extract metadata from files."
msgstr "Bivuye Idosiye"
-#: src/main/extract.c:294
+#: src/main/extract.c:297
#, fuzzy, c-format
msgid "Found by `%s' plugin:\n"
msgstr "Byanze"
-#: src/main/extract.c:297 src/main/extract.c:386
+#: src/main/extract.c:300 src/main/extract.c:389
#: src/main/extractor_metatypes.c:153 src/main/extractor_print.c:86
#: src/main/extractor_print.c:96
msgid "unknown"
msgstr "itazwi"
-#: src/main/extract.c:302
+#: src/main/extract.c:305
#, c-format
msgid "%s - (unknown, %u bytes)\n"
msgstr ""
-#: src/main/extract.c:333
+#: src/main/extract.c:336
#, fuzzy, c-format
msgid "%s - (binary, %u bytes)\n"
msgstr "%s-(Nyabibiri"
-#: src/main/extract.c:861 src/main/extract.c:875
+#: src/main/extract.c:867 src/main/extract.c:881
msgid ""
"Illegal combination of options, cannot combine multiple styles of printing.\n"
msgstr ""
-#: src/main/extract.c:910
+#: src/main/extract.c:916
#, fuzzy, c-format
msgid "You must specify an argument for the `%s' option (option ignored).\n"
msgstr "kugirango i Ihitamo Ihitamo"
-#: src/main/extract.c:979
+#: src/main/extract.c:985
#, fuzzy
msgid "Use --help to get a list of options.\n"
msgstr "Ifashayobora Kuri Kubona a Urutonde Bya Amahitamo"
-#: src/main/extract.c:1022
+#: src/main/extract.c:1028
msgid "% BiBTeX file\n"
msgstr ""
-#: src/main/extract.c:1032
+#: src/main/extract.c:1038
#, fuzzy, c-format
msgid "Keywords for file %s:\n"
msgstr "kugirango IDOSIYE"
@@ -3030,11 +3030,11 @@ msgstr ""
msgid "codec: %s, %u fps, %u ms"
msgstr ""
-#: src/plugins/wav_extractor.c:128
+#: src/plugins/wav_extractor.c:129
msgid "mono"
msgstr ""
-#: src/plugins/wav_extractor.c:128
+#: src/plugins/wav_extractor.c:129
msgid "stereo"
msgstr ""
diff --git a/po/sr.po b/po/sr.po
@@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: libextractor-1.9\n"
"Report-Msgid-Bugs-To: libextractor@gnu.org\n"
-"POT-Creation-Date: 2026-06-30 19:11+0200\n"
+"POT-Creation-Date: 2026-07-05 22:58+0200\n"
"PO-Revision-Date: 2020-04-02 08:30+0200\n"
"Last-Translator: Мирослав Николић <miroslavnikolic@rocketmail.com>\n"
"Language-Team: Serbian <(nothing)>\n"
@@ -94,48 +94,48 @@ msgstr "extract [ОПЦИЈЕ] [ДАТОТЕКА]*"
msgid "Extract metadata from files."
msgstr "Извлачи метаподатке из датотеке."
-#: src/main/extract.c:294
+#: src/main/extract.c:297
#, c-format
msgid "Found by `%s' plugin:\n"
msgstr "Нађено је прикључком „%s“:\n"
-#: src/main/extract.c:297 src/main/extract.c:386
+#: src/main/extract.c:300 src/main/extract.c:389
#: src/main/extractor_metatypes.c:153 src/main/extractor_print.c:86
#: src/main/extractor_print.c:96
msgid "unknown"
msgstr "непознато"
-#: src/main/extract.c:302
+#: src/main/extract.c:305
#, c-format
msgid "%s - (unknown, %u bytes)\n"
msgstr "%s — (непознато, %u бајта)\n"
-#: src/main/extract.c:333
+#: src/main/extract.c:336
#, c-format
msgid "%s - (binary, %u bytes)\n"
msgstr "%s — (извршна, %u бајта)\n"
-#: src/main/extract.c:861 src/main/extract.c:875
+#: src/main/extract.c:867 src/main/extract.c:881
msgid ""
"Illegal combination of options, cannot combine multiple styles of printing.\n"
msgstr ""
"Неисправна комбинација опција, не могу да комбинујем више стилова "
"исписивања.\n"
-#: src/main/extract.c:910
+#: src/main/extract.c:916
#, c-format
msgid "You must specify an argument for the `%s' option (option ignored).\n"
msgstr "Морате навести аргумент за опцију „%s“ (опција је занемарена).\n"
-#: src/main/extract.c:979
+#: src/main/extract.c:985
msgid "Use --help to get a list of options.\n"
msgstr "Употребите „--help“ да добавите списак опција.\n"
-#: src/main/extract.c:1022
+#: src/main/extract.c:1028
msgid "% BiBTeX file\n"
msgstr "% БиБТеКс датотека\n"
-#: src/main/extract.c:1032
+#: src/main/extract.c:1038
#, c-format
msgid "Keywords for file %s:\n"
msgstr "Кључне речи за датотеку „%s“:\n"
@@ -2662,10 +2662,10 @@ msgstr "Ревизија #%u: Аутор „%s“ је радио „%s“"
msgid "codec: %s, %u fps, %u ms"
msgstr "кодек: %s, %u к/с, %u ms"
-#: src/plugins/wav_extractor.c:128
+#: src/plugins/wav_extractor.c:129
msgid "mono"
msgstr "моно"
-#: src/plugins/wav_extractor.c:128
+#: src/plugins/wav_extractor.c:129
msgid "stereo"
msgstr "стерео"
diff --git a/po/sv.po b/po/sv.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: libextractor 1.9\n"
"Report-Msgid-Bugs-To: libextractor@gnu.org\n"
-"POT-Creation-Date: 2026-06-30 19:11+0200\n"
+"POT-Creation-Date: 2026-07-05 22:58+0200\n"
"PO-Revision-Date: 2025-10-16 18:21+0200\n"
"Last-Translator: Daniel Nylander <po@danielnylander.se>\n"
"Language-Team: Swedish <tp-sv@listor.tp-sv.se>\n"
@@ -93,47 +93,47 @@ msgstr "extract [FLAGGOR] [FILNAMN]*"
msgid "Extract metadata from files."
msgstr "Extrahera metadata från filer."
-#: src/main/extract.c:294
+#: src/main/extract.c:297
#, c-format
msgid "Found by `%s' plugin:\n"
msgstr "Hittades av tillägget `%s':\n"
-#: src/main/extract.c:297 src/main/extract.c:386
+#: src/main/extract.c:300 src/main/extract.c:389
#: src/main/extractor_metatypes.c:153 src/main/extractor_print.c:86
#: src/main/extractor_print.c:96
msgid "unknown"
msgstr "okänd"
-#: src/main/extract.c:302
+#: src/main/extract.c:305
#, c-format
msgid "%s - (unknown, %u bytes)\n"
msgstr "%s - (okänd, %u byte)\n"
-#: src/main/extract.c:333
+#: src/main/extract.c:336
#, c-format
msgid "%s - (binary, %u bytes)\n"
msgstr "%s - (binär, %u byte)\n"
-#: src/main/extract.c:861 src/main/extract.c:875
+#: src/main/extract.c:867 src/main/extract.c:881
msgid ""
"Illegal combination of options, cannot combine multiple styles of printing.\n"
msgstr ""
"Olämplig kombination av flaggor, kan inte kombinera flera utskriftsstilar.\n"
-#: src/main/extract.c:910
+#: src/main/extract.c:916
#, c-format
msgid "You must specify an argument for the `%s' option (option ignored).\n"
msgstr "Du måste ange ett argument för flaggan \"%s\" (flagga ignoreras).\n"
-#: src/main/extract.c:979
+#: src/main/extract.c:985
msgid "Use --help to get a list of options.\n"
msgstr "Använd --help för att få en lista på flaggor.\n"
-#: src/main/extract.c:1022
+#: src/main/extract.c:1028
msgid "% BiBTeX file\n"
msgstr "% BiBTeX-fil\n"
-#: src/main/extract.c:1032
+#: src/main/extract.c:1038
#, c-format
msgid "Keywords for file %s:\n"
msgstr "Nyckelord för filen %s:\n"
@@ -2675,11 +2675,11 @@ msgstr "Revision #%u: Upphovsperson `%s' arbetade på `%s'"
msgid "codec: %s, %u fps, %u ms"
msgstr "kodek: %s, %u bilder/s, %u ms"
-#: src/plugins/wav_extractor.c:128
+#: src/plugins/wav_extractor.c:129
msgid "mono"
msgstr "mono"
-#: src/plugins/wav_extractor.c:128
+#: src/plugins/wav_extractor.c:129
msgid "stereo"
msgstr "stereo"
diff --git a/po/uk.po b/po/uk.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: libextractor 1.9\n"
"Report-Msgid-Bugs-To: libextractor@gnu.org\n"
-"POT-Creation-Date: 2026-06-30 19:11+0200\n"
+"POT-Creation-Date: 2026-07-05 22:58+0200\n"
"PO-Revision-Date: 2019-02-10 20:41+0200\n"
"Last-Translator: Yuri Chornoivan <yurchor@ukr.net>\n"
"Language-Team: Ukrainian <translation-team-uk@lists.sourceforge.net>\n"
@@ -101,52 +101,52 @@ msgstr "extract [ПАРАМЕТРИ] [НАЗВА_ФАЙЛА]*"
msgid "Extract metadata from files."
msgstr "Видобути метадані з файлів."
-#: src/main/extract.c:294
+#: src/main/extract.c:297
#, c-format
msgid "Found by `%s' plugin:\n"
msgstr "Знайдено додатком «%s»:\n"
-#: src/main/extract.c:297 src/main/extract.c:386
+#: src/main/extract.c:300 src/main/extract.c:389
#: src/main/extractor_metatypes.c:153 src/main/extractor_print.c:86
#: src/main/extractor_print.c:96
msgid "unknown"
msgstr "невідомий"
-#: src/main/extract.c:302
+#: src/main/extract.c:305
#, c-format
msgid "%s - (unknown, %u bytes)\n"
msgstr "%s — (невідомий, %u байтів)\n"
-#: src/main/extract.c:333
+#: src/main/extract.c:336
#, c-format
msgid "%s - (binary, %u bytes)\n"
msgstr "%s — (бінарний, %u байтів)\n"
-#: src/main/extract.c:861 src/main/extract.c:875
+#: src/main/extract.c:867 src/main/extract.c:881
msgid ""
"Illegal combination of options, cannot combine multiple styles of printing.\n"
msgstr ""
"Некоректне поєднання параметрів, не можна визначати декілька стилів "
"виведення даних.\n"
-#: src/main/extract.c:910
+#: src/main/extract.c:916
#, c-format
msgid "You must specify an argument for the `%s' option (option ignored).\n"
msgstr ""
"Параметр «%s» можна використовувати лише з додатковим аргументом (параметр "
"проігноровано).\n"
-#: src/main/extract.c:979
+#: src/main/extract.c:985
msgid "Use --help to get a list of options.\n"
msgstr ""
"Скористайтеся параметром --help для отримання списку можливих параметрів "
"командного рядка.\n"
-#: src/main/extract.c:1022
+#: src/main/extract.c:1028
msgid "% BiBTeX file\n"
msgstr "% файл BiBTeX\n"
-#: src/main/extract.c:1032
+#: src/main/extract.c:1038
#, c-format
msgid "Keywords for file %s:\n"
msgstr "Ключові слова для файла %s:\n"
@@ -2665,11 +2665,11 @@ msgstr "Модифікація %u: автор «%s», співробітник
msgid "codec: %s, %u fps, %u ms"
msgstr "кодек: %s, %u кд/с, %u мс"
-#: src/plugins/wav_extractor.c:128
+#: src/plugins/wav_extractor.c:129
msgid "mono"
msgstr "моно"
-#: src/plugins/wav_extractor.c:128
+#: src/plugins/wav_extractor.c:129
msgid "stereo"
msgstr "стерео"
diff --git a/po/vi.po b/po/vi.po
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: libextractor 0.6.0\n"
"Report-Msgid-Bugs-To: libextractor@gnu.org\n"
-"POT-Creation-Date: 2026-06-30 19:11+0200\n"
+"POT-Creation-Date: 2026-07-05 22:58+0200\n"
"PO-Revision-Date: 2010-02-11 00:13+0930\n"
"Last-Translator: Clytie Siddall <clytie@riverland.net.au>\n"
"Language-Team: Vietnamese <vi-VN@googlegroups.com>\n"
@@ -99,48 +99,48 @@ msgstr ""
msgid "Extract metadata from files."
msgstr "Rút siêu dữ liệu ra tập tin."
-#: src/main/extract.c:294
+#: src/main/extract.c:297
#, c-format
msgid "Found by `%s' plugin:\n"
msgstr "Tìm bởi phần bổ sung « %s »:\n"
-#: src/main/extract.c:297 src/main/extract.c:386
+#: src/main/extract.c:300 src/main/extract.c:389
#: src/main/extractor_metatypes.c:153 src/main/extractor_print.c:86
#: src/main/extractor_print.c:96
msgid "unknown"
msgstr "không rõ"
-#: src/main/extract.c:302
+#: src/main/extract.c:305
#, c-format
msgid "%s - (unknown, %u bytes)\n"
msgstr "%s - (không rõ, %u byte)\n"
-#: src/main/extract.c:333
+#: src/main/extract.c:336
#, c-format
msgid "%s - (binary, %u bytes)\n"
msgstr "%s - (nhị phân, %u byte)\n"
-#: src/main/extract.c:861 src/main/extract.c:875
+#: src/main/extract.c:867 src/main/extract.c:881
msgid ""
"Illegal combination of options, cannot combine multiple styles of printing.\n"
msgstr "sai tổ hợp các tuỳ chọn này, không thể kết hợp nhiều cách in.\n"
-#: src/main/extract.c:910
+#: src/main/extract.c:916
#, c-format
msgid "You must specify an argument for the `%s' option (option ignored).\n"
msgstr "Bạn phải ghi rõ một đối số cho tùy chọn « %s » (tùy chọn bị bỏ qua).\n"
-#: src/main/extract.c:979
+#: src/main/extract.c:985
msgid "Use --help to get a list of options.\n"
msgstr ""
"Hãy sử dụng lệnh « --help » (trợ giúp) để xem một danh sách các tùy chọn.\n"
-#: src/main/extract.c:1022
+#: src/main/extract.c:1028
#, fuzzy
msgid "% BiBTeX file\n"
msgstr "%% tập tin BiBTeX\n"
-#: src/main/extract.c:1032
+#: src/main/extract.c:1038
#, c-format
msgid "Keywords for file %s:\n"
msgstr "Từ khoá cho tập tin %s:\n"
@@ -2694,11 +2694,11 @@ msgstr "Bản sửa đổi #%u: Tác giả « %s » đã làm việc « %s »."
msgid "codec: %s, %u fps, %u ms"
msgstr "codec: %s, %u khung/giây, %u miligiây"
-#: src/plugins/wav_extractor.c:128
+#: src/plugins/wav_extractor.c:129
msgid "mono"
msgstr "một nguồn"
-#: src/plugins/wav_extractor.c:128
+#: src/plugins/wav_extractor.c:129
msgid "stereo"
msgstr "âm lập thể"
diff --git a/src/common/convert.c b/src/common/convert.c
@@ -61,7 +61,7 @@ EXTRACTOR_common_convert_to_utf8 (const char *input,
}
tmpSize = 3 * len + 4;
tmp = malloc (tmpSize);
- if (tmp == NULL)
+ if (NULL == tmp)
{
iconv_close (cd);
return NULL;
@@ -69,33 +69,33 @@ EXTRACTOR_common_convert_to_utf8 (const char *input,
itmp = tmp;
finSize = tmpSize;
inSize = len;
- if (iconv (cd, (char **) &input, &len, &itmp, &finSize) == ((size_t) -1))
+ if (iconv (cd,
+ (char **) &input,
+ &len,
+ &itmp,
+ &finSize) == ((size_t) -1))
{
iconv_close (cd);
free (tmp);
return strndup (i, inSize);
}
ret = malloc (tmpSize - finSize + 1);
- if (ret == NULL)
+ if (NULL == ret)
{
iconv_close (cd);
free (tmp);
return NULL;
}
- memcpy (ret, tmp, tmpSize - finSize);
+ memcpy (ret,
+ tmp,
+ tmpSize - finSize);
ret[tmpSize - finSize] = '\0';
free (tmp);
iconv_close (cd);
return ret;
#else
- char *ret;
-
- ret = malloc (len + 1);
- if (ret == NULL)
- return NULL;
- memcpy (ret, input, len);
- ret[len] = '\0';
- return ret;
+ return strndup (input,
+ len);
#endif
}
diff --git a/src/common/unzip.c b/src/common/unzip.c
@@ -557,7 +557,7 @@ get_current_file_info (struct EXTRACTOR_UnzipFile *file,
struct EXTRACTOR_UnzipFileInfo file_info;
struct UnzipFileInfoInternal file_info_internal;
uLong uMagic;
- long lSeek = 0;
+ long lSeek;
if (NULL == file)
return EXTRACTOR_UNZIP_PARAMERROR;
@@ -574,44 +574,56 @@ get_current_file_info (struct EXTRACTOR_UnzipFile *file,
return EXTRACTOR_UNZIP_BADZIPFILE;
if ( (EXTRACTOR_UNZIP_OK !=
- read_short_from_ffd (&file->z_filefunc, &file_info.version)) ||
+ read_short_from_ffd (&file->z_filefunc,
+ &file_info.version)) ||
(EXTRACTOR_UNZIP_OK !=
- read_short_from_ffd (&file->z_filefunc, &file_info.version_needed)) ||
+ read_short_from_ffd (&file->z_filefunc,
+ &file_info.version_needed)) ||
(EXTRACTOR_UNZIP_OK !=
- read_short_from_ffd (&file->z_filefunc, &file_info.flag)) ||
+ read_short_from_ffd (&file->z_filefunc,
+ &file_info.flag)) ||
(EXTRACTOR_UNZIP_OK !=
read_short_from_ffd (&file->z_filefunc,
&file_info.compression_method)) ||
(EXTRACTOR_UNZIP_OK !=
- read_long_from_ffd (&file->z_filefunc, &file_info.dosDate)) )
+ read_long_from_ffd (&file->z_filefunc,
+ &file_info.dosDate)) )
return EXTRACTOR_UNZIP_ERRNO;
dos_date_to_tmu_date (file_info.dosDate,
&file_info.tmu_date);
if ( (EXTRACTOR_UNZIP_OK !=
- read_long_from_ffd (&file->z_filefunc, &file_info.crc)) ||
+ read_long_from_ffd (&file->z_filefunc,
+ &file_info.crc)) ||
(EXTRACTOR_UNZIP_OK !=
- read_long_from_ffd (&file->z_filefunc, &file_info.compressed_size)) ||
+ read_long_from_ffd (&file->z_filefunc,
+ &file_info.compressed_size)) ||
(EXTRACTOR_UNZIP_OK !=
- read_long_from_ffd (&file->z_filefunc, &file_info.uncompressed_size)) ||
+ read_long_from_ffd (&file->z_filefunc,
+ &file_info.uncompressed_size)) ||
(EXTRACTOR_UNZIP_OK !=
- read_short_from_ffd (&file->z_filefunc, &file_info.size_filename)) ||
+ read_short_from_ffd (&file->z_filefunc,
+ &file_info.size_filename)) ||
(EXTRACTOR_UNZIP_OK !=
- read_short_from_ffd (&file->z_filefunc, &file_info.size_file_extra)) ||
+ read_short_from_ffd (&file->z_filefunc,
+ &file_info.size_file_extra)) ||
(EXTRACTOR_UNZIP_OK !=
read_short_from_ffd (&file->z_filefunc,
&file_info.size_file_comment)) ||
(EXTRACTOR_UNZIP_OK !=
- read_short_from_ffd (&file->z_filefunc, &file_info.disk_num_start)) ||
+ read_short_from_ffd (&file->z_filefunc,
+ &file_info.disk_num_start)) ||
(EXTRACTOR_UNZIP_OK !=
- read_short_from_ffd (&file->z_filefunc, &file_info.internal_fa)) ||
+ read_short_from_ffd (&file->z_filefunc,
+ &file_info.internal_fa)) ||
(EXTRACTOR_UNZIP_OK !=
- read_long_from_ffd (&file->z_filefunc, &file_info.external_fa)) ||
+ read_long_from_ffd (&file->z_filefunc,
+ &file_info.external_fa)) ||
(EXTRACTOR_UNZIP_OK !=
read_long_from_ffd (&file->z_filefunc,
&file_info_internal.offset_curfile)) )
return EXTRACTOR_UNZIP_ERRNO;
- lSeek += file_info.size_filename;
+ lSeek = file_info.size_filename;
if (NULL != szFileName)
{
uLong uSizeRead;
@@ -622,11 +634,23 @@ get_current_file_info (struct EXTRACTOR_UnzipFile *file,
uSizeRead = file_info.size_filename;
}
else
- uSizeRead = fileNameBufferSize;
-
+ {
+ if (fileNameBufferSize > 0)
+ {
+ *(szFileName + fileNameBufferSize - 1) = '\0';
+ uSizeRead = fileNameBufferSize - 1;
+ }
+ else
+ {
+ uSizeRead = 0;
+ }
+ }
if ( (file_info.size_filename > 0) &&
(fileNameBufferSize > 0) )
- if (ZREAD (file->z_filefunc, szFileName, uSizeRead) != uSizeRead)
+ if (uSizeRead !=
+ ZREAD (file->z_filefunc,
+ szFileName,
+ uSizeRead))
return EXTRACTOR_UNZIP_ERRNO;
lSeek -= uSizeRead;
}
@@ -642,21 +666,26 @@ get_current_file_info (struct EXTRACTOR_UnzipFile *file,
if (0 != lSeek)
{
- if (0 == ZSEEK (file->z_filefunc, lSeek, SEEK_CUR))
- lSeek = 0;
- else
+ if (0 !=
+ ZSEEK (file->z_filefunc,
+ lSeek,
+ SEEK_CUR))
return EXTRACTOR_UNZIP_ERRNO;
+ lSeek = 0;
}
if ( (file_info.size_file_extra > 0) &&
(extraFieldBufferSize > 0) &&
- (ZREAD (file->z_filefunc,
+ (uSizeRead !=
+ ZREAD (file->z_filefunc,
extraField,
- uSizeRead) != uSizeRead) )
+ uSizeRead)) )
return EXTRACTOR_UNZIP_ERRNO;
lSeek += file_info.size_file_extra - uSizeRead;
}
else
+ {
lSeek += file_info.size_file_extra;
+ }
if (NULL != szComment)
{
@@ -675,19 +704,27 @@ get_current_file_info (struct EXTRACTOR_UnzipFile *file,
if (0 != lSeek)
{
- if (0 == ZSEEK (file->z_filefunc, lSeek, SEEK_CUR))
+ if (0 ==
+ ZSEEK (file->z_filefunc,
+ lSeek,
+ SEEK_CUR))
lSeek = 0;
else
return EXTRACTOR_UNZIP_ERRNO;
}
if ( (file_info.size_file_comment > 0) &&
(commentBufferSize > 0) &&
- (ZREAD (file->z_filefunc, szComment, uSizeRead) != uSizeRead) )
+ (uSizeRead !=
+ ZREAD (file->z_filefunc,
+ szComment,
+ uSizeRead)) )
return EXTRACTOR_UNZIP_ERRNO;
lSeek += file_info.size_file_comment - uSizeRead;
}
else
+ {
lSeek += file_info.size_file_comment;
+ }
if (NULL != pfile_info)
*pfile_info = file_info;
@@ -715,7 +752,9 @@ EXTRACTOR_common_unzip_go_to_first_file (struct EXTRACTOR_UnzipFile *file)
err = get_current_file_info (file,
&file->cur_file_info,
&file->cur_file_info_internal,
- NULL, 0, NULL, 0, NULL, 0);
+ NULL, 0,
+ NULL, 0,
+ NULL, 0);
file->current_file_ok = (EXTRACTOR_UNZIP_OK == err);
return err;
}
@@ -877,13 +916,19 @@ EXTRACTOR_common_unzip_get_global_comment (struct EXTRACTOR_UnzipFile *file,
{
if (NULL == file)
return EXTRACTOR_UNZIP_PARAMERROR;
+ if (0 == comment_len)
+ return EXTRACTOR_UNZIP_ERRNO; /* cannot 0-terminate, hence error */
if (comment_len > file->gi.size_comment)
comment_len = file->gi.size_comment + 1;
if (0 !=
- ZSEEK (file->z_filefunc, file->gi.offset_comment, SEEK_SET))
+ ZSEEK (file->z_filefunc,
+ file->gi.offset_comment,
+ SEEK_SET))
return EXTRACTOR_UNZIP_ERRNO;
if (comment_len - 1 !=
- ZREAD (file->z_filefunc, comment, comment_len - 1))
+ ZREAD (file->z_filefunc,
+ comment,
+ comment_len - 1))
return EXTRACTOR_UNZIP_ERRNO;
comment[comment_len - 1] = '\0';
return EXTRACTOR_UNZIP_OK;
@@ -905,15 +950,15 @@ EXTRACTOR_common_unzip_get_global_comment (struct EXTRACTOR_UnzipFile *file,
* @return #EXTRACTOR_UNZIP_OK if there is no problem.
*/
int
-EXTRACTOR_common_unzip_get_current_file_info (struct EXTRACTOR_UnzipFile *file,
- struct EXTRACTOR_UnzipFileInfo *
- pfile_info,
- char *szFileName,
- uLong fileNameBufferSize,
- void *extraField,
- uLong extraFieldBufferSize,
- char *szComment,
- uLong commentBufferSize)
+EXTRACTOR_common_unzip_get_current_file_info (
+ struct EXTRACTOR_UnzipFile *file,
+ struct EXTRACTOR_UnzipFileInfo *pfile_info,
+ char *szFileName,
+ uLong fileNameBufferSize,
+ void *extraField,
+ uLong extraFieldBufferSize,
+ char *szComment,
+ uLong commentBufferSize)
{
return get_current_file_info (file, pfile_info, NULL,
szFileName, fileNameBufferSize,
@@ -998,12 +1043,13 @@ EXTRACTOR_common_unzip_go_find_local_file (struct EXTRACTOR_UnzipFile *file,
char szCurrentFileName[UNZ_MAXFILENAMEINZIP + 1];
if (EXTRACTOR_UNZIP_OK !=
- (err = EXTRACTOR_common_unzip_get_current_file_info (file, NULL,
- szCurrentFileName,
- sizeof (
- szCurrentFileName)
- - 1,
- NULL, 0, NULL, 0)))
+ (err = EXTRACTOR_common_unzip_get_current_file_info (
+ file, NULL,
+ szCurrentFileName,
+ sizeof (szCurrentFileName)
+ - 1,
+ NULL, 0,
+ NULL, 0)))
break;
if (0 ==
EXTRACTOR_common_unzip_string_file_name_compare (szCurrentFileName,
diff --git a/src/include/extractor.h b/src/include/extractor.h
@@ -35,7 +35,7 @@ extern "C" {
* 0.2.6-1 => 0x00020601
* 4.5.2-0 => 0x04050200
*/
-#define EXTRACTOR_VERSION 0x010B0000
+#define EXTRACTOR_VERSION 0x01110000
#include <stdio.h>
diff --git a/src/main/extract.c b/src/main/extract.c
@@ -287,6 +287,9 @@ print_selected_keywords (void *cls,
const char *stype;
const char *mt;
+ if ( (type >= EXTRACTOR_metatype_get_max ()) ||
+ (type < 0) )
+ return 0; /* invalid type */
if (YES != print[type])
return 0;
if (verbose > 3)
@@ -424,7 +427,8 @@ print_selected_keywords_grep_friendly (void *cls,
"%s ",
gettext (mt));
fprintf (stdout,
- "`%s'",
+ "`%.*s'",
+ (int) data_len,
data);
break;
default:
@@ -534,8 +538,6 @@ print_bibtex (void *cls,
const char *data,
size_t data_len)
{
- unsigned int i;
-
if (0 == data_len)
return 0;
if (YES != print[type])
@@ -544,13 +546,17 @@ print_bibtex (void *cls,
return 0;
if (EXTRACTOR_METATYPE_BIBTEX_ENTRY_TYPE == type)
{
- entry_type = strdup (data);
+ entry_type = strndup (data,
+ data_len);
return 0;
}
- for (i = 0; NULL != btm[i].bibTexName; i++)
+ for (unsigned int i = 0;
+ NULL != btm[i].bibTexName;
+ i++)
if ( (NULL == btm[i].value) &&
(btm[i].le_type == type) )
- btm[i].value = strdup (data);
+ btm[i].value = strndup (data,
+ data_len);
return 0;
}
@@ -1049,13 +1055,17 @@ main (int argc,
| O_BINARY
#endif
);
+
if ( (-1 != f) &&
(0 == fstat (f,
&sb)) &&
- (NULL != (data = malloc ((size_t) sb.st_size))) &&
- (sb.st_size == read (f,
- data,
- (size_t) sb.st_size) ) )
+ (MAP_FAILED !=
+ (data = mmap (NULL,
+ (size_t) sb.st_size,
+ PROT_READ,
+ MAP_SHARED,
+ f,
+ 0))) )
{
EXTRACTOR_extract (plugins,
NULL,
@@ -1073,8 +1083,9 @@ main (int argc,
strerror (errno));
ret = 1;
}
- if (NULL != data)
- free (data);
+ if (MAP_FAILED != data)
+ munmap (data,
+ (size_t) sb.st_size);
if (-1 != f)
(void) close (f);
}
diff --git a/src/main/extractor_ipc.h b/src/main/extractor_ipc.h
@@ -378,7 +378,7 @@ EXTRACTOR_IPC_shared_memory_set_ (struct EXTRACTOR_SharedMemory *shm,
* Query datasource for current position
*
* @param ds data source to query
- * @return current position in the datasource or UINT_MAX on error
+ * @return current position in the datasource or UINT64_MAX on error
*/
uint64_t
EXTRACTOR_datasource_get_pos_ (struct EXTRACTOR_Datasource *ds);
diff --git a/src/main/extractor_ipc_gnu.c b/src/main/extractor_ipc_gnu.c
@@ -253,7 +253,7 @@ EXTRACTOR_IPC_shared_memory_set_ (struct EXTRACTOR_SharedMemory *shm,
* Query datasource for current position
*
* @param ds data source to query
- * @return current position in the datasource or UINT_MAX on error
+ * @return current position in the datasource or UINT64_MAX on error
*/
uint64_t
EXTRACTOR_datasource_get_pos_ (struct EXTRACTOR_Datasource *ds)
@@ -263,7 +263,7 @@ EXTRACTOR_datasource_get_pos_ (struct EXTRACTOR_Datasource *ds)
SEEK_CUR);
if (-1 == pos)
- return UINT_MAX;
+ return UINT64_MAX;
return pos;
}
diff --git a/src/main/extractor_plugpath.c b/src/main/extractor_plugpath.c
@@ -108,7 +108,7 @@ get_path_from_proc_exe ()
while (NULL != fgets (line, 1024, f))
{
if ( (1 == sscanf (line,
- "%*x-%*x %*c%*c%*c%*c %*x %*2x:%*2x %*u%*[ ]%s",
+ "%*x-%*x %*c%*c%*c%*c %*x %*2x:%*2x %*u%*[ ]%1023s",
dir)) &&
(NULL != (lestr = strstr (dir,
"libextractor")) ) )
diff --git a/src/main/iconv.c b/src/main/iconv.c
@@ -55,7 +55,9 @@ iconv_helper (iconv_t cd,
if (NULL == (buf = malloc (outSize)))
return NULL;
ibuf = buf;
- memset (buf, 0, outSize);
+ memset (buf,
+ 0,
+ outSize);
if (iconv (cd,
(char**) &in,
&inSize,
@@ -64,16 +66,14 @@ iconv_helper (iconv_t cd,
{
/* conversion failed */
free (buf);
- return strdup (i);
+ return strndup (i,
+ inSize);
}
return buf;
#else
/* good luck, just copying string... */
- char *buf;
-
- buf = malloc (inSize + 1);
- memcpy (buf, in, inSize);
- buf[inSize] = '\0';
+ return strndup (in,
+ inSize);
#endif
}
diff --git a/src/plugins/flac_extractor.c b/src/plugins/flac_extractor.c
@@ -357,7 +357,7 @@ flac_metadata (const FLAC__StreamDecoder *decoder,
check ((const char*) entry->entry,
ilen,
eq,
- len - ilen,
+ len - ilen - 1,
ec);
}
break;
diff --git a/src/plugins/mpeg_extractor.c b/src/plugins/mpeg_extractor.c
@@ -106,12 +106,11 @@ EXTRACTOR_mpeg_extract_method (struct EXTRACTOR_ExtractContext *ec)
break;
case STATE_SEQUENCE:
fail_count = 0;
- format[0] = fsize;
- format[0]++;
if (0 == mime)
{
mime = 1;
- ADD ("video/mpeg", EXTRACTOR_METATYPE_MIMETYPE);
+ ADD ("video/mpeg",
+ EXTRACTOR_METATYPE_MIMETYPE);
}
snprintf (format,
sizeof(format), "%ux%u",
diff --git a/src/plugins/ogg_extractor.c b/src/plugins/ogg_extractor.c
@@ -83,7 +83,9 @@ seek_ogg (void *datasource,
struct EXTRACTOR_ExtractContext *ec = datasource;
int64_t new_position;
- new_position = ec->seek (ec->cls, (int64_t) offset, whence);
+ new_position = ec->seek (ec->cls,
+ (int64_t) offset,
+ whence);
return (long) new_position;
}
diff --git a/src/plugins/png_extractor.c b/src/plugins/png_extractor.c
@@ -224,13 +224,18 @@ processiTXt (struct EXTRACTOR_ExtractContext *ec,
int ret;
int zret;
- if (length != ec->read (ec->cls, &ptr, length))
+ if (length != ec->read (ec->cls,
+ &ptr,
+ length))
return 1;
data = ptr;
- pos = stnlen ((char *) data, length) + 1;
+ pos = stnlen ((char *) data,
+ length) + 1;
if (pos >= length)
return 0;
compressed = data[pos++];
+ if (pos > length)
+ return 0;
if (compressed && (0 != data[pos++]))
return 0; /* bad compression method */
if (pos > length)
@@ -471,35 +476,60 @@ EXTRACTOR_png_extract_method (struct EXTRACTOR_ExtractContext *ec)
ssize_t len;
len = strlen (PNG_HEADER);
- if (len != ec->read (ec->cls, &data, len))
+ if (len != ec->read (ec->cls,
+ &data,
+ len))
return;
- if (0 != strncmp ((const char*) data, PNG_HEADER, len))
+ if (0 != strncmp ((const char*) data,
+ PNG_HEADER,
+ len))
return;
- ADD (EXTRACTOR_METATYPE_MIMETYPE, "image/png");
+ ADD (EXTRACTOR_METATYPE_MIMETYPE,
+ "image/png");
ret = 0;
while (0 == ret)
{
- if (sizeof (uint32_t) + 4 != ec->read (ec->cls,
- &data,
- sizeof (uint32_t) + 4))
+ if (sizeof (uint32_t) + 4 !=
+ ec->read (ec->cls,
+ &data,
+ sizeof (uint32_t) + 4))
break;
length = get_int_at (data);
- if (0 > (pos = ec->seek (ec->cls, 0, SEEK_CUR)))
+ if (0 > (pos = ec->seek (ec->cls,
+ 0,
+ SEEK_CUR)))
break;
- pos += length + 4; /* Chunk type, data, crc */
- if (0 == strncmp ((char*) data + sizeof (uint32_t), "IHDR", 4))
- ret = processIHDR (ec, length);
- if (0 == strncmp ((char*) data + sizeof (uint32_t), "iTXt", 4))
- ret = processiTXt (ec, length);
- if (0 == strncmp ((char*) data + sizeof (uint32_t), "tEXt", 4))
- ret = processtEXt (ec, length);
- if (0 == strncmp ((char*) data + sizeof (uint32_t), "zTXt", 4))
- ret = processzTXt (ec, length);
- if (0 == strncmp ((char*) data + sizeof (uint32_t), "tIME", 4))
- ret = processtIME (ec, length);
+ pos += ((int64_t) length) + 4; /* Chunk type, data, crc */
+ if (0 == strncmp ((char*) data + sizeof (uint32_t),
+ "IHDR",
+ 4))
+ ret = processIHDR (ec,
+ length);
+ if (0 == strncmp ((char*) data + sizeof (uint32_t),
+ "iTXt",
+ 4))
+ ret = processiTXt (ec,
+ length);
+ if (0 == strncmp ((char*) data + sizeof (uint32_t),
+ "tEXt",
+ 4))
+ ret = processtEXt (ec,
+ length);
+ if (0 == strncmp ((char*) data + sizeof (uint32_t),
+ "zTXt",
+ 4))
+ ret = processzTXt (ec,
+ length);
+ if (0 == strncmp ((char*) data + sizeof (uint32_t),
+ "tIME",
+ 4))
+ ret = processtIME (ec,
+ length);
if (ret != 0)
break;
- if (pos != ec->seek (ec->cls, pos, SEEK_SET))
+ if (pos != ec->seek (ec->cls,
+ pos,
+ SEEK_SET))
break;
}
FINISH:
diff --git a/src/plugins/thumbnailgtk_extractor.c b/src/plugins/thumbnailgtk_extractor.c
@@ -118,8 +118,9 @@ EXTRACTOR_thumbnailgtk_extract_method (struct EXTRACTOR_ExtractContext *ec)
buf,
size, NULL);
free (buf);
+ gdk_pixbuf_loader_close (loader,
+ NULL);
in = gdk_pixbuf_loader_get_pixbuf (loader);
- gdk_pixbuf_loader_close (loader, NULL);
if (NULL == in)
{
g_object_unref (loader);
diff --git a/src/plugins/wav_extractor.c b/src/plugins/wav_extractor.c
@@ -121,11 +121,12 @@ EXTRACTOR_wav_extract_method (struct EXTRACTOR_ExtractContext *ec)
snprintf (scratch,
sizeof (scratch),
- "%u ms, %d Hz, %s",
+ "%llu ms, %d Hz, %s",
(samples < sample_rate)
- ? (samples * 1000 / sample_rate)
- : (samples / sample_rate) * 1000,
- sample_rate, (1 == channels) ? _ ("mono") : _ ("stereo"));
+ ? (samples * 1000LLU / sample_rate)
+ : (samples / sample_rate) * 1000LLU,
+ sample_rate,
+ (1 == channels) ? _ ("mono") : _ ("stereo"));
if (0 != ec->proc (ec->cls,
"wav",
EXTRACTOR_METATYPE_RESOURCE_TYPE,
diff --git a/src/plugins/xm_extractor.c b/src/plugins/xm_extractor.c
@@ -91,8 +91,8 @@ EXTRACTOR_xm_extract_method (struct EXTRACTOR_ExtractContext *ec)
snprintf (xmversion,
sizeof (xmversion),
"%u.%u",
- head->version[1],
- head->version[0]);
+ (unsigned int) head->version[1],
+ (unsigned int) head->version[0]);
ADD (xmversion, EXTRACTOR_METATYPE_FORMAT_VERSION);
/* Song title */
memcpy (&title, head->title, 20);