+DEFUN ("char-feature-base-name=", Fchar_feature_base_name_eq, 2, 2, 0, /*
+Return the alist of attributes of CHARACTER.
+*/
+ (base_name, feature_name))
+{
+ Lisp_String *bn, *fn;
+ Bytecount len_bn, len_fn, i;
+ Bufbyte *ptr_bn, *ptr_fn;
+
+ CHECK_SYMBOL (base_name);
+ CHECK_SYMBOL (feature_name);
+
+ bn = XSYMBOL (base_name)->name;
+ fn = XSYMBOL (feature_name)->name;
+ len_bn = string_length (bn);
+ len_fn = string_length (fn);
+
+ if ( len_bn > len_fn )
+ return Qnil;
+
+ ptr_bn = string_data (bn);
+ ptr_fn = string_data (fn);
+ for ( i = len_fn - 1; i >= 0; i-- )
+ {
+ if ( ptr_fn[i] == '*' )
+ return Qnil;
+ if ( ptr_fn[i] == '@' )
+ break;
+ }
+ if ( i < 0 )
+ i = len_fn;
+ if ( (len_bn == i) && (memcmp (ptr_bn, ptr_fn, len_bn) == 0) )
+ return Qt;
+ else
+ return Qnil;
+}
+