Fixed UUE multisection decoding

This commit is contained in:
Ianos Gnatiuc
2006-12-05 19:32:15 +00:00
parent 67194e2060
commit 5ed68936ee
3 changed files with 15 additions and 1 deletions

View File

@@ -10,6 +10,12 @@ _____________________________________________________________________________
<20><><EFBFBD><EFBFBD><20><><EFBFBD> GoldED+ 1.1.5, /snapshot/ <20><><EFBFBD><EFBFBD><20><><EFBFBD> GoldED+ 1.1.5, /snapshot/
_____________________________________________________________________________ _____________________________________________________________________________
- uudecoder: ⥯<><E2A5AF><EFBFBD> <20><EFBFBD> <20><EFBFBD><E0AEA8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E0AEA2><EFBFBD> <20><><EFBFBD> <20><><20><><20><> <20><>
"sum -r/size [0-9]+/[0-9]+ section.*" <20><><EFBFBD> "section [0-9]+ end.*"
! <20><><EFBFBD><EFBFBD><E7A5AD> <20><><><EFBFBD><E7A0AD> <20><><EFBFBD> UseTZUTC <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> "yes".
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> 16 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 2006.
+ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><E1ABA5><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>, <20><><EFBFBD> ᨫ쭮 <20><><EFBFBD><EFBFBD><EFBFBD><><E1AAAE><EFBFBD><EFBFBD><EFBFBD> + <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><E1ABA5><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>, <20><><EFBFBD> ᨫ쭮 <20><><EFBFBD><EFBFBD><EFBFBD><><E1AAAE><EFBFBD><EFBFBD><EFBFBD>
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E0ADAE> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>. <20><EFBFBD><E1AEA1><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><20><> READGotoThNextUnread. <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E0ADAE> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>. <20><EFBFBD><E1AEA1><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><20><> READGotoThNextUnread.
+ <20><><EFBFBD><EFBFBD><EFBFBD><><EFBFBD><E9A5AD> <20><><EFBFBD><EFBFBD><E9A0A5><EFBFBD> <20><> <20><><EFBFBD><E0A7A8>, <20><> <20>롨ࠥ<EBA1A8><E0A0A5><EFBFBD> <20><><><EFBFBD><E7A0AD> <20><><EFBFBD><EFBFBD> + <20><><EFBFBD><EFBFBD><EFBFBD><><EFBFBD><E9A5AD> <20><><EFBFBD><EFBFBD><E9A0A5><EFBFBD> <20><> <20><><EFBFBD><E0A7A8>, <20><> <20>롨ࠥ<EBA1A8><E0A0A5><EFBFBD> <20><><><EFBFBD><E7A0AD> <20><><EFBFBD><EFBFBD>

View File

@@ -10,6 +10,9 @@ ______________________________________________________________________
Notes for GoldED+ 1.1.5, /snapshot/ Notes for GoldED+ 1.1.5, /snapshot/
______________________________________________________________________ ______________________________________________________________________
- uudecoder: now are skipped all lines which follows lines with mask
"sum -r/size [0-9]+/[0-9]+ section.*" or "section [0-9]+ end.*"
! UseTZUTC default value changed from "no" to "yes". ! UseTZUTC default value changed from "no" to "yes".
= Snapshot for the Nov 16, 2006. = Snapshot for the Nov 16, 2006.

View File

@@ -54,6 +54,7 @@
#include <gdefs.h> #include <gdefs.h>
#include <gctype.h> #include <gctype.h>
#include <gcrcall.h> #include <gcrcall.h>
#include <gregex.h>
#include <uudeview.h> #include <uudeview.h>
#include <uuint.h> #include <uuint.h>
#include <fptools.h> #include <fptools.h>
@@ -942,6 +943,10 @@ UUDecodePart (FILE *datain, FILE *dataout, int *state,
*state = BEGIN; *state = BEGIN;
} }
gregex regexp1, regexp2;
regexp1.compile("sum -r/size [0-9]+/[0-9]+ section.*", gregex::extended | gregex::icase);
regexp2.compile("section [0-9]+ end.*", gregex::extended | gregex::icase);
bool endsection = false; bool endsection = false;
while (!feof(datain) && (*state != DONE) && while (!feof(datain) && (*state != DONE) &&
@@ -959,7 +964,7 @@ UUDecodePart (FILE *datain, FILE *dataout, int *state,
return UURET_IOERR; return UURET_IOERR;
} }
if ((method == UU_ENCODED) && !strncmp(line, "sum -r/size ", 12)) if ((method == UU_ENCODED) && (regexp1.match(line) || regexp2.match(line)))
{ {
endsection = true; endsection = true;
} }