=================================================================== RCS file: /cvsrepo/anoncvs/cvs/src/usr.bin/systat/pool.c,v retrieving revision 1.4 retrieving revision 1.5 diff -c -r1.4 -r1.5 *** src/usr.bin/systat/pool.c 2008/12/07 07:46:05 1.4 --- src/usr.bin/systat/pool.c 2008/12/31 05:37:24 1.5 *************** *** 1,4 **** ! /* $OpenBSD: pool.c,v 1.4 2008/12/07 07:46:05 canacar Exp $ */ /* * Copyright (c) 2008 Can Erkin Acar * --- 1,4 ---- ! /* $OpenBSD: pool.c,v 1.5 2008/12/31 05:37:24 canacar Exp $ */ /* * Copyright (c) 2008 Can Erkin Acar * *************** *** 227,232 **** --- 227,234 ---- num_pools = np; } + num_disp = num_pools; + for (i = 0; i < num_pools; i++) { mib[0] = CTL_KERN; mib[1] = KERN_POOL; *************** *** 234,247 **** mib[3] = i + 1; size = sizeof(struct pool); if (sysctl(mib, 4, &pools[i].pool, &size, NULL, 0) < 0) { ! error("sysctl(pool): %s", strerror(errno)); ! break; } mib[2] = KERN_POOL_NAME; size = sizeof(pools[i].name); if (sysctl(mib, 4, &pools[i].name, &size, NULL, 0) < 0) { ! error("sysctl(pool_name): %s", strerror(errno)); ! break; } } --- 236,249 ---- mib[3] = i + 1; size = sizeof(struct pool); if (sysctl(mib, 4, &pools[i].pool, &size, NULL, 0) < 0) { ! memset(&pools[i], 0, sizeof(pools[i])); ! num_disp--; ! continue; } mib[2] = KERN_POOL_NAME; size = sizeof(pools[i].name); if (sysctl(mib, 4, &pools[i].name, &size, NULL, 0) < 0) { ! snprintf(pools[i].name, size, "#%d#", mib[3]); } } *************** *** 257,269 **** void print_pool(void) { ! int n, count = 0; if (pools == NULL) return; ! for (n = dispstart; n < num_disp; n++) { ! showpool(n); count++; if (maxprint > 0 && count >= maxprint) break; --- 259,275 ---- void print_pool(void) { ! int i, n, count = 0; if (pools == NULL) return; ! for (n = i = 0; i < num_pools; i++) { ! if (pools[i].name[0] == 0) ! continue; ! if (n++ < dispstart) ! continue; ! showpool(i); count++; if (maxprint > 0 && count >= maxprint) break;