summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSuren A. Chilingaryan <csa@dside.dyndns.org>2005-12-31 00:10:22 +0000
committerSuren A. Chilingaryan <csa@dside.dyndns.org>2005-12-31 00:10:22 +0000
commit690b7da850a2a241ca220b21938ec114c919d87b (patch)
tree900be0b1dea1811be61ab4ed29d303bb895f8ec4
parent907199c194af0cb3912219b808aab13df763c022 (diff)
downloadlibrcc-690b7da850a2a241ca220b21938ec114c919d87b.tar.gz
librcc-690b7da850a2a241ca220b21938ec114c919d87b.tar.bz2
librcc-690b7da850a2a241ca220b21938ec114c919d87b.tar.xz
librcc-690b7da850a2a241ca220b21938ec114c919d87b.zip
64bit fixes
+ Fixed segmentation on 64 bit systems + SPEC file usable in both 32 and 64 bit environments
-rw-r--r--VERSION2
-rw-r--r--librcc.spec.in37
-rw-r--r--src/rcciconv.c4
-rw-r--r--src/recode.c9
4 files changed, 29 insertions, 23 deletions
diff --git a/VERSION b/VERSION
index 0c62199..ee1372d 100644
--- a/VERSION
+++ b/VERSION
@@ -1 +1 @@
-0.2.1
+0.2.2
diff --git a/librcc.spec.in b/librcc.spec.in
index 0ec151b..0e162df 100644
--- a/librcc.spec.in
+++ b/librcc.spec.in
@@ -53,27 +53,29 @@ is part of rusxmms patch.
rm -rf $RPM_BUILD_ROOT
mkdir -p $RPM_BUILD_ROOT/etc/rcc
-mkdir -p $RPM_BUILD_ROOT/%{prefix}/lib/rcc/engines/
-mkdir -p $RPM_BUILD_ROOT/%{prefix}/bin
+mkdir -p $RPM_BUILD_ROOT/%{_libdir}/rcc/engines/
+mkdir -p $RPM_BUILD_ROOT/%{_bindir}
+
make install DESTDIR=$RPM_BUILD_ROOT
-rm -f $RPM_BUILD_ROOT%{prefix}/lib/*.la
-rm -f $RPM_BUILD_ROOT%{prefix}/lib/rcc/engines/*.a
-rm -f $RPM_BUILD_ROOT%{prefix}/lib/rcc/engines/*.la
+rm -f $RPM_BUILD_ROOT%{_libdir}/*.la
+rm -f $RPM_BUILD_ROOT%{_libdir}/rcc/engines/*.a
+rm -f $RPM_BUILD_ROOT%{_libdir}/rcc/engines/*.la
make -C examples
make -C examples install DESTDIR=$RPM_BUILD_ROOT
-rm -f $RPM_BUILD_ROOT%{prefix}/bin/example*
+rm -f $RPM_BUILD_ROOT%{_bindir}/example*
install -m 644 examples/rcc.xml $RPM_BUILD_ROOT/etc
-if [ -f $RPM_BUILD_ROOT/usr/bin/rcc-gtk2-config ]; then
- ln -s rcc-gtk2-config $RPM_BUILD_ROOT/usr/bin/rcc-config
-elif [ -f $RPM_BUILD_ROOT/usr/bin/rcc-gtk-config ]; then
- ln -s rcc-gtk-config $RPM_BUILD_ROOT/usr/bin/rcc-config
+if [ -f $RPM_BUILD_ROOT/%{_bindir}/rcc-gtk2-config ]; then
+ ln -s rcc-gtk2-config $RPM_BUILD_ROOT/%{_bindir}/rcc-config
+elif [ -f $RPM_BUILD_ROOT/%{_bindir}/rcc-gtk-config ]; then
+ ln -s rcc-gtk-config $RPM_BUILD_ROOT/%{_bindir}/rcc-config
else
echo "#!/bin/bash" > $RPM_BUILD_ROOT/usr/bin/rcc-config
- echo "echo \"Configuration UI is not available!\"" >> $RPM_BUILD_ROOT/usr/bin/rcc-config
+ echo "echo \"Configuration UI is not available!\"" >> $RPM_BUILD_ROOT/%{_bindir}/rcc-config
fi
+
%clean
rm -rf $RPM_BUILD_ROOT
@@ -87,14 +89,15 @@ rm -rf $RPM_BUILD_ROOT
%doc examples/rcc-example.xml
%dir /etc/rcc
/etc/rcc.xml
-%{prefix}/lib/lib*.so.*
-%{prefix}/lib/rcc/
-%{prefix}/bin/rcc-*config
+%{_libdir}/lib*.so.*
+%{_libdir}/rcc/
+%{_bindir}/rcc-*config
%files devel
%defattr(-, root, root)
-%{prefix}/include/
-%{prefix}/lib/lib*.so
-%{prefix}/lib/*.a
+%{_includedir}
+%{_libdir}/lib*.so
+%{_libdir}/*.a
+
%changelog
diff --git a/src/rcciconv.c b/src/rcciconv.c
index b518cd7..6d3d1b0 100644
--- a/src/rcciconv.c
+++ b/src/rcciconv.c
@@ -9,7 +9,7 @@
#define RCC_MAX_ERRORS 3
-static void rccIConvCopySymbol(char **in_buf, int *in_left, char **out_buf, int *out_left) {
+static void rccIConvCopySymbol(char **in_buf, size_t *in_left, char **out_buf, size_t *out_left) {
if ((out_left>0)&&(in_left>0)) {
/* (**out_buf)=(**in_buf);
(*out_buf)++;
@@ -57,7 +57,7 @@ int rccIConvGetError(rcc_iconv icnv) {
size_t rccIConvRecode(rcc_iconv icnv, char *outbuf, size_t outsize, const char *buf, size_t size) {
char *in_buf, *out_buf, err;
- int in_left, out_left;
+ size_t in_left, out_left;
int ub, utf_mode=0;
int errors=0;
diff --git a/src/recode.c b/src/recode.c
index 9e19078..8c6cc40 100644
--- a/src/recode.c
+++ b/src/recode.c
@@ -511,17 +511,20 @@ rcc_string rccSizedFrom(rcc_context ctx, rcc_class_id class_id, const char *buf,
}
}
else icnv = ctx->iconv_from[class_id];
-
+
if (icnv) {
ret = rccIConvInternal(ctx, icnv, buf, len);
- if (ret == (size_t)-1) return NULL;
+ if (ret == (size_t)-1) {
+ rccMutexUnLock(ctx->mutex);
+ return NULL;
+ }
if ((rccGetOption(ctx, RCC_OPTION_TRANSLATE))&&(rccGetClassType(ctx, class_id) == RCC_CLASS_TRANSLATE_FROM)) {
config = rccGetCurrentConfig(ctx);
translate = rccRecodeTranslate(&config , class_id, ctx->tmpbuffer);
if (translate) language_id = rccConfigGetLanguage(config);
}
-
+
result = rccCreateString(language_id, translate?translate:ctx->tmpbuffer, translate?0:ret);
} else {
if ((rccGetOption(ctx, RCC_OPTION_TRANSLATE))&&(rccGetClassType(ctx, class_id) == RCC_CLASS_TRANSLATE_FROM)) {