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