From 0fe38ad36156035b3e59411e7bef9193c7205823 Mon Sep 17 00:00:00 2001 From: Ianos Gnatiuc Date: Sat, 9 Sep 2006 10:08:56 +0000 Subject: [PATCH] uudecoder: now are skipped all lines which follows line that starts with sum -r/size --- docs/notework.rus | 2 ++ docs/notework.txt | 3 +++ goldlib/uulib/uunconc.cpp | 50 +++++++++++++++++++++++---------------- 3 files changed, 35 insertions(+), 20 deletions(-) diff --git a/docs/notework.rus b/docs/notework.rus index 898b42a..7d74271 100644 --- a/docs/notework.rus +++ b/docs/notework.rus @@ -10,6 +10,8 @@ _____________________________________________________________________________ Заметки для GoldED+ 1.1.5, /snapshot/ _____________________________________________________________________________ +- uudecoder: теперь будет игнорировано все после строки что начинается + на "sum -r/size ". - Win32: Исправлено частое чтение реестра когда включен MCI звук. - Golded+ мог упасть в списке сообщений, если размер имени или темы слишком большие. diff --git a/docs/notework.txt b/docs/notework.txt index 0e9089a..7992cd0 100644 --- a/docs/notework.txt +++ b/docs/notework.txt @@ -10,6 +10,9 @@ ______________________________________________________________________ Notes for GoldED+ 1.1.5, /snapshot/ ______________________________________________________________________ +- uudecoder: now are skipped all lines which follows line that starts + with "sum -r/size ". + - Win32: Fixed often registry reading when MCI sounds are enabled. - Golded+ can crash in message list if size of name or subject is too big. diff --git a/goldlib/uulib/uunconc.cpp b/goldlib/uulib/uunconc.cpp index 16736a5..d75a7ec 100644 --- a/goldlib/uulib/uunconc.cpp +++ b/goldlib/uulib/uunconc.cpp @@ -942,33 +942,42 @@ UUDecodePart (FILE *datain, FILE *dataout, int *state, *state = BEGIN; } - while (!feof (datain) && *state != DONE && - (ftell(datain) 5) - tf = tc = 0; + if (vlc > 5) tf = tc = 0; vlc = 0; continue; } @@ -1133,8 +1142,9 @@ UUDecodePart (FILE *datain, FILE *dataout, int *state, break; } - if ((vflag = UUValidData (line, (tf)?method:0, &bhflag)) == 0) - vflag = UURepairData (datain, line, (tf)?method:0, &bhflag); + vflag = !endsection && UUValidData(line, tf ? method : 0, &bhflag); + if (!vflag) + vflag = !endsection && UURepairData(datain, line, tf ? method : 0, &bhflag); /* * correct XX/UUencoded lines that were declared Base64