You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
90 lines
3.1 KiB
90 lines
3.1 KiB
# --- 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
|
|
|