xbps-bin: make 'list' target without arguments to only show pkgs in "installed" state.
This commit is contained in:
		| @@ -58,18 +58,21 @@ list_pkgs_in_dict(prop_object_t obj, void *arg, bool *loop_done) | |||||||
| 	struct list_pkgver_cb *lpc = arg; | 	struct list_pkgver_cb *lpc = arg; | ||||||
| 	const char *pkgver, *short_desc; | 	const char *pkgver, *short_desc; | ||||||
| 	char *tmp = NULL; | 	char *tmp = NULL; | ||||||
| 	pkg_state_t curstate, *wantstate = &lpc->state; | 	pkg_state_t curstate; | ||||||
| 	size_t i = 0; | 	size_t i = 0; | ||||||
|  |  | ||||||
| 	(void)loop_done; | 	(void)loop_done; | ||||||
|  |  | ||||||
| 	assert(prop_object_type(obj) == PROP_TYPE_DICTIONARY); | 	if (xbps_get_pkg_state_dictionary(obj, &curstate)) | ||||||
|  | 		return EINVAL; | ||||||
|  |  | ||||||
| 	if (wantstate && *wantstate != 0) { | 	if (lpc->state == 0) { | ||||||
| 		if (xbps_get_pkg_state_dictionary(obj, &curstate)) | 		/* Only list packages that are fully installed */ | ||||||
| 			return EINVAL; | 		if (curstate != XBPS_PKG_STATE_INSTALLED) | ||||||
|  | 			return 0; | ||||||
| 		if (curstate != *wantstate) | 	} else { | ||||||
|  | 		/* Only list packages with specified state */ | ||||||
|  | 		if (curstate != lpc->state) | ||||||
| 			return 0; | 			return 0; | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user