commit 334cc0fb54aba89554b6f6df8a29631351555fea Author: Tanmai Khanna Date: Mon Jul 20 01:28:18 2020 +0530 If matched pattern has one LU, blank goes on all output LUs automatically diff --git a/apertium/transfer.cc b/apertium/transfer.cc index 821aae3..22172b1 100644 --- a/apertium/transfer.cc +++ b/apertium/transfer.cc @@ -375,7 +375,7 @@ Transfer::evalString(xmlNode *element) case ti_clip_sl: if(checkIndex(element, ti.getPos(), lword)) { - if(gettingLemmaFromWord(ti.getContent())) + if(gettingLemmaFromWord(ti.getContent()) && lword > 1) { if(in_lu) { @@ -394,7 +394,7 @@ Transfer::evalString(xmlNode *element) case ti_clip_tl: if(checkIndex(element, ti.getPos(), lword)) { - if(gettingLemmaFromWord(ti.getContent())) + if(gettingLemmaFromWord(ti.getContent()) && lword > 1) { if(in_lu) { @@ -460,7 +460,10 @@ Transfer::evalString(xmlNode *element) break; case ti_var: - out_wblank = combineWblanks(out_wblank, var_out_wblank[ti.getContent()]); + if(lword > 1) + { + out_wblank = combineWblanks(out_wblank, var_out_wblank[ti.getContent()]); + } return variables[ti.getContent()]; case ti_lit_tag: @@ -674,6 +677,11 @@ Transfer::evalString(xmlNode *element) } in_lu = false; + + if(lword == 1) + { + out_wblank = word[0]->blank(); + } if(myword != "") { @@ -728,6 +736,11 @@ Transfer::evalString(xmlNode *element) } } + if(lword == 1) + { + out_wblank = word[0]->blank(); + } + if(value != "") { return out_wblank+"^"+value+"$"; @@ -774,6 +787,11 @@ Transfer::processOut(xmlNode *localroot) } in_lu = false; + + if(lword == 1) + { + out_wblank = word[0]->blank(); + } if(myword != "") { @@ -825,6 +843,11 @@ Transfer::processOut(xmlNode *localroot) } } + if(lword == 1) + { + out_wblank = word[0]->blank(); + } + if(myword != "") { fputws_unlocked(UtfConverter::fromUtf8(out_wblank).c_str(), output); @@ -933,7 +956,13 @@ Transfer::processChunk(xmlNode *localroot) myword.append(evalString(j)); } } - in_lu = false; + + in_lu = false; + + if(lword == 1) + { + out_wblank = word[0]->blank(); + } if(myword != "") { @@ -981,6 +1010,12 @@ Transfer::processChunk(xmlNode *localroot) } myword.append(mylocalword); } + + if(lword == 1) + { + out_wblank = word[0]->blank(); + } + if(myword != "") { result.append(out_wblank);