diff -ruN lftp-2.5.2.org/src/bookmark.cc lftp-2.5.2/src/bookmark.cc --- lftp-2.5.2.org/src/bookmark.cc Mon Jan 21 17:25:16 2002 +++ lftp-2.5.2/src/bookmark.cc Mon Jun 3 10:38:02 2002 @@ -34,9 +34,16 @@ const char *home=getenv("HOME"); if(home==0) home=""; - const char *add="/.lftp/bookmarks"; - bm_file=xstrdup(home,+strlen(add)); - strcat(bm_file,add); + if (getenv("CONFIG_DIR")) { + const char *add="/lftp/bookmarks"; + bm_file=xstrdup(home,+strlen(add)+strlen(getenv("CONFIG_DIR"))+1); + sprintf(bm_file,"%s/%s%s", home, getenv("CONFIG_DIR"), add); + } + else { + const char *add="/.lftp/bookmarks"; + bm_file=xstrdup(home,+strlen(add)); + strcat(bm_file,add); + } bm_fd=-1; stamp=(time_t)-1; diff -ruN lftp-2.5.2.org/src/commands.cc lftp-2.5.2/src/commands.cc --- lftp-2.5.2.org/src/commands.cc Sun May 5 16:22:55 2002 +++ lftp-2.5.2/src/commands.cc Mon Jun 3 10:38:02 2002 @@ -2451,7 +2451,10 @@ } else if(!strcasecmp(op,"edit")) { - parent->PrependCmd("shell \"/bin/sh -c 'exec ${EDITOR:-vi} $HOME/.lftp/bookmarks'\"\n"); + if (getenv("CONFIG_DIR")) + parent->PrependCmd("shell \"/bin/sh -c 'exec ${EDITOR:-vi} $HOME/$CONFIG_DIR/lftp/bookmarks'\"\n"); + else + parent->PrependCmd("shell \"/bin/sh -c 'exec ${EDITOR:-vi} $HOME/.lftp/bookmarks'\"\n"); } else if(!strcasecmp(op,"import")) { diff -ruN lftp-2.5.2.org/src/history.cc lftp-2.5.2/src/history.cc --- lftp-2.5.2.org/src/history.cc Mon Jan 21 17:25:17 2002 +++ lftp-2.5.2/src/history.cc Mon Jun 3 10:38:02 2002 @@ -42,9 +42,16 @@ const char *home=getenv("HOME"); if(home==0) home=""; - const char *add="/.lftp/cwd_history"; - file=xstrdup(home,+strlen(add)); - strcat(file,add); + if (getenv("CONFIG_DIR")) { + const char *add="/lftp/cwd_history"; + file=xstrdup(home,+strlen(add)+strlen(getenv("CONFIG_DIR"))+1); + sprintf(file,"%s/%s%s", home, getenv("CONFIG_DIR"), add); + } + else { + const char *add="/.lftp/cwd_history"; + file=xstrdup(home,+strlen(add)); + strcat(file,add); + } } History::~History() diff -ruN lftp-2.5.2.org/src/lftp.cc lftp-2.5.2/src/lftp.cc --- lftp-2.5.2.org/src/lftp.cc Wed Feb 27 10:15:57 2002 +++ lftp-2.5.2/src/lftp.cc Mon Jun 3 10:39:57 2002 @@ -231,8 +231,15 @@ const char *home=getenv("HOME"); if(home) { - char *log=(char*)alloca(strlen(home)+1+9+1); - sprintf(log,"%s/.lftp",home); + char *log; + if (getenv("CONFIG_DIR")) { + log=(char*)alloca(strlen(home)+strlen(getenv("CONFIG_DIR"))+1+9+1); + sprintf(log,"%s/%s/lftp",home,getenv("CONFIG_DIR")); + } + else { + log=(char*)alloca(strlen(home)+1+9+1); + sprintf(log,"%s/.lftp",home); + } if(access(log,F_OK)==-1) strcat(log,"_log"); else @@ -329,9 +336,19 @@ const char *home=getenv("HOME"); if(home) { - char *rc=(char*)alloca(strlen(home)+9+1); + // create lftp own directory + if (getenv("CONFIG_DIR")) { + char *rc=(char*)alloca(strlen(home)+strlen(getenv("CONFIG_DIR"))+9+1); + sprintf(rc,"%s/%s/lftp",home,getenv("CONFIG_DIR")); + mkdir(rc,0755); - // create lftp own directory + sprintf(rc,"%s/%s/lftprc",home,getenv("CONFIG_DIR")); + source_if_exist(top_exec,rc); + sprintf(rc,"%s/%s/lftp/rc",home,getenv("CONFIG_DIR")); + source_if_exist(top_exec,rc); + } + else { + char *rc=(char*)alloca(strlen(home)+9+1); sprintf(rc,"%s/.lftp",home); mkdir(rc,0755); @@ -339,6 +356,7 @@ source_if_exist(top_exec,rc); sprintf(rc,"%s/.lftp/rc",home); source_if_exist(top_exec,rc); + } } WaitDone(top_exec);