aboutsummaryrefslogtreecommitdiff
path: root/mkfontscale
diff options
context:
space:
mode:
Diffstat (limited to 'mkfontscale')
-rw-r--r--mkfontscale/data.h9
-rw-r--r--mkfontscale/hash.c8
-rw-r--r--mkfontscale/hash.h2
-rw-r--r--mkfontscale/list.c10
-rw-r--r--mkfontscale/list.h6
-rw-r--r--mkfontscale/mkfontscale.c96
6 files changed, 67 insertions, 64 deletions
diff --git a/mkfontscale/data.h b/mkfontscale/data.h
index bb5b170d5..6fb43ae79 100644
--- a/mkfontscale/data.h
+++ b/mkfontscale/data.h
@@ -26,7 +26,7 @@
/* Order is significant. For example, some B&H fonts are hinted by
URW++, and both strings appear in the notice. */
-static char *notice_foundries[][2] =
+static const char *notice_foundries[][2] =
{{"Bigelow", "b&h"},
{"Adobe", "adobe"},
{"Bitstream", "bitstream"},
@@ -42,14 +42,16 @@ static char *notice_foundries[][2] =
{"Microsoft", "microsoft"},
{"Omega", "omega"},
{"Font21", "hwan"},
- {"HanYang System", "hanyang"}};
+ {"HanYang System", "hanyang"},
+ {"Iorsh", "culmus"},
+ {"Gnat", "culmus"}};
/* This table is partly taken from ttmkfdir by Joerg Pommnitz. */
/* It should not contain useless entries (such as UNKN) nor duplicate
entries for padding both with spaces and NULs. */
-static char *vendor_foundries[][2] =
+static const char *vendor_foundries[][2] =
{{"ADBE", "adobe"},
{"AGFA", "agfa"},
{"ALTS", "altsys"},
@@ -59,6 +61,7 @@ static char *vendor_foundries[][2] =
{"B&H", "b&h"},
{"BITS", "bitstream"},
{"CANO", "cannon"},
+ {"CLM", "culmus"},
{"DYNA", "dynalab"},
{"EPSN", "epson"},
{"FJ", "fujitsu"},
diff --git a/mkfontscale/hash.c b/mkfontscale/hash.c
index 313d5b6c1..135380bff 100644
--- a/mkfontscale/hash.c
+++ b/mkfontscale/hash.c
@@ -31,7 +31,7 @@
#define NUMBUCKETS (1 << LOG2_NUMBUCKETS)
static unsigned
-hash(char *string)
+hash(const char *string)
{
int i;
unsigned u = 0;
@@ -41,7 +41,7 @@ hash(char *string)
}
static void
-strcpy_lwr(char *dst, char *src)
+strcpy_lwr(char *dst, const char *src)
{
while(1) {
*dst = tolower(*src);
@@ -77,7 +77,7 @@ destroyHashTable(HashTablePtr table)
}
char *
-getHash(HashTablePtr table, char *key)
+getHash(HashTablePtr table, const char *key)
{
int i = hash(key);
HashBucketPtr bp;
@@ -173,7 +173,7 @@ hashArray(HashTablePtr table, int value_first)
{
int i, j, n;
HashBucketPtr *dst;
-
+
n = hashElements(table);
dst = malloc((n + 1) * sizeof(HashBucketPtr));
if(dst == NULL)
diff --git a/mkfontscale/hash.h b/mkfontscale/hash.h
index 631004e63..df0feeb71 100644
--- a/mkfontscale/hash.h
+++ b/mkfontscale/hash.h
@@ -38,7 +38,7 @@ typedef HashBucketPtr* HashTablePtr;
HashTablePtr makeHashTable(void);
void destroyHashTable(HashTablePtr table);
-char *getHash(HashTablePtr table, char *key);
+char *getHash(HashTablePtr table, const char *key);
int putHash(HashTablePtr table, char *key, char *value, int prio);
int hashElements(HashTablePtr table);
HashBucketPtr *hashArray(HashTablePtr table, int value_first);
diff --git a/mkfontscale/list.c b/mkfontscale/list.c
index 2854e181c..1614d9537 100644
--- a/mkfontscale/list.c
+++ b/mkfontscale/list.c
@@ -27,7 +27,7 @@
#include "list.h"
int
-listMember(char *elt, ListPtr list)
+listMember(const char *elt, ListPtr list)
{
while(list != NULL) {
if(strcmp(elt, list->value) == 0)
@@ -84,10 +84,10 @@ dsprintf(const char *f, ...)
}
}
}
-
+
ListPtr
-listConsF(ListPtr cdr, char *f, ...)
+listConsF(ListPtr cdr, const char *f, ...)
{
va_list args;
char *string;
@@ -114,7 +114,7 @@ listConsF(ListPtr cdr, char *f, ...)
}
ListPtr
-listAdjoinF(ListPtr cdr, char *f, ...)
+listAdjoinF(ListPtr cdr, const char *f, ...)
{
va_list args;
char *string;
@@ -151,7 +151,7 @@ listLength(ListPtr list)
return n;
}
-ListPtr
+ListPtr
appendList(ListPtr first, ListPtr second)
{
ListPtr current;
diff --git a/mkfontscale/list.h b/mkfontscale/list.h
index 7403bc0f8..c68a78d4d 100644
--- a/mkfontscale/list.h
+++ b/mkfontscale/list.h
@@ -32,11 +32,11 @@ typedef struct _List {
struct _List *next;
} ListRec, *ListPtr;
-int listMember(char *elt, ListPtr list);
+int listMember(const char *elt, ListPtr list);
ListPtr listCons(char *car, ListPtr cdr);
ListPtr listAdjoin(char *car, ListPtr cdr);
-ListPtr listConsF(ListPtr cdr, char *f, ...) _X_ATTRIBUTE_PRINTF(2,3);
-ListPtr listAdjoinF(ListPtr cdr, char *f, ...) _X_ATTRIBUTE_PRINTF(2,3);
+ListPtr listConsF(ListPtr cdr, const char *f, ...) _X_ATTRIBUTE_PRINTF(2,3);
+ListPtr listAdjoinF(ListPtr cdr, const char *f, ...) _X_ATTRIBUTE_PRINTF(2,3);
int listLength(ListPtr list);
ListPtr appendList(ListPtr first, ListPtr second);
ListPtr makeList(char **a, int n, ListPtr old, int begin);
diff --git a/mkfontscale/mkfontscale.c b/mkfontscale/mkfontscale.c
index 49bbe77a3..53c53031b 100644
--- a/mkfontscale/mkfontscale.c
+++ b/mkfontscale/mkfontscale.c
@@ -60,7 +60,7 @@
#define QUOTE(x) #x
#define STRINGIFY(x) QUOTE(x)
-static char *encodings_array[] =
+static const char *encodings_array[] =
{ "ascii-0",
"iso8859-1", "iso8859-2", "iso8859-3", "iso8859-4", "iso8859-5",
"iso8859-6", "iso8859-6.8", "iso8859-6.8x", "iso8859-6.16",
@@ -79,20 +79,20 @@ static char *encodings_array[] =
"gb2312.1980-0", "gb18030.2000-0", "gb18030.2000-1",
"ksc5601.1987-0", "ksc5601.1992-3"};
-static char *extra_encodings_array[] =
+static const char *extra_encodings_array[] =
{ "iso10646-1", "adobe-fontspecific", "microsoft-symbol" };
static ListPtr encodings, extra_encodings;
-static char *outfilename;
+static const char *outfilename;
#define countof(_a) (sizeof(_a)/sizeof((_a)[0]))
-static int doDirectory(char*, int, ListPtr);
+static int doDirectory(const char*, int, ListPtr);
static int checkEncoding(FT_Face face, char *encoding_name);
static int checkExtraEncoding(FT_Face face, char *encoding_name, int found);
static int find_cmap(int type, int pid, int eid, FT_Face face);
-static char* notice_foundry(char *notice);
-static char* vendor_foundry(signed char *vendor);
+static const char* notice_foundry(const char *notice);
+static const char* vendor_foundry(const signed char *vendor);
static int readFontScale(HashTablePtr entries, char *dirname);
ListPtr makeXLFD(char *filename, FT_Face face, int);
static int readEncodings(ListPtr encodings, char *dirname);
@@ -113,7 +113,7 @@ static char *exclusionSuffix;
static void
usage(void)
{
- fprintf(stderr,
+ fprintf(stderr,
"mkfontscale [ -b ] [ -s ] [ -o filename ] [-x suffix ]\n"
" [ -a encoding ] [ -f fuzz ] [ -l ] "
" [ -e directory ] [ -p prefix ] [ -n ] [ -r ] \n"
@@ -143,7 +143,7 @@ main(int argc, char **argv)
encodings = makeList(encodings_array, countof(encodings_array), NULL, 0);
- extra_encodings = makeList(extra_encodings_array,
+ extra_encodings = makeList(extra_encodings_array,
countof(extra_encodings_array),
NULL, 0);
doBitmaps = 0;
@@ -204,7 +204,7 @@ main(int argc, char **argv)
argn++;
} else if(strcmp(argv[argn], "-U") == 0) {
doISO10646_1_encoding = 1;
- argn++;
+ argn++;
} else if(strcmp(argv[argn], "-s") == 0) {
doScalable = 0;
argn++;
@@ -244,7 +244,7 @@ main(int argc, char **argv)
if(outfilename == NULL) {
if(doBitmaps)
outfilename = "fonts.dir";
- else
+ else
outfilename = "fonts.scale";
}
@@ -313,9 +313,9 @@ getName(FT_Face face, int nid)
char *string;
int i;
- if(getNameHelper(face, nid,
+ if(getNameHelper(face, nid,
TT_PLATFORM_MICROSOFT, TT_MS_ID_UNICODE_CS, &name) ||
- getNameHelper(face, nid,
+ getNameHelper(face, nid,
TT_PLATFORM_APPLE_UNICODE, -1, &name)) {
string = malloc(name.string_len / 2 + 1);
if(string == NULL) {
@@ -348,7 +348,7 @@ getName(FT_Face face, int nid)
return NULL;
}
-static char*
+static const char*
os2Weight(int weight)
{
if(weight < 150)
@@ -367,11 +367,11 @@ os2Weight(int weight)
return "bold";
else if(weight < 850)
return "extrabold";
- else
+ else
return "black";
}
-static char*
+static const char*
os2Width(int width)
{
if(width <= 1)
@@ -394,15 +394,15 @@ os2Width(int width)
return "ultraexpanded";
}
-static char *widths[] = {
+static const char *widths[] = {
"ultracondensed", "extracondensed", "condensed", "semicondensed",
- "normal", "semiexpanded", "expanded", "extraexpanded", "ultraexpanded"
+ "normal", "semiexpanded", "expanded", "extraexpanded", "ultraexpanded"
};
#define NUMWIDTHS (sizeof(widths) / sizeof(widths[0]))
-static char*
-nameWidth(char *name)
+static const char*
+nameWidth(const char *name)
{
char buf[500];
int i;
@@ -419,8 +419,8 @@ nameWidth(char *name)
return NULL;
}
-static char*
-t1Weight(char *weight)
+static const char*
+t1Weight(const char *weight)
{
if(!weight)
return NULL;
@@ -461,13 +461,13 @@ t1Weight(char *weight)
static int
unsafe(char c)
{
- return
+ return
c < 0x20 || c > 0x7E ||
c == '[' || c == ']' || c == '(' || c == ')' || c == '\\' || c == '-';
}
-static char *
-safe(char* s)
+static const char *
+safe(const char* s)
{
int i, len, safe_flag = 1;
char *t;
@@ -502,7 +502,7 @@ ListPtr
makeXLFD(char *filename, FT_Face face, int isBitmap)
{
ListPtr xlfd = NULL;
- char *foundry, *family, *weight, *slant, *sWidth, *adstyle,
+ const char *foundry, *family, *weight, *slant, *sWidth, *adstyle,
*spacing, *full_name;
TT_Header *head;
TT_HoriHeader *hhea;
@@ -530,7 +530,7 @@ makeXLFD(char *filename, FT_Face face, int isBitmap)
t1info = &t1info_rec;
else
t1info = NULL;
-
+
if(!family)
family = getName(face, TT_NAME_ID_FONT_FAMILY);
if(!family)
@@ -568,7 +568,7 @@ makeXLFD(char *filename, FT_Face face, int isBitmap)
}
}
}
-
+
if(t1info) {
if(!family)
family = t1info->family_name;
@@ -754,7 +754,7 @@ filePrio(char *filename)
}
static int
-doDirectory(char *dirname_given, int numEncodings, ListPtr encodingsToDo)
+doDirectory(const char *dirname_given, int numEncodings, ListPtr encodingsToDo)
{
char *dirname, *fontscale_name, *filename, *encdir;
FILE *fontscale, *encfile;
@@ -784,9 +784,9 @@ doDirectory(char *dirname_given, int numEncodings, ListPtr encodingsToDo)
exit(1);
}
- if (onlyEncodings)
+ if (onlyEncodings)
goto encodings;
-
+
entries = makeHashTable();
if(doBitmaps && !doScalable) {
readFontScale(entries, dirname);
@@ -862,7 +862,7 @@ doDirectory(char *dirname_given, int numEncodings, ListPtr encodingsToDo)
isBitmap = 1;
}
}
-
+
if(isBitmap) {
if(!doBitmaps)
goto done;
@@ -933,7 +933,7 @@ doDirectory(char *dirname_given, int numEncodings, ListPtr encodingsToDo)
putHash(entries, buf, entry->d_name, filePrio(entry->d_name));
}
}
- for(encoding = extra_encodings; encoding;
+ for(encoding = extra_encodings; encoding;
encoding = encoding->next) {
if(checkExtraEncoding(face, encoding->value, found)) {
/* Do not set found! */
@@ -994,7 +994,7 @@ doDirectory(char *dirname_given, int numEncodings, ListPtr encodingsToDo)
#define CODE_IGNORED(c) ((c) < 0x20 || \
((c) >= 0x7F && (c) <= 0xA0) || \
(c) == 0xAD || (c) == 0xF71B)
-
+
static int
checkEncoding(FT_Face face, char *encoding_name)
{
@@ -1010,7 +1010,7 @@ checkEncoding(FT_Face face, char *encoding_name)
/* An encoding is ``small'' if one of the following is true:
- it is linear and has no more than 256 codepoints; or
- it is a matrix encoding and has no more than one column.
-
+
For small encodings using Unicode indices, we require perfect
coverage except for CODE_IGNORED and KOI-8 IBM-PC compatibility.
@@ -1025,8 +1025,8 @@ checkEncoding(FT_Face face, char *encoding_name)
if(mapping->type == FONT_ENCODING_POSTSCRIPT) {
if(encoding->row_size > 0) {
for(i = encoding->first; i < encoding->size; i++) {
- for(j = encoding->first_col;
- j < encoding->row_size;
+ for(j = encoding->first_col;
+ j < encoding->row_size;
j++) {
n = FontEncName((i<<8) | j, mapping);
if(n && FT_Get_Name_Index(face, n) == 0) {
@@ -1052,12 +1052,12 @@ checkEncoding(FT_Face face, char *encoding_name)
if(find_cmap(mapping->type, mapping->pid, mapping->eid, face)) {
int total = 0, failed = 0;
if(encoding->row_size > 0) {
- int estimate =
+ int estimate =
(encoding->size - encoding->first) *
(encoding->row_size - encoding->first_col);
for(i = encoding->first; i < encoding->size; i++) {
- for(j = encoding->first_col;
- j < encoding->row_size;
+ for(j = encoding->first_col;
+ j < encoding->row_size;
j++) {
c = FontEncRecode((i<<8) | j, mapping);
if(CODE_IGNORED(c)) {
@@ -1112,7 +1112,7 @@ checkEncoding(FT_Face face, char *encoding_name)
return 0;
}
-static int
+static int
find_cmap(int type, int pid, int eid, FT_Face face)
{
int i, n, rc;
@@ -1135,7 +1135,7 @@ find_cmap(int type, int pid, int eid, FT_Face face)
/* prefer Microsoft Unicode */
for(i=0; i<n; i++) {
cmap = face->charmaps[i];
- if(cmap->platform_id == TT_PLATFORM_MICROSOFT &&
+ if(cmap->platform_id == TT_PLATFORM_MICROSOFT &&
cmap->encoding_id == TT_MS_ID_UNICODE_CS) {
rc = FT_Set_Charmap(face, cmap);
if(rc == 0)
@@ -1209,8 +1209,8 @@ checkExtraEncoding(FT_Face face, char *encoding_name, int found)
}
}
-static char*
-notice_foundry(char *notice)
+static const char*
+notice_foundry(const char *notice)
{
int i;
for(i = 0; i < countof(notice_foundries); i++)
@@ -1220,7 +1220,7 @@ notice_foundry(char *notice)
}
static int
-vendor_match(signed char *vendor, char *vendor_string)
+vendor_match(const signed char *vendor, const char *vendor_string)
{
/* vendor is not necessarily NUL-terminated. */
int i, len;
@@ -1233,8 +1233,8 @@ vendor_match(signed char *vendor, char *vendor_string)
return 1;
}
-static char*
-vendor_foundry(signed char *vendor)
+static const char*
+vendor_foundry(const signed char *vendor)
{
int i;
for(i = 0; i < countof(vendor_foundries); i++)
@@ -1267,7 +1267,7 @@ readEncodings(ListPtr encodings, char *dirname)
closedir(dirp);
return -1;
}
-
+
names = FontEncIdentify(fullname);
if(!names)
continue;
@@ -1284,7 +1284,7 @@ readEncodings(ListPtr encodings, char *dirname)
encodingsToDo = listConsF(encodingsToDo, "%s %s", *name, n);
free(n);
} else {
- encodingsToDo =
+ encodingsToDo =
listConsF(encodingsToDo, "%s %s", *name, fullname);
}
if(encodingsToDo == NULL) {