1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117
|
#include <stdio.h>
#include "defs.h"
/* jsubfont */
/*#include "jsub.h"*/
char *jsf_names[] = {
"",
"jsy",
"jroma",
"jhira",
"jkata",
"jgreek",
"jrussian",
"jkeisen",
"jka",
"jkb",
"jkc",
"jkd",
"jke",
"jkf",
"jkg",
"jkh",
"jki",
"jkj",
"jkk",
"jkl",
"jkm",
"jkn",
"jko",
"jkp",
"jkq",
"jkr",
"jks",
"jkt",
"jku",
"jkv",
"jkw",
"jkx",
"jky",
"jkz",
NULL
};
char *
jsubfontname(f)
{
return (jsf_names[f]);
}
#define makejis(k,t) ((k+0x20)*256+t+0x20)
compute_jis(f, c)
int f, c;
{
register int n;
if (f <= 7) {
if (f == 1) {
if (c >= 100) {
return (makejis(2, c-100));
} else {
return (makejis(1, c));
}
} else if (f == 2) {
return (makejis(3, c-32));
} else {
return (makejis(f+1, c));
}
} else if (f <= 19) { /* Daiichi Suijun */
n = (f-8)*256+c;
return (makejis((n/94)+16, (n%94)+1));
} else { /* Daini Suijun */
n = (f-20)*256+c;
return (makejis((n/94)+48, (n%94)+1));
}
}
compute_fc(ku, ten, f, c)
int ku, ten;
int *f, *c;
{
register int n;
*f = 1;
*c = 1;
if (ku <= 0 || (9 <= ku && ku <= 15) || ku > 84) {
return (FALSE);
}
if (ten < 1 || ten > 94) {
return (FALSE);
}
if (ku <= 8) {
if (ku == 1) {
*f = 1;
*c = ten;
} else if (ku == 2) {
*f = 1;
*c = ten+100;
} else if (ku == 3) {
*f = 2;
*c = ten+32;
} else {
*f = ku-1;
*c = ten;
}
} else if (ku <= 47) { /* Daiich Suijun */
n = (ku-16)*94+ten-1;
*f = (n/256)+8;
*c = n%256;
} else { /* Daini Suijun */
n = (ku-48)*94+ten-1;
*f = (n/256)+20;
*c = n%256;
}
return (TRUE);
}
|