update to version 3.9.0
This commit is contained in:
parent
68879ebb02
commit
0d2bdbfdcd
1
.gitignore
vendored
1
.gitignore
vendored
@ -10,3 +10,4 @@
|
|||||||
/liblouis-3.6.0.tar.gz
|
/liblouis-3.6.0.tar.gz
|
||||||
/liblouis-3.7.0.tar.gz
|
/liblouis-3.7.0.tar.gz
|
||||||
/liblouis-3.8.0.tar.gz
|
/liblouis-3.8.0.tar.gz
|
||||||
|
/liblouis-3.9.0.tar.gz
|
||||||
|
@ -1,299 +0,0 @@
|
|||||||
diff --git a/liblouis/lou_backTranslateString.c b/liblouis/lou_backTranslateString.c
|
|
||||||
--- a/liblouis/lou_backTranslateString.c
|
|
||||||
+++ b/liblouis/lou_backTranslateString.c
|
|
||||||
@@ -149,7 +149,7 @@
|
|
||||||
widechar *outbuf, int *outlen, formtype *typeform, char *spacing, int *outputPos,
|
|
||||||
int *inputPos, int *cursorPos, int mode, const TranslationTableRule **rules,
|
|
||||||
int *rulesLen) {
|
|
||||||
- const InString *input;
|
|
||||||
+ InString input;
|
|
||||||
OutString output;
|
|
||||||
unsigned char *typebuf = NULL;
|
|
||||||
char *spacebuf;
|
|
||||||
@@ -196,7 +196,7 @@
|
|
||||||
else
|
|
||||||
passbuf1[k] = _lou_getDotsForChar(inbuf[k]);
|
|
||||||
passbuf1[srcmax] = _lou_getDotsForChar(' ');
|
|
||||||
- input = &(InString){.chars = passbuf1, .length = srcmax, .bufferIndex = idx };
|
|
||||||
+ input = (InString){.chars = passbuf1, .length = srcmax, .bufferIndex = idx };
|
|
||||||
}
|
|
||||||
idx = getStringBuffer(*outlen);
|
|
||||||
output = (OutString){.chars = stringBufferPool->buffers[idx],
|
|
||||||
@@ -206,7 +206,7 @@
|
|
||||||
typebuf = (unsigned char *)typeform;
|
|
||||||
spacebuf = spacing;
|
|
||||||
if (outputPos != NULL)
|
|
||||||
- for (k = 0; k < input->length; k++) outputPos[k] = -1;
|
|
||||||
+ for (k = 0; k < input.length; k++) outputPos[k] = -1;
|
|
||||||
if (cursorPos != NULL)
|
|
||||||
cursorPosition = *cursorPos;
|
|
||||||
else
|
|
||||||
@@ -214,12 +214,12 @@
|
|
||||||
cursorStatus = 0;
|
|
||||||
if (typebuf != NULL) memset(typebuf, '0', *outlen);
|
|
||||||
if (spacebuf != NULL) memset(spacebuf, '*', *outlen);
|
|
||||||
- if (!(posMapping1 = _lou_allocMem(alloc_posMapping1, 0, input->length, *outlen)))
|
|
||||||
+ if (!(posMapping1 = _lou_allocMem(alloc_posMapping1, 0, input.length, *outlen)))
|
|
||||||
return 0;
|
|
||||||
if (table->numPasses > 1 || table->corrections) {
|
|
||||||
- if (!(posMapping2 = _lou_allocMem(alloc_posMapping2, 0, input->length, *outlen)))
|
|
||||||
+ if (!(posMapping2 = _lou_allocMem(alloc_posMapping2, 0, input.length, *outlen)))
|
|
||||||
return 0;
|
|
||||||
- if (!(posMapping3 = _lou_allocMem(alloc_posMapping3, 0, input->length, *outlen)))
|
|
||||||
+ if (!(posMapping3 = _lou_allocMem(alloc_posMapping3, 0, input.length, *outlen)))
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
appliedRulesCount = 0;
|
|
||||||
@@ -239,17 +239,17 @@
|
|
||||||
int realInlen;
|
|
||||||
switch (currentPass) {
|
|
||||||
case 1:
|
|
||||||
- goodTrans = backTranslateString(table, mode, currentPass, input, &output,
|
|
||||||
+ goodTrans = backTranslateString(table, mode, currentPass, &input, &output,
|
|
||||||
spacebuf, passPosMapping, &realInlen, &cursorPosition, &cursorStatus,
|
|
||||||
appliedRules, &appliedRulesCount, maxAppliedRules);
|
|
||||||
break;
|
|
||||||
case 0:
|
|
||||||
- goodTrans = makeCorrections(table, mode, currentPass, input, &output,
|
|
||||||
+ goodTrans = makeCorrections(table, mode, currentPass, &input, &output,
|
|
||||||
passPosMapping, &realInlen, &cursorPosition, &cursorStatus,
|
|
||||||
appliedRules, &appliedRulesCount, maxAppliedRules);
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
- goodTrans = translatePass(table, mode, currentPass, input, &output,
|
|
||||||
+ goodTrans = translatePass(table, mode, currentPass, &input, &output,
|
|
||||||
passPosMapping, &realInlen, &cursorPosition, &cursorStatus,
|
|
||||||
appliedRules, &appliedRulesCount, maxAppliedRules);
|
|
||||||
break;
|
|
||||||
@@ -273,8 +273,8 @@
|
|
||||||
}
|
|
||||||
currentPass--;
|
|
||||||
if (currentPass >= lastPass && goodTrans) {
|
|
||||||
- releaseStringBuffer(input->bufferIndex);
|
|
||||||
- input = &(InString){.chars = output.chars,
|
|
||||||
+ releaseStringBuffer(input.bufferIndex);
|
|
||||||
+ input = (InString){.chars = output.chars,
|
|
||||||
.length = output.length,
|
|
||||||
.bufferIndex = output.bufferIndex };
|
|
||||||
idx = getStringBuffer(*outlen);
|
|
||||||
diff --git a/liblouis/lou_translateString.c b/liblouis/lou_translateString.c
|
|
||||||
--- a/liblouis/lou_translateString.c
|
|
||||||
+++ b/liblouis/lou_translateString.c
|
|
||||||
@@ -495,9 +495,11 @@
|
|
||||||
memcpy(chars, (*input)->chars, (*input)->length * sizeof(widechar));
|
|
||||||
chars[startReplace] = replaceStart;
|
|
||||||
chars[p] = replaceEnd;
|
|
||||||
- *input = &(InString){
|
|
||||||
+ static InString stringStore;
|
|
||||||
+ stringStore = (InString){
|
|
||||||
.chars = chars, .length = (*input)->length, .bufferIndex = idx
|
|
||||||
};
|
|
||||||
+ *input = &stringStore;
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
if (transOpcode == CTO_Context) {
|
|
||||||
@@ -546,7 +548,9 @@
|
|
||||||
if (k == p) continue;
|
|
||||||
chars[len++] = (*input)->chars[k];
|
|
||||||
}
|
|
||||||
- *input = &(InString){.chars = chars, .length = len, .bufferIndex = idx };
|
|
||||||
+ static InString stringStore;
|
|
||||||
+ stringStore = (InString){.chars = chars, .length = len, .bufferIndex = idx };
|
|
||||||
+ *input = &stringStore;
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
for (p = output->length - 1; p >= 0; p--) {
|
|
||||||
@@ -1091,7 +1095,7 @@
|
|
||||||
// *outlen = i;
|
|
||||||
// return 1;
|
|
||||||
const TranslationTableHeader *table;
|
|
||||||
- const InString *input;
|
|
||||||
+ InString input;
|
|
||||||
OutString output;
|
|
||||||
// posMapping contains position mapping info between the initial input and the output
|
|
||||||
// of the current pass. It is 1 longer than the output. The values are monotonically
|
|
||||||
@@ -1130,23 +1134,23 @@
|
|
||||||
if (table == NULL || *inlen < 0 || *outlen < 0) return 0;
|
|
||||||
k = 0;
|
|
||||||
while (k < *inlen && inbufx[k]) k++;
|
|
||||||
- input = &(InString){.chars = inbufx, .length = k, .bufferIndex = -1 };
|
|
||||||
+ input = (InString){.chars = inbufx, .length = k, .bufferIndex = -1 };
|
|
||||||
haveEmphasis = 0;
|
|
||||||
- if (!(typebuf = _lou_allocMem(alloc_typebuf, 0, input->length, *outlen))) return 0;
|
|
||||||
+ if (!(typebuf = _lou_allocMem(alloc_typebuf, 0, input.length, *outlen))) return 0;
|
|
||||||
if (typeform != NULL) {
|
|
||||||
- for (k = 0; k < input->length; k++) {
|
|
||||||
+ for (k = 0; k < input.length; k++) {
|
|
||||||
typebuf[k] = typeform[k];
|
|
||||||
if (typebuf[k] & EMPHASIS) haveEmphasis = 1;
|
|
||||||
}
|
|
||||||
} else
|
|
||||||
- memset(typebuf, 0, input->length * sizeof(formtype));
|
|
||||||
+ memset(typebuf, 0, input.length * sizeof(formtype));
|
|
||||||
|
|
||||||
- if ((wordBuffer = _lou_allocMem(alloc_wordBuffer, 0, input->length, *outlen)))
|
|
||||||
- memset(wordBuffer, 0, (input->length + 4) * sizeof(unsigned int));
|
|
||||||
+ if ((wordBuffer = _lou_allocMem(alloc_wordBuffer, 0, input.length, *outlen)))
|
|
||||||
+ memset(wordBuffer, 0, (input.length + 4) * sizeof(unsigned int));
|
|
||||||
else
|
|
||||||
return 0;
|
|
||||||
- if ((emphasisBuffer = _lou_allocMem(alloc_emphasisBuffer, 0, input->length, *outlen)))
|
|
||||||
- memset(emphasisBuffer, 0, (input->length + 4) * sizeof(EmphasisInfo));
|
|
||||||
+ if ((emphasisBuffer = _lou_allocMem(alloc_emphasisBuffer, 0, input.length, *outlen)))
|
|
||||||
+ memset(emphasisBuffer, 0, (input.length + 4) * sizeof(EmphasisInfo));
|
|
||||||
else
|
|
||||||
return 0;
|
|
||||||
|
|
||||||
@@ -1155,23 +1159,23 @@
|
|
||||||
else
|
|
||||||
srcSpacing = NULL;
|
|
||||||
if (outputPos != NULL)
|
|
||||||
- for (k = 0; k < input->length; k++) outputPos[k] = -1;
|
|
||||||
+ for (k = 0; k < input.length; k++) outputPos[k] = -1;
|
|
||||||
if (cursorPos != NULL && *cursorPos >= 0) {
|
|
||||||
cursorStatus = 0;
|
|
||||||
cursorPosition = *cursorPos;
|
|
||||||
if ((mode & (compbrlAtCursor | compbrlLeftCursor))) {
|
|
||||||
compbrlStart = cursorPosition;
|
|
||||||
- if (checkAttr(input->chars[compbrlStart], CTC_Space, 0, table))
|
|
||||||
+ if (checkAttr(input.chars[compbrlStart], CTC_Space, 0, table))
|
|
||||||
compbrlEnd = compbrlStart + 1;
|
|
||||||
else {
|
|
||||||
while (compbrlStart >= 0 &&
|
|
||||||
- !checkAttr(input->chars[compbrlStart], CTC_Space, 0, table))
|
|
||||||
+ !checkAttr(input.chars[compbrlStart], CTC_Space, 0, table))
|
|
||||||
compbrlStart--;
|
|
||||||
compbrlStart++;
|
|
||||||
compbrlEnd = cursorPosition;
|
|
||||||
if (!(mode & compbrlLeftCursor))
|
|
||||||
- while (compbrlEnd < input->length &&
|
|
||||||
- !checkAttr(input->chars[compbrlEnd], CTC_Space, 0, table))
|
|
||||||
+ while (compbrlEnd < input.length &&
|
|
||||||
+ !checkAttr(input.chars[compbrlEnd], CTC_Space, 0, table))
|
|
||||||
compbrlEnd++;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1179,16 +1183,16 @@
|
|
||||||
cursorPosition = -1;
|
|
||||||
cursorStatus = 1; /* so it won't check cursor position */
|
|
||||||
}
|
|
||||||
- if (!(posMapping1 = _lou_allocMem(alloc_posMapping1, 0, input->length, *outlen)))
|
|
||||||
+ if (!(posMapping1 = _lou_allocMem(alloc_posMapping1, 0, input.length, *outlen)))
|
|
||||||
return 0;
|
|
||||||
if (table->numPasses > 1 || table->corrections) {
|
|
||||||
- if (!(posMapping2 = _lou_allocMem(alloc_posMapping2, 0, input->length, *outlen)))
|
|
||||||
+ if (!(posMapping2 = _lou_allocMem(alloc_posMapping2, 0, input.length, *outlen)))
|
|
||||||
return 0;
|
|
||||||
- if (!(posMapping3 = _lou_allocMem(alloc_posMapping3, 0, input->length, *outlen)))
|
|
||||||
+ if (!(posMapping3 = _lou_allocMem(alloc_posMapping3, 0, input.length, *outlen)))
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
if (srcSpacing != NULL) {
|
|
||||||
- if (!(destSpacing = _lou_allocMem(alloc_destSpacing, 0, input->length, *outlen)))
|
|
||||||
+ if (!(destSpacing = _lou_allocMem(alloc_destSpacing, 0, input.length, *outlen)))
|
|
||||||
goodTrans = 0;
|
|
||||||
else
|
|
||||||
memset(destSpacing, '*', *outlen);
|
|
||||||
@@ -1220,18 +1224,18 @@
|
|
||||||
int realInlen;
|
|
||||||
switch (currentPass) {
|
|
||||||
case 0:
|
|
||||||
- goodTrans = makeCorrections(table, input, &output, passPosMapping, typebuf,
|
|
||||||
+ goodTrans = makeCorrections(table, &input, &output, passPosMapping, typebuf,
|
|
||||||
&realInlen, &posIncremented, &cursorPosition, &cursorStatus);
|
|
||||||
break;
|
|
||||||
case 1: {
|
|
||||||
- goodTrans = translateString(table, mode, currentPass, input, &output,
|
|
||||||
+ goodTrans = translateString(table, mode, currentPass, &input, &output,
|
|
||||||
passPosMapping, typebuf, srcSpacing, destSpacing, wordBuffer,
|
|
||||||
emphasisBuffer, haveEmphasis, &realInlen, &posIncremented,
|
|
||||||
&cursorPosition, &cursorStatus, compbrlStart, compbrlEnd);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
default:
|
|
||||||
- goodTrans = translatePass(table, currentPass, input, &output, passPosMapping,
|
|
||||||
+ goodTrans = translatePass(table, currentPass, &input, &output, passPosMapping,
|
|
||||||
&realInlen, &posIncremented, &cursorPosition, &cursorStatus);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
@@ -1250,8 +1254,8 @@
|
|
||||||
currentPass++;
|
|
||||||
if (currentPass <= table->numPasses && goodTrans) {
|
|
||||||
int idx;
|
|
||||||
- releaseStringBuffer(input->bufferIndex);
|
|
||||||
- input = &(InString){.chars = output.chars,
|
|
||||||
+ releaseStringBuffer(input.bufferIndex);
|
|
||||||
+ input = (InString){.chars = output.chars,
|
|
||||||
.length = output.length,
|
|
||||||
.bufferIndex = output.bufferIndex };
|
|
||||||
idx = getStringBuffer(*outlen);
|
|
||||||
@@ -1309,8 +1313,8 @@
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (destSpacing != NULL) {
|
|
||||||
- memcpy(srcSpacing, destSpacing, input->length);
|
|
||||||
- srcSpacing[input->length] = 0;
|
|
||||||
+ memcpy(srcSpacing, destSpacing, input.length);
|
|
||||||
+ srcSpacing[input.length] = 0;
|
|
||||||
}
|
|
||||||
if (cursorPos != NULL && *cursorPos != -1) {
|
|
||||||
if (outputPos != NULL)
|
|
||||||
@@ -3298,7 +3302,7 @@
|
|
||||||
widechar groupingOp;
|
|
||||||
int numericMode;
|
|
||||||
int dontContract;
|
|
||||||
- const LastWord *lastWord;
|
|
||||||
+ LastWord lastWord;
|
|
||||||
int insertEmphasesFrom;
|
|
||||||
TranslationTableCharacter *curCharDef;
|
|
||||||
const widechar *repwordStart;
|
|
||||||
@@ -3313,7 +3317,7 @@
|
|
||||||
translation_direction = 1;
|
|
||||||
markSyllables(table, input, typebuf, &transOpcode, &transRule, &transCharslen);
|
|
||||||
numericMode = 0;
|
|
||||||
- lastWord = &(LastWord){ 0, 0, 0 };
|
|
||||||
+ lastWord = (LastWord){ 0, 0, 0 };
|
|
||||||
dontContract = 0;
|
|
||||||
prevTransOpcode = CTO_None;
|
|
||||||
prevType = curType = prevTypeform = plain_text;
|
|
||||||
@@ -3375,7 +3379,7 @@
|
|
||||||
case CTO_CompBrl:
|
|
||||||
case CTO_Literal:
|
|
||||||
if (!doCompbrl(table, &pos, input, output, posMapping, emphasisBuffer,
|
|
||||||
- &transRule, cursorPosition, cursorStatus, lastWord,
|
|
||||||
+ &transRule, cursorPosition, cursorStatus, &lastWord,
|
|
||||||
&insertEmphasesFrom))
|
|
||||||
goto failure;
|
|
||||||
continue;
|
|
||||||
@@ -3469,7 +3473,7 @@
|
|
||||||
break;
|
|
||||||
case CTO_NoCont:
|
|
||||||
if (!dontContract)
|
|
||||||
- doNocont(table, &pos, output, mode, input, lastWord, &dontContract,
|
|
||||||
+ doNocont(table, &pos, output, mode, input, &lastWord, &dontContract,
|
|
||||||
&insertEmphasesFrom);
|
|
||||||
continue;
|
|
||||||
default:
|
|
||||||
@@ -3592,7 +3596,7 @@
|
|
||||||
}
|
|
||||||
if (((pos > 0) && checkAttr(input->chars[pos - 1], CTC_Space, 0, table) &&
|
|
||||||
(transOpcode != CTO_JoinableWord))) {
|
|
||||||
- lastWord = &(LastWord){ pos, output->length, insertEmphasesFrom };
|
|
||||||
+ lastWord = (LastWord){ pos, output->length, insertEmphasesFrom };
|
|
||||||
}
|
|
||||||
if (srcSpacing != NULL && srcSpacing[pos] >= '0' && srcSpacing[pos] <= '9')
|
|
||||||
destSpacing[output->length] = srcSpacing[pos];
|
|
||||||
@@ -3606,10 +3610,10 @@
|
|
||||||
emphasisBuffer, haveEmphasis, transOpcode, cursorPosition, cursorStatus);
|
|
||||||
|
|
||||||
failure:
|
|
||||||
- if (lastWord->outPos != 0 && pos < input->length &&
|
|
||||||
+ if (lastWord.outPos != 0 && pos < input->length &&
|
|
||||||
!checkAttr(input->chars[pos], CTC_Space, 0, table)) {
|
|
||||||
- pos = lastWord->inPos;
|
|
||||||
- output->length = lastWord->outPos;
|
|
||||||
+ pos = lastWord.inPos;
|
|
||||||
+ output->length = lastWord.outPos;
|
|
||||||
}
|
|
||||||
if (pos < input->length) {
|
|
||||||
while (checkAttr(input->chars[pos], CTC_Space, 0, table))
|
|
@ -2,18 +2,14 @@
|
|||||||
%global __os_install_post %(echo '%{__os_install_post}' | sed -e 's!/usr/lib[^[:space:]]*/brp-python-bytecompile[[:space:]].*$!!g')
|
%global __os_install_post %(echo '%{__os_install_post}' | sed -e 's!/usr/lib[^[:space:]]*/brp-python-bytecompile[[:space:]].*$!!g')
|
||||||
|
|
||||||
Name: liblouis
|
Name: liblouis
|
||||||
Version: 3.8.0
|
Version: 3.9.0
|
||||||
Release: 3%{?dist}
|
Release: 1%{?dist}
|
||||||
Summary: Braille translation and back-translation library
|
Summary: Braille translation and back-translation library
|
||||||
|
|
||||||
License: LGPLv3+
|
License: LGPLv3+
|
||||||
URL: http://liblouis.org
|
URL: http://liblouis.org
|
||||||
Source0: https://github.com/%{name}/%{name}/releases/download/v%{version}/%{name}-%{version}.tar.gz
|
Source0: https://github.com/%{name}/%{name}/releases/download/v%{version}/%{name}-%{version}.tar.gz
|
||||||
|
|
||||||
# fixes a memory issue introduced with GCC 9 by changing the semantics of block scope compund literals
|
|
||||||
# https://www.gnu.org/software/gcc/gcc-9/porting_to.html#complit
|
|
||||||
Patch0: %{name}-%{version}-compound-literals.patch
|
|
||||||
|
|
||||||
BuildRequires: chrpath
|
BuildRequires: chrpath
|
||||||
BuildRequires: gcc
|
BuildRequires: gcc
|
||||||
BuildRequires: help2man
|
BuildRequires: help2man
|
||||||
@ -87,7 +83,6 @@ This package provides the documentation for liblouis.
|
|||||||
|
|
||||||
%prep
|
%prep
|
||||||
%setup -q
|
%setup -q
|
||||||
%patch0 -p1
|
|
||||||
|
|
||||||
%build
|
%build
|
||||||
%configure --disable-static --enable-ucs4
|
%configure --disable-static --enable-ucs4
|
||||||
@ -146,6 +141,10 @@ done
|
|||||||
|
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Mon Mar 04 2019 Martin Gieseking <martin.gieseking@uos.de> - 3.9.0-1
|
||||||
|
- Updated to 3.9.0.
|
||||||
|
- Dropped GCC 9 related patch since changes have been applied upstream.
|
||||||
|
|
||||||
* Fri Feb 08 2019 Martin Gieseking <martin.gieseking@uos.de> - 3.8.0-3
|
* Fri Feb 08 2019 Martin Gieseking <martin.gieseking@uos.de> - 3.8.0-3
|
||||||
- Fixed memory issue introduced with GCC 9 (changed semantics of block scope compound literals).
|
- Fixed memory issue introduced with GCC 9 (changed semantics of block scope compound literals).
|
||||||
|
|
||||||
|
2
sources
2
sources
@ -1 +1 @@
|
|||||||
SHA512 (liblouis-3.8.0.tar.gz) = 8c260f2db12142b69775c6c269f1c9d6c709f309f2810b25bf0aa460e0d8c36146ead844ca31e9032615c95c72e0ebf763c0189bc16b1e93035205a5b93cce77
|
SHA512 (liblouis-3.9.0.tar.gz) = cf0304ad80455c1edcbbdd8c9699228d8ac4fdf63fa2edcde1dbccc16bcf74f13957d70ea65c7fe1a5a15e4e40ee736ab6815390ea43eb6ab11a2efd0d6d50f1
|
||||||
|
Loading…
Reference in New Issue
Block a user