From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 687 invoked by alias); 2 Oct 2006 16:46:28 -0000 Received: (qmail 673 invoked by uid 9447); 2 Oct 2006 16:46:28 -0000 Date: Mon, 02 Oct 2006 16:46:00 -0000 Message-ID: <20061002164628.671.qmail@sourceware.org> From: agk@sourceware.org To: lvm2-cvs@sourceware.org Subject: LVM2 ./WHATS_NEW lib/report/report.c Mailing-List: contact lvm2-cvs-help@sourceware.org; run by ezmlm Precedence: bulk List-Subscribe: List-Post: List-Help: , Sender: lvm2-cvs-owner@sourceware.org X-SW-Source: 2006-10/txt/msg00001.txt.bz2 List-Id: CVSROOT: /cvs/lvm2 Module name: LVM2 Changes by: agk@sourceware.org 2006-10-02 16:46:27 Modified files: . : WHATS_NEW lib/report : report.c Log message: Show available fields if report given invalid field. (e.g. lvs -o list) Patches: http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/WHATS_NEW.diff?cvsroot=lvm2&r1=1.446&r2=1.447 http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/lib/report/report.c.diff?cvsroot=lvm2&r1=1.47&r2=1.48 --- LVM2/WHATS_NEW 2006/09/30 20:02:02 1.446 +++ LVM2/WHATS_NEW 2006/10/02 16:46:27 1.447 @@ -1,5 +1,6 @@ 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(). --- LVM2/lib/report/report.c 2006/08/21 12:54:53 1.47 +++ LVM2/lib/report/report.c 2006/10/02 16:46:27 1.48 @@ -948,6 +948,44 @@ 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 */ @@ -1080,6 +1118,8 @@ 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;