summaryrefslogtreecommitdiff
path: root/xc/lib/font/fontfile/fontenc.c
diff options
context:
space:
mode:
Diffstat (limited to 'xc/lib/font/fontfile/fontenc.c')
-rw-r--r--xc/lib/font/fontfile/fontenc.c26
1 files changed, 16 insertions, 10 deletions
diff --git a/xc/lib/font/fontfile/fontenc.c b/xc/lib/font/fontfile/fontenc.c
index a1c426d22..247cc0a8d 100644
--- a/xc/lib/font/fontfile/fontenc.c
+++ b/xc/lib/font/fontfile/fontenc.c
@@ -20,7 +20,7 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
*/
-/* $XFree86: xc/lib/font/fontfile/fontenc.c,v 1.14 2001/11/02 03:06:40 dawes Exp $ */
+/* $XFree86: xc/lib/font/fontfile/fontenc.c,v 1.15 2003/02/20 03:25:19 dawes Exp $ */
/* Backend-independent encoding code */
@@ -745,11 +745,13 @@ FontEncLoad(const char *encoding_name, const char *filename)
if(strcasecmp(encoding->name, encoding_name) == 0) {
found = 1;
} else {
- for(alias=encoding->aliases; *alias; alias++)
- if(!strcasecmp(*alias, encoding_name)) {
- found = 1;
- break;
- }
+ if(encoding->aliases) {
+ for(alias=encoding->aliases; *alias; alias++)
+ if(!strcasecmp(*alias, encoding_name)) {
+ found = 1;
+ break;
+ }
+ }
}
if(!found) {
@@ -763,17 +765,21 @@ FontEncLoad(const char *encoding_name, const char *filename)
if(new_name == NULL)
return NULL;
strcpy(new_name, encoding_name);
- for(alias = encoding->aliases; *alias; alias++)
- numaliases++;
+ if(encoding->aliases) {
+ for(alias = encoding->aliases; *alias; alias++)
+ numaliases++;
+ }
new_aliases = (char**)xalloc((numaliases+2)*sizeof(char*));
if(new_aliases == NULL) {
xfree(new_name);
return NULL;
}
- memcpy(new_aliases, encoding->aliases, numaliases*sizeof(char*));
+ if(encoding->aliases) {
+ memcpy(new_aliases, encoding->aliases, numaliases*sizeof(char*));
+ xfree(encoding->aliases);
+ }
new_aliases[numaliases] = new_name;
new_aliases[numaliases+1] = NULL;
- xfree(encoding->aliases);
encoding->aliases = new_aliases;
}