aboutsummaryrefslogtreecommitdiffstats
path: root/mac/src
diff options
context:
space:
mode:
authorAndrew Choi2001-01-28 15:47:04 +0000
committerAndrew Choi2001-01-28 15:47:04 +0000
commitb179a3a28f7dcd67532d0122c01837bf9a0e999c (patch)
tree91feeaec8977e32f48c1ac7c718b418f2d3b63ec /mac/src
parent5604ec34e4b9414637d0501f30c79a4b871008a0 (diff)
downloademacs-b179a3a28f7dcd67532d0122c01837bf9a0e999c.tar.gz
emacs-b179a3a28f7dcd67532d0122c01837bf9a0e999c.zip
* 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.
Diffstat (limited to 'mac/src')
-rw-r--r--mac/src/macterm.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/mac/src/macterm.c b/mac/src/macterm.c
index ed9280e42eb..2b7ea0f0a61 100644
--- a/mac/src/macterm.c
+++ b/mac/src/macterm.c
@@ -10197,7 +10197,7 @@ mac_font_pattern_match (fontname, pattern)
10197 char * fontname; 10197 char * fontname;
10198 char * pattern; 10198 char * pattern;
10199{ 10199{
10200 char *regex = (char *) alloca (strlen (pattern) * 2); 10200 char *regex = (char *) alloca (strlen (pattern) * 2 + 3);
10201 char *font_name_copy = (char *) alloca (strlen (fontname) + 1); 10201 char *font_name_copy = (char *) alloca (strlen (fontname) + 1);
10202 char *ptr; 10202 char *ptr;
10203 10203
@@ -10424,12 +10424,15 @@ x_list_fonts (struct frame *f,
10424 Lisp_Object newlist = Qnil; 10424 Lisp_Object newlist = Qnil;
10425 int n_fonts = 0; 10425 int n_fonts = 0;
10426 int i; 10426 int i;
10427 struct gcpro gcpro1, gcpro2;
10427 10428
10428 if (font_name_table == NULL) /* Initialize when first used. */ 10429 if (font_name_table == NULL) /* Initialize when first used. */
10429 init_font_name_table (); 10430 init_font_name_table ();
10430 10431
10431 ptnstr = XSTRING (pattern)->data; 10432 ptnstr = XSTRING (pattern)->data;
10432 10433
10434 GCPRO2 (pattern, newlist);
10435
10433 /* Scan and matching bitmap fonts. */ 10436 /* Scan and matching bitmap fonts. */
10434 for (i = 0; i < font_name_count; i++) 10437 for (i = 0; i < font_name_count; i++)
10435 { 10438 {
@@ -10445,6 +10448,8 @@ x_list_fonts (struct frame *f,
10445 10448
10446 /* MAC_TODO: add code for matching outline fonts here */ 10449 /* MAC_TODO: add code for matching outline fonts here */
10447 10450
10451 UNGCPRO;
10452
10448 return newlist; 10453 return newlist;
10449} 10454}
10450 10455