I hereby claim:
- I am davidreynolds on github.
- I am davidreynolds (https://keybase.io/davidreynolds) on keybase.
- I have a public key ASB4zsD-ckVCftr8f4WizYIiNduJww_ctMjbtrZV2Fbk3Ao
To claim this, I am signing this object:
#include <sys/epoll.h> | |
#include <fcntl.h> | |
#include <string.h> | |
#include "chicken.h" | |
#define MAX_EVENTS 24 | |
extern void SCM_epoll_wait_cb(C_word vec); |
#include <stdio.h> | |
#include <stdlib.h> | |
#include <string.h> | |
#include <assert.h> | |
#define BIN_SEARCH(dict, size, needle, res, prefix) \ | |
do { \ | |
assert((dict) != NULL); \ | |
assert((size) > 0); \ | |
int l = 0, r = (size)-1; \ |
/* LZSS encoder-decoder (c) Haruhiko Okumura */ | |
#include <stdio.h> | |
#include <stdlib.h> | |
#define EI 11 /* typically 10..13 */ | |
#define EJ 4 /* typically 4..5 */ | |
#define P 1 /* If match length <= P then output one character */ | |
#define N (1 << EI) /* buffer size */ | |
#define F ((1 << EJ) + P) /* lookahead buffer size */ |
I hereby claim:
To claim this, I am signing this object:
int getbit(int n) /* get n bits */ | |
{ | |
int i, x; | |
static int buf, mask = 0; | |
x = 0; | |
for (i = 0; i < n; i++) { | |
if (mask == 0) { | |
if ((buf = fgetc(infile)) == EOF) return EOF; | |
mask = 128; |
void encode(void) | |
{ | |
... | |
while (r < bufferend) { | |
f1 = (F <= bufferend - r) ? F : bufferend - r; | |
x = 0; y = 1; c = buffer[r]; | |
for (i = r - 1; i <= s; i--) | |
if (buffer[i] == c) { | |
for (j = 1; j < f1; j++) | |
if (buffer[i + j] != buffer[r + j]) break; |
void decode(void) | |
{ | |
int i, j, k, r, c; | |
for (i = 0; i < N - F; i++) buffer[i] = ' '; | |
r = N - F; | |
while ((c = getbit(1)) != EOF) { | |
if (c) { | |
if ((c = getbit(8)) == EOF) break; | |
fputc(c, outfile); |
void flush_bit_buffer(void) | |
{ | |
if (bit_mask != 128) { | |
if (fputc(bit_buffer, outfile) == EOF) error(); | |
codecount++; | |
} | |
} |
void output1(int c) | |
{ | |
int mask; | |
putbit1(); | |
mask = 256; | |
while (mask >>= 1) { | |
if (c & mask) putbit1(); | |
else putbit0(); | |
} |
void putbit1(void) | |
{ | |
bit_buffer |= bit_mask; | |
if ((bit_mask >>= 1) == 0) { | |
if (fputc(bit_buffer, outfile) == EOF) error(); | |
bit_buffer = 0; bit_mask = 128; codecount++; | |
} | |
} | |
void putbit0(void) |