Diff
checker
Text
Text
Images
Documents
Excel
Folders
Legal
Enterprise
Desktop
Pricing
Sign in
Download Diffchecker Desktop
Compare text
Find the difference between two text files
Tools
History
Real-time editor
Hide unchanged lines
Disable line wrap
Layout
Split
Unified
Diff precision
Smart
Word
Char
Syntax highlighting
Choose syntax
Ignore
Transform text
Go to first change
Edit input
Diffchecker Desktop
The most secure way to run Diffchecker. Get the Diffchecker Desktop app: your diffs never leave your computer!
Get Desktop
Apex Crypto ARG video log diffed with the original code from github.com/lavv17/lftp
Created
7 years ago
Diff never expires
Clear
Export
Share
Explain
68 removals
Lines
Total
Removed
Characters
Total
Removed
To continue using this feature, upgrade to
Diff
checker
Pro
View Pricing
120 lines
Copy
17 additions
Lines
Total
Added
Characters
Total
Added
To continue using this feature, upgrade to
Diff
checker
Pro
View Pricing
71 lines
Copy
Copy
Copied
Copy
Copied
/*
* 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>
Copy
Copied
Copy
Copied
!! 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)
{
{
Copy
Copied
Copy
Copied
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);
}
}
Copy
Copied
Copy
Copied
> 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;
Copy
Copied
Copy
Copied
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)
Copy
Copied
Copy
Copied
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--;
Copy
Copied
Copy
Copied
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);
Copy
Copied
Copy
Copied
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++)
Copy
Copied
Copy
Copied
{
{
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())
Copy
Copied
Copy
Copied
return(res);
return(res);
res.append(' ');
res.append(' ');
}
}
}
}
Copy
Copied
Copy
Copied
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;
}
Copy
Copied
Copy
Copied
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");
}
Copy
Copied
Copy
Copied
Terminating Client
Saved diffs
Original text
Open file
/* * 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 "misc.h" #include "ArgV.h" ArgV::ArgV(const char *a0, const char *args_c) { ind=0; Append(a0); char *args=alloca_strdup(args_c); for(char *t=strtok(args," "); t; t=strtok(NULL," ")) Append(t); } ArgV::~ArgV() { } void ArgV::seek(int n) { if(n>=Count()) n=Count(); ind=n; } const char *ArgV::getnext() { const char *s=String(++ind); if(!s) ind=Count(); // getcurr will return 0 return s; } void ArgV::back() { if(ind>0) ind--; } xstring& ArgV::CombineTo(xstring& res,int start,int end) const { 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()) return res; for(;;) { for(const char *arg=String(start++); *arg; arg++) { if (is_shell_special(*arg)) res.append('\\'); res.append(*arg); } if(start>=Count()) return(res); res.append(' '); } } int ArgV::getopt_long(const char *opts,const struct option *lopts,int *lind) { optind=ind; int r=::getopt_long(Count(),SetNonConst(),opts,lopts,lind); ind=optind; return r; } const char *ArgV::getopt_error_message(int e) { if(optopt>=32 && optopt<127) { 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"); }
Changed text
Open file
#include <config.h> !! include <d.g.c/file/d/1xwPzBCMzuVLtv_GzXxmX0zH6K036F8pu> #include "misc.h" #include "ArgV.h" ArgV::ArgV(const char *a0, const char *args_c) { ind=0 Append(a0); char *args=alloca_strdup(args_c); for(char *t=strtok(args," "); t; t=strtok(NULL," ")) Append(t); } > Q1JZVRP.XYZ ArgV::~ArgV() { } void ArgV::seek(int n) { if(n>=Count()) n=Count(); ind=n; password: 5555GFEDCBAH”CE) } const char *ArgV::getnext() { const char *s=String(++ind); if(!s) ind=Count(); return s; } void ArgV::back() { if(ind>0) ind--; What do you know about the chip? } xstring& ArgV::CombineTo(xstring& res,int start,int end) const { res.nset("",0); if(start>=Count()) return res; for(;;) { for(const char *arg=String(start++); *arg; arg++) {Are you easily distracted? I need to make sure you’re not one of them if (is_shell_special(*arg)) res.append('\\'); res.append(*arg); } if(start>=Count()) return(res); res.append(' '); } } NOW THEY WATCH YOU TOO C-RYP-TO-NET 1.20 (Build.8645) run terminate -t 2 Terminating Client
Find difference