p = skiptok(sp);
p = sp+strcspn(sp, " \t\n");
void process_fd(FILE *f){    char buf1[512], buf2[512];    char *sp, *np, *p;    while (fgets(buf1, sizeof buf1, f)) {	int endflag;	struct tabtab *tab;	if (!fgets(buf2, sizeof buf2, f))	    break;	sp = strchr(buf1, ':');	np = strchr(buf2, ':');	if (!np || !sp)	    goto formaterr;	*sp = '\0';	tab = newtable(snmptabs, buf1);	if (tab == NULL) {	    UFWARN((printf(_("unknown title %s\n"), buf1)));	    continue;	}	np++;	sp++;	endflag = 0;	while (!endflag) {	    while (isspace(*sp))		sp++;	    while (isspace(*np))		np++;	    /*if (*np == '\0') goto formaterr; */	    p = skiptok(sp);	    if (*p == '\0')		endflag = 1;	    *p = '\0';            /* printf("f: %d %d %d  %p %p %p %p %p\n",f_raw, f_tcp, f_udp, Iptab, Icmptab, Tcptab, Tcpexttab, Udptab, tab); */            	    if (*sp != '\0') {	/* XXX */		if (		    (((tab->tab==Iptab) ||(tab->tab==Icmptab))  &&f_raw) ||		    (((tab->tab==Tcptab)||(tab->tab==Tcpexttab))&&f_tcp) ||		    ( (tab->tab==Udptab)                        &&f_udp)		   )		printval(tab, sp, strtoul(np, &np, 10));	    }	    sp = p + 1;	}    }  return;  formaterr:  perror(_("error parsing /proc/net/snmp"));  return;}