aboutsummaryrefslogtreecommitdiffstats
path: root/src/fontset.c
diff options
context:
space:
mode:
authorKaroly Lorentey2004-11-06 17:52:02 +0000
committerKaroly Lorentey2004-11-06 17:52:02 +0000
commit65ea79492334e2ef7b5b4e0d23b6f68ba2f4d0bb (patch)
tree853cf391ca1abda4f4ccd6fe8e7bb43f7c86ee08 /src/fontset.c
parente0bc17abe6979d607e8de4684dddb96e53c60065 (diff)
parent392cf16dd0ee9358f8af0cd0d8048b822456bbeb (diff)
downloademacs-65ea79492334e2ef7b5b4e0d23b6f68ba2f4d0bb.tar.gz
emacs-65ea79492334e2ef7b5b4e0d23b6f68ba2f4d0bb.zip
Merged in changes from CVS trunk.
Patches applied: * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-653 Update from CVS * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-654 Update from CVS * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-655 Update from CVS * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-656 Update from CVS: lisp/man.el (Man-xref-normal-file): Fix help-echo. * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-657 Update from CVS * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-658 Merge from gnus--rel--5.10 * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-659 Update from CVS * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-660 Merge from gnus--rel--5.10 * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-661 Update from CVS * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-662 Update from CVS * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-663 Update from CVS * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-664 Update from CVS * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-665 Update from CVS * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-666 Update from CVS * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-667 Update from CVS * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-668 Merge from gnus--rel--5.10 * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-669 Update from CVS * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-670 Update from CVS * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-671 Update from CVS * miles@gnu.org--gnu-2004/gnus--rel--5.10--patch-64 Update from CVS * miles@gnu.org--gnu-2004/gnus--rel--5.10--patch-65 Update from CVS * miles@gnu.org--gnu-2004/gnus--rel--5.10--patch-66 Update from CVS * miles@gnu.org--gnu-2004/gnus--rel--5.10--patch-67 Update from CVS * miles@gnu.org--gnu-2004/gnus--rel--5.10--patch-68 Update from CVS git-archimport-id: lorentey@elte.hu--2004/emacs--multi-tty--0--patch-264
Diffstat (limited to 'src/fontset.c')
-rw-r--r--src/fontset.c14
1 files changed, 7 insertions, 7 deletions
diff --git a/src/fontset.c b/src/fontset.c
index 0c50be2d21e..f370f2ae981 100644
--- a/src/fontset.c
+++ b/src/fontset.c
@@ -790,14 +790,14 @@ fontset_pattern_regexp (pattern)
790 || strcmp (SDATA (pattern), CACHED_FONTSET_NAME)) 790 || strcmp (SDATA (pattern), CACHED_FONTSET_NAME))
791 { 791 {
792 /* We must at first update the cached data. */ 792 /* We must at first update the cached data. */
793 char *regex, *p0, *p1; 793 unsigned char *regex, *p0, *p1;
794 int ndashes = 0, nstars = 0; 794 int ndashes = 0, nstars = 0;
795 795
796 for (p0 = SDATA (pattern); *p0; p0++) 796 for (p0 = SDATA (pattern); *p0; p0++)
797 { 797 {
798 if (*p0 == '-') 798 if (*p0 == '-')
799 ndashes++; 799 ndashes++;
800 else if (*p0 == '*') 800 else if (*p0 == '*' && p0 > SDATA (pattern) && p0[-1] != '\\')
801 nstars++; 801 nstars++;
802 } 802 }
803 803
@@ -805,14 +805,14 @@ fontset_pattern_regexp (pattern)
805 we convert "*" to "[^-]*" which is much faster in regular 805 we convert "*" to "[^-]*" which is much faster in regular
806 expression matching. */ 806 expression matching. */
807 if (ndashes < 14) 807 if (ndashes < 14)
808 p1 = regex = (char *) alloca (SBYTES (pattern) + 2 * nstars + 1); 808 p1 = regex = (unsigned char *) alloca (SBYTES (pattern) + 2 * nstars + 1);
809 else 809 else
810 p1 = regex = (char *) alloca (SBYTES (pattern) + 5 * nstars + 1); 810 p1 = regex = (unsigned char *) alloca (SBYTES (pattern) + 5 * nstars + 1);
811 811
812 *p1++ = '^'; 812 *p1++ = '^';
813 for (p0 = (char *) SDATA (pattern); *p0; p0++) 813 for (p0 = SDATA (pattern); *p0; p0++)
814 { 814 {
815 if (*p0 == '*') 815 if (*p0 == '*' && p0 > SDATA (pattern) && p0[-1] != '\\')
816 { 816 {
817 if (ndashes < 14) 817 if (ndashes < 14)
818 *p1++ = '.'; 818 *p1++ = '.';