Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/orc/secho
A sick horrible parody of GNU feature creep
https://github.com/orc/secho
Last synced: about 1 month ago
JSON representation
A sick horrible parody of GNU feature creep
- Host: GitHub
- URL: https://github.com/orc/secho
- Owner: Orc
- License: other
- Created: 2010-03-12T08:21:34.000Z (almost 15 years ago)
- Default Branch: main
- Last Pushed: 2020-06-15T22:41:41.000Z (over 4 years ago)
- Last Synced: 2023-10-20T22:13:10.005Z (about 1 year ago)
- Language: C++
- Homepage: http://www.pell.portland.or.us/~orc/Code/secho
- Size: 43 KB
- Stars: 3
- Watchers: 3
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README
Awesome Lists containing this project
README
**Secho** was inspired by a post to the [Plan 9][] mailing list,
where, after a round of bashing on the Unix implementation of [`echo`][echo],
the discussion went to bashing a hypothetical FSF-style implementation of `echo`
and eventually to:> > ##NAME##
> >
> > echo: echo arguments
> >
> > ##SYNOPSIS##
> >
> > echo [-1abCDEeilmNnOqrtuVvwXx] [-B base] [-c cmd] [-d char] [-f file] [-L len] [-o file] [-S voice] [-s char] [args...]
> >
> > ##DESCRIPTION##
> >
> > echo outputs its arguments. It takes the following switches:
> >
> > =-1=
> > One argument per line.
> > =-a=
> > Output in ASCII. The default.
> > =-B base=
> > Output in given base, 2..32. Unless `-u` also given, base > 10 shows lowercase.
> > =-b=
> > Output in binary.
> > =-C=
> > Don't echo anything, just print the number of fields.
> > =-c cmd=
> > Run cmd on each argument, replacing `$?` with the argument itself.
> > =-D=
> > Output in decimal.
> > =-d char=
> > Field delimiter. Default is end of argument.
> > =-E=
> > Print to standard error instead of to standard output.
> > =-e=
> > Allow escape sequences
> > =-f file=
> > Read from file, then from command line (if any).
> > =-i=
> > Read arguments from standard input.
> > =-L len=
> > Line width set to len. Default is to ignore line lengths.
> > =-l=
> > Turn uppercase to lowercase.
> > =-m=
> > Multi-column output.
> > =-N=
> > One field per line, numbering each field.
> > =-n=
> > Suppress newline.
> > =-O=
> > Output in octal.
> > =-o file=
> > Write to file instead of standard output.
> > =-q=
> > "Quiet mode:" redirect output to `/dev/null` if not to a file.
> > =-r=
> > Print every string that matches each regular expression. Regular expressions cannot contain `+` or `*` modifiers.
> > =-S voice=
> > Send to speaker, having the given voice say it. If voice is a null string, use the default voice.
> > =-s char=
> > Separate fields with char, default space.
> > =-t=
> > Separate fields with tabs.
> > =-u=
> > Convert lowercase to uppercase. With `-B`, output in uppercase letters for base > 10.
> > =-V=
> > Strip non-printing characters.
> > =-v=
> > Make non-printing characters visible.
> > =-w=
> > If `-L` is given, word wrap instead of character wrap. Otherwise, ignored.
> > =-X=
> > Output in uppercase hexadecimal.
> > =-x=
> > Output in lowercase hexadecimal.
>
> Test for everyone: write this echo in as little code as possible. C or rc is permitted. The rules:
>
> - for C: either Standard C (no other libraries) or only libc (no other Plan 9 libraries)
> - for rc: only use programs in the core Plan 9 distribution - no programs that I have to get myself
> - match the behavior EXACTLY as above
> - shortest code and fastest run time wins
>
> Winner gets something cool."_Oh ho_," said I, "_A challenge!_"