@@ -49,17 +49,17 @@ usage(void)
4949 " real-version, arch, getsystemdir\n"
5050 "\n"
5151 " Action arguments:\n"
52- " binpkgarch\t<binpkg>\n"
53- " binpkgver\t<binpkg>\n"
52+ " binpkgarch\t<binpkg> ... \n"
53+ " binpkgver\t<binpkg> ... \n"
5454 " cmpver\t\t<instver> <reqver>\n"
55- " getpkgdepname\t<string>\n"
56- " getpkgdepversion\t<string>\n"
57- " getpkgname\t\t<string>\n"
58- " getpkgrevision\t<string>\n"
59- " getpkgversion\t<string>\n"
55+ " getpkgdepname\t<string> ... \n"
56+ " getpkgdepversion\t<string> ... \n"
57+ " getpkgname\t\t<string> ... \n"
58+ " getpkgrevision\t<string> ... \n"
59+ " getpkgversion\t<string> ... \n"
6060 " pkgmatch\t\t<pkg-version> <pkg-pattern>\n"
61- " version\t\t<pkgname>\n"
62- " real-version\t<pkgname>\n"
61+ " version\t\t<pkgname> ... \n"
62+ " real-version\t<pkgname> ... \n"
6363 "\n"
6464 " Options shared by all actions:\n"
6565 " -C\t\tPath to xbps.conf file.\n"
@@ -103,7 +103,7 @@ main(int argc, char **argv)
103103 struct xferstat xfer ;
104104 const char * version , * rootdir = NULL , * confdir = NULL ;
105105 char pkgname [XBPS_NAME_SIZE ], * filename ;
106- int flags = 0 , c , rv = 0 ;
106+ int flags = 0 , c , rv = 0 , i = 0 ;
107107 const struct option longopts [] = {
108108 { NULL , 0 , NULL , 0 }
109109 };
@@ -160,102 +160,133 @@ main(int argc, char **argv)
160160 }
161161
162162 if (strcmp (argv [0 ], "version" ) == 0 ) {
163- /* Prints version of an installed package */
164- if (argc != 2 )
163+ /* Prints version of installed packages */
164+ if (argc < 2 )
165165 usage ();
166166
167- if ((((dict = xbps_pkgdb_get_pkg (& xh , argv [1 ])) == NULL )) &&
168- (((dict = xbps_pkgdb_get_virtualpkg (& xh , argv [1 ])) == NULL )))
169- exit (EXIT_FAILURE );
170-
171- xbps_dictionary_get_cstring_nocopy (dict , "pkgver" , & version );
172- printf ("%s\n" , xbps_pkg_version (version ));
167+ for (i = 1 ; i < argc ; i ++ ) {
168+ if ((((dict = xbps_pkgdb_get_pkg (& xh , argv [i ])) == NULL )) &&
169+ (((dict = xbps_pkgdb_get_virtualpkg (& xh , argv [i ])) == NULL ))) {
170+ xbps_error_printf ("Could not find package '%s'\n" , argv [i ]);
171+ rv = 1 ;
172+ } else {
173+ xbps_dictionary_get_cstring_nocopy (dict , "pkgver" , & version );
174+ printf ("%s\n" , xbps_pkg_version (version ));
175+ }
176+ }
173177 } else if (strcmp (argv [0 ], "real-version" ) == 0 ) {
174- /* Prints version of an installed real package , not virtual */
175- if (argc != 2 )
178+ /* Prints version of installed real packages , not virtual */
179+ if (argc < 2 )
176180 usage ();
177181
178- if ((dict = xbps_pkgdb_get_pkg (& xh , argv [1 ])) == NULL )
179- exit (EXIT_FAILURE );
180-
181- xbps_dictionary_get_cstring_nocopy (dict , "pkgver" , & version );
182- printf ("%s\n" , xbps_pkg_version (version ));
182+ for (i = 1 ; i < argc ; i ++ ) {
183+ if ((dict = xbps_pkgdb_get_pkg (& xh , argv [i ])) == NULL ) {
184+ xbps_error_printf ("Could not find package '%s'\n" , argv [i ]);
185+ rv = 1 ;
186+ } else {
187+ xbps_dictionary_get_cstring_nocopy (dict , "pkgver" , & version );
188+ printf ("%s\n" , xbps_pkg_version (version ));
189+ }
190+ }
183191 } else if (strcmp (argv [0 ], "getpkgversion" ) == 0 ) {
184- /* Returns the version of a pkg string */
185- if (argc != 2 )
192+ /* Returns the version of pkg strings */
193+ if (argc < 2 )
186194 usage ();
187195
188- version = xbps_pkg_version (argv [1 ]);
189- if (version == NULL ) {
190- fprintf (stderr ,
191- "Invalid string, expected <string>-<version>_<revision>\n" );
192- exit (EXIT_FAILURE );
196+ for (i = 1 ; i < argc ; i ++ ) {
197+ version = xbps_pkg_version (argv [i ]);
198+ if (version == NULL ) {
199+ xbps_error_printf (
200+ "Invalid string '%s', expected <string>-<version>_<revision>\n" , argv [i ]);
201+ rv = 1 ;
202+ } else {
203+ printf ("%s\n" , version );
204+ }
193205 }
194- printf ("%s\n" , version );
195206 } else if (strcmp (argv [0 ], "getpkgname" ) == 0 ) {
196- /* Returns the name of a pkg string */
197- if (argc != 2 )
207+ /* Returns the name of pkg strings */
208+ if (argc < 2 )
198209 usage ();
199210
200- if (!xbps_pkg_name (pkgname , sizeof (pkgname ), argv [1 ])) {
201- fprintf (stderr ,
202- "Invalid string, expected <string>-<version>_<revision>\n" );
203- exit (EXIT_FAILURE );
211+ for (i = 1 ; i < argc ; i ++ ) {
212+ if (!xbps_pkg_name (pkgname , sizeof (pkgname ), argv [i ])) {
213+ xbps_error_printf (
214+ "Invalid string '%s', expected <string>-<version>_<revision>\n" , argv [i ]);
215+ rv = 1 ;
216+ } else {
217+ printf ("%s\n" , pkgname );
218+ }
204219 }
205- printf ("%s\n" , pkgname );
206220 } else if (strcmp (argv [0 ], "getpkgrevision" ) == 0 ) {
207- /* Returns the revision of a pkg string */
208- if (argc != 2 )
221+ /* Returns the revision of pkg strings */
222+ if (argc < 2 )
209223 usage ();
210224
211- version = xbps_pkg_revision (argv [1 ]);
212- if (version == NULL )
213- exit (EXIT_SUCCESS );
214-
215- printf ("%s\n" , version );
225+ for (i = 1 ; i < argc ; i ++ ) {
226+ version = xbps_pkg_revision (argv [1 ]);
227+ if (version == NULL ) {
228+ rv = 1 ;
229+ } else {
230+ printf ("%s\n" , version );
231+ }
232+ }
216233 } else if (strcmp (argv [0 ], "getpkgdepname" ) == 0 ) {
217- /* Returns the pkgname of a dependency */
218- if (argc != 2 )
234+ /* Returns the pkgname of dependencies */
235+ if (argc < 2 )
219236 usage ();
220237
221- if (!xbps_pkgpattern_name (pkgname , sizeof (pkgname ), argv [1 ]))
222- exit (EXIT_FAILURE );
223-
224- printf ("%s\n" , pkgname );
238+ for (i = 1 ; i < argc ; i ++ ) {
239+ if (!xbps_pkgpattern_name (pkgname , sizeof (pkgname ), argv [i ])) {
240+ xbps_error_printf ("Invalid string '%s', expected <string><comparator><version>\n" , argv [i ]);
241+ rv = 1 ;
242+ } else {
243+ printf ("%s\n" , pkgname );
244+ }
245+ }
225246 } else if (strcmp (argv [0 ], "getpkgdepversion" ) == 0 ) {
226- /* returns the version of a package pattern dependency */
227- if (argc != 2 )
247+ /* returns the version of package pattern dependencies */
248+ if (argc < 2 )
228249 usage ();
229250
230- version = xbps_pkgpattern_version (argv [1 ]);
231- if (version == NULL )
232- exit (EXIT_FAILURE );
233-
234- printf ("%s\n" , version );
251+ for (i = 1 ; i < argc ; i ++ ) {
252+ version = xbps_pkgpattern_version (argv [i ]);
253+ if (version == NULL ) {
254+ xbps_error_printf ("Invalid string '%s', expected <string><comparator><version>\n" , argv [i ]);
255+ rv = 1 ;
256+ } else {
257+ printf ("%s\n" , version );
258+ }
259+ }
235260 } else if (strcmp (argv [0 ], "binpkgver" ) == 0 ) {
236- /* Returns the pkgver of a binpkg string */
237- if (argc != 2 )
261+ /* Returns the pkgver of binpkg strings */
262+ if (argc < 2 )
238263 usage ();
239264
240- version = xbps_binpkg_pkgver (argv [1 ]);
241- if (version == NULL ) {
242- fprintf (stderr ,
243- "Invalid string, expected <pkgname>-<version>_<revision>.<arch>.xbps\n" );
244- exit (EXIT_FAILURE );
265+ for (i = 1 ; i < argc ; i ++ ) {
266+ version = xbps_binpkg_pkgver (argv [i ]);
267+ if (version == NULL ) {
268+ xbps_error_printf (
269+ "Invalid string '%s', expected <pkgname>-<version>_<revision>.<arch>.xbps\n" , argv [i ]);
270+ rv = 1 ;
271+ } else {
272+ printf ("%s\n" , version );
273+ }
245274 }
246- printf ("%s\n" , version );
247275 } else if (strcmp (argv [0 ], "binpkgarch" ) == 0 ) {
248- /* Returns the arch of a binpkg string */
249- if (argc != 2 )
276+ /* Returns the arch of binpkg strings */
277+ if (argc < 2 )
250278 usage ();
251279
252- version = xbps_binpkg_arch (argv [1 ]);
253- if (version == NULL ) {
254- fprintf (stderr ,
255- "Invalid string, expected <pkgname>-<version>_<revision>.<arch>.xbps\n" );
256- exit (EXIT_FAILURE );
280+ for (i = 1 ; i < argc ; i ++ ) {
281+ version = xbps_binpkg_arch (argv [i ]);
282+ if (version == NULL ) {
283+ xbps_error_printf (
284+ "Invalid string '%s', expected <pkgname>-<version>_<revision>.<arch>.xbps\n" , argv [i ]);
285+ rv = 1 ;
286+ } else {
287+ printf ("%s\n" , version );
288+ }
257289 }
258- printf ("%s\n" , version );
259290 } else if (strcmp (argv [0 ], "pkgmatch" ) == 0 ) {
260291 /* Matches a pkg with a pattern */
261292 if (argc != 3 )
@@ -291,7 +322,7 @@ main(int argc, char **argv)
291322 if (argc < 2 )
292323 usage ();
293324
294- for (int i = 1 ; i < argc ; i ++ ) {
325+ for (i = 1 ; i < argc ; i ++ ) {
295326 if (!xbps_file_sha256 (sha256 , sizeof sha256 , argv [i ])) {
296327 fprintf (stderr ,
297328 "E: couldn't get hash for %s (%s)\n" ,
@@ -305,7 +336,7 @@ main(int argc, char **argv)
305336 if (argc < 2 )
306337 usage ();
307338
308- for (int i = 1 ; i < argc ; i ++ ) {
339+ for (i = 1 ; i < argc ; i ++ ) {
309340 filename = fname (argv [i ]);
310341 rv = xbps_fetch_file_dest (& xh , argv [i ], filename , "v" );
311342
0 commit comments