*** empty log message ***
authorhanda <handa>
Thu, 2 Jul 2009 04:16:56 +0000 (04:16 +0000)
committerhanda <handa>
Thu, 2 Jul 2009 04:16:56 +0000 (04:16 +0000)
MDatabase.cs
MText.cs

index 6c601de..b558789 100644 (file)
@@ -881,7 +881,8 @@ namespace M17N.Core
       return null;
     }
 
-    // Return a list of currently available database directories.
+    /// <summary>Return a list of currently available database
+    /// directory names</summary>.
     public static string[] DirectoryList ()
     {
       List<string> dirs = new List<string> ();
@@ -900,4 +901,4 @@ namespace M17N.Core
              : ListIndex - other.ListIndex);
     }
   }
-}
\ No newline at end of file
+}
index 39f9359..7f6de04 100644 (file)
--- a/MText.cs
+++ b/MText.cs
@@ -969,21 +969,25 @@ namespace M17N.Core
        MInterval head = find_head (start);
        MInterval tail = find_tail (end);
 
+       M17n.DebugPrint ("Copying: {0}", copy);
+
        if (! head.Stack.IsEmpty
            && (isSensitive && head.From < start
-               || isFrontSensitive && ! first))
+               || (isFrontSensitive && ! first)))
          {
+           M17n.DebugPrint (" clear head");
            head = copy.find_head (0);
            head.Stack.Clear ();
          }
        if (! tail.Stack.IsEmpty
-           && (isSensitive && end < head.To
-               || isRearSensitive && ! last))
+           && (isSensitive && end < tail.To
+               || (isRearSensitive && ! last)))
          {
+           M17n.DebugPrint (" clear tail");
            tail = copy.find_tail (copy.Length);
            tail.Stack.Clear ();
          }
-       M17n.DebugPrint ("Copied: {0}\n", copy);
+       M17n.DebugPrint ("\n");
        return copy;
       }
 
@@ -1315,7 +1319,7 @@ namespace M17N.Core
              interval = interval.Copy (mtext, start, end,
                                        front_grafted,
                                        (rear_grafted
-                                        || (next == null && end < interval.mtext.Length)));
+                                        || (next == null && end == interval.mtext.Length)));
            else
              interval = new MInterval (Key, mtext, end - start, null);