diff options
| author | Andrew Choi | 2001-01-28 15:47:04 +0000 |
|---|---|---|
| committer | Andrew Choi | 2001-01-28 15:47:04 +0000 |
| commit | b179a3a28f7dcd67532d0122c01837bf9a0e999c (patch) | |
| tree | 91feeaec8977e32f48c1ac7c718b418f2d3b63ec /mac/src | |
| parent | 5604ec34e4b9414637d0501f30c79a4b871008a0 (diff) | |
| download | emacs-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.c | 7 |
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 | ||