/[emacs]/emacs/src/fontset.c
ViewVC logotype

Diff of /emacs/src/fontset.c

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.68 by akochoi, Sun Jun 16 23:08:56 2002 UTC revision 1.69 by raeburn, Mon Jul 15 00:00:36 2002 UTC
# Line 370  font_family_registry (fontname, force) Line 370  font_family_registry (fontname, force)
370       int force;       int force;
371  {  {
372    Lisp_Object family, registry;    Lisp_Object family, registry;
373    char *p = XSTRING (fontname)->data;    char *p = SDATA (fontname);
374    char *sep[15];    char *sep[15];
375    int i = 0;    int i = 0;
376    
# Line 557  fontset_font_pattern (f, id, c) Line 557  fontset_font_pattern (f, id, c)
557       font name.  */       font name.  */
558    elt = XCDR (elt);    elt = XCDR (elt);
559    xassert (STRINGP (elt));    xassert (STRINGP (elt));
560    fontp = FS_LOAD_FONT (f, c, XSTRING (elt)->data, -1);    fontp = FS_LOAD_FONT (f, c, SDATA (elt), -1);
561    if (!fontp)    if (!fontp)
562      return Qnil;      return Qnil;
563    
# Line 616  fs_load_font (f, c, fontname, id, face) Line 616  fs_load_font (f, c, fontname, id, face)
616        if (!fontname && charset == CHARSET_ASCII)        if (!fontname && charset == CHARSET_ASCII)
617          {          {
618            elt = FONTSET_ASCII (fontset);            elt = FONTSET_ASCII (fontset);
619            fontname = XSTRING (XCDR (elt))->data;            fontname = SDATA (XCDR (elt));
620          }          }
621      }      }
622    
# Line 705  fs_load_font (f, c, fontname, id, face) Line 705  fs_load_font (f, c, fontname, id, face)
705     the corresponding regular expression.  */     the corresponding regular expression.  */
706  static Lisp_Object Vcached_fontset_data;  static Lisp_Object Vcached_fontset_data;
707    
708  #define CACHED_FONTSET_NAME (XSTRING (XCAR (Vcached_fontset_data))->data)  #define CACHED_FONTSET_NAME (SDATA (XCAR (Vcached_fontset_data)))
709  #define CACHED_FONTSET_REGEX (XCDR (Vcached_fontset_data))  #define CACHED_FONTSET_REGEX (XCDR (Vcached_fontset_data))
710    
711  /* If fontset name PATTERN contains any wild card, return regular  /* If fontset name PATTERN contains any wild card, return regular
# Line 715  static Lisp_Object Line 715  static Lisp_Object
715  fontset_pattern_regexp (pattern)  fontset_pattern_regexp (pattern)
716       Lisp_Object pattern;       Lisp_Object pattern;
717  {  {
718    if (!index (XSTRING (pattern)->data, '*')    if (!index (SDATA (pattern), '*')
719        && !index (XSTRING (pattern)->data, '?'))        && !index (SDATA (pattern), '?'))
720      /* PATTERN does not contain any wild cards.  */      /* PATTERN does not contain any wild cards.  */
721      return Qnil;      return Qnil;
722    
723    if (!CONSP (Vcached_fontset_data)    if (!CONSP (Vcached_fontset_data)
724        || strcmp (XSTRING (pattern)->data, CACHED_FONTSET_NAME))        || strcmp (SDATA (pattern), CACHED_FONTSET_NAME))
725      {      {
726        /* We must at first update the cached data.  */        /* We must at first update the cached data.  */
727        char *regex = (char *) alloca (XSTRING (pattern)->size * 2 + 3);        char *regex = (char *) alloca (SCHARS (pattern) * 2 + 3);
728        char *p0, *p1 = regex;        char *p0, *p1 = regex;
729    
730        /* Convert "*" to ".*", "?" to ".".  */        /* Convert "*" to ".*", "?" to ".".  */
731        *p1++ = '^';        *p1++ = '^';
732        for (p0 = (char *) XSTRING (pattern)->data; *p0; p0++)        for (p0 = (char *) SDATA (pattern); *p0; p0++)
733          {          {
734            if (*p0 == '*')            if (*p0 == '*')
735              {              {
# Line 744  fontset_pattern_regexp (pattern) Line 744  fontset_pattern_regexp (pattern)
744        *p1++ = '$';        *p1++ = '$';
745        *p1++ = 0;        *p1++ = 0;
746    
747        Vcached_fontset_data = Fcons (build_string (XSTRING (pattern)->data),        Vcached_fontset_data = Fcons (build_string (SDATA (pattern)),
748                                      build_string (regex));                                      build_string (regex));
749      }      }
750    
# Line 789  fs_query_fontset (name, regexpp) Line 789  fs_query_fontset (name, regexpp)
789            || !BASE_FONTSET_P (fontset))            || !BASE_FONTSET_P (fontset))
790          continue;          continue;
791    
792        this_name = XSTRING (FONTSET_NAME (fontset))->data;        this_name = SDATA (FONTSET_NAME (fontset));
793        if (regexpp        if (regexpp
794            ? fast_c_string_match_ignore_case (name, this_name) >= 0            ? fast_c_string_match_ignore_case (name, this_name) >= 0
795            : !strcmp (XSTRING (name)->data, this_name))            : !strcmp (SDATA (name), this_name))
796          return i;          return i;
797      }      }
798    return -1;    return -1;
# Line 815  If REGEXPP is non-nil, PATTERN is a regu Line 815  If REGEXPP is non-nil, PATTERN is a regu
815    
816    CHECK_STRING (pattern);    CHECK_STRING (pattern);
817    
818    if (XSTRING (pattern)->size == 0)    if (SCHARS (pattern) == 0)
819      return Qnil;      return Qnil;
820    
821    id = fs_query_fontset (pattern, !NILP (regexpp));    id = fs_query_fontset (pattern, !NILP (regexpp));
# Line 854  list_fontsets (f, pattern, size) Line 854  list_fontsets (f, pattern, size)
854            || !BASE_FONTSET_P (fontset)            || !BASE_FONTSET_P (fontset)
855            || !EQ (frame, FONTSET_FRAME (fontset)))            || !EQ (frame, FONTSET_FRAME (fontset)))
856          continue;          continue;
857        name = XSTRING (FONTSET_NAME (fontset))->data;        name = SDATA (FONTSET_NAME (fontset));
858    
859        if (!NILP (regexp)        if (!NILP (regexp)
860            ? (fast_c_string_match_ignore_case (regexp, name) < 0)            ? (fast_c_string_match_ignore_case (regexp, name) < 0)
861            : strcmp (XSTRING (pattern)->data, name))            : strcmp (SDATA (pattern), name))
862          continue;          continue;
863    
864        if (size)        if (size)
# Line 892  FONTLIST is an alist of charsets vs corr Line 892  FONTLIST is an alist of charsets vs corr
892    tem = Fquery_fontset (name, Qnil);    tem = Fquery_fontset (name, Qnil);
893    if (!NILP (tem))    if (!NILP (tem))
894      error ("Fontset `%s' matches the existing fontset `%s'",      error ("Fontset `%s' matches the existing fontset `%s'",
895             XSTRING (name)->data, XSTRING (tem)->data);             SDATA (name), SDATA (tem));
896    
897    /* Check the validity of FONTLIST while creating a template for    /* Check the validity of FONTLIST while creating a template for
898       fontset elements.  */       fontset elements.  */
# Line 969  check_fontset_name (name) Line 969  check_fontset_name (name)
969    CHECK_STRING (name);    CHECK_STRING (name);
970    id = fs_query_fontset (name, 0);    id = fs_query_fontset (name, 0);
971    if (id < 0)    if (id < 0)
972      error ("Fontset `%s' does not exist", XSTRING (name)->data);      error ("Fontset `%s' does not exist", SDATA (name));
973    return FONTSET_FROM_ID (id);    return FONTSET_FROM_ID (id);
974  }  }
975    
# Line 1120  If the named font is not yet loaded, ret Line 1120  If the named font is not yet loaded, ret
1120    if (!query_font_func)    if (!query_font_func)
1121      error ("Font query function is not supported");      error ("Font query function is not supported");
1122    
1123    fontp = (*query_font_func) (f, XSTRING (name)->data);    fontp = (*query_font_func) (f, SDATA (name));
1124    if (!fontp)    if (!fontp)
1125      return Qnil;      return Qnil;
1126    
# Line 1338  If FRAME is omitted, it defaults to the Line 1338  If FRAME is omitted, it defaults to the
1338    if (CONSP (elt))    if (CONSP (elt))
1339      {      {
1340        elt = XCAR (elt);        elt = XCAR (elt);
1341        fontp = (*query_font_func) (f, XSTRING (elt)->data);        fontp = (*query_font_func) (f, SDATA (elt));
1342      }      }
1343    val = Fmake_vector (make_number (3), val);    val = Fmake_vector (make_number (3), val);
1344    AREF (val, 0) = fontp ? make_number (fontp->size) : make_number (0);    AREF (val, 0) = fontp ? make_number (fontp->size) : make_number (0);

Legend:
Removed from v.1.68  
changed lines
  Added in v.1.69

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26