File recode-3.6.patch of Package recode
--- configure.in
+++ configure.in
@@ -7,7 +7,7 @@
AM_CONFIG_HEADER(config.h)
AM_INIT_AUTOMAKE(recode, 3.6)
AT_CONFIG(../src)
-ALL_LINGUAS="da de el es fr gl it nl pl pt sl sv"
+ALL_LINGUAS="cs da de el es fr gl it nl pl pt sl sv"
AC_PROG_CC
AC_AIX
@@ -32,9 +32,7 @@
jm_FUNC_MALLOC
jm_FUNC_REALLOC
-AC_SUBST(LIBOBJS)
-AC_CANONICAL_HOST
jm_LANGINFO_CODESET
jm_GLIBC21
@@ -43,11 +41,11 @@
# This is necessary so that .o files in LIBOBJS are also built via
# the ANSI2KNR-filtering rules.
-LIBOBJS=`echo $LIBOBJS | sed 's/\.o /\$U.o /g;s/\.o$/\$U.o/'`
+LIB@&t@OBJS=`echo "$LIB@&t@OBJS" | sed 's,\.[[^.]]* ,$U&,g;s,\.[[^.]]*$,$U&,'`
LTALLOCA=`echo $ALLOCA | sed 's/\.o/.lo/g'`
AC_SUBST(LTALLOCA)
-LTLIBOBJS=`echo $LIBOBJS | sed 's/\.o /.lo /g;s/\.o$/.lo/'`
+LTLIBOBJS=`echo "$LIB@&t@OBJS" | sed 's,\.[[^.]]* ,.lo ,g;s,\.[[^.]]*$,.lo,'`
AC_SUBST(LTLIBOBJS)
AC_OUTPUT(Makefile contrib/Makefile doc/Makefile i18n/Makefile lib/Makefile
--- m4/gettext.m4
+++ m4/gettext.m4
@@ -76,7 +76,7 @@
with_included_gettext=yes
fi
if test $with_included_gettext = yes; then
- LIBOBJS="$LIBOBJS gettext.o"
+ AC_LIBOBJ([gettext])
AC_DEFINE(HAVE_GETTEXT)
AC_DEFINE(HAVE_DCGETTEXT)
else
--- m4/malloc.m4
+++ m4/malloc.m4
@@ -27,8 +27,7 @@
jm_cv_func_working_malloc=no)
])
if test $jm_cv_func_working_malloc = no; then
- AC_SUBST(LIBOBJS)
- LIBOBJS="$LIBOBJS malloc.$ac_objext"
+ AC_LIBOBJ([malloc])
AC_DEFINE_UNQUOTED(malloc, rpl_malloc,
[Define to rpl_malloc if the replacement function should be used.])
fi
--- m4/realloc.m4
+++ m4/realloc.m4
@@ -27,8 +27,7 @@
jm_cv_func_working_realloc=no)
])
if test $jm_cv_func_working_realloc = no; then
- AC_SUBST(LIBOBJS)
- LIBOBJS="$LIBOBJS realloc.$ac_objext"
+ AC_LIBOBJ([realloc])
AC_DEFINE_UNQUOTED(realloc, rpl_realloc,
[Define to rpl_realloc if the replacement function should be used.])
fi
--- src/libiconv.c
+++ src/libiconv.c
@@ -195,12 +195,17 @@
memcpy() doesn't do here, because the regions might overlap.
memmove() isn't worth it, because we rarely have to move more
than 12 bytes. */
- if (input > input_buffer && input_left > 0)
+ cursor = input_buffer;
+ if (input_left > 0)
{
- cursor = input_buffer;
- do
- *cursor++ = *input++;
- while (--input_left > 0);
+ if (input > input_buffer)
+ {
+ do
+ *cursor++ = *input++;
+ while (--input_left > 0);
+ }
+ else
+ cursor += input_left;
}
}
--- src/request.c
+++ src/request.c
@@ -1073,13 +1073,12 @@
if (task->output.cursor + 4 >= task->output.limit)
{
RECODE_OUTER outer = task->request->outer;
- size_t old_size = task->output.limit - task->output.buffer;
size_t new_size = task->output.cursor + 4 - task->output.buffer;
/* FIXME: Rethink about how the error should be reported. */
if (REALLOC (task->output.buffer, new_size, char))
{
- task->output.cursor = task->output.buffer + old_size;
+ task->output.cursor = task->output.buffer + new_size - 4;
task->output.limit = task->output.buffer + new_size;
}
}