diff options
author | giraffedata <giraffedata@9d0c8265-081b-0410-96cb-a4ca84ce46f8> | 2018-12-29 16:32:28 +0000 |
---|---|---|
committer | giraffedata <giraffedata@9d0c8265-081b-0410-96cb-a4ca84ce46f8> | 2018-12-29 16:32:28 +0000 |
commit | ee250e7490cbb3550fed22fdb98b7152cce20b72 (patch) | |
tree | 83fd278faf86341c5495567396e5abea2ec1a4a4 /lib/libpbmfont2.c | |
parent | ebf403d4015d30f19a37895efdce201300c9b418 (diff) | |
download | netpbm-mirror-ee250e7490cbb3550fed22fdb98b7152cce20b72.tar.gz netpbm-mirror-ee250e7490cbb3550fed22fdb98b7152cce20b72.tar.xz netpbm-mirror-ee250e7490cbb3550fed22fdb98b7152cce20b72.zip |
Promote current Development release as Advanced
git-svn-id: http://svn.code.sf.net/p/netpbm/code/advanced@3468 9d0c8265-081b-0410-96cb-a4ca84ce46f8
Diffstat (limited to 'lib/libpbmfont2.c')
-rw-r--r-- | lib/libpbmfont2.c | 50 |
1 files changed, 30 insertions, 20 deletions
diff --git a/lib/libpbmfont2.c b/lib/libpbmfont2.c index 7f168648..b354e91b 100644 --- a/lib/libpbmfont2.c +++ b/lib/libpbmfont2.c @@ -653,39 +653,49 @@ static void processBdfFontNameLine(Readline * const readlineP, struct font2 * const font2P) { - if (font2P->name != NULL) + if (font2P->name) /* We've already processed a FONT line */ pm_error("Multiple FONT lines in BDF font file"); + else { + char * buffer; - font2P->name = malloc (MAXBDFLINE+1); - if (font2P->name == NULL) - pm_error("No memory for font name"); + MALLOCARRAY(buffer, MAXBDFLINE+1); - if (readlineP->wordCt == 1) - strcpy(font2P->name, "(no name)"); + if (!buffer) + pm_error("Failed to get memory for %u-character font name buffer", + MAXBDFLINE+1); - else { - unsigned int tokenCt; + if (readlineP->wordCt == 1) + strcpy(buffer, "(no name)"); + + else { + unsigned int tokenCt; - font2P->name[0] ='\0'; + buffer[0] ='\0'; - for (tokenCt=1; - tokenCt < ARRAY_SIZE(readlineP->arg) && - readlineP->arg[tokenCt] != NULL; ++tokenCt) { - strcat(font2P->name, " "); - strcat(font2P->name, readlineP->arg[tokenCt]); + for (tokenCt=1; + tokenCt < ARRAY_SIZE(readlineP->arg) && + readlineP->arg[tokenCt] != NULL; ++tokenCt) { + strcat(buffer, " "); + strcat(buffer, readlineP->arg[tokenCt]); + } } + font2P->name = buffer; } } + static void -loadCharsetString(const char * const registry, - const char * const encoding, - char ** const string) { +loadCharsetString(const char * const registry, + const char * const encoding, + const char ** const charsetStringP) { + char * dest; unsigned int inCt, outCt; - char * const dest = malloc (strlen(registry) + strlen(encoding) + 1); - if (dest == NULL) + + dest = malloc(strlen(registry) + strlen(encoding) + 1); + + if (!dest) pm_error("no memory to load CHARSET_REGISTRY and CHARSET_ENCODING " "from BDF file"); @@ -703,7 +713,7 @@ loadCharsetString(const char * const registry, } dest[outCt] = '\0'; - *string = dest; + *charsetStringP = dest; } |