Skip to content

JnyJny/meowmeow

master
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

MeowMeow - a file encoder/decoder

This project implements two commands in C, meow and unmeow, that will encode and decode a file in the MeowMeow encoding scheme. While not intended to be useful in and of itself, the program is an example of how to structure a small to medium sized C command-line program.

Requirements

  • C compiler
  • GNU make

Build

  1. Clone
   $ git clone https://github.com/JnyJny/meowmeow.git
  1. Compile
   $ make
  1. Run
   $ ./meow < clear_text > meow_text
   $ ./unmeow < meow_text | diff clear_text
   $

MeowMeow Encoding Scheme

The MeowMeow encoding scheme is direct rip-off of another encoding scheme, MooMoo Encode. In short, each byte in file is encoded into a string "meowmeow" where uppercase indicates a 1 and lowercase is a zero, in this case the string encodes a zero. Consider these three bytes:

   unsigned char zeros = 0x0;
   unsigned char ones = 0xff;
   unsigned char camel = 0xA5;
  • The value in zeros encodes to "meowmeow".
  • The value in ones encodes to "MEOWMEOW".
  • The value in camel encodes to "MeOwmEoW.