case 9:
case 9:  break; case 10:  if( !pend || !*p ) break;
parse_pub_line( char *buf ){    KEYINFO *k=NULL;    PGPUID *uid = NULL;    int field = 0;    char *pend, *p;    if( !*buf )	return NULL;    for( p = buf; p; p = pend ) {	if( (pend = strchr(p, ':')) )	    *pend++ = 0;	field++;	if( field > 1 && !*p )	    continue;	switch( field ) {	  case 1: /* record type */	    if( strcmp(p,"pub") )		return NULL;	    k = safe_malloc( sizeof(KEYINFO) );	    k->keyid = NULL;	    k->address = NULL;	    k->flags = 0;	    k->next = NULL;	    k->keylen = 0;	    break;	  case 2: /* trust info */	    /* k_>flags |= KEYFLAG_EXPIRED */	    break;	  case 3: /* key length  */	    k->keylen = atoi(p); /* fixme: add validation checks */	    break;	  case 4: /* pubkey algo */	    k->algorithm = pkalgbytype(atoi(p));	    k->flags |= get_abilities(atoi(p));	    break;	  case 5: /* 16 hex digits with the long keyid. */	    /* We really should do a check here */	    k->keyid = safe_strdup(p);	    break;	  case 6: /* timestamp (1998-02-28) */	    break;	  case 7: /* Local id	      */	    break;	  case 8: /* ownertrust       */	    break;	  case 9: /* name	      */	    k->address = mutt_new_list();	    k->address->data = safe_malloc( sizeof(PGPUID) );	    uid = (PGPUID *)k->address->data;	    uid->addr = safe_strdup(p);	    uid->trust = 0;	    break;	  case 10: /* signature class  */	    break;	  default:	    break;	}    }    return k;}