1
0
mirror of https://git.FreeBSD.org/ports.git synced 2024-10-21 20:38:45 +00:00

Add sablotron 0.44, an XSL processor fully implemented in C++.

PR:		22804
Submitted by:	Sergey Skvortsov <skv@protey.ru>
This commit is contained in:
Will Andrews 2000-12-19 13:14:44 +00:00
parent fddc823e42
commit 111607820e
Notes: svn2git 2021-03-31 03:12:20 +00:00
svn path=/head/; revision=36119
13 changed files with 484 additions and 0 deletions

View File

@ -88,6 +88,7 @@
SUBDIR += ruby-html-parser
SUBDIR += ruby-rdtool
SUBDIR += ruby-xmlparser
SUBDIR += sablotron
SUBDIR += sarep
SUBDIR += se-ispell
SUBDIR += sgmlformat

View File

@ -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>

View File

@ -0,0 +1,2 @@
MD5 (Sablot-0.44.tar.gz) = 35874ea80215fea45f1af28a419c2ce2
MD5 (Sablot-0.44.1.patch) = 0baeae2c8387ff3d188a54797527a278

View File

@ -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

View File

@ -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
!

View File

@ -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

View File

@ -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 \

View File

@ -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;

View File

@ -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 */

View File

@ -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);

View File

@ -0,0 +1 @@
Sablotron is an XSL processor fully implemented in C++

View File

@ -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/

View File

@ -0,0 +1,6 @@
include/sablot.h
include/shandler.h
bin/sabcmd
lib/libsablot.so.44
lib/libsablot.so
lib/libsablot.a