From 745d50cfa4763a79372e1941649ce1091c6d46c5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20Boyer?= Date: Wed, 16 May 2012 07:52:28 +0000 Subject: [PATCH] MOD: Corrected condition in getSon to handle the root of the taxonomy git-svn-id: https://www.grenoble.prabi.fr/svn/LECASofts/ecoPCR/trunk@422 60f365c0-8329-0410-b2a4-ec073aeeaa1d --- src/ecofind.c | 6 ++++-- src/libecoPCR/ecotax.c | 4 ++-- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/src/ecofind.c b/src/ecofind.c index 66b4a09..e78f906 100644 --- a/src/ecofind.c +++ b/src/ecofind.c @@ -12,7 +12,7 @@ static void printresult(ecotx_t *taxon,econame_t* name,ecotaxonomy_t *taxonomy) { char* rankname; - char* classname; + char* classname; char* matchedname=taxon->name; classname="scientific name"; @@ -45,6 +45,7 @@ static void printheader(void) "scientific name"); } + /** * display son's list for given taxon **/ @@ -57,7 +58,8 @@ static void get_son(ecotaxonomy_t *taxonomy, ecotx_t *taxon, int32_t *count, cha i < taxonomy->taxons->count; i++, current_taxon++) { - if (taxon->taxid == current_taxon->parent->taxid) + + if (taxon != current_taxon && taxon->taxid == current_taxon->parent->taxid) { if (rankname == NULL || !strcmp(rankname,taxonomy->ranks->label[current_taxon->rank])) { diff --git a/src/libecoPCR/ecotax.c b/src/libecoPCR/ecotax.c index 2aba11a..77a46b2 100644 --- a/src/libecoPCR/ecotax.c +++ b/src/libecoPCR/ecotax.c @@ -29,14 +29,14 @@ ecotxidx_t *read_taxonomyidx(const char *filename,const char *filename2) index->count=count+count2; - fprintf(stderr,"Readind %d taxa...\n",count); + fprintf(stderr,"Reading %d taxa...\n",count); for (i=0; i < count; i++){ readnext_ecotaxon(f,&(index->taxon[i])); index->taxon[i].parent=index->taxon + (int32_t)index->taxon[i].parent; } if (count2>0) - fprintf(stderr,"Readind %d local taxa...\n",count2); + fprintf(stderr,"Reading %d local taxa...\n",count2); else fprintf(stderr,"No local taxon\n");