File lftp-wrapper+edit+compat-modify.patch of Package lftp
diff -aur lftp-4.3.0.orig/src/CmdExec.cc lftp-4.3.0/src/CmdExec.cc
--- lftp-4.3.0.orig/src/CmdExec.cc 2011-06-16 11:33:55.000000000 +0200
+++ lftp-4.3.0/src/CmdExec.cc 2011-06-25 11:14:02.408001075 +0200
@@ -1169,6 +1169,38 @@
ConnectionSlot::Set(slot,session);
}
+void CmdExec::RegisterCompatCommand(const char *name,cmd_creator_t creator,const char *short_desc,const char *long_desc)
+{
+ if(dyn_cmd_table==0)
+ {
+ int count=0;
+ for(const cmd_rec *c=static_cmd_table; c->name; c++)
+ count++;
+ dyn_cmd_table.nset(static_cmd_table,count);
+ }
+ for(int i=0; i<dyn_cmd_table.count(); i++)
+ {
+ cmd_rec *const c=&dyn_cmd_table[i];
+ if(!strcmp(c->name,name))
+ {
+ char *lftp_name=(char*)malloc(5+strlen(name)+1);
+ char *short_d = NULL;
+
+ if (c->short_desc) {
+ short_d = (char*)malloc(5+strlen(c->short_desc)+1);
+ sprintf(short_d, "lftp-%s", c->short_desc);
+ c->short_desc = short_d;
+ }
+
+ sprintf(lftp_name, "lftp-%s", name);
+ c->name = lftp_name;
+ return;
+ }
+ }
+ cmd_rec new_entry={name,creator,short_desc,long_desc};
+ dyn_cmd_table.append(new_entry);
+}
+
const char *CmdExec::CmdByIndex(int i)
{
if(dyn_cmd_table)
diff -aur lftp-4.3.0.orig/src/CmdExec.h lftp-4.3.0/src/CmdExec.h
--- lftp-4.3.0.orig/src/CmdExec.h 2011-06-16 11:34:02.000000000 +0200
+++ lftp-4.3.0/src/CmdExec.h 2011-06-25 11:14:21.822001078 +0200
@@ -228,6 +228,9 @@
static void RegisterCommand(const char *name,cmd_creator_t creator,
const char *short_name=0,const char *long_name=0);
+ static void RegisterCompatCommand(const char *name,cmd_creator_t creator,
+ const char *short_name=0,const char *long_name=0);
+
Job *builtin_lcd();
Job *builtin_cd();
Job *builtin_open();
diff -aur lftp-4.3.0.orig/src/CopyJob.cc lftp-4.3.0/src/CopyJob.cc
--- lftp-4.3.0.orig/src/CopyJob.cc 2011-04-29 06:58:27.000000000 +0200
+++ lftp-4.3.0/src/CopyJob.cc 2011-06-25 11:15:01.447001079 +0200
@@ -21,6 +21,7 @@
/* $Id: CopyJob.cc,v 1.48 2011/04/29 04:58:27 lav Exp $ */
#include <config.h>
+#include <unistd.h>
#include "CopyJob.h"
#include "ArgV.h"
#include "plural.h"
@@ -253,7 +254,7 @@
xstring& CopyJobEnv::FormatFinalWithPrefix(xstring& s,const char *p)
{
- if(no_status)
+ if(no_status || !isatty(1))
return s;
if(count==errors)
return s;
diff -aur lftp-4.3.0.orig/src/Makefile.am lftp-4.3.0/src/Makefile.am
--- lftp-4.3.0.orig/src/Makefile.am 2011-06-16 12:15:45.000000000 +0200
+++ lftp-4.3.0/src/Makefile.am 2011-06-25 11:16:18.269001078 +0200
@@ -1,7 +1,7 @@
localedir = $(datadir)/locale
pkgverlibdir = $(pkglibdir)/$(VERSION)
-bin_PROGRAMS = lftp
+bin_PROGRAMS = lftp lftp_wrapper
bin_SCRIPTS = lftpget
pkgdata_SCRIPTS = import-ncftp import-netscape verify-file convert-mozilla-cookies
noinst_SCRIPTS = ftpget
@@ -9,6 +9,7 @@
EXTRA_DIST = $(pkgdata_SCRIPTS) $(bin_SCRIPTS) $(noinst_SCRIPTS)
lftp_SOURCES = lftp.cc complete.h complete.cc lftp_rl.c lftp_rl.h attach.cc attach.h
+lftp_wrapper_SOURCES = lftp-wrapper.c
noinst_PROGRAMS = example1 example2 example1-cmd
noinst_LTLIBRARIES = example-module1.la
@@ -19,7 +20,7 @@
example_module1_la_LDFLAGS = -module -avoid-version -rpath $(pkgverlibdir)
TASK_MODULES = liblftp-pty.la liblftp-network.la proto-ftp.la proto-http.la proto-file.la proto-fish.la proto-sftp.la
-JOB_MODULES = cmd-mirror.la cmd-sleep.la cmd-torrent.la
+JOB_MODULES = cmd-mirror.la cmd-sleep.la cmd-torrent.la cmd-edit.la compat-mode.la
if WITH_MODULES
pkgverlib_LTLIBRARIES = $(TASK_MODULES) $(JOB_MODULES)
else
@@ -37,6 +38,8 @@
cmd_mirror_la_SOURCES = MirrorJob.cc MirrorJob.h
cmd_sleep_la_SOURCES = SleepJob.cc SleepJob.h
cmd_torrent_la_SOURCES= Torrent.cc Torrent.h Bencode.cc Bencode.h
+cmd_edit_la_SOURCES = cmd-edit.cc
+compat_mode_la_SOURCES = CompatMode.cc CompatMode.h
liblftp_pty_la_SOURCES = PtyShell.cc PtyShell.h lftp_pty.c lftp_pty.h
liblftp_network_la_SOURCES = NetAccess.cc NetAccess.h Resolver.cc Resolver.h\
lftp_ssl.cc lftp_ssl.h buffer_ssl.cc buffer_ssl.h RateLimit.cc RateLimit.h\
@@ -55,6 +58,8 @@
cmd_mirror_la_LDFLAGS = -module -avoid-version -rpath $(pkgverlibdir)
cmd_sleep_la_LDFLAGS = -module -avoid-version -rpath $(pkgverlibdir)
cmd_torrent_la_LDFLAGS= -module -avoid-version -rpath $(pkgverlibdir)
+cmd_edit_la_LDFLAGS = -module -avoid-version -rpath $(pkgverlibdir)
+compat_mode_la_LDFLAGS = -module -avoid-version -rpath $(pkgverlibdir)
liblftp_pty_la_LDFLAGS = -avoid-version -rpath $(pkgverlibdir)
liblftp_network_la_LDFLAGS = -avoid-version -rpath $(pkgverlibdir) $(OPENSSL_LDFLAGS)
liblftp_network_la_LIBADD = $(SOCKSLIBS) $(OPENSSL_LIBS) $(LIBGNUTLS_LIBS) $(GNULIB)
@@ -99,6 +104,9 @@
lftp_LDADD = liblftp-jobs.la $(READLINE)
lftp_DEPENDENCIES = liblftp-jobs.la $(READLINE_DEPEND)
+lftp_wrapper_LDADD = $(GNULIB)
+lftp_wrapper_DEPENDENCIES =
+
example1_LDADD = liblftp-tasks.la
example1_cmd_LDADD = liblftp-jobs.la
example2_LDADD = liblftp-tasks.la