summary refs log tree commit diff
path: root/bin/dash (unfollow)
Commit message (Collapse)Author
2020-12-23Fix multi-line prompts when right prompts are usedJune McEnroe
editline does not render a multi-line PS1 correctly when RPS1 is also set. To work around this, return only the last line of the cached prompt to editline, and print the leading lines separately inside setprompt.
2020-12-23Add RPS1 and RPS2 right prompt variablesJune McEnroe
2020-12-23Cache the expanded prompt for editlineJune McEnroe
Previously, the prompt would be expanded every time editline called the getprompt callback. I think the code may have been written assuming that editline only calls getprompt once per prompt, but it may actually call it many times, for instance every time you type backspace. This results not only in slower editing from expanding complex prompts repeatedly, it also consumes more and more stack memory each time getprompt is called. This can be seen by setting PS1 to some command substitution, typing many characters at the prompt, then holding backspace and observing memory usage. Thankfully all this stack memory is freed between prompts by the stackmark calls around el_gets. This change causes prompt expansion to always happen in the setprompt call, as it would when editline is disabled, and a cached copy of the prompt is saved for getprompt to return every time editline calls it. Since getprompt is no longer doing expansion, the stackmark calls surrounding el_gets can be removed.
2020-12-22Bind libedit's secret filename completion functionJune McEnroe
Check if the FreeBSD (and by extension macOS) _el_fn_sh_complete version of the function exists, which does shell escaping of completed filenames before _el_fn_complete learned to. Tab is bound after calling el_set() and el_source() since the default bindings set tab to something else, and it should always be filename completion in the shell.
2020-12-22Build with libedit by defaultJune McEnroe
2020-12-22Fail if building --with-libedit and can't find libeditJune McEnroe
Previously, configure --with-libedit would only fail in the case where libedit is available but its header file histedit.h is not.
2020-12-22Limit prune.sh to ~/.config ~/.localJune McEnroe
Otherwise macOS gets very mad as it tries to access a bunch of protected directories.
2020-12-21Match the number part of the argument to :RFCJune McEnroe
This fixes pressing K on "RFC3501", for example.
2020-12-21Move rfc.vim to doc/rfcJune McEnroe
That default path is a bit wonky, but it prevents having to template rfc.vim for basically no reason.
2020-12-21Move rfc to doc/rfcJune McEnroe
2020-12-21Move wcfix to port/wcwidthJune McEnroe
2020-12-21Update PDF URLsJune McEnroe
2020-12-21Move pdf to doc/pdfJune McEnroe
2020-12-21Remove TF2 configJune McEnroe
Uninstalled TF2 and upgraded to macOS Catalina which can't run it ever again. Goodbye TF2, you used to be fun.
2020-12-20Emit tags for section headings without trailing dotsJune McEnroe
Some RFCs reference other sections like "(Section 1.2)", where the section header says "1.2.".
2020-12-20Depend on rfc-index.txt.gz in MakefileJune McEnroe
2020-12-19Convert :RFC number to numberJune McEnroe
This removes any leading zeros such as in rfc-index.txt.
2020-12-19Move :RFC to plugin scriptJune McEnroe
2020-12-19Sort RFC tags fileJune McEnroe
This supposedly lets vim do binary search on the file, not that it seemed slow before. Also handle section headings with no names.
2020-12-19Open rfc-index.txt for :RFC without argumentJune McEnroe
2020-12-19Include rfc-index.txt in RFC syncJune McEnroe
2020-12-18Add :RFC vim command to view IETF RFCsJune McEnroe
This sets iskeyword so that ^] will work for the kinds of tags generated by rfctags.pl, and keywordprg so that K on another RFC number will view that one. It also binds gO to jump to the table of contents of the RFC.
2020-12-18Add scripts to download, compress and tag IETF RFCsJune McEnroe
2020-12-18Fix bibsort name sorting for middle names, trailing titlesJune McEnroe
Correctly sorts "Kevin L. Mitchell" and "K. Zeilenga, Ed." for example.
2020-12-15Add bibsortJune McEnroe
My first perl script! hi doesn't have syntax highlighting for perl, and I don't think I could sanely implement it, but oh well.
2020-12-08Add modem -r flag to set baud rateJune McEnroe
Also fix it to continue reading output, rather than exiting as soon as the child exits... Except on macOS this still doesn't seem to work correctly for some reason.
2020-12-07Clean up variable expansions in c.shJune McEnroe
2020-12-06Add I Feel It AllJune McEnroe
2020-12-05Handle const strings in c -eJune McEnroe
2020-12-05Disable mouse in htopJune McEnroe
I feel like this option is new, otherwise I would have unset it before.
2020-12-03Note lack of macro expansions in Q(...)June McEnroe
2020-12-02Fix missing "to" in "hot tips"June McEnroe
2020-12-02Publish "hot tips"June McEnroe
2020-11-26Publish "Inability"June McEnroe
I don't know, it's something.
2020-11-26Render content into atom feedJune McEnroe
And fix some atom lints.
2020-11-26Update plan with different things I won't doJune McEnroe
2020-11-19Add "Come On Petunia"June McEnroe
2020-11-13Add x4 to LESSJune McEnroe
2020-11-04Remove modified sensitivity settingsJune McEnroe
2020-10-29Remove editJune McEnroe
2020-10-27Switch gr alias back to git rebaseJune McEnroe
I always type out git reset and sometimes still expect gr to be rebase... Never got used to it I guess.
2020-10-27Allow cd host: to cd to same path over sshJune McEnroe
2020-10-27Use SendEnv for cd host:pathJune McEnroe
Works properly for weird paths, etc.
2020-10-27Allow cd host:path over sshJune McEnroe
Requires AcceptEnv SSH_CD in the remote sshd_config.
2020-10-07Use mandoc -T utf8 for text.June McEnroe
Don't depend on LANG being set.
2020-09-20Add The Awakened KingdomJune McEnroe
A cute extra novella. Finally finished this series.
2020-09-12Move /opt/local back, cheat port select to use system manJune McEnroe
This is not really how you're supposed to use the select system, I don't think, since the mandoc package actually creates those files, but it does work. This lets me actually use the git installed by MacPorts.
2020-09-12Move /opt/local behind /usr againJune McEnroe
The reason I did this with pkgsrc was because I actually don't want the man(1) from mandoc, since it won't follow MANSECT. Same applies to MacPorts. I wish I could disable its man(1) with a variant or whatever.
2020-09-12Enable toc in cgit renderings of man pagesJune McEnroe
But keep it disabled for READMEs since they always use non-standard sections and the TOC is just distracting there, I think. Also add the style so its h1 is the same size as the ones inside sections...
2020-09-11Install mandoc on macOSJune McEnroe
/td> 2014-06-28ui-patch: Flush stdout after outputting dataJohn Keeping It looks like cached patches are truncated to the nearest 1024-byte boundary in the patch body. E.g.: > mricon@nikko:[/tmp]$ wget -O no-cache > "http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/patch/?id=6e1b4fdad5157bb9e88777d525704aba24389bee" ... > 2014-06-11 15:34:51 (80.4 MB/s) - ‘no-cache’ saved [4767] Patch is complete, without truncation. Next hit, with cache in place: > mricon@nikko:[/tmp]$ wget -O yes-cache > "http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/patch/?id=6e1b4 > fdad5157bb9e88777d525704aba24389bee" ... > 2014-06-11 15:35:01 (17.0 MB/s) - ‘yes-cache’ saved [4096/4096] Length truncated to 4096. The cache on disk looks truncated as well, so the bug must me during the process of saving cache. The same is true for larger patches: > mricon@nikko:[/tmp]$ wget -O no-cache > "http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/patch/?id=2840c566e95599cd60c7143762ca8b49d9395050" ... > 2014-06-11 15:41:33 (1.07 MB/s) - ‘no-cache’ saved [979644] 979644 bytes with a cache-miss > mricon@nikko:[/tmp]$ wget -O yes-cache > "http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/patch/?id=2840c > 566e95599cd60c7143762ca8b49d9395050" ... > 2014-06-11 15:41:46 (1.05 MB/s) - ‘yes-cache’ saved [978944] 978944 (956KB exactly) with a cache-hit Since the "html" functions use raw write(2) to STDIO_FILENO, we don't notice problems with most pages, but raw patches write using printf(3). This is fine if we're outputting straight to stdout since the buffers are flushed on exit, but we close the cache output before this, so the cached output ends up being truncated. Make sure the buffers are flushed when we finish outputting a patch so that we avoid this. No other UIs use printf(3) so we do not need to worry about them. Actually, it's slightly more interesting than this... since we don't set GIT_FLUSH, Git decides whether or not it will flush stdout after writing each commit based on whether or not stdout points to a regular file (in maybe_flush_or_die()). Which means that when writing directly to the webserver, Git flushes stdout for us, but when we redirect stdout to the cache it points to a regular file so Git no longer flushes the output for us. The patch is still correct, but perhaps the full explanation is interesting! Reported-by: Konstantin Ryabitsev <mricon@kernel.org> 2014-06-28ui-log: ignore unhandled argumentsJohn Keeping If you search for a bogus range string here: http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/log/ Using something like "range" and "qwerty123456", it returns an "Internal Server Error" and the following in the logs: > [Tue Jun 10 17:45:32 2014] [error] [client 172.21.1.6] fatal: > ambiguous argument 'qwerty123456': unknown revision or path not in the > working tree., referer: > http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/ > [Tue Jun 10 17:45:32 2014] [error] [client 172.21.1.6] Use '--' to > separate paths from revisions, like this:, referer: > http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/ > [Tue Jun 10 17:45:32 2014] [error] [client 172.21.1.6] 'git <command> > [<revision>...] -- [<file>...]', referer: > http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/ > [Tue Jun 10 17:45:32 2014] [error] [client 172.21.1.6] Premature end > of script headers: cgit, referer: > http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/ The cache will kick in, so if you search for the same string again, it'll show an empty range, so you have to change the bogus strings each time. This is because we just pass the arguments straight to Git's revision parsing machinery which die()s if it cannot parse an argument, printing the above to stderr and exiting. The patch below makes it a bit friendlier by just ignoring unhandled arguments, but I can't see an easy way to report errors when we can't parse revision arguments without losing the flexibility of supporting all of the revision specifiers supported by Git. Reported-by: Konstantin Ryabitsev <mricon@kernel.org> 2014-06-28git: update for git 2.0Christian Hesse prefixcmp() and suffixcmp() have been remove, functionality is now provided by starts_with() and ends_with(). Retrurn values have been changed, so instead of just renaming we have to fix logic. Everything else looks just fine. 2014-04-17remove trailing whitespaces from source filesChristian Hesse 2014-04-12git: update to 1.9.2Christian Hesse Everything works just bumping the version in Makefile and commit hash in submodule. No code changes required. 2014-04-05Fix cgit_parse_url when a repo url is contained in another repo urlJulian Maurice For example, if I have two repos (remove-suffix is enabled): /foo /foo/bar http://cgit/foo/bar/ is interpreted as "repository 'foo', command 'bar'" instead of "repository 'foo/bar'" 2014-03-20Makefile: use more reliable git tarball mirrorJason A. Donenfeld 2014-03-20git: update to 1.9.1Christian Hesse