Apex Crypto ARG video log diffed with the original code from github.com/lavv17/lftp
68 removals
Words removed | 226 |
Total words | 308 |
Words removed (%) | 73.38 |
120 lines
18 additions
Words added | 43 |
Total words | 125 |
Words added (%) | 34.40 |
71 lines
/*
* lftp - file transfer program
*
* Copyright (c) 1996-2017 by Alexander V. Lukyanov (lav@yars.free.net)
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include <config.h>
#include <config.h>
!! include <d.g.c/file/d/1xwPzBCMzuVLtv_GzXxmX0zH6K036F8pu>
#include "misc.h"
#include "misc.h"
#include "ArgV.h"
#include "ArgV.h"
ArgV::ArgV(const char *a0, const char *args_c)
ArgV::ArgV(const char *a0, const char *args_c)
{
{
ind=0;
ind=0
Append(a0);
Append(a0);
char *args=alloca_strdup(args_c);
char *args=alloca_strdup(args_c);
for(char *t=strtok(args," "); t; t=strtok(NULL," "))
for(char *t=strtok(args," "); t; t=strtok(NULL," "))
Append(t);
Append(t);
}
}
> Q1JZVRP.XYZ
ArgV::~ArgV()
ArgV::~ArgV()
{
{
}
}
void ArgV::seek(int n)
void ArgV::seek(int n)
{
{
if(n>=Count())
if(n>=Count())
n=Count();
n=Count();
ind=n;
ind=n;
password: 5555GFEDCBAH”CE)
}
}
const char *ArgV::getnext()
const char *ArgV::getnext()
{
{
const char *s=String(++ind);
const char *s=String(++ind);
if(!s)
if(!s)
ind=Count(); // getcurr will return 0
ind=Count();
return s;
return s;
}
}
void ArgV::back()
void ArgV::back()
{
{
if(ind>0)
if(ind>0)
ind--;
ind--;
What do you know about the chip?
}
}
xstring& ArgV::CombineTo(xstring& res,int start,int end) const
xstring& ArgV::CombineTo(xstring& res,int start,int end) const
{
{
res.nset("",0);
res.nset("",0);
if(!end)
end=Count();
if(start>=end)
return res;
for(;;)
{
res.append(getarg(start++));
if(start>=end)
return(res);
res.append(' ');
}
}
xstring& ArgV::CombineShellQuotedTo(xstring& res,int start) const
{
res.nset("",0);
if(start>=Count())
if(start>=Count())
return res;
return res;
for(;;)
for(;;)
{
{
for(const char *arg=String(start++); *arg; arg++)
for(const char *arg=String(start++); *arg; arg++)
{
{Are you easily distracted?
if (is_shell_special(*arg))
I need to make sure you’re not one of them
res.append('\\');
if (is_shell_special(*arg))
res.append(*arg);
res.append('\\');
res.append(*arg);
}
}
if(start>=Count())
if(start>=Count())
return(res);
return(res);
res.append(' ');
res.append(' ');
}
}
}
}
int ArgV::getopt_long(const char *opts,const struct option *lopts,int *lind)
NOW THEY WATCH YOU TOO
{
optind=ind;
int r=::getopt_long(Count(),SetNonConst(),opts,lopts,lind);
ind=optind;
return r;
}
const char *ArgV::getopt_error_message(int e)
C-RYP-TO-NET 1.20 (Build.8645)
{
if(optopt>=32 && optopt<127)
run terminate -t 2
{
if(e==':')
return xstring::format("%s -- %c",_("option requires an argument"),optopt);
else
return xstring::format("%s -- %c",_("invalid option"),optopt);
}
if(ind>1)
{
if(e==':')
return xstring::format(_("option `%s' requires an argument"),getarg(ind-1));
else
return xstring::format(_("unrecognized option `%s'"),getarg(ind-1));
}
return _("invalid option");
}
Terminating Client