Version 2.02.11 -
=====================================
+ Show available fields if report given invalid field. (e.g. lvs -o list)
Add timestamp functions with --disable-realtime configure option.
Add %VG, %LV and %FREE suffices to lvcreate/lvresize --extents arg.
Fix two potential NULL pointer derefs in error cases in vg_read().
const unsigned int _num_fields = sizeof(_fields) / sizeof(_fields[0]);
+static void _display_fields(void)
+{
+ uint32_t f;
+ const char *type, *last_type = "";
+
+ for (f = 0; f < _num_fields; f++) {
+ switch (_fields[f].type) {
+ case PVS:
+ type = "Physical Volume";
+ break;
+ case LVS:
+ type = "Logical Volume";
+ break;
+ case VGS:
+ type = "Volume Group";
+ break;
+ case SEGS:
+ type = "Logical Volume Segment";
+ break;
+ case PVSEGS:
+ type = "Physical Volume Segment";
+ break;
+ default:
+ type = " ";
+ }
+
+ if (type != last_type) {
+ if (*last_type)
+ log_print(" ");
+ log_print("%s Fields", type);
+ }
+
+ log_print("- %s", _fields[f].id);
+
+ last_type = type;
+ }
+}
+
/*
* Initialise report handle
*/
while (*we && *we != ',')
we++;
if (!_field_match(rh, ws, (size_t) (we - ws))) {
+ _display_fields();
+ log_print(" ");
log_error("Unrecognised field: %.*s", (int) (we - ws),
ws);
return 0;