# HG changeset patch # User Andrew Choi # Date 980696824 0 # Node ID 16e83e3dab3d2204fe4f9c52a6e0b93866011382 # Parent e5dea4a61cabe016e58883761e47f8300e31bf9f * src/macterm.c (mac_font_pattern_match): Allocate three more bytes to regex for '^', '$', and '\0'. * src/macterm.c (x_list_fonts): Protect pattern and newlist from garbage collection. diff -r e5dea4a61cab -r 16e83e3dab3d mac/ChangeLog --- a/mac/ChangeLog Sun Jan 28 15:41:57 2001 +0000 +++ b/mac/ChangeLog Sun Jan 28 15:47:04 2001 +0000 @@ -1,5 +1,11 @@ 2001-01-28 Andrew Choi + * src/macterm.c (mac_font_pattern_match): Allocate three more + bytes to regex for '^', '$', and '\0'. + + * src/macterm.c (x_list_fonts): Protect pattern and newlist from + garbage collection. + * src/macfns.c (QCconversion): Replaces QCalgorithm. * src/macfns.c (image_ascent, lookup_image): Adapt to change of diff -r e5dea4a61cab -r 16e83e3dab3d mac/src/macterm.c --- a/mac/src/macterm.c Sun Jan 28 15:41:57 2001 +0000 +++ b/mac/src/macterm.c Sun Jan 28 15:47:04 2001 +0000 @@ -10197,7 +10197,7 @@ char * fontname; char * pattern; { - char *regex = (char *) alloca (strlen (pattern) * 2); + char *regex = (char *) alloca (strlen (pattern) * 2 + 3); char *font_name_copy = (char *) alloca (strlen (fontname) + 1); char *ptr; @@ -10424,12 +10424,15 @@ Lisp_Object newlist = Qnil; int n_fonts = 0; int i; + struct gcpro gcpro1, gcpro2; if (font_name_table == NULL) /* Initialize when first used. */ init_font_name_table (); ptnstr = XSTRING (pattern)->data; + GCPRO2 (pattern, newlist); + /* Scan and matching bitmap fonts. */ for (i = 0; i < font_name_count; i++) { @@ -10445,6 +10448,8 @@ /* MAC_TODO: add code for matching outline fonts here */ + UNGCPRO; + return newlist; }