From 2b99d7d46f255a381f29f430ceb1f5f98794e212 Mon Sep 17 00:00:00 2001 From: Silvan Calarco Date: Mon, 14 Oct 2013 12:45:06 +0200 Subject: [PATCH] distroquery: add provided search --- po/distromatic.pot | 182 ++++++++++++++++++++++++-------------------- po/it.gmo | Bin 1588 -> 1762 bytes po/it.po | 186 +++++++++++++++++++++++++-------------------- src/distroquery.c | 39 +++++++++- 4 files changed, 237 insertions(+), 170 deletions(-) diff --git a/po/distromatic.pot b/po/distromatic.pot index 50ff1ce..03d9a78 100644 --- a/po/distromatic.pot +++ b/po/distromatic.pot @@ -1,14 +1,14 @@ # SOME DESCRIPTIVE TITLE. -# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# Copyright (C) YEAR Silvan Calarco # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. # #, fuzzy msgid "" msgstr "" -"Project-Id-Version: PACKAGE VERSION\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2013-10-14 03:03+0200\n" +"Project-Id-Version: distromatic 1.4.1\n" +"Report-Msgid-Bugs-To: silvan.calarco@mambasoft.it\n" +"POT-Creation-Date: 2013-10-14 12:08+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -17,94 +17,112 @@ msgstr "" "Content-Type: text/plain; charset=CHARSET\n" "Content-Transfer-Encoding: 8bit\n" -#: ../src/distroquery.c:534 ../src/distroquery.c:672 -msgid "Build date" -msgstr "" - -#: ../src/distroquery.c:694 -msgid "Build requirements" -msgstr "" - -#: ../src/distroquery.c:639 -msgid "Built packages" -msgstr "" - -#: ../src/distroquery.c:706 -msgid "Changelog" -msgstr "" - -#: ../src/distroquery.c:361 -msgid "Details" -msgstr "" - -#: ../src/distroquery.c:525 ../src/distroquery.c:670 -msgid "Developers details" -msgstr "" - -#: ../src/distroquery.c:352 ../src/distroquery.c:523 ../src/distroquery.c:668 -msgid "Download" -msgstr "" - -#: ../src/distroquery.c:533 ../src/distroquery.c:671 -msgid "Maintainer" -msgstr "" - -#: ../src/distroquery.c:537 -msgid "Obsoletes" -msgstr "" - -#: ../src/distroquery.c:684 -msgid "Patches" -msgstr "" - -#: ../src/distroquery.c:549 -msgid "Provides" -msgstr "" - -#: ../src/distroquery.c:497 -msgid "Related packages" -msgstr "" - -#: ../src/distroquery.c:563 -msgid "Requires" -msgstr "" - -#: ../src/distroquery.c:204 -msgid "Search" -msgstr "" - -#: ../src/distroquery.c:425 -msgid "Search results for" -msgstr "" - -#: ../src/distroquery.c:249 -msgid "Search software packages" -msgstr "" - -#: ../src/distroquery.c:494 -msgid "Size" -msgstr "" - -#: ../src/distroquery.c:178 +#: src/distroquery.c:178 msgid "Source" msgstr "" -#: ../src/distroquery.c:675 -msgid "Source files" +#: src/distroquery.c:204 +msgid "Search" msgstr "" -#: ../src/distroquery.c:527 -msgid "Source package" +#: src/distroquery.c:238 +msgid "sources" msgstr "" -#: ../src/distroquery.c:489 ../src/distroquery.c:632 -msgid "Version" +#: src/distroquery.c:249 +msgid "Search software packages" msgstr "" -#: ../src/distroquery.c:422 +#: src/distroquery.c:354 src/distroquery.c:557 src/distroquery.c:702 +msgid "Download" +msgstr "" + +#: src/distroquery.c:363 +msgid "Details" +msgstr "" + +#: src/distroquery.c:380 +#, c-format +msgid "Other results in " +msgstr "" + +#: src/distroquery.c:381 +#, c-format +msgid "Results in" +msgstr "" + +#: src/distroquery.c:384 +msgid "for arch " +msgstr "" + +#: src/distroquery.c:393 +msgid "provides" +msgstr "" + +#: src/distroquery.c:456 msgid "result(s) shown" msgstr "" -#: ../src/distroquery.c:238 -msgid "sources" +#: src/distroquery.c:459 +msgid "Search results for" +msgstr "" + +#: src/distroquery.c:523 src/distroquery.c:666 +msgid "Version" +msgstr "" + +#: src/distroquery.c:528 +msgid "Size" +msgstr "" + +#: src/distroquery.c:531 +msgid "Related packages" +msgstr "" + +#: src/distroquery.c:559 src/distroquery.c:704 +msgid "Developers details" +msgstr "" + +#: src/distroquery.c:561 +msgid "Source package" +msgstr "" + +#: src/distroquery.c:567 src/distroquery.c:705 +msgid "Maintainer" +msgstr "" + +#: src/distroquery.c:568 src/distroquery.c:706 +msgid "Build date" +msgstr "" + +#: src/distroquery.c:571 +msgid "Obsoletes" +msgstr "" + +#: src/distroquery.c:583 +msgid "Provides" +msgstr "" + +#: src/distroquery.c:597 +msgid "Requires" +msgstr "" + +#: src/distroquery.c:673 +msgid "Built packages" +msgstr "" + +#: src/distroquery.c:709 +msgid "Source files" +msgstr "" + +#: src/distroquery.c:718 +msgid "Patches" +msgstr "" + +#: src/distroquery.c:728 +msgid "Build requirements" +msgstr "" + +#: src/distroquery.c:740 +msgid "Changelog" msgstr "" diff --git a/po/it.gmo b/po/it.gmo index b456875967937c2a5ef550a222114ae755a69888..e3ecd76bdba25d59e3deffab7626be552c6951af 100644 GIT binary patch delta 756 zcmYk)O-PhM9LMq5muEFwOV`{j-*_Mv5mMF;5#6GTw_wk8Saf9{Ty&j%c99D9;!)Y) zp`eRNr#e*>bP}QurFJYQ~1(jF>6<`$=cny`%bG(c%-TYg88fzKziN+Ns zW;|m?@gWZ2W7Gz1)CMoy{3}#|&v+5PqXPdzt^14o%mELrJ9gtKPNV)1D&gzs5#JPO z4C5`-35%#3SU@dkVlTE(H?i)Eh&`^Ev09m;0ROzQ%82wU?xOWGE?Wn)*x~rk)09C^^TN zHXO$!7O)*>u@x7v1=sBS7DgEFq4w>g)}5f%o!R*d>@cQguI!6D471=K^`Qq;Q19sC zubp>;#>5y$QGujT2ajL^$Lx3-54pq)cJuy`Lk92zyD%D3U^Qa~=_uk1YC#@#;2cJA z9`&JRlyn?b`7%@|ZeJKc1s5aEr>s6KdZZ#_\n" "Language-Team: Italian\n" @@ -17,94 +17,112 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ../src/distroquery.c:534 ../src/distroquery.c:672 -msgid "Build date" -msgstr "Data di compilazione" - -#: ../src/distroquery.c:694 -msgid "Build requirements" -msgstr "Requisiti per la compilazione" - -#: ../src/distroquery.c:639 -msgid "Built packages" -msgstr "Pacchetti compilati" - -#: ../src/distroquery.c:706 -msgid "Changelog" -msgstr "Modifiche" - -#: ../src/distroquery.c:361 -msgid "Details" -msgstr "Dettagli" - -#: ../src/distroquery.c:525 ../src/distroquery.c:670 -msgid "Developers details" -msgstr "Dettagli per gli sviluppatori" - -#: ../src/distroquery.c:352 ../src/distroquery.c:523 ../src/distroquery.c:668 -msgid "Download" -msgstr "Scarica" - -#: ../src/distroquery.c:533 ../src/distroquery.c:671 -msgid "Maintainer" -msgstr "Manutentore" - -#: ../src/distroquery.c:537 -msgid "Obsoletes" -msgstr "Rende obsoleti" - -#: ../src/distroquery.c:684 -msgid "Patches" -msgstr "Patch" - -#: ../src/distroquery.c:549 -msgid "Provides" -msgstr "Fornisce" - -#: ../src/distroquery.c:497 -msgid "Related packages" -msgstr "Pacchetti collegati" - -#: ../src/distroquery.c:563 -msgid "Requires" -msgstr "Richiede" - -#: ../src/distroquery.c:204 -msgid "Search" -msgstr "Cerca" - -#: ../src/distroquery.c:425 -msgid "Search results for" -msgstr "Risultati della ricerca per" - -#: ../src/distroquery.c:249 -msgid "Search software packages" -msgstr "Cerca pacchetti software" - -#: ../src/distroquery.c:494 -msgid "Size" -msgstr "Dimensione" - -#: ../src/distroquery.c:178 +#: src/distroquery.c:178 msgid "Source" msgstr "Sorgente" -#: ../src/distroquery.c:675 -msgid "Source files" -msgstr "File sorgenti" +#: src/distroquery.c:204 +msgid "Search" +msgstr "Cerca" -#: ../src/distroquery.c:527 -msgid "Source package" -msgstr "Pacchetto sorgente" +#: src/distroquery.c:238 +msgid "sources" +msgstr "sorgenti" -#: ../src/distroquery.c:489 ../src/distroquery.c:632 -msgid "Version" -msgstr "Versione" +#: src/distroquery.c:249 +msgid "Search software packages" +msgstr "Cerca pacchetti software" -#: ../src/distroquery.c:422 +#: src/distroquery.c:354 src/distroquery.c:557 src/distroquery.c:702 +msgid "Download" +msgstr "Scarica" + +#: src/distroquery.c:363 +msgid "Details" +msgstr "Dettagli" + +#: src/distroquery.c:380 +#, c-format +msgid "Other results in " +msgstr "Altri risultati in " + +#: src/distroquery.c:381 +#, c-format +msgid "Results in" +msgstr "Risultati in" + +#: src/distroquery.c:384 +msgid "for arch " +msgstr "per l'architettura " + +#: src/distroquery.c:393 +msgid "provides" +msgstr "fornisce" + +#: src/distroquery.c:456 msgid "result(s) shown" msgstr "risultati mostrati" -#: ../src/distroquery.c:238 -msgid "sources" -msgstr "sorgenti" +#: src/distroquery.c:459 +msgid "Search results for" +msgstr "Risultati della ricerca per" + +#: src/distroquery.c:523 src/distroquery.c:666 +msgid "Version" +msgstr "Versione" + +#: src/distroquery.c:528 +msgid "Size" +msgstr "Dimensione" + +#: src/distroquery.c:531 +msgid "Related packages" +msgstr "Pacchetti collegati" + +#: src/distroquery.c:559 src/distroquery.c:704 +msgid "Developers details" +msgstr "Dettagli per gli sviluppatori" + +#: src/distroquery.c:561 +msgid "Source package" +msgstr "Pacchetto sorgente" + +#: src/distroquery.c:567 src/distroquery.c:705 +msgid "Maintainer" +msgstr "Manutentore" + +#: src/distroquery.c:568 src/distroquery.c:706 +msgid "Build date" +msgstr "Data di compilazione" + +#: src/distroquery.c:571 +msgid "Obsoletes" +msgstr "Rende obsoleti" + +#: src/distroquery.c:583 +msgid "Provides" +msgstr "Fornisce" + +#: src/distroquery.c:597 +msgid "Requires" +msgstr "Richiede" + +#: src/distroquery.c:673 +msgid "Built packages" +msgstr "Pacchetti compilati" + +#: src/distroquery.c:709 +msgid "Source files" +msgstr "File sorgenti" + +#: src/distroquery.c:718 +msgid "Patches" +msgstr "Patch" + +#: src/distroquery.c:728 +msgid "Build requirements" +msgstr "Requisiti per la compilazione" + +#: src/distroquery.c:740 +msgid "Changelog" +msgstr "Modifiche" diff --git a/src/distroquery.c b/src/distroquery.c index 4e8ebf0..79e0130 100644 --- a/src/distroquery.c +++ b/src/distroquery.c @@ -252,7 +252,7 @@ void printInputForm() { void printQueryData() { - int a, i, j, k, numresults = 0; + int a, i, j, k, numresults = 0, localresults, localprovidesresults; char dbname[PATH_MAX]; sqlite3_stmt *statement, *stmt1; char sql[PATH_MAX]; @@ -275,7 +275,6 @@ void printQueryData() { fprintf(stderr, "ERROR: unable to open sqlite3 db %s; aborting.\n", dbname); } }*/ - for (i = 0; query_repositories[i] != NULL; i++) { for (a = 0; a < ARCHS_MAX && query_repositories[i]->arch[a]; a++) { if (find_query_arch(query_repositories[i]->arch[a]) >= 0) { @@ -298,6 +297,7 @@ void printQueryData() { } if (query_repositories[i]->db[a]) { + localresults = 0; snprintf(sql, PATH_MAX, "SELECT * FROM packages WHERE name LIKE '%%%s%%' OR summary LIKE '%%%s%%' OR description LIKE '%%%s%%' OR version LIKE '%%%s%%' " "ORDER BY name = '%s' DESC, name LIKE '%s%%' DESC, name LIKE '%%%s%%' DESC, " @@ -308,6 +308,7 @@ void printQueryData() { if (sqlite3_prepare_v2((sqlite3*)query_repositories[i]->db[a], sql, strlen(sql), &statement, NULL) == SQLITE_OK) { while (sqlite3_step(statement) == SQLITE_ROW) { numresults++; + localresults++; snprintf(sql, PATH_MAX, "SELECT * FROM sources WHERE id=%d", sqlite3_column_int(statement,sqlite3_find_column_id(statement, NULL, "id_source"))); @@ -363,6 +364,36 @@ void printQueryData() { printf("
"); } } + localprovidesresults = 0; + snprintf(sql, PATH_MAX, + "SELECT * FROM packages,provides,provided WHERE " + "(provides.id_package=packages.id AND provided.id=provides.id_provided) " + "AND provided.name LIKE '%%%s%%' " + "ORDER BY provided.name = '%s' DESC, provided.name LIKE '%s%%' DESC, provided.name LIKE '%%%s%%' DESC " + "LIMIT 100", queryenc, queryenc, queryenc, queryenc); + if (sqlite3_prepare_v2((sqlite3*)query_repositories[i]->db[a], sql, strlen(sql), &statement, NULL) == SQLITE_OK) { + while (sqlite3_step(statement) == SQLITE_ROW) { + numresults++; + if (++localprovidesresults == 1) { + printf("

