Index: lib/ipmi_sensor.c
===================================================================
RCS file: /cvsroot/ipmitool/ipmitool/lib/ipmi_sensor.c,v
retrieving revision 1.44
diff -u -r1.44 ipmi_sensor.c
--- lib/ipmi_sensor.c	3 Aug 2012 17:07:07 -0000	1.44
+++ lib/ipmi_sensor.c	16 Jan 2013 19:16:36 -0000
@@ -840,6 +840,13 @@
 	return rc;
 }
 
+void
+printf_sensor_get_usage()
+{
+		lprintf(LOG_NOTICE, "sensor get <id> ... [id]");
+		lprintf(LOG_NOTICE, "   id        : name of desired sensor");
+}
+
 static int
 ipmi_sensor_get(struct ipmi_intf *intf, int argc, char **argv)
 {
@@ -847,55 +854,32 @@
 	int i, v;
 	int rc = 0;
 
-	if (argc < 1 || strncmp(argv[0], "help", 4) == 0) {
-		lprintf(LOG_NOTICE, "sensor get <id> ... [id]");
-		lprintf(LOG_NOTICE, "   id        : name of desired sensor");
-		return -1;
+	if (argc < 1) {
+		printf_sensor_get_usage();
+		return (-1);
+	} else if (strcmp(argv[0], "help") == 0) {
+		printf_sensor_get_usage();
+		return 0;
 	}
 	printf("Locating sensor record...\n");
 
 	/* lookup by sensor name */
 	for (i = 0; i < argc; i++) {
-		int r = 0;
-
 		sdr = ipmi_sdr_find_sdr_byid(intf, argv[i]);
 		if (sdr == NULL) {
 			lprintf(LOG_ERR, "Sensor data record \"%s\" not found!",
-				argv[i]);
+					argv[i]);
 			rc = -1;
 			continue;
 		}
-
 		/* need to set verbose level to 1 */
 		v = verbose;
 		verbose = 1;
-		switch (sdr->type) {
-		case SDR_RECORD_TYPE_FULL_SENSOR:
-		case SDR_RECORD_TYPE_COMPACT_SENSOR:
-			r = ipmi_sensor_print_fc(intf, sdr->record.common,
-						   sdr->type);
-			break;
-		case SDR_RECORD_TYPE_EVENTONLY_SENSOR:
-			r = ipmi_sdr_print_sensor_eventonly(intf,
-							    sdr->record.
-							    eventonly);
-			break;
-		case SDR_RECORD_TYPE_FRU_DEVICE_LOCATOR:
-			r = ipmi_sdr_print_sensor_fru_locator(intf,
-							      sdr->record.
-							      fruloc);
-			break;
-		case SDR_RECORD_TYPE_MC_DEVICE_LOCATOR:
-			r = ipmi_sdr_print_sensor_mc_locator(intf,
-							     sdr->record.mcloc);
-			break;
+		if (ipmi_sdr_print_listentry(intf, sdr) < 0) {
+			rc = (-1);
 		}
 		verbose = v;
-
-		/* save errors */
-		rc = (r == 0) ? rc : r;
 	}
-
 	return rc;
 }
 
