| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
| |
|
|
|
|
| |
Way better, and more generally useful.
|
|
|
|
|
| |
This makes a bit clearer how awkward the rlwrap(1) code is, too. It may
not be worth keeping it.
|
|
|
|
|
|
|
|
| |
Just for a clearer visual distinction. This probably needs to be done
for other manual pages, too.
We use zero-width characters (\&) at the start of the lines beginning
with apostrophes so that they get printed literally.
|
|
|
|
|
| |
This makes it a little more flexible, if you genuinely don't want a
newline in the output.
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The format in the first argument does not need to be evaluated, so it
can be passed in a simple awk variable.
The second argument is evaluated, by design, so code injection is
trivial. It's probably a good idea to warn users about this explicitly.
$ ax '0);system("cat /etc/passwd")'
Make the whole thing a little terser, too, with the awk program
construction, variable assignment, and invocation all on one line.
|
| |
|
|
|
|
|
|
|
|
|
| |
I realised I could make this work by recording a single byte in the
temporary file with dd(1) and then emitting that and then the rest of
the input with cat(1) if the file ended up with a byte in it.
This lets me remove the CAVEATS section from the manual, as it no longer
applies.
|
|\
| |
| |
| |
| | |
* feature/d2u-u2d-consist:
Make d2u(1df)/u2d(1df) like their stream analogues
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Remove the idempotency guarantee, and simplify the ed(1) scripts. See
commits 2905980 and cd8e9cc:
>commit 29059804f7708413843687c1764bc845d374a82d
>Author: Tom Ryder <tom@sanctum.geek.nz>
>Date: Fri Nov 3 13:58:23 2017
>
> Remove idempotency assert for sd2u(1df)/su2d(1df)
>
> Commit cd8e9cc applies a cleaner implementation of these tools but
> loses the idempotency:
>
> * Repeated su2d applications will result in double \r, so \r\r\n
> * Repeated s2ru applications will result in an extra newline at the
> end of the file, because the whole file will be interpreted as
> one line
>
> However, I am OK with this, as I think of the operation as simpler
> and more predictable, and I wouldn't apply it as a means to "force"
> a file of unknown or various line-ending types to one type.
>
>commit cd8e9cc27f7dd9d360b64f4a34b8c2d048f42e45
>Author: Tom Ryder <tom@sanctum.geek.nz>
>Date: Fri Nov 3 13:46:30 2017
>
> Apply simpler method for sd2u(1df) and su2d(1df)
>
> This method is shorter, easier to read, and more idiomatic.
|
|/
|
|
|
|
|
|
|
|
|
|
|
| |
Commit cd8e9cc applies a cleaner implementation of these tools but loses
the idempotency:
* Repeated su2d applications will result in double \r, so \r\r\n
* Repeated s2ru applications will result in an extra newline at the end
of the file, because the whole file will be interpreted as one line
However, I am OK with this, as I think of the operation as simpler and
more predictable, and I wouldn't apply it as a means to "force" a file
of unknown or various line-ending types to one type.
|
|
|
|
|
|
|
|
|
|
| |
This is mostly just for fun, but could be handy later on when I'm
playing with distributed or automated deployments of tagged and verified
releases.
Like a few of the other shell scripts, this is built by abusing my
mi5(1df) wrapper to get static details baked into the shell script that
are only known at runtime.
|
| |
|
| |
|
| |
|
|
|
|
| |
Mostly inspired by suggestions from gawk --lint
|
|
|
|
|
| |
Removes the need for the temporary file. Also refactor pks(6df) to
accommodate it.
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
A clunkier and probably-slower but more accurate parser--won't stumble
over quoted instances of the mi5(1df) delimiter within inline macro
expansions. This removes one of the CAVEATS described in the manual
page.
Also allow specifying the quote and unquote strings and also the dnl
string in m4, mostly for completeness' sake; the manual page warns
against this as I think it's probably missing the point of mi5(1df) if
you're getting to that point.
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
Slightly cleverer parsing for mi5
|
| |
|
|
|
|
| |
The second pass of the evaluator confounded me
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|