Skip to content

Instantly share code, notes, and snippets.

@davidreynolds
Created June 30, 2012 20:36
Show Gist options
  • Save davidreynolds/3025414 to your computer and use it in GitHub Desktop.
Save davidreynolds/3025414 to your computer and use it in GitHub Desktop.
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);
buffer[r++] = c; r &= (N - 1);
} else {
if ((i = getbit(EI)) == EOF) break;
if ((j = getbit(EJ)) == EOF) break;
for (k = 0; k <= j + 1; k++) {
c = buffer[(i + k) & (N - 1)];
fputc(c, outfile);
buffer[r++] = c; r &= (N - 1);
}
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment