rem: double x = strtod(underscore + 1, &underscore);
add: double x = strtod(underscore + 1, const_cast<char **>(&underscore));
context: read_file(const char *fn, MetricsFinder *finder){  Filename filename;  FILE *file;    if (strcmp(fn, "-") == 0) {    filename = Filename("<stdin>");    file = stdin;  } else {    filename = Filename(fn);    file = filename.open_read();  }  int save_errno = errno;    if (!file) {    // look for a font by name    AmfmMetrics *new_amfm = finder->find_amfm(fn, errh);    if (new_amfm) {      set_amfm(new_amfm);      return;    }    if (finder->find_metrics(fn, errh))      return;        // check for instance name. don't use InstanceMetricsFinder.    char *underscore = strchr(fn, '_');    if (underscore)      new_amfm = finder->find_amfm(PermString(fn, underscore - fn), errh);    if (!new_amfm)      errh->fatal("%s: %s", fn, strerror(save_errno));    set_amfm(new_amfm);        int i = 0;    while (underscore[0] == '_' && underscore[1]) {      double x = strtod(underscore + 1, &underscore);      set_design(i, x);      i++;    }    return;  }    Slurper slurper(filename, file);  bool is_afm = false;  if (file != stdin) {    char *first_line = slurper.peek_line();    if (first_line)      is_afm = strncmp(first_line, "StartFontMetrics", 16) == 0;  }    if (is_afm) {    Metrics *afm = AfmReader::read(slurper, errh);    if (afm) finder->record(afm);  } else    set_amfm(AmfmReader::read(slurper, finder, errh));}