* There are two types of format nodes, visible and invisible. They are the same
* in every way, except for the representation in the text node. While invisible
* format nodes have no representation in the text node, the visible ones do.
- * The Uniceode replacement character (0xFFFD) is inserted to every place a
- * visible format node points to. This makes it very easy to treat visible
+ * The Uniceode object replacement character (0xFFFC) is inserted to every place
+ * a visible format node points to. This makes it very easy to treat visible
* formats as items in the text, both for BiDi purposes and cursor handling
* purposes.
* Here are a few example visible an invisible formats:
static const char o_type[] = "textblock";
/* The char to be inserted instead of visible formats */
-#define EVAS_TEXTBLOCK_REPLACEMENT_CHAR 0xFFFD
+#define EVAS_TEXTBLOCK_REPLACEMENT_CHAR 0xFFFC
/* private struct for textblock object internal data */
/**
/**
* Sets the tetxblock's text to the markup text.
*
- * @note assumes text does not include the unicode replacement char (0xFFFD)
+ * @note assumes text does not include the unicode object replacement char (0xFFFC)
*
* @param obj the textblock object.
* @param text the markup text to use.
/**
* Prepends markup to the cursor cur.
*
- * @note assumes text does not include the unicode replacement char (0xFFFD)
+ * @note assumes text does not include the unicode object replacement char (0xFFFC)
*
* @param cur the cursor to prepend to.
* @param text the markup text to prepend.
s = p + 1;
}
}
+ /* Unicode object replcament char */
+ else if (!strncmp("\xEF\xBF\xBC", p, 3))
+ {
+ /*FIXME: currently just remove them, maybe do something
+ * fancier in the future, atm it breaks if this char
+ * is inside <> */
+ _prepend_text_run(o, s, p);
+ p += 2; /* it's also advanced later in this loop */
+ s = NULL;
+ }
p++;
}
}