rem: errh->warning("precision lowered to 107"); precision = 107;
add: errh->warning("precision lowered to 107"); precision = 107; } else if (clp->val.i < 1) { errh->warning("precision raised to 1"); precision = 1;
context: main(int argc, char **argv){  PsresDatabase *psres = new PsresDatabase;  psres->add_psres_path(getenv("PSRESOURCEPATH"), 0, false);    Clp_Parser *clp =    Clp_NewParser(argc, argv, sizeof(options) / sizeof(options[0]), options);  program_name = Clp_ProgramName(clp);    bool write_pfb = true;  bool amcp_info = false;  int precision = 5;  int subr_count = -1;  FILE *outfile = 0;  ErrorHandler *default_errh =    new PinnedErrorHandler(new FileErrorHandler(stderr), "mmpfb");  errh = default_errh;    while (1) {    int opt = Clp_Next(clp);    switch (opt) {           case WEIGHT_OPT:      set_design("Weight", clp->val.d);      break;           case WIDTH_OPT:      set_design("Width", clp->val.d);      break;           case OPSIZE_OPT:      set_design("OpticalSize", clp->val.d);      break;            case STYLE_OPT:      set_design("Style", clp->val.d);      break;           case N1_OPT:     case N2_OPT:     case N3_OPT:     case N4_OPT:      set_design(opt - N1_OPT, clp->val.d);      break;           case AMCP_INFO_OPT:      amcp_info = true;      break;           case PFA_OPT:      write_pfb = false;      break;           case PFB_OPT:      write_pfb = true;      break;     case PRECISION_OPT:      if (clp->val.i > 107) {	errh->warning("precision lowered to 107");	precision = 107;      } else	precision = clp->val.i;      break;     case SUBRS_OPT:      if (clp->negated)	subr_count = -1;      else if (clp->val.i <= 0)	errh->warning("subr count too small");      else	subr_count = clp->val.i;      break;           case QUIET_OPT:      if (clp->negated)	errh = default_errh;      else	errh = ErrorHandler::silent_handler();      break;           case OUTPUT_OPT:      if (outfile) errh->fatal("output file already specified");      if (strcmp(clp->arg, "-") == 0)	outfile = stdout;      else {	outfile = fopen(clp->arg, "wb");	if (!outfile) errh->fatal("can't open `%s' for writing", clp->arg);      }      break;           case VERSION_OPT:      printf("mmpfb (LCDF mminstance) %s\n", VERSION);      printf("Copyright (C) 1997-2002 Eddie Kohler\n\This is free software; see the source for copying conditions.\n\There is NO warranty, not even for merchantability or fitness for a\n\particular purpose.\n");      exit(0);      break;           case HELP_OPT:      usage();      exit(0);      break;           case Clp_NotOption:      do_file(clp->arg, psres);      break;           case Clp_Done:      if (!font) usage_error("missing font argument");      goto done;           case Clp_BadOption:      usage_error(0);      break;           default:      break;          }  }   done:  if (outfile == 0) outfile = stdout;    if (amcp_info) {    print_amcp_info(mmspace, outfile);    exit(0);  }    Vector<double> design = mmspace->empty_design_vector();  for (int i = 0; i < values.size(); i++)    if (ax_names[i])      mmspace->set_design(design, ax_names[i], values[i], errh);    else      mmspace->set_design(design, ax_nums[i], values[i], errh);    Vector<double> default_design = mmspace->default_design_vector();  for (int i = 0; i < mmspace->naxes(); i++)    if (!KNOWN(design[i]) && KNOWN(default_design[i])) {      errh->warning("using default value %g for %s's %s", default_design[i],		    font->font_name().cc(), mmspace->axis_type(i).cc());      design[i] = default_design[i];    }    if (!font->set_design_vector(mmspace, design, errh))    exit(1);  font->interpolate_dicts(errh);  font->interpolate_charstrings(precision, errh);    { // Add an identifying comment.#if HAVE_CTIME    time_t cur_time = time(0);    char *time_str = ctime(&cur_time);    int time_len = strlen(time_str) - 1;    char *buf = new char[strlen(VERSION) + time_len + 100];    sprintf(buf, "%%%% Interpolated by mmpfb-%s on %.*s.", VERSION,	    time_len, time_str);#else    char *buf = new char[strlen(VERSION) + 100];    sprintf(buf, "%%%% Interpolated by mmpfb-%s.", VERSION);#endif    font->add_header_comment(buf);    font->add_header_comment("%% Mmpfb is free software.  See <http://www.lcdf.org/type/>.");    delete[] buf;  }  if (subr_count >= 0) {    Type1SubrRemover sr(font, errh);    sr.run(subr_count);  }    if (write_pfb) {    Type1PFBWriter w(outfile);    font->write(w);  } else {    Type1PFAWriter w(outfile);    font->write(w);  }    return 0;}