-/*
+/*
afm.cc -- implement Adobe_font_metric
-
+
source file of the GNU LilyPond music typesetter
-
+
(c) 2000--2005 Han-Wen Nienhuys <hanwen@cs.uu.nl>
-
- */
+*/
#include "afm.hh"
checksum_ = 0;
font_info_ = fi;
design_size_ = 1.0;
-
+
for (int i = 256 >? fi->numOfChars; i--;)
ascii_to_metric_idx_.push (-1);
-
+
for (int i = 0; i < fi->numOfChars; i++)
{
- AFM_CharMetricInfo * c = fi->cmi + i;
+ AFM_CharMetricInfo *c = fi->cmi + i;
/* Some TeX afm files contain code = -1. We don't know why,
- let's ignore it. */
+ let's ignore it. */
if (c->code >= 0)
ascii_to_metric_idx_[c->code] = i;
name_to_metric_dict_[c->name] = i;
{
Adobe_font_metric *fm = new Adobe_font_metric (fi);
fm->checksum_ = checksum;
- fm->design_size_ = design_size;
- return fm->self_scm ();
+ fm->design_size_ = design_size;
+ return fm->self_scm ();
}
-AFM_CharMetricInfo const*
+AFM_CharMetricInfo const *
Adobe_font_metric::find_ascii_metric (int a) const
{
if (ascii_to_metric_idx_[a] >= 0)
return 0;
}
-AFM_CharMetricInfo const*
+AFM_CharMetricInfo const *
Adobe_font_metric::find_char_metric (String nm) const
{
int idx = name_to_index (nm);
int
Adobe_font_metric::name_to_index (String name) const
{
- std::map<String, int>::const_iterator ai = name_to_metric_dict_.find (name);
+ std::map < String, int>::const_iterator ai = name_to_metric_dict_.find (name);
if (ai == name_to_metric_dict_.end ())
return -1;
- return (*ai).second;
+ return (*ai).second;
}
int
AFM_CharMetricInfo const *c = find_ascii_metric (code);
Box b (Interval (0, 0), Interval (0, 0));
if (c)
- b = afm_bbox_to_box (c->charBBox);
+ b = afm_bbox_to_box (c->charBBox);
return b;
}
SCM
read_afm_file (String nm)
{
- FILE *f = fopen (nm.to_str0 () , "r");
+ FILE *f = fopen (nm.to_str0 (), "r");
char s[2048] = "";
char *check_key = "Comment TfmCheckSum";
char *size_key = "Comment DesignSize";
unsigned int cs = 0;
Real ds = 1.0;
-
+
/* Assume check_key in first 10 lines */
for (int i = 0; i < 10; i++)
{
else if (strncmp (s, size_key, strlen (size_key)) == 0)
sscanf (s + strlen (size_key), "%lf", &ds);
}
-
+
rewind (f);
-
+
AFM_Font_info *fi;
int ok = AFM_parseFile (f, &fi, ~0);
Real
Adobe_font_metric::design_size () const
{
- return design_size_;
+ return design_size_;
}
-
-
String
Adobe_font_metric::font_name () const
{