]> git.eshelyaron.com Git - emacs.git/commitdiff
(Fmodify_category_entry): Don't modify the contents
authorKenichi Handa <handa@m17n.org>
Wed, 12 Jun 2002 00:12:34 +0000 (00:12 +0000)
committerKenichi Handa <handa@m17n.org>
Wed, 12 Jun 2002 00:12:34 +0000 (00:12 +0000)
of category_set for characters out of the range.  Avoid
unnecessary modification.

src/category.c

index e6c180f29c1a0a3240d4d24057b4925bbcc8bb7d..4e89c98a027b55f16d88479eb087de20c2dd59a7 100644 (file)
@@ -364,18 +364,15 @@ then delete CATEGORY from the category set instead of adding it.  */)
   while (start <= end)
     {
       category_set = char_table_ref_and_range (table, start, &from, &to);
-      if (from < start || to > end)
-       category_set = Fcopy_sequence (category_set);
-      SET_CATEGORY_SET (category_set, category, set_value);
-      if (from < start)
+      if (CATEGORY_MEMBER (category, category_set) != NILP (reset))
        {
+         category_set = Fcopy_sequence (category_set);
+         SET_CATEGORY_SET (category_set, category, set_value);
          if (to > end)
            char_table_set_range (table, start, end, category_set);
          else
            char_table_set_range (table, start, to, category_set);
        }
-      else if (to > end)
-       char_table_set_range (table, start, end, category_set);
       start = to + 1;
     }
   return Qnil;