* Library General Public License for more details.
*
* You should have received a copy of the GNU Library General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * License along with this library. If not, see <http://www.gnu.org/licenses/>.
*/
-#include <config.h>
+#include "config.h"
#include <stdio.h>
#include <string.h>
gtk_text_buffer_get_iter_at_offset (buffer, &iter, 3);
g_assert (gtk_text_iter_ends_line (&iter));
+
+ g_object_unref (buffer);
}
static void
split_r_n_separators_test ();
}
+static void
+test_backspace (void)
+{
+ GtkTextBuffer *buffer;
+ GtkTextIter iter;
+ gboolean ret;
+
+ buffer = gtk_text_buffer_new (NULL);
+
+ gtk_text_buffer_set_text (buffer, "foo", -1);
+ gtk_text_buffer_get_iter_at_offset (buffer, &iter, 2);
+ ret = gtk_text_buffer_backspace (buffer, &iter, TRUE, TRUE);
+ g_assert (ret);
+ g_assert_cmpint (1, ==, gtk_text_iter_get_offset (&iter));
+ g_assert_cmpint (2, ==, gtk_text_buffer_get_char_count (buffer));
+
+ gtk_text_buffer_set_text (buffer, "foo", -1);
+ gtk_text_buffer_get_iter_at_offset (buffer, &iter, 0);
+ ret = gtk_text_buffer_backspace (buffer, &iter, TRUE, TRUE);
+ g_assert (!ret);
+ g_assert_cmpint (0, ==, gtk_text_iter_get_offset (&iter));
+ g_assert_cmpint (3, ==, gtk_text_buffer_get_char_count (buffer));
+
+ /* test bug #544724 */
+ gtk_text_buffer_set_text (buffer, "foo\r\n\r\nbar", -1);
+ gtk_text_buffer_get_iter_at_offset (buffer, &iter, 5);
+ ret = gtk_text_buffer_backspace (buffer, &iter, TRUE, TRUE);
+ g_assert (ret);
+ g_assert_cmpint (0, ==, gtk_text_iter_get_line (&iter));
+ g_assert_cmpint (8, ==, gtk_text_buffer_get_char_count (buffer));
+
+ g_object_unref (buffer);
+}
+
static void
test_logical_motion (void)
{
gunichar ch;
/* Check UTF8 unknown char thing */
- g_assert (g_utf8_strlen (gtk_text_unknown_char_utf8, 3) == 1);
- ch = g_utf8_get_char (gtk_text_unknown_char_utf8);
+ g_assert (GTK_TEXT_UNKNOWN_CHAR_UTF8_LEN == 3);
+ g_assert (g_utf8_strlen (gtk_text_unknown_char_utf8_gtk_tests_only (), 3) == 1);
+ ch = g_utf8_get_char (gtk_text_unknown_char_utf8_gtk_tests_only ());
g_assert (ch == GTK_TEXT_UNKNOWN_CHAR);
}
g_object_unref (buffer);
}
-extern void pixbuf_init (void);
-
int
main (int argc, char** argv)
{
/* First, we turn on btree debugging. */
- gtk_debug_flags |= GTK_DEBUG_TEXT;
+ gtk_set_debug_flags (gtk_get_debug_flags () | GTK_DEBUG_TEXT);
gtk_test_init (&argc, &argv);
- pixbuf_init ();
g_test_add_func ("/TextBuffer/UTF8 unknown char", test_utf8);
g_test_add_func ("/TextBuffer/Line separator", test_line_separator);
+ g_test_add_func ("/TextBuffer/Backspace", test_backspace);
g_test_add_func ("/TextBuffer/Logical motion", test_logical_motion);
g_test_add_func ("/TextBuffer/Marks", test_marks);
g_test_add_func ("/TextBuffer/Empty buffer", test_empty_buffer);