summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--ChangeLog9
-rw-r--r--po/de.po50
-rw-r--r--po/fr.po50
-rw-r--r--po/nl.po50
-rw-r--r--po/pl.po50
-rw-r--r--src/mkid.c17
-rw-r--r--testsuite/Makefile.am2
-rw-r--r--testsuite/Makefile.in2
-rwxr-xr-xtestsuite/consistency9
-rw-r--r--testsuite/single_file_token_bug.c4
10 files changed, 140 insertions, 103 deletions
diff --git a/ChangeLog b/ChangeLog
index 367e013..08ac310 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,12 @@
+2005-12-15 Claudio Fontana <claudio@gnu.org>
+ * src/mkid.c: tweak alloc-ed size of token signature to a minimum
+ of 1 byte. Fixes assertion failure filed as savannah support request
+ sr #104712.
+
+ * testsuite/consistency: added test case for this bug
+ * testsuite/single_file_token_bug.c [new file]: needed for new test
+ * testsuite/Makefile.am: add new file to distribution
+
2005-12-11 Claudio Fontana <claudio@gnu.org>
* libidu/scanners.c: Fixed signed/unsigned char* assignments by
making both 'scanner_buffer' and 'id' unsigned char*.
diff --git a/po/de.po b/po/de.po
index b06f75a..0d61f69 100644
--- a/po/de.po
+++ b/po/de.po
@@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: GNU mkid 3.0.8\n"
"Report-Msgid-Bugs-To: bug-id-utils@gnu.org\n"
-"POT-Creation-Date: 2005-12-11 04:49+0100\n"
+"POT-Creation-Date: 2005-12-15 16:37+0100\n"
"PO-Revision-Date: 1996-03-23 22:34 MET\n"
"Last-Translator: Karl Eichwalder <ke@ke.Central.DE>\n"
"Language-Team: German <de@li.org>\n"
@@ -43,7 +43,7 @@ msgstr ""
msgid "can't determine the io_size of a string!"
msgstr ""
-#: libidu/idread.c:49 src/mkid.c:454 src/xtokid.c:227
+#: libidu/idread.c:49 src/mkid.c:474 src/xtokid.c:227
#, c-format
msgid "can't open `%s'"
msgstr ""
@@ -287,7 +287,7 @@ msgstr ""
msgid "%s: option `-W %s' doesn't allow an argument\n"
msgstr ""
-#: src/fid.c:73 src/fnid.c:53 src/lid.c:237 src/mkid.c:123 src/xtokid.c:47
+#: src/fid.c:73 src/fnid.c:53 src/lid.c:237 src/mkid.c:124 src/xtokid.c:47
#, c-format
msgid "Try `%s --help' for more information.\n"
msgstr ""
@@ -443,12 +443,12 @@ msgstr ""
msgid "can't match regular-expression: memory exhausted"
msgstr ""
-#: src/mkid.c:148 src/xtokid.c:68
+#: src/mkid.c:149 src/xtokid.c:68
#, c-format
msgid "Usage: %s [OPTION]... [FILE]...\n"
msgstr ""
-#: src/mkid.c:152
+#: src/mkid.c:153
#, c-format
msgid ""
"Build an identifier database.\n"
@@ -475,104 +475,104 @@ msgid ""
"The following arguments apply to the language-specific scanners:\n"
msgstr ""
-#: src/mkid.c:360
+#: src/mkid.c:376
#, c-format
msgid "can't create `%s' in `%s'"
msgstr ""
-#: src/mkid.c:364
+#: src/mkid.c:380
#, c-format
msgid "can't modify `%s'"
msgstr ""
-#: src/mkid.c:437
+#: src/mkid.c:457
#, c-format
msgid "can't stat `%s'"
msgstr ""
-#: src/mkid.c:506
+#: src/mkid.c:526
#, fuzzy, c-format
msgid " new = %d/%d"
msgstr ", new=%d/%d"
-#: src/mkid.c:515
+#: src/mkid.c:535
#, c-format
msgid "Name=%ld, "
msgstr "Name=%ld, "
-#: src/mkid.c:516
+#: src/mkid.c:536
#, c-format
msgid "Number=%ld, "
msgstr "Zahl=%ld, "
-#: src/mkid.c:517
+#: src/mkid.c:537
#, c-format
msgid "String=%ld, "
msgstr "Zeichenkette=%ld, "
# ist das gemeint? ###
-#: src/mkid.c:518
+#: src/mkid.c:538
#, c-format
msgid "Literal=%ld, "
msgstr "Zeichen=%ld, "
-#: src/mkid.c:519
+#: src/mkid.c:539
#, c-format
msgid "Comment=%ld\n"
msgstr "Kommentar=%ld\n"
-#: src/mkid.c:521
+#: src/mkid.c:541
#, fuzzy, c-format
msgid "Files=%ld, "
msgstr "Dateien=%d, "
-#: src/mkid.c:522
+#: src/mkid.c:542
#, c-format
msgid "Tokens=%ld, "
msgstr "Tokens=%ld, "
-#: src/mkid.c:523
+#: src/mkid.c:543
#, c-format
msgid "Bytes=%ld Kb, "
msgstr "Bytes=%ld Kb, "
-#: src/mkid.c:524
+#: src/mkid.c:544
#, fuzzy, c-format
msgid "Heap=%d+%d Kb, "
msgstr "\"Heap\"=%ld Kb, "
-#: src/mkid.c:526
+#: src/mkid.c:546
#, c-format
msgid "Output=%ld (%ld tok, %ld hit)\n"
msgstr "Ausgabe=%ld (%ld tok, %ld hit)\n"
# Frequenz übersetzen? ke
-#: src/mkid.c:529
+#: src/mkid.c:549
#, fuzzy, c-format
msgid ", Freq=%ld/%ld=%.2f\n"
msgstr "\"Freq\"=%ld/%ld=%.2f\n"
-#: src/mkid.c:553
+#: src/mkid.c:573
#, c-format
msgid "Sorting tokens...\n"
msgstr "Sortiere \"Token\"...\n"
-#: src/mkid.c:559
+#: src/mkid.c:579
#, c-format
msgid "Writing `%s'...\n"
msgstr "Schreibe '%s'...\n"
-#: src/mkid.c:562
+#: src/mkid.c:582
#, c-format
msgid "can't create `%s'"
msgstr ""
-#: src/mkid.c:630
+#: src/mkid.c:650
#, c-format
msgid "error closing `%s'"
msgstr ""
-#: src/mkid.c:718
+#: src/mkid.c:738
#, fuzzy, c-format
msgid "level %d: %ld/%ld = %.0f%%\n"
msgstr "level %d: %ld == %ld\n"
diff --git a/po/fr.po b/po/fr.po
index 0e8340b..0a96aa6 100644
--- a/po/fr.po
+++ b/po/fr.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: GNU mkid 3.0.8\n"
"Report-Msgid-Bugs-To: bug-id-utils@gnu.org\n"
-"POT-Creation-Date: 2005-12-11 04:49+0100\n"
+"POT-Creation-Date: 2005-12-15 16:37+0100\n"
"PO-Revision-Date: 1996-03-23 22:34 MET\n"
"Last-Translator: Unknown <unknown@unknown.fr>\n"
"Language-Team: French <fr@li.org>\n"
@@ -54,7 +54,7 @@ msgstr ""
msgid "can't determine the io_size of a string!"
msgstr ""
-#: libidu/idread.c:49 src/mkid.c:454 src/xtokid.c:227
+#: libidu/idread.c:49 src/mkid.c:474 src/xtokid.c:227
#, c-format
msgid "can't open `%s'"
msgstr ""
@@ -298,7 +298,7 @@ msgstr ""
msgid "%s: option `-W %s' doesn't allow an argument\n"
msgstr ""
-#: src/fid.c:73 src/fnid.c:53 src/lid.c:237 src/mkid.c:123 src/xtokid.c:47
+#: src/fid.c:73 src/fnid.c:53 src/lid.c:237 src/mkid.c:124 src/xtokid.c:47
#, c-format
msgid "Try `%s --help' for more information.\n"
msgstr ""
@@ -452,12 +452,12 @@ msgstr ""
msgid "can't match regular-expression: memory exhausted"
msgstr ""
-#: src/mkid.c:148 src/xtokid.c:68
+#: src/mkid.c:149 src/xtokid.c:68
#, c-format
msgid "Usage: %s [OPTION]... [FILE]...\n"
msgstr ""
-#: src/mkid.c:152
+#: src/mkid.c:153
#, c-format
msgid ""
"Build an identifier database.\n"
@@ -484,102 +484,102 @@ msgid ""
"The following arguments apply to the language-specific scanners:\n"
msgstr ""
-#: src/mkid.c:360
+#: src/mkid.c:376
#, c-format
msgid "can't create `%s' in `%s'"
msgstr ""
-#: src/mkid.c:364
+#: src/mkid.c:380
#, c-format
msgid "can't modify `%s'"
msgstr ""
-#: src/mkid.c:437
+#: src/mkid.c:457
#, c-format
msgid "can't stat `%s'"
msgstr ""
-#: src/mkid.c:506
+#: src/mkid.c:526
#, fuzzy, c-format
msgid " new = %d/%d"
msgstr ", nouveau=%d/%d"
-#: src/mkid.c:515
+#: src/mkid.c:535
#, c-format
msgid "Name=%ld, "
msgstr "Nom=%ld, "
-#: src/mkid.c:516
+#: src/mkid.c:536
#, c-format
msgid "Number=%ld, "
msgstr "Numro=%ld, "
-#: src/mkid.c:517
+#: src/mkid.c:537
#, c-format
msgid "String=%ld, "
msgstr "Chane=%ld, "
-#: src/mkid.c:518
+#: src/mkid.c:538
#, c-format
msgid "Literal=%ld, "
msgstr "Litral=%ld, "
-#: src/mkid.c:519
+#: src/mkid.c:539
#, c-format
msgid "Comment=%ld\n"
msgstr "Commentaire=%ld\n"
-#: src/mkid.c:521
+#: src/mkid.c:541
#, fuzzy, c-format
msgid "Files=%ld, "
msgstr "Fichiers=%d, "
-#: src/mkid.c:522
+#: src/mkid.c:542
#, c-format
msgid "Tokens=%ld, "
msgstr "Units lexicales=%ld, "
-#: src/mkid.c:523
+#: src/mkid.c:543
#, c-format
msgid "Bytes=%ld Kb, "
msgstr "Octets=%ld Kb, "
-#: src/mkid.c:524
+#: src/mkid.c:544
#, fuzzy, c-format
msgid "Heap=%d+%d Kb, "
msgstr "tas=%ld Kb, "
-#: src/mkid.c:526
+#: src/mkid.c:546
#, c-format
msgid "Output=%ld (%ld tok, %ld hit)\n"
msgstr "Sortie=%ld (%ld units lexicales, %ld Touches)\n"
-#: src/mkid.c:529
+#: src/mkid.c:549
#, fuzzy, c-format
msgid ", Freq=%ld/%ld=%.2f\n"
msgstr "Freq=%ld/%ld=%.2f\n"
-#: src/mkid.c:553
+#: src/mkid.c:573
#, c-format
msgid "Sorting tokens...\n"
msgstr "Tri units lexicales...\n"
-#: src/mkid.c:559
+#: src/mkid.c:579
#, c-format
msgid "Writing `%s'...\n"
msgstr "criture `%s'...\n"
-#: src/mkid.c:562
+#: src/mkid.c:582
#, c-format
msgid "can't create `%s'"
msgstr ""
-#: src/mkid.c:630
+#: src/mkid.c:650
#, c-format
msgid "error closing `%s'"
msgstr ""
-#: src/mkid.c:718
+#: src/mkid.c:738
#, fuzzy, c-format
msgid "level %d: %ld/%ld = %.0f%%\n"
msgstr "niveau %d: %ld == %ld\n"
diff --git a/po/nl.po b/po/nl.po
index e1ac9ac..343adba 100644
--- a/po/nl.po
+++ b/po/nl.po
@@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: id-utils 3.2\n"
"Report-Msgid-Bugs-To: bug-id-utils@gnu.org\n"
-"POT-Creation-Date: 2005-12-11 04:49+0100\n"
+"POT-Creation-Date: 2005-12-15 16:37+0100\n"
"PO-Revision-Date: 1998-09-30 13:31+02:00\n"
"Last-Translator: Ivo Timmermans <zarq@iname.com>\n"
"Language-Team: Dutch <nl@li.org>\n"
@@ -43,7 +43,7 @@ msgstr "Botsingen=%ld/%ld=%.0f%%"
msgid "can't determine the io_size of a string!"
msgstr "kan de io_size van een letterreeks niet vaststellen!"
-#: libidu/idread.c:49 src/mkid.c:454 src/xtokid.c:227
+#: libidu/idread.c:49 src/mkid.c:474 src/xtokid.c:227
#, c-format
msgid "can't open `%s'"
msgstr "kan `%s' niet openen"
@@ -320,7 +320,7 @@ msgstr "%s: optie `%s' is dubbelzinnig\n"
msgid "%s: option `-W %s' doesn't allow an argument\n"
msgstr "%s: optie `--%s' staat geen argumenten toe\n"
-#: src/fid.c:73 src/fnid.c:53 src/lid.c:237 src/mkid.c:123 src/xtokid.c:47
+#: src/fid.c:73 src/fnid.c:53 src/lid.c:237 src/mkid.c:124 src/xtokid.c:47
#, c-format
msgid "Try `%s --help' for more information.\n"
msgstr "Probeer `%s --help' voor meer informatie.\n"
@@ -530,12 +530,12 @@ msgstr "kan `%s' niet uitvoeren"
msgid "can't match regular-expression: memory exhausted"
msgstr "kan reguliere expressie niet vergelijken: geheugen vol"
-#: src/mkid.c:148 src/xtokid.c:68
+#: src/mkid.c:149 src/xtokid.c:68
#, c-format
msgid "Usage: %s [OPTION]... [FILE]...\n"
msgstr "Aanroep: %s [OPTIE]... [BESTAND]...\n"
-#: src/mkid.c:152
+#: src/mkid.c:153
#, c-format
msgid ""
"Build an identifier database.\n"
@@ -584,102 +584,102 @@ msgstr ""
"\n"
"The following arguments apply to the language-specific scanners:\n"
-#: src/mkid.c:360
+#: src/mkid.c:376
#, c-format
msgid "can't create `%s' in `%s'"
msgstr "kan `%s' niet aanmaken in `%s'"
-#: src/mkid.c:364
+#: src/mkid.c:380
#, c-format
msgid "can't modify `%s'"
msgstr "kan `%s' niet veranderen"
-#: src/mkid.c:437
+#: src/mkid.c:457
#, c-format
msgid "can't stat `%s'"
msgstr "kan de status van `%s' niet opvragen"
-#: src/mkid.c:506
+#: src/mkid.c:526
#, c-format
msgid " new = %d/%d"
msgstr " nieuw = %d/%d"
-#: src/mkid.c:515
+#: src/mkid.c:535
#, c-format
msgid "Name=%ld, "
msgstr "Naam=%ld, "
-#: src/mkid.c:516
+#: src/mkid.c:536
#, c-format
msgid "Number=%ld, "
msgstr "Nummer = %ld, "
-#: src/mkid.c:517
+#: src/mkid.c:537
#, c-format
msgid "String=%ld, "
msgstr "Letterreeks=%ld, "
-#: src/mkid.c:518
+#: src/mkid.c:538
#, c-format
msgid "Literal=%ld, "
msgstr "Letterlijk=%ld, "
-#: src/mkid.c:519
+#: src/mkid.c:539
#, c-format
msgid "Comment=%ld\n"
msgstr "Commentaar=%ld\n"
-#: src/mkid.c:521
+#: src/mkid.c:541
#, fuzzy, c-format
msgid "Files=%ld, "
msgstr "Bestanden=%d, "
-#: src/mkid.c:522
+#: src/mkid.c:542
#, c-format
msgid "Tokens=%ld, "
msgstr "Eenheden=%ld, "
-#: src/mkid.c:523
+#: src/mkid.c:543
#, c-format
msgid "Bytes=%ld Kb, "
msgstr "Bytes=%ld Kb, "
-#: src/mkid.c:524
+#: src/mkid.c:544
#, fuzzy, c-format
msgid "Heap=%d+%d Kb, "
msgstr "Data=%ld+%ld Kb, "
-#: src/mkid.c:526
+#: src/mkid.c:546
#, c-format
msgid "Output=%ld (%ld tok, %ld hit)\n"
msgstr "Uitvoer=%ld (%ld eenheden, %ld gevonden)\n"
-#: src/mkid.c:529
+#: src/mkid.c:549
#, c-format
msgid ", Freq=%ld/%ld=%.2f\n"
msgstr ", Freq=%ld/%ld=%.2f\n"
-#: src/mkid.c:553
+#: src/mkid.c:573
#, c-format
msgid "Sorting tokens...\n"
msgstr "Eenheden sorteren...\n"
-#: src/mkid.c:559
+#: src/mkid.c:579
#, c-format
msgid "Writing `%s'...\n"
msgstr "`%s' schrijven...\n"
-#: src/mkid.c:562
+#: src/mkid.c:582
#, c-format
msgid "can't create `%s'"
msgstr "kan `%s' niet aanmaken"
-#: src/mkid.c:630
+#: src/mkid.c:650
#, c-format
msgid "error closing `%s'"
msgstr ""
-#: src/mkid.c:718
+#: src/mkid.c:738
#, c-format
msgid "level %d: %ld/%ld = %.0f%%\n"
msgstr "niveau %d: %ld/%ld = %.0f%%\n"
diff --git a/po/pl.po b/po/pl.po
index 6498743..c031e56 100644
--- a/po/pl.po
+++ b/po/pl.po
@@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: id-utils 3.0.8\n"
"Report-Msgid-Bugs-To: bug-id-utils@gnu.org\n"
-"POT-Creation-Date: 2005-12-11 04:49+0100\n"
+"POT-Creation-Date: 2005-12-15 16:37+0100\n"
"PO-Revision-Date: 1997-03-26 23:59 +0100\n"
"Last-Translator: Wojciech Marek Gałązka <wgalazka@chem.uw.edu.pl>\n"
"Language-Team: Polish <pl@li.org>\n"
@@ -43,7 +43,7 @@ msgstr "Próby=%ld/%ld=%.2f, "
msgid "can't determine the io_size of a string!"
msgstr ""
-#: libidu/idread.c:49 src/mkid.c:454 src/xtokid.c:227
+#: libidu/idread.c:49 src/mkid.c:474 src/xtokid.c:227
#, c-format
msgid "can't open `%s'"
msgstr ""
@@ -287,7 +287,7 @@ msgstr ""
msgid "%s: option `-W %s' doesn't allow an argument\n"
msgstr ""
-#: src/fid.c:73 src/fnid.c:53 src/lid.c:237 src/mkid.c:123 src/xtokid.c:47
+#: src/fid.c:73 src/fnid.c:53 src/lid.c:237 src/mkid.c:124 src/xtokid.c:47
#, c-format
msgid "Try `%s --help' for more information.\n"
msgstr ""
@@ -441,12 +441,12 @@ msgstr ""
msgid "can't match regular-expression: memory exhausted"
msgstr ""
-#: src/mkid.c:148 src/xtokid.c:68
+#: src/mkid.c:149 src/xtokid.c:68
#, c-format
msgid "Usage: %s [OPTION]... [FILE]...\n"
msgstr ""
-#: src/mkid.c:152
+#: src/mkid.c:153
#, c-format
msgid ""
"Build an identifier database.\n"
@@ -473,102 +473,102 @@ msgid ""
"The following arguments apply to the language-specific scanners:\n"
msgstr ""
-#: src/mkid.c:360
+#: src/mkid.c:376
#, c-format
msgid "can't create `%s' in `%s'"
msgstr ""
-#: src/mkid.c:364
+#: src/mkid.c:380
#, c-format
msgid "can't modify `%s'"
msgstr ""
-#: src/mkid.c:437
+#: src/mkid.c:457
#, c-format
msgid "can't stat `%s'"
msgstr ""
-#: src/mkid.c:506
+#: src/mkid.c:526
#, fuzzy, c-format
msgid " new = %d/%d"
msgstr ", nowy=%d/%d"
-#: src/mkid.c:515
+#: src/mkid.c:535
#, c-format
msgid "Name=%ld, "
msgstr "Nazwa=%ld, "
-#: src/mkid.c:516
+#: src/mkid.c:536
#, c-format
msgid "Number=%ld, "
msgstr "Numer=%ld, "
-#: src/mkid.c:517
+#: src/mkid.c:537
#, c-format
msgid "String=%ld, "
msgstr "Łańcuch=%ld, "
-#: src/mkid.c:518
+#: src/mkid.c:538
#, c-format
msgid "Literal=%ld, "
msgstr "Literał=%ld, "
-#: src/mkid.c:519
+#: src/mkid.c:539
#, c-format
msgid "Comment=%ld\n"
msgstr "Komentarz=%ld\n"
-#: src/mkid.c:521
+#: src/mkid.c:541
#, fuzzy, c-format
msgid "Files=%ld, "
msgstr "Pliki=%d, "
-#: src/mkid.c:522
+#: src/mkid.c:542
#, c-format
msgid "Tokens=%ld, "
msgstr "Znaczniki=%ld, "
-#: src/mkid.c:523
+#: src/mkid.c:543
#, c-format
msgid "Bytes=%ld Kb, "
msgstr "Bajty=%ld Kb, "
-#: src/mkid.c:524
+#: src/mkid.c:544
#, fuzzy, c-format
msgid "Heap=%d+%d Kb, "
msgstr "Sterta=%ld Kb, "
-#: src/mkid.c:526
+#: src/mkid.c:546
#, c-format
msgid "Output=%ld (%ld tok, %ld hit)\n"
msgstr "Wynik=%ld (%ld tok, %ld hit)\n"
-#: src/mkid.c:529
+#: src/mkid.c:549
#, fuzzy, c-format
msgid ", Freq=%ld/%ld=%.2f\n"
msgstr "Częstość=%ld/%ld=%.2f\n"
-#: src/mkid.c:553
+#: src/mkid.c:573
#, c-format
msgid "Sorting tokens...\n"
msgstr "Sortowanie znaczników...\n"
-#: src/mkid.c:559
+#: src/mkid.c:579
#, c-format
msgid "Writing `%s'...\n"
msgstr "Zapisuję `%s'...\n"
-#: src/mkid.c:562
+#: src/mkid.c:582
#, c-format
msgid "can't create `%s'"
msgstr ""
-#: src/mkid.c:630
+#: src/mkid.c:650
#, c-format
msgid "error closing `%s'"
msgstr ""
-#: src/mkid.c:718
+#: src/mkid.c:738
#, fuzzy, c-format
msgid "level %d: %ld/%ld = %.0f%%\n"
msgstr "poziom %d: %ld == %ld\n"
diff --git a/src/mkid.c b/src/mkid.c
index 147211f..2261111 100644
--- a/src/mkid.c
+++ b/src/mkid.c
@@ -289,6 +289,21 @@ main (int argc, char **argv)
mark_member_file_links (&idh);
log_8_member_files = ceil_log_8 (idh.idh_member_file_table.ht_fill);
+
+ /* hack start: when scanning a single file, log_8_member_files results 0.
+ Adjust to 1 in this case, or xmalloc will be called for 0 bytes,
+ and later the struct token will have no 'hits' field.
+ This would cause a crash
+ (see testsuite/consistency, testsuite/single_file_token_bug.c)
+
+ <claudio@gnu.org 2005>
+ */
+
+ if (log_8_member_files == 0)
+ log_8_member_files = 1;
+
+ /* hack end */
+
current_hits_signature = xmalloc (log_8_member_files);
/* If scannable files were given, then scan them. */
@@ -327,7 +342,7 @@ ceil_log_8 (unsigned long n)
return log_8;
}
-/* Return the integer ceiling of the base-8 logarithm of N. */
+/* Return the integer ceiling of the base-2 logarithm of N. */
int
ceil_log_2 (unsigned long n)
diff --git a/testsuite/Makefile.am b/testsuite/Makefile.am
index c243ee2..b932992 100644
--- a/testsuite/Makefile.am
+++ b/testsuite/Makefile.am
@@ -2,7 +2,7 @@
TESTS = consistency
-EXTRA_DIST = $(TESTS)
+EXTRA_DIST = $(TESTS) single_file_token_bug.c
DISTCLEANFILES = ID
diff --git a/testsuite/Makefile.in b/testsuite/Makefile.in
index d37b482..10da762 100644
--- a/testsuite/Makefile.in
+++ b/testsuite/Makefile.in
@@ -205,7 +205,7 @@ sharedstatedir = @sharedstatedir@
sysconfdir = @sysconfdir@
target_alias = @target_alias@
TESTS = consistency
-EXTRA_DIST = $(TESTS)
+EXTRA_DIST = $(TESTS) single_file_token_bug.c
DISTCLEANFILES = ID
all: all-am
diff --git a/testsuite/consistency b/testsuite/consistency
index d375b2e..9d4d152 100755
--- a/testsuite/consistency
+++ b/testsuite/consistency
@@ -55,6 +55,15 @@ else
errors=t
fi
+cmd="$bindir/mkid $m_flag"
+echo $cmd
+if eval $cmd; then
+ echo "Good. No crash when dealing with single file"
+else
+ 1>&2 echo "Oops! mkid failed."
+ errors=t
+fi
+
case x$errors in
xt) echo "Some checks failed."
exit 1;;
diff --git a/testsuite/single_file_token_bug.c b/testsuite/single_file_token_bug.c
new file mode 100644
index 0000000..d956ca6
--- /dev/null
+++ b/testsuite/single_file_token_bug.c
@@ -0,0 +1,4 @@
+
+int main(int argc, char* argv[]) {
+ return 0;
+}