summaryrefslogtreecommitdiff
path: root/textproc
diff options
context:
space:
mode:
authorWill Andrews <will@FreeBSD.org>2000-12-19 13:14:44 +0000
committerWill Andrews <will@FreeBSD.org>2000-12-19 13:14:44 +0000
commit111607820e678477cf5ef61239deb22e724c291d (patch)
treecce324a930f87cd268cdb619a6dc697363ffac1d /textproc
parentAdd p5-Mail-IMAPClient 2.0.2, a Perl module to provide simple sockets (diff)
Add sablotron 0.44, an XSL processor fully implemented in C++.
PR: 22804 Submitted by: Sergey Skvortsov <skv@protey.ru>
Notes
Notes: svn path=/head/; revision=36119
Diffstat (limited to '')
-rw-r--r--textproc/Makefile1
-rw-r--r--textproc/sablotron/Makefile44
-rw-r--r--textproc/sablotron/distinfo2
-rw-r--r--textproc/sablotron/files/patch-Makefile.am13
-rw-r--r--textproc/sablotron/files/patch-command-Makefile.am28
-rw-r--r--textproc/sablotron/files/patch-configure.in107
-rw-r--r--textproc/sablotron/files/patch-engine-Makefile.am38
-rw-r--r--textproc/sablotron/files/patch-engine-parser.h26
-rw-r--r--textproc/sablotron/files/patch-engine-utf8.cpp15
-rw-r--r--textproc/sablotron/files/rus-patch198
-rw-r--r--textproc/sablotron/pkg-comment1
-rw-r--r--textproc/sablotron/pkg-descr5
-rw-r--r--textproc/sablotron/pkg-plist6
13 files changed, 484 insertions, 0 deletions
diff --git a/textproc/Makefile b/textproc/Makefile
index 46228b65d382..b7182e77c8bc 100644
--- a/textproc/Makefile
+++ b/textproc/Makefile
@@ -88,6 +88,7 @@
SUBDIR += ruby-html-parser
SUBDIR += ruby-rdtool
SUBDIR += ruby-xmlparser
+ SUBDIR += sablotron
SUBDIR += sarep
SUBDIR += se-ispell
SUBDIR += sgmlformat
diff --git a/textproc/sablotron/Makefile b/textproc/sablotron/Makefile
new file mode 100644
index 000000000000..ccadb4345e18
--- /dev/null
+++ b/textproc/sablotron/Makefile
@@ -0,0 +1,44 @@
+# New ports collection makefile for: sablotron
+# Date created: 13 Nov 2000
+# Whom: Sergey Skvortsov <skv@protey.ru>
+#
+# $FreeBSD$
+#
+
+PORTNAME= Sablot
+PORTVERSION= 0.44
+CATEGORIES= textproc
+MASTER_SITES= http://download.gingerall.cz/sablot/
+
+PATCH_SITES= http://www.gingerall.com/download/
+PATCHFILES= Sablot-0.44.1.patch
+PATCH_DIST_STRIP= -p1
+
+MAINTAINER= skv@protey.ru
+
+LIB_DEPENDS= iconv.1:${PORTSDIR}/converters/iconv \
+ expat.2:${PORTSDIR}/textproc/expat2
+
+INSTALLS_SHLIB= yes
+LDCONFIG_DIRS= %%PREFIX%%/lib
+
+USE_GMAKE= yes
+USE_AUTOCONF= yes
+USE_LIBTOOL= yes
+
+post-patch:
+.for f in configure.in
+ @${PERL} -pi -e 's,%%PREFIX%%,${PREFIX},g' ${WRKSRC}/${f}
+.endfor
+.if defined(WITH_RUSSIAN)
+ @${ECHO_MSG} "Patching for russian support..."
+ @cd ${WRKDIR} ; \
+ if ${PATCH} ${PATCH_ARGS} < ${PATCHDIR}/rus-patch ; then \
+ ${ECHO_MSG} ">> Patch applied cleanly." ; \
+ else \
+ ${ECHO_MSG} ">> Patch failed to apply cleanly." ; \
+ ${FALSE} ; \
+ fi
+.endif
+
+.include <bsd.port.mk>
diff --git a/textproc/sablotron/distinfo b/textproc/sablotron/distinfo
new file mode 100644
index 000000000000..b2fd1ffb53e7
--- /dev/null
+++ b/textproc/sablotron/distinfo
@@ -0,0 +1,2 @@
+MD5 (Sablot-0.44.tar.gz) = 35874ea80215fea45f1af28a419c2ce2
+MD5 (Sablot-0.44.1.patch) = 0baeae2c8387ff3d188a54797527a278
diff --git a/textproc/sablotron/files/patch-Makefile.am b/textproc/sablotron/files/patch-Makefile.am
new file mode 100644
index 000000000000..9d4270029400
--- /dev/null
+++ b/textproc/sablotron/files/patch-Makefile.am
@@ -0,0 +1,13 @@
+*** Makefile.am.orig Sun Nov 12 17:30:56 2000
+--- Makefile.am Sun Nov 12 17:03:31 2000
+***************
+*** 1,4 ****
+! SUBDIRS=@EXPAT_DIR@ Sablot
+
+ EXTRA_DIST=Makefile.nt
+
+--- 1,4 ----
+! SUBDIRS=Sablot
+
+ EXTRA_DIST=Makefile.nt
+
diff --git a/textproc/sablotron/files/patch-command-Makefile.am b/textproc/sablotron/files/patch-command-Makefile.am
new file mode 100644
index 000000000000..5b545f8c4d11
--- /dev/null
+++ b/textproc/sablotron/files/patch-command-Makefile.am
@@ -0,0 +1,28 @@
+*** ../Sablot-0.44/Sablot/command/Makefile.am Sun Nov 12 16:46:39 2000
+--- Sablot/command/Makefile.am Sun Nov 12 17:43:25 2000
+***************
+*** 1,15 ****
+! EXPATH=@EXPATH@
+!
+! INCLUDES=-I../engine
+
+ bin_PROGRAMS=sabcmd
+
+ sabcmd_SOURCES=sabcmd.cpp
+
+- if AM_HAS_EXPAT
+- sabcmd_LDADD=../engine/libsablot.la \
+- $(top_builddir)/$(EXPATH)/libxmlparse.la\
+- $(top_builddir)/$(EXPATH)/libxmltok.la
+- else
+ sabcmd_LDADD=../engine/libsablot.la
+! endif
+--- 1,8 ----
+! INCLUDES=-I../engine -I@PREFIX@/include
+
+ bin_PROGRAMS=sabcmd
+
+ sabcmd_SOURCES=sabcmd.cpp
+
+ sabcmd_LDADD=../engine/libsablot.la
+!
diff --git a/textproc/sablotron/files/patch-configure.in b/textproc/sablotron/files/patch-configure.in
new file mode 100644
index 000000000000..954d0057e182
--- /dev/null
+++ b/textproc/sablotron/files/patch-configure.in
@@ -0,0 +1,107 @@
+*** configure.in.orig Sun Nov 12 14:07:51 2000
+--- configure.in Sun Nov 12 17:15:20 2000
+***************
+*** 30,35 ****
+--- 30,45 ----
+ AC_ARG_ENABLE(warnings, display all warnings , aux_warnings=1)
+ AM_CONDITIONAL(AM_WARNINGS, test x$aux_warnings = x1)
+
++
++ PREFIX="%%PREFIX%%"
++ echo "- setting PREFIX=$PREFIX"
++
++ CPPFLAGS="$CPPFLAGS -I${PREFIX}/include"
++ echo "- setting CPPFLAGS=$CPPFLAGS"
++
++ LDFLAGS="$LDFLAGS -L${PREFIX}/lib"
++ echo "- setting LDFLAGS=$LDFLAGS"
++
+ dnl ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+ dnl end of initialization stuff
+ dnl --------------------------------------------------
+***************
+*** 38,75 ****
+ dnl Expat stuff - package specific
+ dnl vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv
+
+! AC_MSG_CHECKING(for presence of Expat)
+! if test -d Expat/distribution; then
+! has_expat_src=1
+! AC_DEFINE(HAVE_EXPAT_SRC)
+! AC_MSG_RESULT(yes);
+! else
+! has_expat_src=0
+! AC_MSG_RESULT(no);
+! fi
+!
+! if test $has_expat_src = 1; then
+! dnl next assignment defines target for subdir
+! EXPAT_DIR=Expat
+! else
+! AC_CHECK_LIB(xmltok, main, [xmlt=1; SABLOT_LIBS=-lxmltok], xmlt=0)
+! AC_CHECK_LIB(xmlparse, main, [xmlp=1; SABLOT_LIBS="$SABLOT_LIBS -lxmlparse"],
+! xmlp=0, -lxmltok)
+! if test $xmlp = 0 || test $xmlt = 0; then
+! AC_MSG_ERROR(Can't find the expat libraries)
+! fi
+! fi
+!
+! EXPATH=Expat
+! AM_CONDITIONAL(AM_HAS_EXPAT, test x$has_expat_src = x1)
+! AC_SUBST(EXPATH)
+!
+! dnl Expat headers location (according Linux distribution etc.)
+! if test ! $has_expat_src = 1; then
+! AC_CHECK_HEADERS( xmlparse.h xmltok/xmlparse.h, break )
+! fi
+
+! AC_SUBST(EXPAT_DIR)
+ AC_SUBST(SABLOT_LIBS)
+
+ dnl ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+--- 48,58 ----
+ dnl Expat stuff - package specific
+ dnl vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv
+
+! AC_CHECK_LIB(expat, main, SABLOT_LIBS="$SABLOT_LIBS -lexpat", break)
+!
+! AC_CHECK_LIB(iconv, main, SABLOT_LIBS="$SABLOT_LIBS -liconv",break)
+
+! AC_SUBST(PREFIX)
+ AC_SUBST(SABLOT_LIBS)
+
+ dnl ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+***************
+*** 81,87 ****
+ dnl for easier maintenance - keep synchronized!!
+ dnl vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv
+
+! AC_CHECK_HEADERS( iconv.h timeb.h sys/timeb.h sys/time.h \
+ sys/types.h unistd.h ieeefp.h)
+
+ dnl check for the presence of miscellaneous functions
+--- 64,70 ----
+ dnl for easier maintenance - keep synchronized!!
+ dnl vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv
+
+! AC_CHECK_HEADERS( expat.h iconv.h timeb.h sys/timeb.h sys/time.h \
+ sys/types.h unistd.h ieeefp.h)
+
+ dnl check for the presence of miscellaneous functions
+***************
+*** 97,103 ****
+ dnl vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv
+
+ AC_OUTPUT( Makefile Sablot/Makefile Sablot/engine/Makefile \
+! Sablot/command/Makefile Expat/Makefile)
+
+ dnl ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+ dnl end of file
+--- 80,86 ----
+ dnl vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv
+
+ AC_OUTPUT( Makefile Sablot/Makefile Sablot/engine/Makefile \
+! Sablot/command/Makefile)
+
+ dnl ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+ dnl end of file
diff --git a/textproc/sablotron/files/patch-engine-Makefile.am b/textproc/sablotron/files/patch-engine-Makefile.am
new file mode 100644
index 000000000000..b7a2fe9c42ef
--- /dev/null
+++ b/textproc/sablotron/files/patch-engine-Makefile.am
@@ -0,0 +1,38 @@
+diff -cr ../Sablot-0.44/Sablot/engine/Makefile.am Sablot/engine/Makefile.am
+*** ../Sablot-0.44/Sablot/engine/Makefile.am Thu Sep 14 15:09:03 2000
+--- Sablot/engine/Makefile.am Sun Nov 12 17:01:52 2000
+***************
+*** 1,7 ****
+- EXPATH=@EXPATH@
+-
+ if AM_WARNINGS
+! CPPFLAGS=-Wall
+ endif
+
+ # sablot libs contains expat libraries checked in the configure script
+--- 1,5 ----
+ if AM_WARNINGS
+! CPPFLAGS+= -Wall
+ endif
+
+ # sablot libs contains expat libraries checked in the configure script
+***************
+*** 10,19 ****
+
+ lib_LTLIBRARIES=libsablot.la
+
+! if AM_HAS_EXPAT
+! INCLUDES=-I$(top_srcdir)/$(EXPATH)/distribution/xmltok \
+! -I$(top_srcdir)/$(EXPATH)/distribution/xmlparse
+! endif
+
+ libsablot_la_SOURCES = \
+ arena.h \
+--- 8,14 ----
+
+ lib_LTLIBRARIES=libsablot.la
+
+! INCLUDES+=-I@PREFIX@/include
+
+ libsablot_la_SOURCES = \
+ arena.h \
diff --git a/textproc/sablotron/files/patch-engine-parser.h b/textproc/sablotron/files/patch-engine-parser.h
new file mode 100644
index 000000000000..710b655f555f
--- /dev/null
+++ b/textproc/sablotron/files/patch-engine-parser.h
@@ -0,0 +1,26 @@
+diff -cr ../Sablot-0.44/Sablot/engine/parser.h Sablot/engine/parser.h
+*** ../Sablot-0.44/Sablot/engine/parser.h Thu Sep 14 15:09:03 2000
+--- Sablot/engine/parser.h Sun Nov 12 17:07:31 2000
+***************
+*** 39,51 ****
+ #include "base.h"
+ #include "output.h"
+
+! #if defined (HAVE_XMLPARSE_H) || defined (HAVE_EXPAT_SRC)
+! #include <xmlparse.h>
+! #elif defined (HAVE_XMLTOK_XMLPARSE_H)
+! #include <xmltok/xmlparse.h>
+! #elif defined (WIN32)
+! #include "xmlparse.h"
+! #endif
+
+ class Tree;
+ class DataLine;
+--- 39,45 ----
+ #include "base.h"
+ #include "output.h"
+
+! #include <expat.h>
+
+ class Tree;
+ class DataLine;
diff --git a/textproc/sablotron/files/patch-engine-utf8.cpp b/textproc/sablotron/files/patch-engine-utf8.cpp
new file mode 100644
index 000000000000..41ba9deea3da
--- /dev/null
+++ b/textproc/sablotron/files/patch-engine-utf8.cpp
@@ -0,0 +1,15 @@
+diff -cr ../Sablot-0.44/Sablot/engine/utf8.cpp Sablot/engine/utf8.cpp
+*** ../Sablot-0.44/Sablot/engine/utf8.cpp Sun Nov 12 16:21:25 2000
+--- Sablot/engine/utf8.cpp Sun Nov 12 17:29:08 2000
+***************
+*** 38,44 ****
+--- 38,46 ----
+ #include "utf8.h"
+
+ #ifdef HAVE_ICONV_H
++ extern "C" {
+ #include <iconv.h>
++ }
+ #endif
+
+ /* This MUST match the Encoding enum defined in utf8.h */
diff --git a/textproc/sablotron/files/rus-patch b/textproc/sablotron/files/rus-patch
new file mode 100644
index 000000000000..112ac5338adf
--- /dev/null
+++ b/textproc/sablotron/files/rus-patch
@@ -0,0 +1,198 @@
+diff -crN Sablot-0.44/Sablot/engine/enc_cyr.h Sablot-0.44.rus/Sablot/engine/enc_cyr.h
+*** Sablot-0.44/Sablot/engine/enc_cyr.h Thu Jan 1 03:00:00 1970
+--- Sablot/engine/enc_cyr.h Sun Nov 12 19:08:27 2000
+***************
+*** 0 ****
+--- 1,80 ----
++ /**
++
++ This file contains charset uncode conversion table for cyrillic charsets
++ windows-1251 (cp1251), cp866 and koi8-r.
++
++ Source for mappings ftp.unicode.org/pub/mappings
++
++ Copyright (C) by vvz (vvz@iname.com) 2000.
++ You can use it as you want (any kind of license you want).
++
++ */
++
++ int EncCP1251[] =
++ {
++
++ 0x0402, 0x0403, 0x201a, 0x0453, 0x201e, 0x2026, 0x2020, 0x2021,
++ 0x20ac, 0x2030, 0x0409, 0x2039, 0x040a, 0x040c, 0x040b, 0x040f,
++ 0x0452, 0x2018, 0x2019, 0x201c, 0x201d, 0x2022, 0x2013, 0x2014,
++ -1, 0x2122, 0x0459, 0x203a, 0x045a, 0x045c, 0x045b, 0x045f,
++ 0x00a0, 0x040e, 0x045e, 0x0408, 0x00a4, 0x0490, 0x00a6, 0x00a7,
++ 0x0401, 0x00a9, 0x0404, 0x00ab, 0x00ac, 0x00ad, 0x00ae, 0x0407,
++ 0x00b0, 0x00b1, 0x0406, 0x0456, 0x0491, 0x00b5, 0x00b6, 0x00b7,
++ 0x0451, 0x2116, 0x0454, 0x00bb, 0x0458, 0x0405, 0x0455, 0x0457,
++ 0x0410, 0x0411, 0x0412, 0x0413, 0x0414, 0x0415, 0x0416, 0x0417,
++ 0x0418, 0x0419, 0x041a, 0x041b, 0x041c, 0x041d, 0x041e, 0x041f,
++ 0x0420, 0x0421, 0x0422, 0x0423, 0x0424, 0x0425, 0x0426, 0x0427,
++ 0x0428, 0x0429, 0x042a, 0x042b, 0x042c, 0x042d, 0x042e, 0x042f,
++ 0x0430, 0x0431, 0x0432, 0x0433, 0x0434, 0x0435, 0x0436, 0x0437,
++ 0x0438, 0x0439, 0x043a, 0x043b, 0x043c, 0x043d, 0x043e, 0x043f,
++ 0x0440, 0x0441, 0x0442, 0x0443, 0x0444, 0x0445, 0x0446, 0x0447,
++ 0x0448, 0x0449, 0x044a, 0x044b, 0x044c, 0x044d, 0x044e, 0x044f
++ };
++
++
++ int EncCP866[] =
++ {
++
++ 0x0410, 0x0411, 0x0412, 0x0413, 0x0414, 0x0415, 0x0416, 0x0417,
++ 0x0418, 0x0419, 0x041a, 0x041b, 0x041c, 0x041d, 0x041e, 0x041f,
++ 0x0420, 0x0421, 0x0422, 0x0423, 0x0424, 0x0425, 0x0426, 0x0427,
++ 0x0428, 0x0429, 0x042a, 0x042b, 0x042c, 0x042d, 0x042e, 0x042f,
++ 0x0430, 0x0431, 0x0432, 0x0433, 0x0434, 0x0435, 0x0436, 0x0437,
++ 0x0438, 0x0439, 0x043a, 0x043b, 0x043c, 0x043d, 0x043e, 0x043f,
++ 0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x2561, 0x2562, 0x2556,
++ 0x2555, 0x2563, 0x2551, 0x2557, 0x255d, 0x255c, 0x255b, 0x2510,
++ 0x2514, 0x2534, 0x252c, 0x251c, 0x2500, 0x253c, 0x255e, 0x255f,
++ 0x255a, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256c, 0x2567,
++ 0x2568, 0x2564, 0x2565, 0x2559, 0x2558, 0x2552, 0x2553, 0x256b,
++ 0x256a, 0x2518, 0x250c, 0x2588, 0x2584, 0x258c, 0x2590, 0x2580,
++ 0x0440, 0x0441, 0x0442, 0x0443, 0x0444, 0x0445, 0x0446, 0x0447,
++ 0x0448, 0x0449, 0x044a, 0x044b, 0x044c, 0x044d, 0x044e, 0x044f,
++ 0x0401, 0x0451, 0x0404, 0x0454, 0x0407, 0x0457, 0x040e, 0x045e,
++ 0x00b0, 0x2219, 0x00b7, 0x221a, 0x2116, 0x00a4, 0x25a0, 0x00a0
++
++ };
++
++
++ int EncKOI8_R[] =
++ {
++
++
++ 0x2500, 0x2502, 0x250c, 0x2510, 0x2514, 0x2518, 0x251c, 0x2524,
++ 0x252c, 0x2534, 0x253c, 0x2580, 0x2584, 0x2588, 0x258c, 0x2590,
++ 0x2591, 0x2592, 0x2593, 0x2320, 0x25a0, 0x2219, 0x221a, 0x2248,
++ 0x2264, 0x2265, 0x00a0, 0x2321, 0x00b0, 0x00b2, 0x00b7, 0x00f7,
++ 0x2550, 0x2551, 0x2552, 0x0451, 0x2553, 0x2554, 0x2555, 0x2556,
++ 0x2557, 0x2558, 0x2559, 0x255a, 0x255b, 0x255c, 0x255d, 0x255e,
++ 0x255f, 0x2560, 0x2561, 0x0401, 0x2562, 0x2563, 0x2564, 0x2565,
++ 0x2566, 0x2567, 0x2568, 0x2569, 0x256a, 0x256b, 0x256c, 0x00a9,
++ 0x044e, 0x0430, 0x0431, 0x0446, 0x0434, 0x0435, 0x0444, 0x0433,
++ 0x0445, 0x0438, 0x0439, 0x043a, 0x043b, 0x043c, 0x043d, 0x043e,
++ 0x043f, 0x044f, 0x0440, 0x0441, 0x0442, 0x0443, 0x0436, 0x0432,
++ 0x044c, 0x044b, 0x0437, 0x0448, 0x044d, 0x0449, 0x0447, 0x044a,
++ 0x042e, 0x0410, 0x0411, 0x0426, 0x0414, 0x0415, 0x0424, 0x0413,
++ 0x0425, 0x0418, 0x0419, 0x041a, 0x041b, 0x041c, 0x041d, 0x041e,
++ 0x041f, 0x042f, 0x0420, 0x0421, 0x0422, 0x0423, 0x0416, 0x0412,
++ 0x042c, 0x042b, 0x0417, 0x0428, 0x042d, 0x0429, 0x0427, 0x042a
++ };
++
++
+diff -crN Sablot-0.44/Sablot/engine/output.cpp Sablot-0.44.rus/Sablot/engine/output.cpp
+*** Sablot-0.44/Sablot/engine/output.cpp Sun Nov 12 19:07:52 2000
+--- Sablot/engine/output.cpp Sun Nov 12 19:12:54 2000
+***************
+*** 230,235 ****
+--- 230,241 ----
+ return ENC_EUCJP;
+ else if (enc_.eqNoCase((char*) "shift-jis"))
+ return ENC_SJIS;
++ else if (enc_.eqNoCase((char*) "cp1251"))
++ return ENC_1251;
++ else if (enc_.eqNoCase((char*) "koi8-r"))
++ return ENC_KOI8R;
++ else if (enc_.eqNoCase((char*) "cp866" ))
++ return ENC_866;
+ else return ENC_UTF8;
+ }
+
+diff -crN Sablot-0.44/Sablot/engine/parser.cpp Sablot-0.44.rus/Sablot/engine/parser.cpp
+*** Sablot-0.44/Sablot/engine/parser.cpp Sun Nov 12 19:07:58 2000
+--- Sablot/engine/parser.cpp Sun Nov 12 19:08:27 2000
+***************
+*** 41,46 ****
+--- 41,48 ----
+
+ // for the windows-1250 encoding:
+ #include "enc1250.h"
++ // for the cyrillic encoding
++ #include "enc_cyr.h"
+ // (will change to encodings.h)
+
+ //
+***************
+*** 550,555 ****
+--- 552,565 ----
+ theTable = Enc1250;
+ else if (strEqNoCase((char*) name,"iso-8859-2"))
+ theTable = EncLatin2;
++ else if (strEqNoCase((char*) name,"windows-1251"))
++ theTable = EncCP1251;
++ else if (strEqNoCase((char*) name,"cp1251"))
++ theTable = EncCP1251;
++ else if (strEqNoCase((char*) name,"koi8-r"))
++ theTable = EncKOI8_R;
++ else if (strEqNoCase((char*) name,"cp866"))
++ theTable = EncCP866;
+ else
+ return 0;
+ int i;
+diff -crN Sablot-0.44/Sablot/engine/utf8.cpp Sablot-0.44.rus/Sablot/engine/utf8.cpp
+*** Sablot-0.44/Sablot/engine/utf8.cpp Sun Nov 12 19:07:59 2000
+--- Sablot/engine/utf8.cpp Sun Nov 12 19:19:05 2000
+***************
+*** 44,50 ****
+ #endif
+
+ /* This MUST match the Encoding enum defined in utf8.h */
+! static char* iconv_encoding[8] =
+ {
+ "UTF8",
+ "UTF16",
+--- 44,50 ----
+ #endif
+
+ /* This MUST match the Encoding enum defined in utf8.h */
+! static char* iconv_encoding[11] =
+ {
+ "UTF8",
+ "UTF16",
+***************
+*** 53,59 ****
+ "ISO-8859-2",
+ "CP1250",
+ "EUC-JP",
+! "SHIFT-JIS"
+ };
+
+ int utf8SingleCharLength (const char* text)
+--- 53,62 ----
+ "ISO-8859-2",
+ "CP1250",
+ "EUC-JP",
+! "SHIFT-JIS",
+! "CP1251",
+! "KOI8-R",
+! "CP866"
+ };
+
+ int utf8SingleCharLength (const char* text)
+diff -crN Sablot-0.44/Sablot/engine/utf8.h Sablot-0.44.rus/Sablot/engine/utf8.h
+*** Sablot-0.44/Sablot/engine/utf8.h Sun Nov 12 19:07:52 2000
+--- Sablot/engine/utf8.h Sun Nov 12 19:19:18 2000
+***************
+*** 50,56 ****
+ ENC_8859_2,
+ ENC_1250,
+ ENC_EUCJP,
+! ENC_SJIS
+ };
+
+ extern int utf8SingleCharLength(const char* text);
+--- 50,59 ----
+ ENC_8859_2,
+ ENC_1250,
+ ENC_EUCJP,
+! ENC_SJIS,
+! ENC_1251,
+! ENC_KOI8R,
+! ENC_866
+ };
+
+ extern int utf8SingleCharLength(const char* text);
diff --git a/textproc/sablotron/pkg-comment b/textproc/sablotron/pkg-comment
new file mode 100644
index 000000000000..d682c4266fa3
--- /dev/null
+++ b/textproc/sablotron/pkg-comment
@@ -0,0 +1 @@
+Sablotron is an XSL processor fully implemented in C++
diff --git a/textproc/sablotron/pkg-descr b/textproc/sablotron/pkg-descr
new file mode 100644
index 000000000000..6cbdbec99ba9
--- /dev/null
+++ b/textproc/sablotron/pkg-descr
@@ -0,0 +1,5 @@
+Sablotron is an XSL processor fully implemented in C++.
+
+Original creator of Sablotron is Ginger Alliance Ltd; Czech Republic.
+
+WWW: http://www.gingerall.com/
diff --git a/textproc/sablotron/pkg-plist b/textproc/sablotron/pkg-plist
new file mode 100644
index 000000000000..edfab740acd4
--- /dev/null
+++ b/textproc/sablotron/pkg-plist
@@ -0,0 +1,6 @@
+include/sablot.h
+include/shandler.h
+bin/sabcmd
+lib/libsablot.so.44
+lib/libsablot.so
+lib/libsablot.a