diff --git a/doc/lftp.1 b/doc/lftp.1 index 2123b2c..6da6440 100644 --- a/doc/lftp.1 +++ b/doc/lftp.1 @@ -1749,8 +1749,8 @@ can try to set net:socket-buffer to relatively small value to avoid this. limit accumulating of unused limit-total-rate. 0 means twice of limit-total-rate. .TP .BR net:max-retries \ (number) -the maximum number of sequential retries of an operation without success. -0 means unlimited. +the maximum number of sequential tries of an operation without success. +0 means unlimited. 1 means no retries. .TP .BR net:no-proxy \ (string) contains comma separated list of domains for which proxy should not be used. diff --git a/po/cs.po b/po/cs.po index 62b572c..9ef370c 100644 --- a/po/cs.po +++ b/po/cs.po @@ -1,7 +1,7 @@ # Czech translation of lftp. # Copyright (C) 2009 Alexander V. Lukyanov # This file is distributed under the same license as the lftp package. -# Petr Pisar , 2009, 2010, 2011, 2012. +# Petr Pisar , 2009, 2010, 2011, 2012, 2013. # # handshake → dojednání (spojení) # option → volba @@ -12,10 +12,10 @@ # msgid "" msgstr "" -"Project-Id-Version: lftp 4.4.0\n" +"Project-Id-Version: lftp 4.4.6\n" "Report-Msgid-Bugs-To: lftp-bugs@lftp.yar.ru\n" "POT-Creation-Date: 2013-05-17 14:34+0400\n" -"PO-Revision-Date: 2012-09-30 20:40+0200\n" +"PO-Revision-Date: 2013-05-21 19:42+0200\n" "Last-Translator: Petr Pisar \n" "Language-Team: Czech \n" "Language: cs\n" @@ -1050,7 +1050,6 @@ msgid "[re]cls [opts] [path/][pattern]" msgstr "[re]cls [volby] [cesta/][vzor]" #: src/commands.cc:164 -#, fuzzy msgid "" "List remote files. You can redirect output of this command to file\n" "or via pipe to external command.\n" @@ -1094,6 +1093,7 @@ msgstr "" "nebo přes rouru do vnějšího příkazu.\n" "\n" " -1 – jednosloupcový výstup\n" +" -a, --all - zobrazí tečkové soubory\n" " -B, --basename – ukáže jen názvy souborů bez cesty\n" " --block-size=VEL – použije bloky po VEL bajtech\n" " -d, --directory – vypíše záznamy adresářů namísto jejich obsahu\n" @@ -1226,7 +1226,6 @@ msgid "get [OPTS] [-o ]" msgstr "get [VOLBY] [-o ]" #: src/commands.cc:250 -#, fuzzy msgid "" "Retrieve remote file and store it to local file .\n" " -o specifies local file name (default - basename of rfile)\n" @@ -1239,7 +1238,7 @@ msgstr "" " -o \n" " určí název místního souboru (implicitně je odvozen ze " "vzdáleného_souboru)\n" -" -c pokračuje v nedokončeném stahování, reget\n" +" -c pokračuje v nedokončeném stahování, obnoví přenos\n" " -E po úspěšném přenosu vzdálené soubory smaže\n" " -a použije režim ASCII (implicitní je binární)\n" " -O \n" @@ -1276,11 +1275,12 @@ msgid "Print help for command , or list of available commands\n" msgstr "Vypíše nápovědu k , nebo vypíše všechny dostupné příkazy\n" #: src/commands.cc:269 -#, fuzzy msgid "" "List running jobs. -v means verbose, several -v can be specified.\n" "If is specified, only list a job with that number.\n" -msgstr "Vypíše seznam běžících úloh. -v znamená podrobně, lze zadat více -v.\n" +msgstr "" +"Vypíše seznam běžících úloh. -v znamená podrobně, lze zadat více -v.\n" +"Je-li zadáno <číslo_úlohy>, vypíše pouze úlohu s tímto číslem.\n" #: src/commands.cc:271 msgid "kill all|" @@ -1361,7 +1361,6 @@ msgid "mget [OPTS] " msgstr "mget [VOLBY] " #: src/commands.cc:299 -#, fuzzy msgid "" "Gets selected files with expanded wildcards\n" " -c continue, resume transfer\n" @@ -1372,7 +1371,7 @@ msgid "" " -O specifies base directory or URL where files should be placed\n" msgstr "" "Získá soubory vybrané expanzí žolíkových znaků\n" -" -c pokračuje v nedokončeném stahování, reget\n" +" -c pokračuje v nedokončeném stahování, obnoví přenos\n" " -d vytvoří adresáře stejné jako jsou v názvech souborů a soubory umístí " "do\n" " nich namísto do pracovního adresáře\n" diff --git a/po/es.po b/po/es.po index 27be471..8794a44 100644 --- a/po/es.po +++ b/po/es.po @@ -13,7 +13,7 @@ msgstr "" "Language-Team: Spanish \n" "Language: es\n" "MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=ISO-8859-1\n" +"Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8-bit\n" #: lib/argmatch.c:133 diff --git a/po/it.po b/po/it.po index 69aff39..2ffae57 100644 --- a/po/it.po +++ b/po/it.po @@ -12,7 +12,7 @@ msgstr "" "Language-Team: Italian \n" "Language: it\n" "MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=ISO-8859-1\n" +"Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8-bit\n" #: lib/argmatch.c:133 diff --git a/po/pt_BR.po b/po/pt_BR.po index 95e8e3d..5d1c02d 100644 --- a/po/pt_BR.po +++ b/po/pt_BR.po @@ -11,7 +11,7 @@ msgstr "" "Language-Team: pt_BR \n" "Language: pt_BR\n" "MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=ISO-8859-1\n" +"Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8-bit\n" #: lib/argmatch.c:133 diff --git a/src/ChangeLog b/src/ChangeLog index a381272..e5e7c3f 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,14 @@ +2013-05-21 Alexander V. Lukyanov + + * FileCopy.cc: set size=NO_SIZE when the size could not be found. + * FileSet.cc: allow info merging for files with the same basename. + * Fish.cc: fixed file correption and garbage logging by requiring + the file to have a size; improve error handling. + +2013-05-20 Alexander V. Lukyanov + + * Fish.cc: disconnect in more cases on Close. + 2013-05-13 Alexander V. Lukyanov * TorrentTracker.cc, TorrentTracker.h: use xstring for InfoHash and diff --git a/src/FileCopy.cc b/src/FileCopy.cc index 062b140..d0241c4 100644 --- a/src/FileCopy.cc +++ b/src/FileCopy.cc @@ -805,8 +805,7 @@ int FileCopyPeerFA::Do() return MOVED; } FileInfo *fi=info[0]; - if(fi->Has(fi->SIZE)) - SetSize(fi->size); + SetSize(fi->size); if(fi->Has(fi->DATE)) SetDate(fi->date); session->Close(); diff --git a/src/FileSet.cc b/src/FileSet.cc index a2f5255..49c9df4 100644 --- a/src/FileSet.cc +++ b/src/FileSet.cc @@ -48,7 +48,7 @@ void FileInfo::Merge(const FileInfo& f) { - if(strcmp(name,f.name)) + if(strcmp(basename_ptr(name),basename_ptr(f.name))) return; // int sim=defined&f.defined; int dif=(~defined)&f.defined; diff --git a/src/Fish.cc b/src/Fish.cc index f467781..99770a4 100644 --- a/src/Fish.cc +++ b/src/Fish.cc @@ -341,10 +341,13 @@ void Fish::Close() switch(state) { case(DISCONNECTED): - case(WAITING): case(CONNECTED): case(DONE): break; + case(WAITING): + if(mode==STORE || mode==RETRIEVE) + Disconnect(); + break; case(FILE_SEND): if(!RespQueueIsEmpty()) Disconnect(); @@ -566,6 +569,10 @@ int Fish::HandleReplies() Disconnect(); return MOVED; } + if(entity_size!=NO_SIZE && real_posPut(pty_recv_buf->Get(),pty_recv_buf->Size()); // join the messages. pty_recv_buf->Skip(pty_recv_buf->Size()); @@ -616,8 +623,10 @@ int Fish::HandleReplies() { if(message==0) message.set(line); - else - message.vappend("\n",line.get(),NULL); + else { + message.append('\n'); + message.append(line); + } return m; } @@ -677,7 +686,7 @@ int Fish::HandleReplies() else if(message && message[0]!='#') { FileInfo *fi=FileInfo::parse_ls_line(message,"GMT"); - if(!fi) + if(!fi || !strncmp(message,"ls: ",4)) { SetError(NO_FILE,message); break; @@ -757,14 +766,14 @@ void Fish::CloseExpectQueue() case EXPECT_PWD: case EXPECT_CWD: break; - case EXPECT_RETR_INFO: case EXPECT_INFO: - case EXPECT_RETR: case EXPECT_DIR: - case EXPECT_QUOTE: case EXPECT_DEFAULT: RespQueue[i]=EXPECT_IGNORE; break; + case EXPECT_QUOTE: + case EXPECT_RETR_INFO: + case EXPECT_RETR: case EXPECT_STOR_PRELIMINARY: case EXPECT_STOR: Disconnect();