Example #1
0
int bf_MapFile(bf_t *bf, const char *map_file_name)
{
  struct stat buf;
  char *s;
  FILE *fp;
  if ( map_file_name == NULL )
    return 1;
  if ( map_file_name[0] == '\0' )
    return 1;
  
  
  if ( stat(map_file_name, &buf) != 0 )
    return 0;
  fp = fopen(map_file_name, "r");
  if ( fp == NULL )
    return 0;
  s = malloc(buf.st_size+1);
  if ( s == NULL )
    return 0;
  fread(s, buf.st_size, 1, fp);
  s[buf.st_size] = '\0';
  fclose(fp);
  bf_Map(bf, s);
  free(s);
  return 1;
}
Example #2
0
bf_t *bf_OpenFromFile(const char *bdf_filename, int is_verbose, int bbx_mode, const char *map_str, int font_format)
{
  bf_t *bf;

  bf = bf_Open(is_verbose, bbx_mode);
  if ( bf != NULL )
  {
    
    if ( bf_ParseFile(bf, bdf_filename) != 0 )
    {
      bf_Map(bf, map_str);
      bf_CalculateSelectedNumberOfGlyphs(bf);
      
      bf_ReduceAllGlyph(bf);
      bf_CalculateMaxBBX(bf);
      //bf_ShowAllGlyphs(bf, &(bf->max));
      bf_CalculateMinMaxDWidth(bf);
      
      bf_CalculateMaxBitFieldSize(bf);  
      
      
      if ( font_format == 0 || font_format == 1 )
      {
	bf_RLECompressAllGlyphs(bf);
      }
      else
      {
	bf_Generate8x8Font(bf);
      }
      
      if ( bf->bbx_mode != BDF_BBX_MODE_MINIMAL )
	bf_ShowMonospaceStatistics(bf);	/* Show stats only for none minimal mode. For minimal mode it will always be zero */
    
      return bf;
    }
    bf_Close(bf);
  }
  return NULL;
}