mirror of
https://github.com/9fans/plan9port.git
synced 2025-01-24 11:41:58 +00:00
fontsrv: make single quotes look like quotes
R=rsc https://codereview.appspot.com/6864051
This commit is contained in:
parent
1785490baa
commit
09adcb0901
1 changed files with 15 additions and 3 deletions
|
@ -18,6 +18,18 @@
|
||||||
|
|
||||||
extern void CGFontGetGlyphsForUnichars(CGFontRef, const UniChar[], const CGGlyph[], size_t);
|
extern void CGFontGetGlyphsForUnichars(CGFontRef, const UniChar[], const CGGlyph[], size_t);
|
||||||
|
|
||||||
|
int
|
||||||
|
mapUnicode(int i)
|
||||||
|
{
|
||||||
|
switch(i) {
|
||||||
|
case '\'':
|
||||||
|
return 0x2019;
|
||||||
|
case '`':
|
||||||
|
return 0x2018;
|
||||||
|
}
|
||||||
|
return i;
|
||||||
|
}
|
||||||
|
|
||||||
char*
|
char*
|
||||||
mac2c(CFStringRef s)
|
mac2c(CFStringRef s)
|
||||||
{
|
{
|
||||||
|
@ -89,7 +101,7 @@ subfontbbox(CGFontRef font, int lo, int hi)
|
||||||
CGGlyph g;
|
CGGlyph g;
|
||||||
CGRect r;
|
CGRect r;
|
||||||
|
|
||||||
u = i;
|
u = mapUnicode(i);
|
||||||
CGFontGetGlyphsForUnichars(font, &u, &g, 1);
|
CGFontGetGlyphsForUnichars(font, &u, &g, 1);
|
||||||
if(g == 0 || !CGFontGetGlyphBBoxes(font, &g, 1, &r))
|
if(g == 0 || !CGFontGetGlyphBBoxes(font, &g, 1, &r))
|
||||||
continue;
|
continue;
|
||||||
|
@ -144,7 +156,7 @@ load(XFont *f)
|
||||||
// figure out where the letters are
|
// figure out where the letters are
|
||||||
for(i=0; i<0xffff; i+=0x100) {
|
for(i=0; i<0xffff; i+=0x100) {
|
||||||
for(j=0; j<0x100; j++) {
|
for(j=0; j<0x100; j++) {
|
||||||
u[j] = i+j;
|
u[j] = mapUnicode(i+j);
|
||||||
g[j] = 0;
|
g[j] = 0;
|
||||||
}
|
}
|
||||||
CGFontGetGlyphsForUnichars(font, u, g, 256);
|
CGFontGetGlyphsForUnichars(font, u, g, 256);
|
||||||
|
@ -233,7 +245,7 @@ mksubfont(char *name, int lo, int hi, int size, int antialias)
|
||||||
fc->bottom = Dy(m->r);
|
fc->bottom = Dy(m->r);
|
||||||
|
|
||||||
n = 0;
|
n = 0;
|
||||||
u[n++] = i;
|
u[n++] = mapUnicode(i);
|
||||||
if(0) // debugging
|
if(0) // debugging
|
||||||
u[n++] = '|';
|
u[n++] = '|';
|
||||||
g[0] = 0;
|
g[0] = 0;
|
||||||
|
|
Loading…
Reference in a new issue