rem: pgm->rdy_led        = pgm_default_1; pgm->err_led        = pgm_default_1; pgm->pgm_led        = pgm_default_1; pgm->vfy_led        = pgm_default_1;
context: PROGRAMMER * pgm_new(void){  int i;  PROGRAMMER * pgm;  pgm = (PROGRAMMER *)malloc(sizeof(*pgm));  if (pgm == NULL) {    fprintf(stderr, "%s: out of memory allocating programmer structure\n",            progname);    exit(1);  }  memset(pgm, 0, sizeof(*pgm));  pgm->id = lcreat(NULL, 0);  pgm->desc[0] = 0;  pgm->type[0] = 0;  pgm->config_file[0] = 0;  pgm->lineno = 0;  pgm->baudrate = 0;  for (i=0; i<N_PINS; i++)    pgm->pinno[i] = 0;  /*   * mandatory functions - these are called without checking to see   * whether they are assigned or not   */  pgm->rdy_led        = pgm_default_1;  pgm->err_led        = pgm_default_1;  pgm->pgm_led        = pgm_default_1;  pgm->vfy_led        = pgm_default_1;  pgm->initialize     = pgm_default_2;  pgm->display        = pgm_default_6;  pgm->enable         = pgm_default_4;  pgm->disable        = pgm_default_4;  pgm->powerup        = pgm_default_4;  pgm->powerdown      = pgm_default_4;  pgm->program_enable = pgm_default_2;  pgm->chip_erase     = pgm_default_2;  pgm->cmd            = pgm_default_5;  pgm->open           = pgm_default_3;  pgm->close          = pgm_default_4;  /*   * optional functions - these are checked to make sure they are   * assigned before they are called   */  pgm->paged_write    = NULL;  pgm->paged_load     = NULL;  pgm->write_setup    = NULL;  pgm->write_byte     = NULL;  pgm->read_byte      = NULL;  pgm->read_sig_bytes = NULL;  pgm->set_vtarget    = NULL;  pgm->set_varef      = NULL;  pgm->set_fosc       = NULL;  return pgm;}