Compare commits

..

No commits in common. "7f0e2180a3f435274facb4f86e519abbf77c9a49" and "ad186f06a9bc1ff0af0211e467d4bd10a8098c7a" have entirely different histories.

4 changed files with 3 additions and 80 deletions

12
README
View File

@ -1,12 +0,0 @@
The mp-utils package includes a set of portable Unix utilities written by
me, Mid Favila. They attempt to comply with both the latest POSIX and SUS
specifications, whilst also implementing de facto standards such as sed's
-i option. The only time POSIX and SUS will not be obeyed is when doing
so requires relatively useless features to be implemented (that, or they
will be #ifdef'd).
They can be thought of as sitting somewhere between the Suckless tools and
Busybox - more sophisticated than Suckless' offerings, and less bloated
than Busybox.
I recommend compiling these statically.

3
README.md Normal file
View File

@ -0,0 +1,3 @@
# mp-utils
Mid's Portable Utilities are a set of (hopefully) POSIX and SUS-compliant Unix userland tools that are portable across many Unices.

View File

@ -1,3 +0,0 @@
#include <stdlib.h>
#include <stdio.h>
#include <unistd.h>

View File

@ -1,65 +0,0 @@
#include "common.h"
int main(int argc, char **argv)
{
int i, i2;
char escape = 0;
if(argc > 1)
for(i = 1; i < argc; i++)
{
for(i2 = 0; argv[i][i2] != '\0'; i2++)
{
if(escape)
switch(argv[i][i2])
{
case 'a':
escape = 0;
putchar('\a');
break;
case 'b':
escape = 0;
putchar('\b');
break;
case 'c': // Immediately stop execution.
goto end;
case 'f':
escape = 0;
putchar('\f');
break;
case 'n':
escape = 0;
putchar('\n');
break;
case 'r':
escape = 0;
putchar('\r');
break;
case 't':
escape = 0;
putchar('\t');
break;
case 'v':
escape = 0;
putchar('\v');
break;
case '\\':
escape = 0;
putchar('\\');
break;
case '0': // This is for octal values.
break;
}
else if(argv[i][i2] == '\\')
escape++;
else
putchar(argv[i][i2]);
}
if(i < (argc-1))
putchar(' ');
}
putchar('\n');
end:
return 0;
}