summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPacho Ramos <pacho@gentoo.org>2014-07-01 15:38:31 +0000
committerPacho Ramos <pacho@gentoo.org>2014-07-01 15:38:31 +0000
commitc6f24812fb2436dd23e9fb695ee815b4f9480fbb (patch)
tree252ab291098c5ab6b12d6abdbaa807be0d77184e /app-office/abiword
parentVersion bump. (diff)
downloadgentoo-2-c6f24812fb2436dd23e9fb695ee815b4f9480fbb.tar.gz
gentoo-2-c6f24812fb2436dd23e9fb695ee815b4f9480fbb.tar.bz2
gentoo-2-c6f24812fb2436dd23e9fb695ee815b4f9480fbb.zip
Apply some Ubuntu patches fixing some bugs like crash when saving as PDF (#515990 by cowhead)
(Portage version: 2.2.10/cvs/Linux x86_64, signed Manifest commit with key A188FBD4)
Diffstat (limited to 'app-office/abiword')
-rw-r--r--app-office/abiword/ChangeLog11
-rw-r--r--app-office/abiword/abiword-3.0.0-r2.ebuild167
-rw-r--r--app-office/abiword/files/abiword-3.0.0-bison30.patch28
-rw-r--r--app-office/abiword/files/abiword-3.0.0-boost54.patch31
-rw-r--r--app-office/abiword/files/abiword-3.0.0-fix-redraw.patch56
-rw-r--r--app-office/abiword/files/abiword-3.0.0-fix-shortcut.patch40
-rw-r--r--app-office/abiword/files/abiword-3.0.0-pdf-crash.patch102
7 files changed, 434 insertions, 1 deletions
diff --git a/app-office/abiword/ChangeLog b/app-office/abiword/ChangeLog
index 5c6c31f3edb4..de3e36bb97b1 100644
--- a/app-office/abiword/ChangeLog
+++ b/app-office/abiword/ChangeLog
@@ -1,6 +1,15 @@
# ChangeLog for app-office/abiword
# Copyright 1999-2014 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/app-office/abiword/ChangeLog,v 1.276 2014/04/17 12:50:41 pacho Exp $
+# $Header: /var/cvsroot/gentoo-x86/app-office/abiword/ChangeLog,v 1.277 2014/07/01 15:38:31 pacho Exp $
+
+*abiword-3.0.0-r2 (01 Jul 2014)
+
+ 01 Jul 2014; Pacho Ramos <pacho@gentoo.org> +abiword-3.0.0-r2.ebuild,
+ +files/abiword-3.0.0-bison30.patch, +files/abiword-3.0.0-boost54.patch,
+ +files/abiword-3.0.0-fix-redraw.patch,
+ +files/abiword-3.0.0-fix-shortcut.patch, +files/abiword-3.0.0-pdf-crash.patch:
+ Apply some Ubuntu patches fixing some bugs like crash when saving as PDF
+ (#515990 by cowhead)
17 Apr 2014; Pacho Ramos <pacho@gentoo.org> -abiword-2.8.6-r2.ebuild,
-files/abiword-2.8.6-gcc46.patch, -files/abiword-2.8.6-glib-2.31.patch,
diff --git a/app-office/abiword/abiword-3.0.0-r2.ebuild b/app-office/abiword/abiword-3.0.0-r2.ebuild
new file mode 100644
index 000000000000..e7ebf02ffcc6
--- /dev/null
+++ b/app-office/abiword/abiword-3.0.0-r2.ebuild
@@ -0,0 +1,167 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/app-office/abiword/abiword-3.0.0-r2.ebuild,v 1.1 2014/07/01 15:38:30 pacho Exp $
+
+EAPI=5
+GCONF_DEBUG="yes"
+GNOME2_LA_PUNT="yes"
+
+inherit eutils gnome2
+
+DESCRIPTION="Fully featured yet light and fast cross platform word processor"
+HOMEPAGE="http://www.abisource.com/"
+SRC_URI="http://www.abisource.com/downloads/${PN}/${PV}/source/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="2"
+KEYWORDS="~alpha ~amd64 ~arm ~ia64 ~mips ~ppc ~ppc64 ~sparc ~x86 ~amd64-linux ~x86-linux"
+IUSE="calendar collab cups eds +goffice grammar +introspection latex map math ots +plugins readline redland spell wordperfect wmf thesaurus"
+
+# You need 'plugins' enabled if want to enable the extra plugins
+REQUIRED_USE="!plugins? ( !collab !grammar !latex !math !ots !readline !thesaurus !wordperfect !wmf )"
+
+RDEPEND="
+ >=app-text/wv-1.2
+ >=dev-libs/fribidi-0.10.4
+ >=dev-libs/glib-2.16:2
+ >=dev-libs/libgcrypt-1.4.5:0
+ dev-libs/libxslt
+ >=gnome-base/librsvg-2.16:2
+ >=gnome-extra/libgsf-1.14.18
+ >=media-libs/libpng-1.2
+ virtual/jpeg
+ >=x11-libs/cairo-1.10[X]
+ >=x11-libs/gtk+-3.0.8:3[cups?]
+ calendar? ( >=dev-libs/libical-0.46 )
+ eds? ( >=gnome-extra/evolution-data-server-3.6.0 )
+ goffice? ( >=x11-libs/goffice-0.10.2:0.10 )
+ introspection? ( >=dev-libs/gobject-introspection-1.0.0 )
+ map? ( >=media-libs/libchamplain-0.12 )
+ plugins? (
+ collab? (
+ >=dev-libs/libxml2-2.4
+ >=net-libs/loudmouth-1
+ net-libs/libsoup:2.4
+ net-libs/gnutls )
+ grammar? ( >=dev-libs/link-grammar-4.2.1 )
+ math? ( >=x11-libs/gtkmathview-0.7.5 )
+ ots? ( >=app-text/ots-0.5-r1 )
+ readline? ( sys-libs/readline )
+ thesaurus? ( >=app-text/aiksaurus-1.2[gtk] )
+ wordperfect? (
+ app-text/libwpd:0.9
+ app-text/libwpg:0.2 )
+ wmf? ( >=media-libs/libwmf-0.2.8 )
+ )
+ redland? (
+ >=dev-libs/redland-1.0.10
+ >=dev-libs/rasqal-0.9.17 )
+ spell? ( >=app-text/enchant-1.2 )
+ !<app-office/abiword-plugins-2.8
+"
+DEPEND="${RDEPEND}
+ dev-lang/perl
+ >=dev-libs/boost-1.40.0
+ virtual/pkgconfig
+ collab? ( dev-cpp/asio )
+"
+
+src_prepare() {
+ # readme.txt will be installed using dodoc
+ sed '/readme\.txt\|abw/d' \
+ -i user/wp/Makefile.am user/wp/Makefile.in || die
+
+ # http://bugzilla.abisource.com/show_bug.cgi?id=13532
+ epatch "${FILESDIR}/${PN}-3.0.0-eds-3.6.patch"
+
+ # http://bugzilla.abisource.com/show_bug.cgi?id=13564
+ epatch "${FILESDIR}/${PN}-3.0.0-fix-crash.patch"
+
+ # http://bugzilla.abisource.com/show_bug.cgi?id=13589
+ epatch "${FILESDIR}/${PN}-3.0.0-libgcrypt_1_6_0-1.patch"
+
+ # Fix build with boost-1.54
+ epatch "${FILESDIR}/${PN}-3.0.0-boost54.patch"
+
+ # http://bugzilla.abisource.com/show_bug.cgi?id=13596
+ epatch "${FILESDIR}/${PN}-3.0.0-fix-shortcut.patch"
+
+ # Fix build with bison-3.0
+ epatch "${FILESDIR}/${PN}-3.0.0-bison30.patch"
+
+ # Fix crash when saving as PDF, bug #515990
+ epatch "${FILESDIR}/${PN}-3.0.0-pdf-crash.patch"
+
+ # Fix redraw region in custom widget
+ epatch "${FILESDIR}/${PN}-3.0.0-fix-redraw.patch"
+
+ gnome2_src_prepare
+}
+
+src_configure() {
+ local plugins=""
+
+ if use plugins; then
+ # Plugins depending on libgsf
+ plugins="t602 docbook clarisworks wml kword hancom openwriter pdf
+ loadbindings mswrite garble pdb applix opendocument sdw xslfo"
+
+ # Plugins depending on librsvg
+ # But doesn't build: http://bugzilla.abisource.com/show_bug.cgi?id=13563
+ #plugins="${plugins} svg"
+
+ # Plugins not depending on anything
+ plugins="${plugins} gimp bmp freetranslation iscii s5 babelfish opml eml
+ wikipedia gdict passepartout google presentation urldict hrtext mif
+ openxml"
+
+ # inter7eps: eps.h
+ # libtidy: gsf + tidy.h
+ # paint: windows only ?
+ use collab && plugins="${plugins} collab"
+ use goffice && plugins="${plugins} goffice"
+ use latex && plugins="${plugins} latex"
+ use math && plugins="${plugins} mathview"
+ use ots && plugins="${plugins} ots"
+ # psion: >=psiconv-0.9.4
+ use readline && plugins="${plugins} command"
+ use thesaurus && plugins="${plugins} aiksaurus"
+ use wmf && plugins="${plugins} wmf"
+ # wordperfect: >=wpd-0.9 >=wpg-0.2
+ use wordperfect && plugins="${plugins} wpg"
+ fi
+
+ gnome2_src_configure \
+ --enable-plugins="$(echo ${plugins})" \
+ --disable-static \
+ --disable-default-plugins \
+ --disable-builtin-plugins \
+ --disable-collab-backend-telepathy \
+ --enable-clipart \
+ --enable-statusbar \
+ --enable-templates \
+ --with-gio \
+ --without-gnomevfs \
+ --without-gtk2 \
+ $(use_with goffice goffice) \
+ $(use_with calendar libical) \
+ $(use_enable cups print) \
+ $(use_enable collab collab-backend-xmpp) \
+ $(use_enable collab collab-backend-tcp) \
+ $(use_enable collab collab-backend-service) \
+ $(use_with eds evolution-data-server) \
+ $(use_enable introspection) \
+ $(use_with map champlain) \
+ $(use_with redland) \
+ $(use_enable spell)
+}
+
+src_compile() {
+ # Parallel build fails, bug #488462
+ MAKEOPTS="${MAKEOPTS} -j1" gnome2_src_compile
+}
+
+src_install() {
+ gnome2_src_install
+ dodoc user/wp/readme.txt
+}
diff --git a/app-office/abiword/files/abiword-3.0.0-bison30.patch b/app-office/abiword/files/abiword-3.0.0-bison30.patch
new file mode 100644
index 000000000000..0299520e282a
--- /dev/null
+++ b/app-office/abiword/files/abiword-3.0.0-bison30.patch
@@ -0,0 +1,28 @@
+Last-update: 2014-02-02
+Author: Dimitri John Ledkov <xnox@ubuntu.com>
+Description: Cherrypick patch from NetBSD, to fix FTBFS with bison 3.0.
+
+--- a/plugins/mathview/itex2mml/itex2MML.y
++++ b/plugins/mathview/itex2mml/itex2MML.y
+@@ -1,8 +1,10 @@
+ /* itex2MML 1.4.8
+ * itex2MML.y last modified 9/21/2011
+ */
+
++%parse-param {char **ret_str}
++
+ %{
+ #include <stdio.h>
+ #include <string.h>
+ #include <stdlib.h>
+@@ -26,9 +28,9 @@
+ }
+
+ void (*itex2MML_error) (const char * msg) = itex2MML_default_error;
+
+- static void yyerror (char * s)
++ static void yyerror (char **ret_str, char * s)
+ {
+ char * msg = itex2MML_copy3 (s, " at token ", yytext);
+ if (itex2MML_error)
+ (*itex2MML_error) (msg);
diff --git a/app-office/abiword/files/abiword-3.0.0-boost54.patch b/app-office/abiword/files/abiword-3.0.0-boost54.patch
new file mode 100644
index 000000000000..f7cfeaef6184
--- /dev/null
+++ b/app-office/abiword/files/abiword-3.0.0-boost54.patch
@@ -0,0 +1,31 @@
+Last-Update: 2014-02-05
+Forwarded: yes
+Author: Dmitry Smirnov <onlyjob@member.fsf.org>
+Bug-Debian: http://bugs.debian.org/737551
+Bug-Abiword: http://bugzilla.abisource.com/13602
+Description: fix FTBFS with libboost1.54-dev
+
+--- a/plugins/collab/core/sync/xp/SynchronizedQueue.h
++++ b/plugins/collab/core/sync/xp/SynchronizedQueue.h
+@@ -21,8 +21,9 @@
+
+ #include <deque>
+ #include <boost/bind.hpp>
+ #include <boost/function.hpp>
++#include <boost/noncopyable.hpp>
+ #include <sync/xp/lock.h>
+ #include <sync/xp/Synchronizer.h>
+
+ class EmptyQueueException {};
+--- a/plugins/collab/backends/tcp/xp/Session.h
++++ b/plugins/collab/backends/tcp/xp/Session.h
+@@ -21,8 +21,9 @@
+
+ #include <boost/function.hpp>
+ #include <boost/bind.hpp>
+ #include <boost/enable_shared_from_this.hpp>
++#include <boost/noncopyable.hpp>
+ #include <deque>
+ #include <sync/xp/lock.h>
+ #include <sync/xp/Synchronizer.h>
+
diff --git a/app-office/abiword/files/abiword-3.0.0-fix-redraw.patch b/app-office/abiword/files/abiword-3.0.0-fix-redraw.patch
new file mode 100644
index 000000000000..cad0a92d4143
--- /dev/null
+++ b/app-office/abiword/files/abiword-3.0.0-fix-redraw.patch
@@ -0,0 +1,56 @@
+From c260e8d107a8708d57a60fbc18ef71ffeb88fcf1 Mon Sep 17 00:00:00 2001
+From: Hubert Figuiere <hub@figuiere.net>
+Date: Sat, 22 Feb 2014 18:42:56 +0000
+Subject: [PATCH] Bug 13582 - Fix redraw region in custom widget.
+
+Cherry-picked from trunk@33870 and reworked for 3.0.x
+
+git-svn-id: svn+ssh://svn.abisource.com/svnroot/abiword/branches/ABI-3-0-0-STABLE@33871 bcba8976-2d24-0410-9c9c-aab3bd5fdfd6
+---
+ src/af/gr/gtk/gr_UnixCairoGraphics.cpp | 2 +-
+ src/af/xap/gtk/xap_UnixCustomWidget.cpp | 10 ++++++----
+ 2 files changed, 7 insertions(+), 5 deletions(-)
+
+diff --git a/src/af/gr/gtk/gr_UnixCairoGraphics.cpp b/src/af/gr/gtk/gr_UnixCairoGraphics.cpp
+index 4c8d23c..15d7a7d 100644
+--- a/src/af/gr/gtk/gr_UnixCairoGraphics.cpp
++++ b/src/af/gr/gtk/gr_UnixCairoGraphics.cpp
+@@ -520,7 +520,7 @@ void GR_UnixCairoGraphics::_beginPaint()
+ {
+ UT_ASSERT(ev->type == GDK_EXPOSE || ev->type == GDK_DAMAGE);
+ if (ev->type == GDK_EXPOSE || ev->type == GDK_DAMAGE)
+- UT_ASSERT(ev->expose.window == m_pWin);
++ UT_ASSERT(ev->expose.window == m_pWin || ev->expose.window == gdk_window_get_effective_parent (m_pWin));
+ }
+ }
+ #endif
+diff --git a/src/af/xap/gtk/xap_UnixCustomWidget.cpp b/src/af/xap/gtk/xap_UnixCustomWidget.cpp
+index b0b7015..5150afe 100644
+--- a/src/af/xap/gtk/xap_UnixCustomWidget.cpp
++++ b/src/af/xap/gtk/xap_UnixCustomWidget.cpp
+@@ -45,16 +45,18 @@ void XAP_UnixCustomWidget::_fe::expose(XAP_UnixCustomWidget *self, GdkEventExpos
+ #endif
+ {
+ #if GTK_CHECK_VERSION(3,0,0)
+- GdkEventExpose *ev = reinterpret_cast<GdkEventExpose *>(gtk_get_current_event());
+-#endif
++ self->m_cr = cr;
++ double x1, y1, x2, y2;
++ cairo_clip_extents(cr, &x1, &y1, &x2, &y2);
++
++ UT_Rect r(x1, y1, x2 - x1, y2 - y1);
++#else
+ UT_Rect r(
+ ev->area.x,
+ ev->area.y,
+ ev->area.width,
+ ev->area.height
+ );
+-#if GTK_CHECK_VERSION(3,0,0)
+- self->m_cr = cr;
+ #endif
+ self->draw(&r);
+ }
+--
+1.9.1
+
diff --git a/app-office/abiword/files/abiword-3.0.0-fix-shortcut.patch b/app-office/abiword/files/abiword-3.0.0-fix-shortcut.patch
new file mode 100644
index 000000000000..0bc2db525150
--- /dev/null
+++ b/app-office/abiword/files/abiword-3.0.0-fix-shortcut.patch
@@ -0,0 +1,40 @@
+Description: Upstream-derived patch to fix SHIFT-CTRL-CURSOR_KEY shortcut combos.
+Origin: upstream, http://bugzilla.abisource.com/attachment.cgi?id=5695&action=view
+Bug: http://bugzilla.abisource.com/show_bug.cgi?id=13596
+Bug-Ubuntu: https://bugs.launchpad.net/bugs/1315949
+
+Index: b/src/af/ev/gtk/ev_UnixKeyboard.cpp
+===================================================================
+--- a/src/af/ev/gtk/ev_UnixKeyboard.cpp
++++ b/src/af/ev/gtk/ev_UnixKeyboard.cpp
+@@ -87,17 +87,20 @@
+ {
+ state |= EV_EMS_CONTROL;
+
+- // Gdk does us the favour of working out a translated keyvalue for us,
+- // but with the Ctrl keys, we do not want that -- see bug 9545
+- Display * display = GDK_DISPLAY_XDISPLAY(gdk_window_get_display(e->window));
+- KeySym sym = XkbKeycodeToKeysym(display,
+- e->hardware_keycode,
+- e->state & GDK_SHIFT_MASK ? 1 : 0, 0);
+- xxx_UT_DEBUGMSG(("ev_UnixKeyboard::keyPressEvent: keyval %d, hardware_keycode %d\n"
+- " sym: 0x%x\n",
+- e->keyval, e->hardware_keycode, sym));
++ if (!s_isVirtualKeyCode(charData))
++ {
++ // Gdk does us the favour of working out a translated keyvalue for us,
++ // but with the Ctrl keys, we do not want that -- see bug 9545
++ Display * display = GDK_DISPLAY_XDISPLAY(gdk_window_get_display(e->window));
++ KeySym sym = XkbKeycodeToKeysym(display,
++ e->hardware_keycode,
++ e->state & GDK_SHIFT_MASK ? 1 : 0, 0);
++ xxx_UT_DEBUGMSG(("ev_UnixKeyboard::keyPressEvent: keyval %d, hardware_keycode %d\n"
++ " sym: 0x%x\n",
++ e->keyval, e->hardware_keycode, sym));
+
+- charData = sym;
++ charData = sym;
++ }
+ }
+ if (e->state & (s_alt_mask))
+ state |= EV_EMS_ALT;
diff --git a/app-office/abiword/files/abiword-3.0.0-pdf-crash.patch b/app-office/abiword/files/abiword-3.0.0-pdf-crash.patch
new file mode 100644
index 000000000000..633ef7f73eb7
--- /dev/null
+++ b/app-office/abiword/files/abiword-3.0.0-pdf-crash.patch
@@ -0,0 +1,102 @@
+From 128dfbc82cbd5c2c1bb6d0cde238a933639fba50 Mon Sep 17 00:00:00 2001
+From: Hubert Figuiere <hub@figuiere.net>
+Date: Sat, 28 Dec 2013 02:05:23 +0000
+Subject: [PATCH] Bug 13586 - We don't have a frame when printing.
+
+UPLIFTED from trunk
+
+git-svn-id: svn+ssh://svn.abisource.com/svnroot/abiword/branches/ABI-3-0-0-STABLE@33663 bcba8976-2d24-0410-9c9c-aab3bd5fdfd6
+---
+ src/text/fmt/gtk/fv_UnixSelectionHandles.cpp | 44 +++++++++++++++++++++-------
+ 1 file changed, 33 insertions(+), 11 deletions(-)
+
+diff --git a/src/text/fmt/gtk/fv_UnixSelectionHandles.cpp b/src/text/fmt/gtk/fv_UnixSelectionHandles.cpp
+index a3a3347..8bc187c 100644
+--- a/src/text/fmt/gtk/fv_UnixSelectionHandles.cpp
++++ b/src/text/fmt/gtk/fv_UnixSelectionHandles.cpp
+@@ -36,42 +36,60 @@ static void handle_dragged_cb (FvTextHandle *handle,
+
+ mode = _fv_text_handle_get_mode (handle);
+
+- if (pos == FV_TEXT_HANDLE_POSITION_SELECTION_START)
++ if (pos == FV_TEXT_HANDLE_POSITION_SELECTION_START) {
+ handles->updateSelectionStart ((UT_sint32)x, (UT_sint32)y);
++ }
+ else {
+- if (mode == FV_TEXT_HANDLE_MODE_SELECTION)
++ if (mode == FV_TEXT_HANDLE_MODE_SELECTION) {
+ handles->updateSelectionEnd ((UT_sint32)x, (UT_sint32)y);
+- else
++ }
++ else {
+ handles->updateCursor((UT_sint32)x, (UT_sint32)y);
++ }
+ }
+ }
+
+ FV_UnixSelectionHandles::FV_UnixSelectionHandles(FV_View *view, FV_Selection selection)
+ : FV_SelectionHandles (view, selection)
++ , m_text_handle(NULL)
+ {
+ XAP_Frame * pFrame = static_cast<XAP_Frame*>(m_pView->getParentData());
+- XAP_UnixFrameImpl * pFrameImpl =static_cast<XAP_UnixFrameImpl *>( pFrame->getFrameImpl());
+- GtkWidget * pWidget = pFrameImpl->getViewWidget();
+-
+- m_text_handle = _fv_text_handle_new (pWidget);
+- _fv_text_handle_set_relative_to (m_text_handle,
+- gtk_widget_get_window (pWidget));
+- g_signal_connect (m_text_handle, "handle-dragged",
+- G_CALLBACK(handle_dragged_cb), this);
++ // When saving to PDF (and printing) we don't have a frame
++ // See bug 13586
++ if (pFrame) {
++ XAP_UnixFrameImpl * pFrameImpl = static_cast<XAP_UnixFrameImpl *>(pFrame->getFrameImpl());
++ GtkWidget * pWidget = pFrameImpl->getViewWidget();
++
++ m_text_handle = _fv_text_handle_new (pWidget);
++ _fv_text_handle_set_relative_to (m_text_handle,
++ gtk_widget_get_window (pWidget));
++ g_signal_connect (m_text_handle, "handle-dragged",
++ G_CALLBACK(handle_dragged_cb), this);
++ }
+ }
+
+ FV_UnixSelectionHandles::~FV_UnixSelectionHandles()
+ {
++ if(!m_text_handle) {
++ return;
++ }
+ g_object_unref (m_text_handle);
+ }
+
+ void FV_UnixSelectionHandles::hide()
+ {
++ if(!m_text_handle) {
++ return;
++ }
+ _fv_text_handle_set_mode (m_text_handle, FV_TEXT_HANDLE_MODE_NONE);
+ }
+
+ void FV_UnixSelectionHandles::setCursorCoords(UT_sint32 x, UT_sint32 y, UT_uint32 height, bool visible)
+ {
++ if(!m_text_handle) {
++ return;
++ }
++
+ GdkRectangle rect;
+
+ _fv_text_handle_set_mode(m_text_handle, FV_TEXT_HANDLE_MODE_CURSOR);
+@@ -92,6 +110,10 @@ void FV_UnixSelectionHandles::setCursorCoords(UT_sint32 x, UT_sint32 y, UT_uint3
+ void FV_UnixSelectionHandles::setSelectionCoords(UT_sint32 start_x, UT_sint32 start_y, UT_uint32 start_height, bool start_visible,
+ UT_sint32 end_x, UT_sint32 end_y, UT_uint32 end_height, bool end_visible)
+ {
++ if(!m_text_handle) {
++ return;
++ }
++
+ GdkRectangle rect;
+
+ _fv_text_handle_set_mode(m_text_handle, FV_TEXT_HANDLE_MODE_SELECTION);
+--
+1.9.1
+