File: nopaste

package info (click to toggle)
epic5 3.0.3-1
  • links: PTS
  • area: main
  • in suites: forky, sid
  • size: 5,328 kB
  • sloc: ansic: 75,810; makefile: 648; ruby: 227; python: 215; sh: 78; perl: 13
file content (50 lines) | stat: -rw-r--r-- 822 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
if (word(2 $loadinfo()) != [pf]) { load -pf $word(1 $loadinfo()); return; };

load utime;
load addset;

addset nopaste bool {
	if (*0 == 'ON') {
		setup_nopaste;
	} elsif (*0 == 'OFF') {
		remove_nopaste;
	};
};

alias setup_nopaste 
{
	@ nopaste.last = utime();
	@ nopaste.counter = 0;
	on ?input * {
		if ([$[1]*] == [/]) {
			return 0;
		};
		if ((:nc = strlen($*)) == 0) {
			return 0;
		};
		@ :td = utime_sub($utime() $nopaste.last);
		@ :sec = word(0 $td);
		@ :usec = (sec * 1000000) + word(1 $td);
		@ nopaste.last = utime();

		@ :us = ((100000 - usec) / nc);
		@ nopaste.counter += us;
		if (nopaste.counter < 0) {
			@ nopaste.counter = 0;
		};
		if (nopaste.counter > 2500) {
			parsekey erase_line;
			return 1;
		} else {
			return 0;
		};
	};
};

alias remove_nopaste
{
	on input -*;
};

set nopaste off;