if (!pango_skip_space(&p)) {
if (!pangolite_skip_space(&p)) {
process_module_file(FILE *module_file){  GString  *line_buf = g_string_new(NULL);  GString  *tmp_buf = g_string_new(NULL);  gboolean have_error = FALSE;  while (pango_read_line(module_file, line_buf)) {    PangoEnginePair *pair = g_new(PangoEnginePair, 1);    PangoEngineRange *range;    GList *ranges = NULL;    GList *tmp_list;        const char *p, *q;    int        i, start, end;        pair->included = FALSE;        p = line_buf->str;        if (!pango_skip_space(&p)) {      g_free(pair);      continue;    }        i = 0;    while (1) {	  if (!pango_scan_string(&p, tmp_buf)) {      have_error = TRUE;      goto error;    }    	  switch (i) {    case 0:      pair->load_info = g_strdup(tmp_buf->str);      break;    case 1:      pair->info.id = g_strdup(tmp_buf->str);      break;    case 2:      pair->info.engine_type = g_strdup(tmp_buf->str);      break;    case 3:      pair->info.render_type = g_strdup(tmp_buf->str);      break;    default:      range = g_new(PangoEngineRange, 1);      if (sscanf(tmp_buf->str, "%d-%d:", &start, &end) != 2) {        fprintf(stderr, "Error reading modules file");        have_error = TRUE;        goto error;      }      q = strchr(tmp_buf->str, ':');      if (!q) {        fprintf(stderr, "Error reading modules file");        have_error = TRUE;        goto error;      }      q++;      range->start = start;      range->end = end;      range->langs = g_strdup(q);            ranges = g_list_prepend(ranges, range);    }    	  if (!pango_skip_space(&p))	    break;	  	  i++;    }        if (i<3) {      fprintf(stderr, "Error reading modules file");      have_error = TRUE;      goto error;    }        ranges = g_list_reverse(ranges);    pair->info.n_ranges = g_list_length(ranges);    pair->info.ranges = g_new(PangoEngineRange, pair->info.n_ranges);        tmp_list = ranges;    for (i=0; i<pair->info.n_ranges; i++) {      pair->info.ranges[i] = *(PangoEngineRange *)tmp_list->data;      tmp_list = tmp_list->next;    }        pair->engine = NULL;        dlloaded_engines = g_slist_prepend(dlloaded_engines, pair);      error:    g_list_foreach(ranges, (GFunc)g_free, NULL);    g_list_free(ranges);        if (have_error) {      g_free(pair);      break;    }  }    g_string_free(line_buf, TRUE);  g_string_free(tmp_buf, TRUE);    return !have_error;}