pkgsrc-Changes-HG archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
[pkgsrc/trunk]: pkgsrc/editors editors/abiword: Update to 3.0.2
details: https://anonhg.NetBSD.org/pkgsrc/rev/6b647254c9b4
branches: trunk
changeset: 387756:6b647254c9b4
user: nia <nia%pkgsrc.org@localhost>
date: Sat Nov 24 19:14:09 2018 +0000
description:
editors/abiword: Update to 3.0.2
Changes:
Fixes in the core (all platforms)
Various build fixes: Bug 13697, bug 13650, bug 13726, Bug 13753, Bug 13569
Various crash fixes: Bug 13716, Bug 13752, Bug 13807, Bug 13766
Various memory leaks fixes.
Bug 13709 - Fix import of very long paragraphs.
Gtk
Fixes specific to the Gtk+ version
Bug 13533 - Fix printing of SVG images.
Bug 13722 - Fix scrolling in the Insert Symbol dialog.
Bug 13729 - Make the available languages list expandable.
Bug 13731 - Fix text rendering after an SVG image
Bug 13662 - Never change an image resolution on scaling.
Bug 13734 - Do not execute radio buttons events when unchecked.
Bug 13736 - Properly iterate through the plugin arguments
Fix SVG icon.)
Fixed bug in the font chooser.
Bug 13773 - Fix the ruler and background page theming on Gtk3. Ruler knobs no longer do "3D" on Gtk3. Bug 13762
Bug 13787 - Fix the table widget drawing
AbiWord works better on Wayland: Bug 13766, Bug 13767
Import/Export
Fixes in the OpenDocument importer / exporter
Bug 13707 - Fixed paragraph export to Open Document.
Bug 13706 - If needed apply default style for headers.
OpenDocument: Fix a buffer overrun
Plugins
Fixes in the collaboration plugin
Fix various build issues. Bug 13712, Bug 13754 and Bug 13742
diffstat:
editors/abiword-plugins/Makefile | 3 +-
editors/abiword/Makefile | 5 +-
editors/abiword/Makefile.common | 4 +-
editors/abiword/distinfo | 21 +-
editors/abiword/options.mk | 3 +-
editors/abiword/patches/patch-plugin-configure.m4 | 12 +-
editors/abiword/patches/patch-plugins_collab_backends_service_xp_RealmProtocol.cpp | 18 -
editors/abiword/patches/patch-plugins_collab_backends_service_xp_soa__soup.cpp | 16 -
editors/abiword/patches/patch-plugins_collab_backends_service_xp_tls__tunnel.cpp | 26 -
editors/abiword/patches/patch-plugins_grammar_linkgrammarwrap_LinkGrammarWrap.cpp | 150 ----------
editors/abiword/patches/patch-plugins_latex_xp_ie__exp__LaTeX.cpp | 16 -
editors/abiword/patches/patch-plugins_xslfo_xp_ie__exp__XSL-FO.cpp | 16 -
editors/abiword/patches/patch-src_text_ptbl_xp_pd__DocumentRDF.cpp | 34 +--
editors/abiword/patches/patch-src_text_ptbl_xp_pd__DocumentRDF.h | 15 -
14 files changed, 23 insertions(+), 316 deletions(-)
diffs (truncated from 462 to 300 lines):
diff -r 55e16e908d79 -r 6b647254c9b4 editors/abiword-plugins/Makefile
--- a/editors/abiword-plugins/Makefile Sat Nov 24 18:42:43 2018 +0000
+++ b/editors/abiword-plugins/Makefile Sat Nov 24 19:14:09 2018 +0000
@@ -1,9 +1,8 @@
-# $NetBSD: Makefile,v 1.94 2018/11/14 22:21:21 kleink Exp $
+# $NetBSD: Makefile,v 1.95 2018/11/24 19:14:09 nia Exp $
.include "../../editors/abiword/Makefile.common"
DISTNAME= abiword-${ABIVERSION}
PKGNAME= abiword-plugins-${ABIVERSION}
-PKGREVISION= 33
CATEGORIES= editors
MASTER_SITES= http://www.abiword.com/downloads/abiword/${PKGVERSION_NOREV}/source/
diff -r 55e16e908d79 -r 6b647254c9b4 editors/abiword/Makefile
--- a/editors/abiword/Makefile Sat Nov 24 18:42:43 2018 +0000
+++ b/editors/abiword/Makefile Sat Nov 24 19:14:09 2018 +0000
@@ -1,8 +1,7 @@
-# $NetBSD: Makefile,v 1.179 2018/11/14 22:21:21 kleink Exp $
+# $NetBSD: Makefile,v 1.180 2018/11/24 19:14:09 nia Exp $
.include "Makefile.common"
DISTNAME= abiword-${ABIVERSION}
-PKGREVISION= 20
CATEGORIES= editors
MASTER_SITES= http://www.abiword.com/downloads/abiword/${PKGVERSION_NOREV}/source/
@@ -18,7 +17,7 @@
GNU_CONFIGURE= yes
USE_LIBTOOL= yes
USE_TOOLS+= autoconf automake gmake pkg-config
-USE_LANGUAGES= c c++03
+USE_LANGUAGES= c c++11
CONFIGURE_ARGS+= --disable-default-plugins #do not build any plugins by default
CONFIGURE_ARGS+= --enable-spell # (Gtk+ only) include spell checking support
diff -r 55e16e908d79 -r 6b647254c9b4 editors/abiword/Makefile.common
--- a/editors/abiword/Makefile.common Sat Nov 24 18:42:43 2018 +0000
+++ b/editors/abiword/Makefile.common Sat Nov 24 19:14:09 2018 +0000
@@ -1,4 +1,4 @@
-# $NetBSD: Makefile.common,v 1.46 2016/09/27 12:00:50 wiz Exp $
+# $NetBSD: Makefile.common,v 1.47 2018/11/24 19:14:09 nia Exp $
# used by editors/abiword-plugins/Makefile
-ABIVERSION=3.0.1
+ABIVERSION=3.0.2
diff -r 55e16e908d79 -r 6b647254c9b4 editors/abiword/distinfo
--- a/editors/abiword/distinfo Sat Nov 24 18:42:43 2018 +0000
+++ b/editors/abiword/distinfo Sat Nov 24 19:14:09 2018 +0000
@@ -1,20 +1,15 @@
-$NetBSD: distinfo,v 1.74 2018/06/30 12:43:28 maya Exp $
+$NetBSD: distinfo,v 1.75 2018/11/24 19:14:09 nia Exp $
-SHA1 (abiword-3.0.1.tar.gz) = 7badf9663564a144e16764a456cadda18df70991
-RMD160 (abiword-3.0.1.tar.gz) = 05d92a7304e4e419776970d7b35065ceb59f7681
-SHA512 (abiword-3.0.1.tar.gz) = c655aabe0ba0a9880f30808e26c02ec3280c750625faa482a68d4d336742f85659a7af7d6413d8813b82d3de0a3f6b61b6f6898f030bb921d792ad866879dbcf
-Size (abiword-3.0.1.tar.gz) = 11144990 bytes
+SHA1 (abiword-3.0.2.tar.gz) = 8226e0962e6667e0a461955a0ac680a629e0b55a
+RMD160 (abiword-3.0.2.tar.gz) = fde551492b0cffa7d522082906f374490bd47f5c
+SHA512 (abiword-3.0.2.tar.gz) = 29ce9e80b3b85ab2933e7d39216771d8c4e05db5255eaed0cf8e1d032ffaac2cb1880bf24e754196ad5dae4969a1c2101ce4dc9c1db14604adc2f852b6a17fe3
+Size (abiword-3.0.2.tar.gz) = 11154333 bytes
SHA1 (patch-configure.ac) = 239c0635c2c616c7e0a986a5fd92428393af38b7
-SHA1 (patch-plugin-configure.m4) = a8b8db3bdbd69339e32eefec1de7b1b59467db40
+SHA1 (patch-plugin-configure.m4) = ccdb6932b389694998a8d50676347d4fa6a03910
SHA1 (patch-plugins_aiksaurus_Makefile.am) = 1529d5098b7fb798c428fe02cc50879374cb3e9d
-SHA1 (patch-plugins_collab_backends_service_xp_RealmProtocol.cpp) = 8b46d71b4ebb23aa4720e6d2d544004e178c1f2f
-SHA1 (patch-plugins_collab_backends_service_xp_soa__soup.cpp) = 219532cffebd67a9ed2e62fd318ccfb7eee57036
-SHA1 (patch-plugins_collab_backends_service_xp_tls__tunnel.cpp) = f8eed4520951653822c6de8da371c8cb42dcbc89
SHA1 (patch-plugins_command_Makefile.am) = e003a6bf9a6e0566abc85f09868fdf1aa93234d7
SHA1 (patch-plugins_gimp_xp_AbiGimp.cpp) = 15692cf15fd4099e7ad4ad854b6b57b103717269
SHA1 (patch-plugins_goffice_Makefile.am) = 1959eea3b4e19f085aeb56870f682ce44561d445
-SHA1 (patch-plugins_grammar_linkgrammarwrap_LinkGrammarWrap.cpp) = f3916dbc0b208bfe9dbb55eac850a3094683694c
-SHA1 (patch-plugins_latex_xp_ie__exp__LaTeX.cpp) = bffa5e143147214af4baf8bf778123ca7223a8eb
SHA1 (patch-plugins_mht_xp_tidyReader.h) = fa4ef0ee7f893fb070b76e21aaad4efd9b8b27ee
SHA1 (patch-plugins_paint_xp_AbiGeneric.cpp) = 0c29c7ddf0dbd55d4bb6ab90311e40f2cff7130b
SHA1 (patch-plugins_paint_xp_AbiPaint.cpp) = bf1ea7eb25fb384014523554f7ca55e6507bcbe6
@@ -25,12 +20,10 @@
SHA1 (patch-plugins_wordperfect_xp_ie__impexp__WordPerfect.cpp) = c87bc227eebcfcc2ab11ee6b5237ef8fcc47c0bc
SHA1 (patch-plugins_wordperfect_xp_ie__impexp__WordPerfect.h) = 0a75276dc0d1d99b97155f61d9f98de7126fb0a3
SHA1 (patch-plugins_wpg_xp_ie__impGraphic__WPG.cpp) = 36d7ca7855ddc504701e392c28e3d8530f78b81e
-SHA1 (patch-plugins_xslfo_xp_ie__exp__XSL-FO.cpp) = 8dfb1c643d70ff1813fd3d9eaa71074e8954975a
SHA1 (patch-src_af_util_xp_ut__endian.h) = e1dd4cc0df3b0eb66dbd673fb5c0d2e3b24b30a4
SHA1 (patch-src_af_util_xp_ut__iconv.cpp) = 613f162d4db0ba9520e0481a98564e59ccd862d4
SHA1 (patch-src_af_util_xp_ut__iconv.h) = bbcfa2098ea77d393feb50d69de9ae29fcce302f
SHA1 (patch-src_af_util_xp_ut__mbtowc.cpp) = 01f6793651533e7e39f665e5c15e6c12e1c7b96d
SHA1 (patch-src_af_util_xp_ut__misc.cpp) = f552ecbb87490355d8e74218dd59fd3961f1af5d
SHA1 (patch-src_text_fmt_xp_fv__FrameEdit.h) = 684310bf9aece4ce72d004dfae9a4b4b6ca69570
-SHA1 (patch-src_text_ptbl_xp_pd__DocumentRDF.cpp) = 0c111e9e88c27ad0321c1a3d337abd1f158398d0
-SHA1 (patch-src_text_ptbl_xp_pd__DocumentRDF.h) = 59837727c060bc8f8f14478c3a0245b877c2d29a
+SHA1 (patch-src_text_ptbl_xp_pd__DocumentRDF.cpp) = 5673e9341372913156f2f722229569199d97af4c
diff -r 55e16e908d79 -r 6b647254c9b4 editors/abiword/options.mk
--- a/editors/abiword/options.mk Sat Nov 24 18:42:43 2018 +0000
+++ b/editors/abiword/options.mk Sat Nov 24 19:14:09 2018 +0000
@@ -1,4 +1,4 @@
-# $NetBSD: options.mk,v 1.2 2016/02/12 23:42:15 jperkin Exp $
+# $NetBSD: options.mk,v 1.3 2018/11/24 19:14:09 nia Exp $
PKG_OPTIONS_VAR= PKG_OPTIONS.abiword
PKG_SUPPORTED_OPTIONS= debug
@@ -15,3 +15,4 @@
INSTALL_UNSTRIPPED= yes
CFLAGS+= -O0
.endif
+
diff -r 55e16e908d79 -r 6b647254c9b4 editors/abiword/patches/patch-plugin-configure.m4
--- a/editors/abiword/patches/patch-plugin-configure.m4 Sat Nov 24 18:42:43 2018 +0000
+++ b/editors/abiword/patches/patch-plugin-configure.m4 Sat Nov 24 19:14:09 2018 +0000
@@ -1,10 +1,10 @@
-$NetBSD: patch-plugin-configure.m4,v 1.1 2015/09/13 21:32:13 nros Exp $
+$NetBSD: patch-plugin-configure.m4,v 1.2 2018/11/24 19:14:09 nia Exp $
* adapt wordperfect plugins to dependecies available in pkgsrc
from abiword svn date 2014-12-27
---- plugin-configure.m4.orig 2014-12-23 05:13:14.000000000 +0000
+--- plugin-configure.m4.orig 2016-10-21 00:42:58.000000000 +0000
+++ plugin-configure.m4
-@@ -1355,7 +1355,7 @@ AC_SUBST([BMP_CFLAGS])
- AC_SUBST([BMP_LIBS])
+@@ -72,7 +72,7 @@ AC_SUBST([GRAMMAR_CFLAGS])
+ AC_SUBST([GRAMMAR_LIBS])
-wpg_pkgs="$gsf_req libwpg-0.2 >= 0.2.0 libwpd-0.9 >= 0.9.0 libwpd-stream-0.9 >= 0.9.0"
@@ -12,8 +12,8 @@
wpg_deps="no"
if test "$enable_wpg" != ""; then
-@@ -1469,8 +1469,8 @@ AC_SUBST([AIKSAURUS_CFLAGS])
- AC_SUBST([AIKSAURUS_LIBS])
+@@ -962,8 +962,8 @@ AC_SUBST([XSLFO_CFLAGS])
+ AC_SUBST([XSLFO_LIBS])
-wordperfect_pkgs="libwpg-0.2 >= 0.2.0 libwpd-0.9 >= 0.9.0 libwpd-stream-0.9 >= 0.9.0 $gsf_req"
diff -r 55e16e908d79 -r 6b647254c9b4 editors/abiword/patches/patch-plugins_collab_backends_service_xp_RealmProtocol.cpp
--- a/editors/abiword/patches/patch-plugins_collab_backends_service_xp_RealmProtocol.cpp Sat Nov 24 18:42:43 2018 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,18 +0,0 @@
-$NetBSD: patch-plugins_collab_backends_service_xp_RealmProtocol.cpp,v 1.1 2018/06/30 12:43:29 maya Exp $
-
-Bug 13754 - Fix build on gcc-6 (default to C++11)
-https://github.com/AbiWord/abiword/commit/a83e6f50dbd5efa16fb39efe32b9de370f103130
-
---- plugins/collab/backends/service/xp/RealmProtocol.cpp.orig 2009-05-27 05:41:59.000000000 +0000
-+++ plugins/collab/backends/service/xp/RealmProtocol.cpp
-@@ -6,8 +6,8 @@ namespace protocolv1 {
-
- #define MAX_PACKET_DATA_SIZE 64*1024*1024
-
--#define RPV1_PACKET_NONEXISTENT -2
--#define RPV1_PACKET_VARIABLE -1
-+#define RPV1_PACKET_NONEXISTENT uint32_t(-2)
-+#define RPV1_PACKET_VARIABLE uint32_t(-1)
-
- static uint32_t body_size[6] = {
- RPV1_PACKET_NONEXISTENT, /* 0: reserved */
diff -r 55e16e908d79 -r 6b647254c9b4 editors/abiword/patches/patch-plugins_collab_backends_service_xp_soa__soup.cpp
--- a/editors/abiword/patches/patch-plugins_collab_backends_service_xp_soa__soup.cpp Sat Nov 24 18:42:43 2018 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,16 +0,0 @@
-$NetBSD: patch-plugins_collab_backends_service_xp_soa__soup.cpp,v 1.1 2018/06/30 12:43:29 maya Exp $
-
-Bug 13754 - Fix build on gcc-6 (default to C++11).
-https://github.com/AbiWord/abiword/commit/a83e6f50dbd5efa16fb39efe32b9de370f103130
-
---- plugins/collab/backends/service/xp/soa_soup.cpp.orig 2009-09-29 13:58:11.000000000 +0000
-+++ plugins/collab/backends/service/xp/soa_soup.cpp
-@@ -163,7 +163,7 @@ namespace soup_soa {
-
- static bool _invoke(const std::string& /*url*/, const soa::method_invocation& /*mi*/, SoaSoupSession& sess, std::string& result) {
- if (!sess.m_session || !sess.m_msg )
-- return soa::GenericPtr();
-+ return false;
-
- guint status = soup_session_send_message (sess.m_session, sess.m_msg);
- if (!(SOUP_STATUS_IS_SUCCESSFUL (status) ||
diff -r 55e16e908d79 -r 6b647254c9b4 editors/abiword/patches/patch-plugins_collab_backends_service_xp_tls__tunnel.cpp
--- a/editors/abiword/patches/patch-plugins_collab_backends_service_xp_tls__tunnel.cpp Sat Nov 24 18:42:43 2018 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,26 +0,0 @@
-$NetBSD: patch-plugins_collab_backends_service_xp_tls__tunnel.cpp,v 1.1 2016/09/27 12:00:51 wiz Exp $
-
-Fix build with gnutls-3.5.
-http://www.abisource.com/viewvc/abiword/branches/ABI-3-0-0-STABLE/plugins/collab/backends/service/xp/tls_tunnel.cpp?r1=35270&r2=35269&pathrev=35270
-
---- plugins/collab/backends/service/xp/tls_tunnel.cpp.orig 2014-11-04 01:12:14.000000000 +0000
-+++ plugins/collab/backends/service/xp/tls_tunnel.cpp
-@@ -306,9 +306,6 @@ void Proxy::tunnel_(transport_ptr_t tran
- disconnect_(transport_ptr, session_ptr, local_socket_ptr, remote_socket_ptr);
- }
-
--static const int PRIORITIES[] = { GNUTLS_KX_ANON_DH, GNUTLS_KX_RSA, GNUTLS_KX_DHE_DSS, GNUTLS_KX_DHE_RSA, 0 };
--static const int CIPHERS[] = { GNUTLS_CIPHER_AES_256_CBC, GNUTLS_CIPHER_AES_128_CBC, GNUTLS_CIPHER_3DES_CBC, GNUTLS_CIPHER_ARCFOUR_128, 0 };
--
- // FIXME: this clientproxy can only handle 1 SSL connection at the same time
- ClientProxy::ClientProxy(const std::string& connect_address, unsigned short connect_port,
- const std::string& ca_file, bool check_hostname)
-@@ -400,8 +397,6 @@ session_ptr_t ClientProxy::setup_tls_ses
- // setup session
- return_val_if_neg(gnutls_init(session_ptr.get(), GNUTLS_CLIENT), session_ptr_t());
- return_val_if_neg(gnutls_set_default_priority(*session_ptr), session_ptr_t());
-- return_val_if_neg(gnutls_kx_set_priority(*session_ptr,PRIORITIES), session_ptr_t());
-- return_val_if_neg(gnutls_cipher_set_priority(*session_ptr,CIPHERS), session_ptr_t());
- return_val_if_neg(gnutls_credentials_set(*session_ptr, GNUTLS_CRD_CERTIFICATE, x509cred), session_ptr_t());
-
- // setup transport
diff -r 55e16e908d79 -r 6b647254c9b4 editors/abiword/patches/patch-plugins_grammar_linkgrammarwrap_LinkGrammarWrap.cpp
--- a/editors/abiword/patches/patch-plugins_grammar_linkgrammarwrap_LinkGrammarWrap.cpp Sat Nov 24 18:42:43 2018 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,150 +0,0 @@
-$NetBSD: patch-plugins_grammar_linkgrammarwrap_LinkGrammarWrap.cpp,v 1.1 2015/09/21 11:28:45 nros Exp $
-
-First chunk:
-Remove obsolete function call, see
-http://bugzilla.abisource.com/show_bug.cgi?id=13726
-
-Other chunks:
-Fix build with link-grammar-5.2.5.
-http://www.abisource.com/viewvc/abiword/trunk/plugins/grammar/linkgrammarwrap/LinkGrammarWrap.cpp?r1=32836&r2=34627
-
---- plugins/grammar/linkgrammarwrap/LinkGrammarWrap.cpp.orig 2013-04-07 13:53:03.000000000 +0000
-+++ plugins/grammar/linkgrammarwrap/LinkGrammarWrap.cpp
-@@ -87,7 +87,7 @@ bool LinkGrammarWrap::parseSentence(Piec
- parse_options_set_min_null_count(m_Opts, 0);
- parse_options_set_max_null_count(m_Opts, 0);
- parse_options_set_islands_ok(m_Opts, 0);
-- parse_options_set_panic_mode(m_Opts, TRUE);
-+ //parse_options_set_panic_mode(m_Opts, TRUE);
- parse_options_reset_resources(m_Opts);
- UT_sint32 num_linkages = sentence_parse(sent, m_Opts);
- bool res = (num_linkages >= 1);
-@@ -145,59 +145,57 @@ bool LinkGrammarWrap::parseSentence(Piec
- }
- AbiGrammarError * pWordMap = new AbiGrammarError();
- pWordMap->m_iErrLow = iLow;
-- pWordMap->m_iErrHigh = iLow + strlen(sentence_get_nth_word(sent, i));
-+ pWordMap->m_iErrHigh = iLow + strlen(linkage_get_word(linkage, i));
- pWordMap->m_iWordNum = i;
- vecMapOfWords.addItem(pWordMap);
- bool bNew = false;
-- if(!sentence_nth_word_has_disjunction(sent, i))
-+
-+ //UT_DEBUGMSG(("|%s| NULL LINK\n",sent->word[i].string));
-+ if(pErr == NULL)
-+ {
-+ pErr = new AbiGrammarError();
-+ bNew = true;
-+ }
-+ if(bNew || (pErr->m_iWordNum + 1 < i))
- {
-- //UT_DEBUGMSG(("|%s| NULL LINK\n",sent->word[i].string));
-- if(pErr == NULL)
-+ if(!bNew)
- {
-- pErr = new AbiGrammarError();
-- bNew = true;
-+ if(pErr)
-+ {
-+ delete pErr;
-+ }
-+ pErr = new AbiGrammarError();
- }
-- if(bNew || (pErr->m_iWordNum + 1 < i))
-+ iHigh = iLow + strlen(linkage_get_word(linkage, i));
-+ pErr->m_iErrLow = iLow + iOff -1;
-+ pErr->m_iErrHigh = iHigh + iOff -1;
-+ if(pErr->m_iErrLow < 0)
-+ {
-+ pErr->m_iErrLow = 0;
-+ }
-+ if(pErr->m_iErrHigh < totlen-1)
- {
-- if(!bNew)
-- {
-- if(pErr)
-- {
-- delete pErr;
-- }
-- pErr = new AbiGrammarError();
-- }
-- iHigh = iLow + strlen(sentence_get_nth_word(sent, i));
-- pErr->m_iErrLow = iLow + iOff -1;
-- pErr->m_iErrHigh = iHigh + iOff -1;
-- if(pErr->m_iErrLow < 0)
-- {
-- pErr->m_iErrLow = 0;
-- }
-- if(pErr->m_iErrHigh < totlen-1)
-- {
- pErr->m_iErrHigh += 1;
-- }
-- pErr->m_iWordNum = i;
-- // UT_DEBUGMSG(("Add Error %x low %d High %d\n",pErr,pErr->m_iErrLow,pErr->m_iErrHigh));
-- pT->m_vecGrammarErrors.addItem(pErr);
-- pErr = NULL;
- }
-- else
-+ pErr->m_iWordNum = i;
-+ // UT_DEBUGMSG(("Add Error %x low %d High %d\n",pErr,pErr->m_iErrLow,pErr->m_iErrHigh));
-+ pT->m_vecGrammarErrors.addItem(pErr);
-+ pErr = NULL;
Home |
Main Index |
Thread Index |
Old Index