"); + if (localresults > 0) printf(_("Other results in ")); + else printf(_("Results in")); + printf(" %s %s %s:
", + query_repositories[i]->tag, + _("for arch "), + query_repositories[i]->arch[a]); + } + printf("%s %s %s
", + query_repositories[i]->tag, + sqlite3_column_text(statement,sqlite3_find_column_id(statement, "packages", "name")), + query_repositories[i]->arch[a], + sqlite3_column_text(statement,sqlite3_find_column_id(statement, "packages", "name")), + _("provides"), + sqlite3_column_text(statement,sqlite3_find_column_id(statement, "provided", "name"))); + } + if (localprovidesresults > 0) printf("
"); + } } } } @@ -370,9 +401,9 @@ void printQueryData() { if (search_sources) { snprintf(sql, PATH_MAX, - "SELECT * FROM sources WHERE name LIKE '%%%s%%' OR summary LIKE '%%%s%%' OR description LIKE '%%%s%%' OR version LIKE '%%%s%%'" + "SELECT * FROM sources WHERE name LIKE '%%%s%%' OR summary LIKE '%%%s%%' OR description LIKE '%%%s%%' OR version LIKE '%%%s%%' " "ORDER BY name = '%s' DESC, name LIKE '%s%%' DESC, name LIKE '%%%s%%' DESC LIMIT 100", - queryenc, queryenc, queryenc, queryenc, queryenc); + queryenc, queryenc, queryenc, queryenc, queryenc, queryenc, queryenc); for (i = 0; query_repositories[i] != NULL; i++) { if (!query_repositories[i]->db[ARCHS_MAX]) { snprintf(dbname, PATH_MAX, "%s%s-sources.db", query_repositories[i]->repository_dir, query_repositories[i]->tag);