|
|
# --- SDE-COPYRIGHT-NOTE-BEGIN --- # This copyright note is auto-generated by ./scripts/Create-CopyPatch. # # Filename: package/.../recode/recode-3.6.patch # Copyright (C) 2004 - 2006 The T2 SDE Project # # More information can be found in the files COPYING and README. # # This patch file is dual-licensed. It is available under the license the # patched project is licensed under, as long as it is an OpenSource license # as defined at http://www.opensource.org/ (e.g. BSD, X11) or under the terms # of the GNU General Public License as published by the Free Software # Foundation; either version 2 of the License, or (at your option) any later # version. # --- SDE-COPYRIGHT-NOTE-END --- http://pybliographer.org/help/recode states:
Pybliographer uses GNU Recode in order to convert between different character sets, especially LaTeX and HTML. The latest version of GNU Recode (3.6) contains a bug that makes it unsuitable for Pybliographer (but not for standalone use). This bug is pending since a long time.
--- recode-3.6.orig/src/libiconv.c
+++ recode-3.6/src/libiconv.c
@@ -1,5 +1,5 @@
/* Conversion of files between different charsets and surfaces. - Copyright � 1999, 2000 Free Software Foundation, Inc.
+ Copyright � 1999, 2000, 2001 Free Software Foundation, Inc.
Contributed by Fran�ois Pinard <pinard@iro.umontreal.ca>, 1999, and Bruno Haible <haible@clisp.cons.org>, 2000. @@ -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;
} } --- recode-3.6.orig/src/request.c
+++ recode-3.6/src/request.c
@@ -1073,7 +1073,7 @@
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 old_size = task->output.cursor - task->output.buffer;
size_t new_size = task->output.cursor + 4 - task->output.buffer; /* FIXME: Rethink about how the error should be reported. */ --- recode-3.6.orig/src/task.c
+++ recode-3.6/src/task.c
@@ -1198,6 +1198,8 @@
else success = transform_mere_copy (subtask); + task->output = subtask->output;
+
if (subtask->input.name && *subtask->input.name) fclose (subtask->input.file); if (subtask->output.name && *subtask->output.name) --- recode-3.6.orig/src/hash.h
+++ recode-3.6/src/hash.h
@@ -21,6 +21,11 @@
/* Make sure USE_OBSTACK is defined to 1 if you want the allocator to use obstacks instead of malloc, and recompile `hash.c' with same setting. */ +#define hash_lookup recode_hash_lookup
+#define hash_delete recode_hash_delete
+#define hash_free recode_hash_free
+#define hash_insert recode_hash_insert
+
#ifndef PARAMS # if PROTOTYPES || __STDC__ # define PARAMS(Args) Args
|