Radish alpha
H
rad:z3QDZAW2FAfuLvihrhiyDC9fAD8G9
HardenedBSD Package Manager
Radicle
Git
Fix possible %# query flags for rquery and add %#[drCOLB] to manpage.
Rolf Grossmann committed 13 years ago
commit 3ec19a229a379b537ad185359597232f78de5b0c
parent 55a9d0f
2 files changed +14 -2
modified pkg/pkg-rquery.8
@@ -168,6 +168,11 @@ Flatsize of the package (type integer)
Automatic status of the package (type integer)
.It Cm \&%M
Message of the package (type string)
+
.It Cm \&%# Ns Op drCOLB
+
Number of elements in the list of information (type integer).
+
See
+
.Cm %?
+
above for what information is used.
.El
.Ss Operators
.Bl -tag -width F1
modified pkg/query.c
@@ -472,29 +472,36 @@ format_sql_condition(const char *str, struct sbuf *sqlcond, bool for_remote)
								sbuf_printf(sqlcond, "(SELECT COUNT(*) FROM %spkg_categories AS d WHERE d.package_id=p.id)", dbstr);
								break;
							case 'F':
+
								if (for_remote)
+
									goto bad_option;
								sbuf_printf(sqlcond, "(SELECT COUNT(*) FROM %sfiles AS d WHERE d.package_id=p.id)", dbstr);
								break;
							case 'O':
								sbuf_printf(sqlcond, "(SELECT COUNT(*) FROM %soptions AS d WHERE d.package_id=p.id)", dbstr);
								break;
							case 'D':
+
								if (for_remote)
+
									goto bad_option;
								sbuf_printf(sqlcond, "(SELECT COUNT(*) FROM %spkg_directories AS d WHERE d.package_id=p.id)", dbstr);
								break;
							case 'L':
								sbuf_printf(sqlcond, "(SELECT COUNT(*) FROM %spkg_licenses AS d WHERE d.package_id=p.id)", dbstr);
								break;
							case 'U':
+
								if (for_remote)
+
									goto bad_option;
								sbuf_printf(sqlcond, "(SELECT COUNT(*) FROM %spkg_users AS d WHERE d.package_id=p.id)", dbstr);
								break;
							case 'G':
+
								if (for_remote)
+
									goto bad_option;
								sbuf_printf(sqlcond, "(SELECT COUNT(*) FROM %spkg_groups AS d WHERE d.package_id=p.id)", dbstr);
								break;
							case 'B':
								sbuf_printf(sqlcond, "(SELECT COUNT(*) FROM %spkg_shlibs AS d WHERE d.package_id=p.id)", dbstr);
								break;
							default:
-
								fprintf(stderr, "malformed evaluation string\n");
-
								return (EPKG_FATAL);
+
								goto bad_option;
						}
						state = OPERATOR_INT;
						break;