diff options
author | Andrew Choi <akochoi@shaw.ca> | 2001-01-28 15:47:04 +0000 |
---|---|---|
committer | Andrew Choi <akochoi@shaw.ca> | 2001-01-28 15:47:04 +0000 |
commit | 11f3d9979393feea53b60ffd17e62b89c234a76b (patch) | |
tree | d52f5e2d23452a173ed268ba2997e96f673b98a3 /mac/src | |
parent | e025e87b40b72b62e2adac263a177353d1622b25 (diff) | |
download | emacs-11f3d9979393feea53b60ffd17e62b89c234a76b.tar.gz |
* 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) 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 @@ x_list_fonts (struct frame *f, 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 @@ x_list_fonts (struct frame *f, /* MAC_TODO: add code for matching outline fonts here */ + UNGCPRO; + return newlist; } |