+ if ((th->flags & UT_FLAG_PERCENTAGE) == UT_FLAG_PERCENTAGE)
+ {
+
+ gauge_t sum=0.0;
+ gauge_t percentage;
+
+ for (i = 0; i < ds->ds_num; i++)
+ if (!isnan (values[i]))
+ sum += values[i];
+
+ if (sum == 0.0)
+ {
+ WARNING ("Values sum for percentage seems up to zero");
+ return(STATE_WARNING);
+ }
+
+ percentage = 100.0 * values[0] / sum;
+
+ if (ret_ds_index != NULL)
+ *ret_ds_index = 0;
+
+ return ut_check_one_data_source (NULL, vl, th, &percentage, 0);
+ }
+