diff --git a/src/HTMLRenderer/font.cc b/src/HTMLRenderer/font.cc
index bfb13f1..3e1fff0 100644
--- a/src/HTMLRenderer/font.cc
+++ b/src/HTMLRenderer/font.cc
@@ -431,7 +431,7 @@ void HTMLRenderer::embed_font(const string & filepath, GfxFont * font, FontInfo
char buf[2] = {0, ' '};
space_width = (int)floor(font_cid->getWidth(buf, 2) * info.em_size + 0.5);
}
- ffw_make_char((int)' ', space_width);
+ ffw_add_empty_char((int32_t)' ', space_width);
}
if(ctu)
diff --git a/src/util/ffw.c b/src/util/ffw.c
index 8ccc030..572209b 100644
--- a/src/util/ffw.c
+++ b/src/util/ffw.c
@@ -260,9 +260,12 @@ void ffw_cidflatten(void)
SFFlatten(cur_fv->sf->cidmaster);
}
-void ffw_make_char(int enc, int width)
+void ffw_add_empty_char(int32_t unicode, int width)
{
- SFMakeChar(cur_fv->sf, cur_fv->map, enc)->width = width;
+ // append the new char to Enc
+ SplineChar * sc = SFMakeChar(cur_fv->sf, cur_fv->map, cur_fv->map->enccount);
+ sc->unicodeenc = unicode;
+ sc->width = width;
}
int ffw_get_em_size(void)
diff --git a/src/util/ffw.h b/src/util/ffw.h
index bfcdacd..de90cc7 100644
--- a/src/util/ffw.h
+++ b/src/util/ffw.h
@@ -40,8 +40,8 @@ void ffw_reencode_raw(int32_t * mapping, int mapping_len, int force);
void ffw_reencode_raw2(char ** mapping, int mapping_len, int force);
void ffw_cidflatten(void);
-// get or create the char, and set the width
-void ffw_make_char(int enc, int width);
+// add a new empty char into the font
+void ffw_add_empty_char(int32_t unicode, int width);
////////////////////////
// metrics