<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
<title>rc, branch HEAD</title>
<subtitle>Byron Rakitzis&#39; rc(1) port, with a few modifications
</subtitle>
<entry>
<id>00482d869c87c9418549834f1815a2388643bbcc</id>
<published>2026-05-22T21:18:48Z</published>
<updated>2026-05-22T21:18:48Z</updated>
<title>Reset rl_completion_append_character</title>
<link rel="alternate" type="text/html" href="https://src.$domain/rccommit/00482d869c87c9418549834f1815a2388643bbcc.html" />
<author>
<name>hhvn</name>
<email>dev@hhvn.uk</email>
</author>
<content>commit 00482d869c87c9418549834f1815a2388643bbcc
parent f83007fea75c9b70a2a08bfa22a88fd5b50fed67
Author: hhvn &lt;dev@hhvn.uk&gt;
Date:   Fri, 22 May 2026 22:18:48 +0100

Reset rl_completion_append_character

Modern versions of readline seem to do this automatically

</content>
</entry>
<entry>
<id>f83007fea75c9b70a2a08bfa22a88fd5b50fed67</id>
<published>2026-05-22T20:25:44Z</published>
<updated>2026-05-22T21:03:43Z</updated>
<title>Prevent use of non-available readline functions</title>
<link rel="alternate" type="text/html" href="https://src.$domain/rccommit/f83007fea75c9b70a2a08bfa22a88fd5b50fed67.html" />
<author>
<name>hhvn</name>
<email>dev@hhvn.uk</email>
</author>
<content>commit f83007fea75c9b70a2a08bfa22a88fd5b50fed67
parent 607ea6e5e7b86c57a2f50b21b5f86418b3d40ec8
Author: hhvn &lt;dev@hhvn.uk&gt;
Date:   Fri, 22 May 2026 21:25:44 +0100

Prevent use of non-available readline functions

</content>
</entry>
<entry>
<id>607ea6e5e7b86c57a2f50b21b5f86418b3d40ec8</id>
<published>2026-05-22T20:13:34Z</published>
<updated>2026-05-22T20:13:34Z</updated>
<title>Remove implicit cast [-Wenum-conversion] in walk.c</title>
<link rel="alternate" type="text/html" href="https://src.$domain/rccommit/607ea6e5e7b86c57a2f50b21b5f86418b3d40ec8.html" />
<author>
<name>hhvn</name>
<email>dev@hhvn.uk</email>
</author>
<content>commit 607ea6e5e7b86c57a2f50b21b5f86418b3d40ec8
parent 0f927b532cb59c9334c85698eea1d2ccfda49a31
Author: hhvn &lt;dev@hhvn.uk&gt;
Date:   Fri, 22 May 2026 21:13:34 +0100

Remove implicit cast [-Wenum-conversion] in walk.c

</content>
</entry>
<entry>
<id>0f927b532cb59c9334c85698eea1d2ccfda49a31</id>
<published>2026-05-22T19:17:30Z</published>
<updated>2026-05-22T19:58:12Z</updated>
<title>Include sys/wait.h on OpenBSD for WIFSIGNALED()</title>
<link rel="alternate" type="text/html" href="https://src.$domain/rccommit/0f927b532cb59c9334c85698eea1d2ccfda49a31.html" />
<author>
<name>hhvn</name>
<email>dev@hhvn.uk</email>
</author>
<content>commit 0f927b532cb59c9334c85698eea1d2ccfda49a31
parent 7953ecf6d516827408d783773a0943a2046ad947
Author: hhvn &lt;dev@hhvn.uk&gt;
Date:   Fri, 22 May 2026 20:17:30 +0100

Include sys/wait.h on OpenBSD for WIFSIGNALED()

</content>
</entry>
<entry>
<id>7953ecf6d516827408d783773a0943a2046ad947</id>
<published>2026-05-22T19:13:28Z</published>
<updated>2026-05-22T19:13:28Z</updated>
<title>Explicit Makefile rules for mksignal + mkstatval</title>
<link rel="alternate" type="text/html" href="https://src.$domain/rccommit/7953ecf6d516827408d783773a0943a2046ad947.html" />
<author>
<name>hhvn</name>
<email>dev@hhvn.uk</email>
</author>
<content>commit 7953ecf6d516827408d783773a0943a2046ad947
parent ade87e07baf2b5315b9e56dadfb26117cc567a95
Author: hhvn &lt;dev@hhvn.uk&gt;
Date:   Fri, 22 May 2026 20:13:28 +0100

Explicit Makefile rules for mksignal + mkstatval

</content>
</entry>
<entry>
<id>ade87e07baf2b5315b9e56dadfb26117cc567a95</id>
<published>2022-01-02T13:36:00Z</published>
<updated>2022-01-02T13:36:00Z</updated>
<title>parse.y rc.1: support ifs-list with single backtick</title>
<link rel="alternate" type="text/html" href="https://src.$domain/rccommit/ade87e07baf2b5315b9e56dadfb26117cc567a95.html" />
<author>
<name>hhvn</name>
<email>dev@hhvn.uk</email>
</author>
<content>commit ade87e07baf2b5315b9e56dadfb26117cc567a95
parent 21016570f4b42a0814134c43e8e27c388856ee5e
Author: hhvn &lt;dev@hhvn.uk&gt;
Date:   Sun,  2 Jan 2022 13:36:00 +0000

parse.y rc.1: support ifs-list with single backtick

</content>
</entry>
<entry>
<id>21016570f4b42a0814134c43e8e27c388856ee5e</id>
<published>2019-10-03T13:18:16Z</published>
<updated>2019-12-06T16:57:34Z</updated>
<title>Sort completion matches before quoting them</title>
<link rel="alternate" type="text/html" href="https://src.$domain/rccommit/21016570f4b42a0814134c43e8e27c388856ee5e.html" />
<author>
<name>Bert Münnich</name>
<email>ber.t@posteo.de</email>
</author>
<content>commit 21016570f4b42a0814134c43e8e27c388856ee5e
parent f58969944e1c582c75240c0ceed8806387bc9841
Author: Bert Münnich &lt;ber.t@posteo.de&gt;
Date:   Thu,  3 Oct 2019 15:18:16 +0200

Sort completion matches before quoting them

We cannot let readline sort the matches because it gets them after they are
quoted and the leading quote character messes up the ordering.

</content>
</entry>
<entry>
<id>f58969944e1c582c75240c0ceed8806387bc9841</id>
<published>2019-09-30T20:37:13Z</published>
<updated>2019-12-06T16:57:34Z</updated>
<title>Supplant readline&#39;s quoting and word separation mechanisms</title>
<link rel="alternate" type="text/html" href="https://src.$domain/rccommit/f58969944e1c582c75240c0ceed8806387bc9841.html" />
<author>
<name>Bert Münnich</name>
<email>ber.t@posteo.de</email>
</author>
<content>commit f58969944e1c582c75240c0ceed8806387bc9841
parent 8ab057499c351655fc4d93d5e997b1fe816416eb
Author: Bert Münnich &lt;ber.t@posteo.de&gt;
Date:   Mon, 30 Sep 2019 22:37:13 +0200

Supplant readline&#39;s quoting and word separation mechanisms

With this we can finally complete an open quoted word with an escaped quote
(e.g. &#39;it&#39;&#39;s alive^I) without any issues!

It is really f!*#ing hard to bend readline to rc&#39;s simple quoting rules. Tons
of variables control a huge pile of code but every code path assumes just
enough of bash&#39;s quoting rules to render all these mechanisms unusable for rc.

Abusing *rl_completion_word_break_hook* is our only hope. Let us pray that this
keeps working.

</content>
</entry>
<entry>
<id>8ab057499c351655fc4d93d5e997b1fe816416eb</id>
<published>2019-09-29T21:01:09Z</published>
<updated>2019-12-06T16:57:34Z</updated>
<title>Unify call to completion generators</title>
<link rel="alternate" type="text/html" href="https://src.$domain/rccommit/8ab057499c351655fc4d93d5e997b1fe816416eb.html" />
<author>
<name>Bert Münnich</name>
<email>ber.t@posteo.de</email>
</author>
<content>commit 8ab057499c351655fc4d93d5e997b1fe816416eb
parent 20fc20c568171045b1844dffc0f023fe427753fc
Author: Bert Münnich &lt;ber.t@posteo.de&gt;
Date:   Sun, 29 Sep 2019 23:01:09 +0200

Unify call to completion generators

Filename completion is not a special case anymore. The generated filenames are
quoted like the matches of the custom completion generators.

</content>
</entry>
<entry>
<id>20fc20c568171045b1844dffc0f023fe427753fc</id>
<published>2019-06-25T12:58:44Z</published>
<updated>2019-12-06T16:57:34Z</updated>
<title>Quote matches of all custom completion functions</title>
<link rel="alternate" type="text/html" href="https://src.$domain/rccommit/20fc20c568171045b1844dffc0f023fe427753fc.html" />
<author>
<name>Bert Münnich</name>
<email>ber.t@posteo.de</email>
</author>
<content>commit 20fc20c568171045b1844dffc0f023fe427753fc
parent 70324f7a8a274e0cf57e55241ba8246b2ef6ab63
Author: Bert Münnich &lt;ber.t@posteo.de&gt;
Date:   Tue, 25 Jun 2019 14:58:44 +0200

Quote matches of all custom completion functions

We only did this for external commands. Now function and variable names get
quoted too, if they contain a character that needs quoting.

</content>
</entry>
<entry>
<id>70324f7a8a274e0cf57e55241ba8246b2ef6ab63</id>
<published>2019-06-25T12:20:45Z</published>
<updated>2019-12-06T16:57:34Z</updated>
<title>Allow empty context-aware completion</title>
<link rel="alternate" type="text/html" href="https://src.$domain/rccommit/70324f7a8a274e0cf57e55241ba8246b2ef6ab63.html" />
<author>
<name>Bert Münnich</name>
<email>ber.t@posteo.de</email>
</author>
<content>commit 70324f7a8a274e0cf57e55241ba8246b2ef6ab63
parent 7da695f64b647eff0744e545124f51dd04194757
Author: Bert Münnich &lt;ber.t@posteo.de&gt;
Date:   Tue, 25 Jun 2019 14:20:45 +0200

Allow empty context-aware completion

We do not want to fall back to filename completion just because the
context-aware completion did not produce any matches.

</content>
</entry>
<entry>
<id>7da695f64b647eff0744e545124f51dd04194757</id>
<published>2019-06-15T20:13:03Z</published>
<updated>2019-12-06T16:57:34Z</updated>
<title>Fix tab completion of quoted commands and variables</title>
<link rel="alternate" type="text/html" href="https://src.$domain/rccommit/7da695f64b647eff0744e545124f51dd04194757.html" />
<author>
<name>Bert Münnich</name>
<email>ber.t@posteo.de</email>
</author>
<content>commit 7da695f64b647eff0744e545124f51dd04194757
parent 459dd7b4bc6225e712b25359785558cb61283113
Author: Bert Münnich &lt;ber.t@posteo.de&gt;
Date:   Sat, 15 Jun 2019 22:13:03 +0200

Fix tab completion of quoted commands and variables

An open quoted string was always completed as a filename. The type of
completion is now guessed based on the token preceding the opening quote in the
same way as it is done for unqoted words.

    ; &#39;fals -&gt; ; &#39;false&#39;
    ; echo $&#39;hom -&gt; ; echo $&#39;home&#39;

</content>
</entry>
<entry>
<id>459dd7b4bc6225e712b25359785558cb61283113</id>
<published>2019-03-24T13:32:23Z</published>
<updated>2019-12-06T16:57:34Z</updated>
<title>Report children as soon as possible when waiting for all</title>
<link rel="alternate" type="text/html" href="https://src.$domain/rccommit/459dd7b4bc6225e712b25359785558cb61283113.html" />
<author>
<name>Bert Münnich</name>
<email>ber.t@posteo.de</email>
</author>
<content>commit 459dd7b4bc6225e712b25359785558cb61283113
parent 041360f4f34aad297b173e64e0a72956bd86415f
Author: Bert Münnich &lt;ber.t@posteo.de&gt;
Date:   Sun, 24 Mar 2019 14:32:23 +0100

Report children as soon as possible when waiting for all

The following example demonstrates the problem:

    ; false &amp; sleep 300 &amp; wait
    2317 # pid of false
    2318 # pid of sleep
    # blocking for 300s
    2318: done (0)
    2817: done (1)

With this commit the status for false is reported instantly:

    ; false &amp; sleep 300 &amp; wait
    4205 # pid of false
    4206 # pid of sleep
    4205: done (1)
    # blocking for 300s
    4206: done (0)

</content>
</entry>
<entry>
<id>041360f4f34aad297b173e64e0a72956bd86415f</id>
<published>2019-02-10T18:28:52Z</published>
<updated>2019-12-06T16:57:34Z</updated>
<title>Simplify string creation in completion</title>
<link rel="alternate" type="text/html" href="https://src.$domain/rccommit/041360f4f34aad297b173e64e0a72956bd86415f.html" />
<author>
<name>Bert Münnich</name>
<email>ber.t@posteo.de</email>
</author>
<content>commit 041360f4f34aad297b173e64e0a72956bd86415f
parent 0d180a2b0601275b773dc60e948831fae18bd020
Author: Bert Münnich &lt;ber.t@posteo.de&gt;
Date:   Sun, 10 Feb 2019 19:28:52 +0100

Simplify string creation in completion

</content>
</entry>
<entry>
<id>0d180a2b0601275b773dc60e948831fae18bd020</id>
<published>2019-02-10T18:02:20Z</published>
<updated>2019-12-06T16:57:34Z</updated>
<title>Remove useless unquote function</title>
<link rel="alternate" type="text/html" href="https://src.$domain/rccommit/0d180a2b0601275b773dc60e948831fae18bd020.html" />
<author>
<name>Bert Münnich</name>
<email>ber.t@posteo.de</email>
</author>
<content>commit 0d180a2b0601275b773dc60e948831fae18bd020
parent afebc52a8291acb8e32762027277f24ccf0ba375
Author: Bert Münnich &lt;ber.t@posteo.de&gt;
Date:   Sun, 10 Feb 2019 19:02:20 +0100

Remove useless unquote function

It is only needed for completing an open quoted string with an escaped quote:

    &#39;it&#39;&#39;s alive

Unfortunately, readline will always treat the last quote character as the start
of the string so that unquote only gets called on &quot;s alive&quot;.

</content>
</entry>
<entry>
<id>afebc52a8291acb8e32762027277f24ccf0ba375</id>
<published>2019-01-07T20:06:33Z</published>
<updated>2019-12-06T16:57:34Z</updated>
<title>Properly complete subdirs in $path</title>
<link rel="alternate" type="text/html" href="https://src.$domain/rccommit/afebc52a8291acb8e32762027277f24ccf0ba375.html" />
<author>
<name>Bert Münnich</name>
<email>ber.t@posteo.de</email>
</author>
<content>commit afebc52a8291acb8e32762027277f24ccf0ba375
parent a72c49d7914d7dd118bbd3d10734f0645524d64a
Author: Bert Münnich &lt;ber.t@posteo.de&gt;
Date:   Mon,  7 Jan 2019 21:06:33 +0100

Properly complete subdirs in $path

Quote from the comment on the *bodge* mechanism:

    (It would be better to persuade readline just to append the &quot;/&quot; as
    it does for filename completion, but it&#39;s not clear to me if this is
    possible.)

Readline has the *rl_completion_append_character* variable for exactly that.

</content>
</entry>
<entry>
<id>a72c49d7914d7dd118bbd3d10734f0645524d64a</id>
<published>2019-01-07T19:52:19Z</published>
<updated>2019-12-06T16:57:34Z</updated>
<title>Fix command completion of absolute paths</title>
<link rel="alternate" type="text/html" href="https://src.$domain/rccommit/a72c49d7914d7dd118bbd3d10734f0645524d64a.html" />
<author>
<name>Bert Münnich</name>
<email>ber.t@posteo.de</email>
</author>
<content>commit a72c49d7914d7dd118bbd3d10734f0645524d64a
parent 89fa9aae7d63afb2829987c6b4058fb42f03ce37
Author: Bert Münnich &lt;ber.t@posteo.de&gt;
Date:   Mon,  7 Jan 2019 20:52:19 +0100

Fix command completion of absolute paths

</content>
</entry>
<entry>
<id>89fa9aae7d63afb2829987c6b4058fb42f03ce37</id>
<published>2018-05-01T14:21:58Z</published>
<updated>2019-03-24T14:01:23Z</updated>
<title>Correctly name real-time signals</title>
<link rel="alternate" type="text/html" href="https://src.$domain/rccommit/89fa9aae7d63afb2829987c6b4058fb42f03ce37.html" />
<author>
<name>Bert Münnich</name>
<email>ber.t@posteo.de</email>
</author>
<content>commit 89fa9aae7d63afb2829987c6b4058fb42f03ce37
parent 592d9f333cde3f5263453c34d58c82708a91224c
Author: Bert Münnich &lt;ber.t@posteo.de&gt;
Date:   Tue,  1 May 2018 16:21:58 +0200

Correctly name real-time signals

Also make names of unknown signals use fmt &#39;sig%d&#39; instead of &#39;sigunknown%d&#39;.

</content>
</entry>
<entry>
<id>592d9f333cde3f5263453c34d58c82708a91224c</id>
<published>2016-07-11T20:05:18Z</published>
<updated>2019-03-24T14:01:23Z</updated>
<title>Revise status messages for terminated children</title>
<link rel="alternate" type="text/html" href="https://src.$domain/rccommit/592d9f333cde3f5263453c34d58c82708a91224c.html" />
<author>
<name>Bert Münnich</name>
<email>ber.t@posteo.de</email>
</author>
<content>commit 592d9f333cde3f5263453c34d58c82708a91224c
parent 1263ab60d5bf5612d273b80e87a430b9e0a75afd
Author: Bert Münnich &lt;ber.t@posteo.de&gt;
Date:   Mon, 11 Jul 2016 22:05:18 +0200

Revise status messages for terminated children

Print a status message for a terminated child if: 1) the wait builtin is called
in an interactive shell, or 2) the child terminated due to a signal and it is
not sigint and not sigpipe or it caused the child to dump core.

The messages are of the form:

    [pid:] &lt;signal message[--core dumped] | done (status)&gt;

Before this, there were various inconsistencies, e.g. the wait builtin--
regardless if called in an interactive shell or script--would print just the
pid and a colon w/o a message and w/o a newline if the child it waited for
terminated due to receiving sigint.

</content>
</entry>
<entry>
<id>1263ab60d5bf5612d273b80e87a430b9e0a75afd</id>
<published>2017-05-05T04:43:07Z</published>
<updated>2018-12-29T18:19:11Z</updated>
<title>Glob matching in linear time</title>
<link rel="alternate" type="text/html" href="https://src.$domain/rccommit/1263ab60d5bf5612d273b80e87a430b9e0a75afd.html" />
<author>
<name>Bert Münnich</name>
<email>ber.t@posteo.de</email>
</author>
<content>commit 1263ab60d5bf5612d273b80e87a430b9e0a75afd
parent da63ba04988e68bca1395eff60cc362ea14e3c34
Author: Bert Münnich &lt;ber.t@posteo.de&gt;
Date:   Fri,  5 May 2017 06:43:07 +0200

Glob matching in linear time

As described by Russ Cox: https://research.swtch.com/glob

The exponential complexity of the old implementation was not a real problem,
though, as no glob triggering excessive backtracking has ever been spotted in
the wild.

</content>
</entry>
<entry>
<id>da63ba04988e68bca1395eff60cc362ea14e3c34</id>
<published>2017-11-18T12:58:07Z</published>
<updated>2018-12-29T18:19:11Z</updated>
<title>Restore tty attributes if interactive child is terminated by signal</title>
<link rel="alternate" type="text/html" href="https://src.$domain/rccommit/da63ba04988e68bca1395eff60cc362ea14e3c34.html" />
<author>
<name>Bert Münnich</name>
<email>ber.t@posteo.de</email>
</author>
<content>commit da63ba04988e68bca1395eff60cc362ea14e3c34
parent 134ea56bac17a42cf71742807a50f4ca4ac72474
Author: Bert Münnich &lt;ber.t@posteo.de&gt;
Date:   Sat, 18 Nov 2017 13:58:07 +0100

Restore tty attributes if interactive child is terminated by signal

Some programs like su(1) do not restore tty attributes like ECHO when they are
terminated by receiving SIGINT. Other shells (bash, mksh, zsh) save tty
attributes before executing an external command and restore them if the child
exited due to the receipt of a signal. rc now does the same if it is
interactive.

</content>
</entry>
<entry>
<id>134ea56bac17a42cf71742807a50f4ca4ac72474</id>
<published>2015-11-28T15:41:21Z</published>
<updated>2018-12-29T18:19:11Z</updated>
<title>Set LC_CTYPE after reading ~/.rcrc</title>
<link rel="alternate" type="text/html" href="https://src.$domain/rccommit/134ea56bac17a42cf71742807a50f4ca4ac72474.html" />
<author>
<name>Bert Münnich</name>
<email>ber.t@posteo.de</email>
</author>
<content>commit 134ea56bac17a42cf71742807a50f4ca4ac72474
parent b234c5153b5f12b82dceefd04865213554a875da
Author: Bert Münnich &lt;ber.t@posteo.de&gt;
Date:   Sat, 28 Nov 2015 16:41:21 +0100

Set LC_CTYPE after reading ~/.rcrc

rc does not handle umlauts correctly, if locale environment variables are first
set in ~/.rcrc. It is necessary to update the environment before calling
setlocale(3) because it would otherwise not see the variable values assigned in
~/.rcrc.

</content>
</entry>
<entry>
<id>b234c5153b5f12b82dceefd04865213554a875da</id>
<published>2015-11-28T15:24:41Z</published>
<updated>2018-12-29T18:19:11Z</updated>
<title>Prevent duplicate lines in readline history</title>
<link rel="alternate" type="text/html" href="https://src.$domain/rccommit/b234c5153b5f12b82dceefd04865213554a875da.html" />
<author>
<name>Bert Münnich</name>
<email>ber.t@posteo.de</email>
</author>
<content>commit b234c5153b5f12b82dceefd04865213554a875da
parent ff1290cbb138dd09b0a3ca842f843b8321b4c3fe
Author: Bert Münnich &lt;ber.t@posteo.de&gt;
Date:   Sat, 28 Nov 2015 16:24:41 +0100

Prevent duplicate lines in readline history

Before appending a new line to the readline history, remove all prior lines in
the history, which are an exact duplicate of it.

</content>
</entry>
<entry>
<id>ff1290cbb138dd09b0a3ca842f843b8321b4c3fe</id>
<published>2017-10-19T12:07:56Z</published>
<updated>2018-12-29T18:19:11Z</updated>
<title>Handwritten Makefile and config.h; no more GNU autohell</title>
<link rel="alternate" type="text/html" href="https://src.$domain/rccommit/ff1290cbb138dd09b0a3ca842f843b8321b4c3fe.html" />
<author>
<name>Bert Münnich</name>
<email>ber.t@posteo.de</email>
</author>
<content>commit ff1290cbb138dd09b0a3ca842f843b8321b4c3fe
parent c378e80e4ccbe7c5950230e29d4d44fe162f7d06
Author: Bert Münnich &lt;ber.t@posteo.de&gt;
Date:   Thu, 19 Oct 2017 14:07:56 +0200

Handwritten Makefile and config.h; no more GNU autohell

</content>
</entry>
<entry>
<id>c378e80e4ccbe7c5950230e29d4d44fe162f7d06</id>
<published>2016-05-26T12:56:25Z</published>
<updated>2018-12-29T18:18:14Z</updated>
<title>Remove duplicate line editing unit</title>
<link rel="alternate" type="text/html" href="https://src.$domain/rccommit/c378e80e4ccbe7c5950230e29d4d44fe162f7d06.html" />
<author>
<name>Bert Münnich</name>
<email>ber.t@posteo.de</email>
</author>
<content>commit c378e80e4ccbe7c5950230e29d4d44fe162f7d06
parent ceb59bb2a644f4ebc1645fe15f1063029579fa7c
Author: Bert Münnich &lt;ber.t@posteo.de&gt;
Date:   Thu, 26 May 2016 14:56:25 +0200

Remove duplicate line editing unit

edit-bsd.c was a copy of edit-edit.c.

</content>
</entry>
<entry>
<id>ceb59bb2a644f4ebc1645fe15f1063029579fa7c</id>
<published>2018-08-19T21:46:08Z</published>
<updated>2018-08-19T21:46:08Z</updated>
<title>do not permit &quot;if not&quot; after &quot;if ... else&quot;</title>
<link rel="alternate" type="text/html" href="https://src.$domain/rccommit/ceb59bb2a644f4ebc1645fe15f1063029579fa7c.html" />
<author>
<name>Toby Goodwin</name>
<email>toby@nqmail.org</email>
</author>
<content>commit ceb59bb2a644f4ebc1645fe15f1063029579fa7c
parent 3f4dfc08e2ca5dc37260dee2bc7d1fb6c5f9ff96
Author: Toby Goodwin &lt;toby@nqmail.org&gt;
Date:   Sun, 19 Aug 2018 22:46:08 +0100

do not permit &quot;if not&quot; after &quot;if ... else&quot;

</content>
</entry>
<entry>
<id>3f4dfc08e2ca5dc37260dee2bc7d1fb6c5f9ff96</id>
<published>2018-08-19T21:29:03Z</published>
<updated>2018-08-19T21:29:03Z</updated>
<title>add failing test for else / if not case</title>
<link rel="alternate" type="text/html" href="https://src.$domain/rccommit/3f4dfc08e2ca5dc37260dee2bc7d1fb6c5f9ff96.html" />
<author>
<name>Toby Goodwin</name>
<email>toby@nqmail.org</email>
</author>
<content>commit 3f4dfc08e2ca5dc37260dee2bc7d1fb6c5f9ff96
parent 9c6211258c808637d6a71430b191841f0c50ed25
Author: Toby Goodwin &lt;toby@nqmail.org&gt;
Date:   Sun, 19 Aug 2018 22:29:03 +0100

add failing test for else / if not case

</content>
</entry>
<entry>
<id>9c6211258c808637d6a71430b191841f0c50ed25</id>
<published>2018-08-08T21:52:23Z</published>
<updated>2018-08-08T21:52:23Z</updated>
<title>minor tidyups</title>
<link rel="alternate" type="text/html" href="https://src.$domain/rccommit/9c6211258c808637d6a71430b191841f0c50ed25.html" />
<author>
<name>Toby Goodwin</name>
<email>toby@nqmail.org</email>
</author>
<content>commit 9c6211258c808637d6a71430b191841f0c50ed25
parent 3d2cd3500b6b9881ad86511acf29b39aba8551a4
Author: Toby Goodwin &lt;toby@nqmail.org&gt;
Date:   Wed,  8 Aug 2018 22:52:23 +0100

minor tidyups

</content>
</entry>
<entry>
<id>3d2cd3500b6b9881ad86511acf29b39aba8551a4</id>
<published>2018-08-05T00:57:38Z</published>
<updated>2018-08-08T21:48:17Z</updated>
<title>Cleaner string for test</title>
<link rel="alternate" type="text/html" href="https://src.$domain/rccommit/3d2cd3500b6b9881ad86511acf29b39aba8551a4.html" />
<author>
<name>Drazen Borkovic</name>
<email>dborkov@amazon.com</email>
</author>
<content>commit 3d2cd3500b6b9881ad86511acf29b39aba8551a4
parent 674875fe55afd5f76f0f4dab3555ff283928545a
Author: Drazen Borkovic &lt;dborkov@amazon.com&gt;
Date:   Sat,  4 Aug 2018 17:57:38 -0700

Cleaner string for test

</content>
</entry>
<entry>
<id>674875fe55afd5f76f0f4dab3555ff283928545a</id>
<published>2018-08-05T00:28:00Z</published>
<updated>2018-08-08T21:48:17Z</updated>
<title>Test for if-not issue</title>
<link rel="alternate" type="text/html" href="https://src.$domain/rccommit/674875fe55afd5f76f0f4dab3555ff283928545a.html" />
<author>
<name>Drazen Borkovic</name>
<email>dborkov@amazon.com</email>
</author>
<content>commit 674875fe55afd5f76f0f4dab3555ff283928545a
parent 30b5d93c057e582d10577796fe5fe296b4498ac2
Author: Drazen Borkovic &lt;dborkov@amazon.com&gt;
Date:   Sat,  4 Aug 2018 17:28:00 -0700

Test for if-not issue

</content>
</entry>
<entry>
<id>30b5d93c057e582d10577796fe5fe296b4498ac2</id>
<published>2018-08-08T21:47:02Z</published>
<updated>2018-08-08T21:47:02Z</updated>
<title>improved implementation of if_state inspired by borkovic</title>
<link rel="alternate" type="text/html" href="https://src.$domain/rccommit/30b5d93c057e582d10577796fe5fe296b4498ac2.html" />
<author>
<name>Toby Goodwin</name>
<email>toby@nqmail.org</email>
</author>
<content>commit 30b5d93c057e582d10577796fe5fe296b4498ac2
parent 9d071b26bf1b1dcd71efb06dc4fb6c25803856a0
Author: Toby Goodwin &lt;toby@nqmail.org&gt;
Date:   Wed,  8 Aug 2018 22:47:02 +0100

improved implementation of if_state inspired by borkovic

</content>
</entry>
<entry>
<id>9d071b26bf1b1dcd71efb06dc4fb6c25803856a0</id>
<published>2018-05-30T21:46:38Z</published>
<updated>2018-05-30T21:46:38Z</updated>
<title>if_state was being clobbered while running body of succeeding if</title>
<link rel="alternate" type="text/html" href="https://src.$domain/rccommit/9d071b26bf1b1dcd71efb06dc4fb6c25803856a0.html" />
<author>
<name>Toby Goodwin</name>
<email>toby@nqmail.org</email>
</author>
<content>commit 9d071b26bf1b1dcd71efb06dc4fb6c25803856a0
parent dc29bf28ac586e9790f0784785774589fb367c9b
Author: Toby Goodwin &lt;toby@nqmail.org&gt;
Date:   Wed, 30 May 2018 22:46:38 +0100

if_state was being clobbered while running body of succeeding if

</content>
</entry>
<entry>
<id>dc29bf28ac586e9790f0784785774589fb367c9b</id>
<published>2018-05-30T21:19:47Z</published>
<updated>2018-05-30T21:19:47Z</updated>
<title>tweak ChangeLog</title>
<link rel="alternate" type="text/html" href="https://src.$domain/rccommit/dc29bf28ac586e9790f0784785774589fb367c9b.html" />
<author>
<name>Toby Goodwin</name>
<email>toby@nqmail.org</email>
</author>
<content>commit dc29bf28ac586e9790f0784785774589fb367c9b
parent eb3ccbb69aba3db181d009147e37514388f4e3db
Author: Toby Goodwin &lt;toby@nqmail.org&gt;
Date:   Wed, 30 May 2018 22:19:47 +0100

tweak ChangeLog

</content>
</entry>
<entry>
<id>eb3ccbb69aba3db181d009147e37514388f4e3db</id>
<published>2018-05-30T20:51:26Z</published>
<updated>2018-05-30T20:53:01Z</updated>
<title>Merge branch &#39;master&#39; of github.com:rakitzis/rc</title>
<link rel="alternate" type="text/html" href="https://src.$domain/rccommit/eb3ccbb69aba3db181d009147e37514388f4e3db.html" />
<author>
<name>Toby Goodwin</name>
<email>toby@paganbooks.eu</email>
</author>
<content>commit eb3ccbb69aba3db181d009147e37514388f4e3db
parent 668096b6d336128d6828b0e0bf214e2a228d7026
Author: Toby Goodwin &lt;toby@paganbooks.eu&gt;
Date:   Wed, 30 May 2018 21:51:26 +0100

Merge branch &#39;master&#39; of github.com:rakitzis/rc

</content>
</entry>
<entry>
<id>668096b6d336128d6828b0e0bf214e2a228d7026</id>
<published>2018-05-30T20:50:52Z</published>
<updated>2018-05-30T20:50:52Z</updated>
<title>very minor cleanups</title>
<link rel="alternate" type="text/html" href="https://src.$domain/rccommit/668096b6d336128d6828b0e0bf214e2a228d7026.html" />
<author>
<name>Toby Goodwin</name>
<email>toby@paganbooks.eu</email>
</author>
<content>commit 668096b6d336128d6828b0e0bf214e2a228d7026
parent f42cd916f72863cae6f2d49dc66b5bd089f4364e
Author: Toby Goodwin &lt;toby@paganbooks.eu&gt;
Date:   Wed, 30 May 2018 21:50:52 +0100

very minor cleanups

</content>
</entry>
<entry>
<id>b0b8ff7b1dbc2cd316cdb4afe51b02e1dda9851d</id>
<published>2018-05-02T21:42:26Z</published>
<updated>2018-05-02T21:42:26Z</updated>
<title>Merge pull request #47 from muennich/ifnot-conflicts</title>
<link rel="alternate" type="text/html" href="https://src.$domain/rccommit/b0b8ff7b1dbc2cd316cdb4afe51b02e1dda9851d.html" />
<author>
<name>Toby Goodwin</name>
<email>toby@paccrat.org</email>
</author>
<content>commit b0b8ff7b1dbc2cd316cdb4afe51b02e1dda9851d
parent 8ecd9704f9564950d8ea80c0fcff04b8861b37e4
Author: Toby Goodwin &lt;toby@paccrat.org&gt;
Date:   Wed,  2 May 2018 22:42:26 +0100

Merge pull request #47 from muennich/ifnot-conflicts

Silence parser conflicts caused by IF NOT
</content>
</entry>
<entry>
<id>7893cd8502b900941e57a041072b9ca524470d84</id>
<published>2018-05-01T19:08:37Z</published>
<updated>2018-05-01T19:09:32Z</updated>
<title>Silence parser conflicts caused by IF NOT</title>
<link rel="alternate" type="text/html" href="https://src.$domain/rccommit/7893cd8502b900941e57a041072b9ca524470d84.html" />
<author>
<name>Bert Münnich</name>
<email>ber.t@posteo.de</email>
</author>
<content>commit 7893cd8502b900941e57a041072b9ca524470d84
parent 8ecd9704f9564950d8ea80c0fcff04b8861b37e4
Author: Bert Münnich &lt;ber.t@posteo.de&gt;
Date:   Tue,  1 May 2018 21:08:37 +0200

Silence parser conflicts caused by IF NOT

</content>
</entry>
<entry>
<id>f42cd916f72863cae6f2d49dc66b5bd089f4364e</id>
<published>2018-05-01T06:33:37Z</published>
<updated>2018-05-01T06:33:37Z</updated>
<title>implement quoting for command completion</title>
<link rel="alternate" type="text/html" href="https://src.$domain/rccommit/f42cd916f72863cae6f2d49dc66b5bd089f4364e.html" />
<author>
<name>Toby Goodwin</name>
<email>toby@paganbooks.eu</email>
</author>
<content>commit f42cd916f72863cae6f2d49dc66b5bd089f4364e
parent 23d7c25bef82a221e559302424e3e1f53bf8d4cd
Author: Toby Goodwin &lt;toby@paganbooks.eu&gt;
Date:   Tue,  1 May 2018 07:33:37 +0100

implement quoting for command completion

</content>
</entry>
<entry>
<id>23d7c25bef82a221e559302424e3e1f53bf8d4cd</id>
<published>2018-05-01T05:45:06Z</published>
<updated>2018-05-01T05:45:06Z</updated>
<title>quoting functions mean filename completion mostly works for names containing &quot;&#39;&quot;</title>
<link rel="alternate" type="text/html" href="https://src.$domain/rccommit/23d7c25bef82a221e559302424e3e1f53bf8d4cd.html" />
<author>
<name>Toby Goodwin</name>
<email>toby@paganbooks.eu</email>
</author>
<content>commit 23d7c25bef82a221e559302424e3e1f53bf8d4cd
parent ce98977a948081a3ac6006f730f469f12cba8b3c
Author: Toby Goodwin &lt;toby@paganbooks.eu&gt;
Date:   Tue,  1 May 2018 06:45:06 +0100

quoting functions mean filename completion mostly works for names containing &quot;&#39;&quot;

</content>
</entry>
<entry>
<id>ce98977a948081a3ac6006f730f469f12cba8b3c</id>
<published>2018-04-29T20:51:25Z</published>
<updated>2018-04-29T20:51:25Z</updated>
<title>minor cleanups</title>
<link rel="alternate" type="text/html" href="https://src.$domain/rccommit/ce98977a948081a3ac6006f730f469f12cba8b3c.html" />
<author>
<name>Toby Goodwin</name>
<email>toby@paganbooks.eu</email>
</author>
<content>commit ce98977a948081a3ac6006f730f469f12cba8b3c
parent 154fb2264f717aebe4ff149efce42411cefd583f
Author: Toby Goodwin &lt;toby@paganbooks.eu&gt;
Date:   Sun, 29 Apr 2018 21:51:25 +0100

minor cleanups

</content>
</entry>
<entry>
<id>154fb2264f717aebe4ff149efce42411cefd583f</id>
<published>2018-04-28T22:14:12Z</published>
<updated>2018-04-28T22:14:12Z</updated>
<title>support completion through subdirs of path</title>
<link rel="alternate" type="text/html" href="https://src.$domain/rccommit/154fb2264f717aebe4ff149efce42411cefd583f.html" />
<author>
<name>Toby Goodwin</name>
<email>toby@paganbooks.eu</email>
</author>
<content>commit 154fb2264f717aebe4ff149efce42411cefd583f
parent 6fe8c0e92443ce3898fa8c3ebd73f6976fe98eec
Author: Toby Goodwin &lt;toby@paganbooks.eu&gt;
Date:   Sat, 28 Apr 2018 23:14:12 +0100

support completion through subdirs of path

</content>
</entry>
<entry>
<id>6fe8c0e92443ce3898fa8c3ebd73f6976fe98eec</id>
<published>2018-04-28T07:21:19Z</published>
<updated>2018-04-28T07:21:19Z</updated>
<title>check access of external commands when completing</title>
<link rel="alternate" type="text/html" href="https://src.$domain/rccommit/6fe8c0e92443ce3898fa8c3ebd73f6976fe98eec.html" />
<author>
<name>Toby Goodwin</name>
<email>toby@paganbooks.eu</email>
</author>
<content>commit 6fe8c0e92443ce3898fa8c3ebd73f6976fe98eec
parent cb99a1b11a2f0d39cd92a27351a4920422bcd7a1
Author: Toby Goodwin &lt;toby@paganbooks.eu&gt;
Date:   Sat, 28 Apr 2018 08:21:19 +0100

check access of external commands when completing

</content>
</entry>
<entry>
<id>cb99a1b11a2f0d39cd92a27351a4920422bcd7a1</id>
<published>2018-04-28T06:46:54Z</published>
<updated>2018-04-28T06:53:50Z</updated>
<title>eliminate goto... clearer?</title>
<link rel="alternate" type="text/html" href="https://src.$domain/rccommit/cb99a1b11a2f0d39cd92a27351a4920422bcd7a1.html" />
<author>
<name>Toby Goodwin</name>
<email>toby@paganbooks.eu</email>
</author>
<content>commit cb99a1b11a2f0d39cd92a27351a4920422bcd7a1
parent f26b1b7d1311c34b1ed4ec29b5d26e3ae421873b
Author: Toby Goodwin &lt;toby@paganbooks.eu&gt;
Date:   Sat, 28 Apr 2018 07:46:54 +0100

eliminate goto... clearer?

</content>
</entry>
<entry>
<id>f26b1b7d1311c34b1ed4ec29b5d26e3ae421873b</id>
<published>2016-02-26T17:32:27Z</published>
<updated>2018-04-26T06:45:38Z</updated>
<title>Always insert single match of explicit complete function</title>
<link rel="alternate" type="text/html" href="https://src.$domain/rccommit/f26b1b7d1311c34b1ed4ec29b5d26e3ae421873b.html" />
<author>
<name>Bert Münnich</name>
<email>b.muennich@stagetec.com</email>
</author>
<content>commit f26b1b7d1311c34b1ed4ec29b5d26e3ae421873b
parent a50b93cd6790c95a85c7647829c14a0ccd166f31
Author: Bert Münnich &lt;b.muennich@stagetec.com&gt;
Date:   Fri, 26 Feb 2016 18:32:27 +0100

Always insert single match of explicit complete function

If an explicit complete function has only one match but is used directly after
the default tab completion, than the single match is shown instead of inserted.
The solution is resetting the &#39;rl_last_func&#39; variable if it is set to
&#39;rl_complete&#39; when using an explicit complete function.

</content>
</entry>
<entry>
<id>a50b93cd6790c95a85c7647829c14a0ccd166f31</id>
<published>2015-12-05T17:26:37Z</published>
<updated>2018-04-26T05:52:32Z</updated>
<title>Custom readline commands for explicit completions</title>
<link rel="alternate" type="text/html" href="https://src.$domain/rccommit/a50b93cd6790c95a85c7647829c14a0ccd166f31.html" />
<author>
<name>Bert Münnich</name>
<email>ber.t@posteo.de</email>
</author>
<content>commit a50b93cd6790c95a85c7647829c14a0ccd166f31
parent 68fc1605e7d3a317477abf1afc6410581724b72d
Author: Bert Münnich &lt;ber.t@posteo.de&gt;
Date:   Sat,  5 Dec 2015 18:26:37 +0100

Custom readline commands for explicit completions

New commands:
  - rc-complete-command, per default bound to &quot;M-!&quot;
  - rc-complete-filename, &quot;M-/&quot;
  - rc-complete-variable, &quot;M-$&quot;

These commands are useful, if one wants a specific type of completion which is
not performed by the context-senstive default one, e.g. filename completion at
the beginning of the line or command completion for the second word (after
sudo).

The readline code now also sets the application name to &quot;rc&quot;, making it
possible to specify different bindings for these commands in ~/.inputrc:
  $if rc
  &quot;\C-x\C-[&quot;: rc-complete-command
  &quot;\C-[\C-x&quot;: rc-complete-filename
  &quot;\C-x\C-v&quot;: rc-complete-variable
  $endif

</content>
</entry>
<entry>
<id>68fc1605e7d3a317477abf1afc6410581724b72d</id>
<published>2015-12-05T16:34:49Z</published>
<updated>2018-04-26T05:52:32Z</updated>
<title>Completion of command names and variables</title>
<link rel="alternate" type="text/html" href="https://src.$domain/rccommit/68fc1605e7d3a317477abf1afc6410581724b72d.html" />
<author>
<name>Bert Münnich</name>
<email>ber.t@posteo.de</email>
</author>
<content>commit 68fc1605e7d3a317477abf1afc6410581724b72d
parent 8ecd9704f9564950d8ea80c0fcff04b8861b37e4
Author: Bert Münnich &lt;ber.t@posteo.de&gt;
Date:   Sat,  5 Dec 2015 17:34:49 +0100

Completion of command names and variables

New completion entry functions for readline specific code:
  - compl_var for variables
  - compl_fn for functions
  - compl_builtin for builtins
  - compl_extcmd for external commands in path
  - compl_command, which combines the last three

The first three are simple wrappers for compl_name, which iterates over a
typical rc table (an array of structs) yielding the name fields.

The appropriate completion entry function is chosen based on the
character/token that preceeds the word to complete: &#39;$&#39; for variable,
beginning of line or one of [`@|&amp;(){;] for command. Otherwise the shell falls
back to readline&#39;s default completion, which it also does, if the chosen
completion entry function finds no match.

</content>
</entry>
<entry>
<id>8ecd9704f9564950d8ea80c0fcff04b8861b37e4</id>
<published>2018-04-25T21:29:49Z</published>
<updated>2018-04-25T21:29:49Z</updated>
<title>bring ChangeLog up to date</title>
<link rel="alternate" type="text/html" href="https://src.$domain/rccommit/8ecd9704f9564950d8ea80c0fcff04b8861b37e4.html" />
<author>
<name>Toby Goodwin</name>
<email>toby@paccrat.org</email>
</author>
<content>commit 8ecd9704f9564950d8ea80c0fcff04b8861b37e4
parent 34f91fd658412d1ae31a2236eb406934c84e311a
Author: Toby Goodwin &lt;toby@paccrat.org&gt;
Date:   Wed, 25 Apr 2018 22:29:49 +0100

bring ChangeLog up to date

</content>
</entry>
<entry>
<id>34f91fd658412d1ae31a2236eb406934c84e311a</id>
<published>2018-04-20T10:56:34Z</published>
<updated>2018-04-20T10:56:34Z</updated>
<title>new mkinstalldirs for some reason</title>
<link rel="alternate" type="text/html" href="https://src.$domain/rccommit/34f91fd658412d1ae31a2236eb406934c84e311a.html" />
<author>
<name>Toby Goodwin</name>
<email>toby@paccrat.org</email>
</author>
<content>commit 34f91fd658412d1ae31a2236eb406934c84e311a
parent c8ef247c39df2038e112b4d5e97f373e1f0c6858
Author: Toby Goodwin &lt;toby@paccrat.org&gt;
Date:   Fri, 20 Apr 2018 11:56:34 +0100

new mkinstalldirs for some reason

</content>
</entry>
<entry>
<id>c8ef247c39df2038e112b4d5e97f373e1f0c6858</id>
<published>2018-04-20T10:55:42Z</published>
<updated>2018-04-20T10:55:42Z</updated>
<title>replace space used to terminate heredoc</title>
<link rel="alternate" type="text/html" href="https://src.$domain/rccommit/c8ef247c39df2038e112b4d5e97f373e1f0c6858.html" />
<author>
<name>Toby Goodwin</name>
<email>toby@paccrat.org</email>
</author>
<content>commit c8ef247c39df2038e112b4d5e97f373e1f0c6858
parent 0a1ecd59e87e2a3f394be2bcf9bf14d2eb293fc8
Author: Toby Goodwin &lt;toby@paccrat.org&gt;
Date:   Fri, 20 Apr 2018 11:55:42 +0100

replace space used to terminate heredoc

</content>
</entry>
<entry>
<id>0a1ecd59e87e2a3f394be2bcf9bf14d2eb293fc8</id>
<published>2018-03-26T17:21:22Z</published>
<updated>2018-03-26T17:21:22Z</updated>
<title>Merge branch &#39;master&#39; into ifnot</title>
<link rel="alternate" type="text/html" href="https://src.$domain/rccommit/0a1ecd59e87e2a3f394be2bcf9bf14d2eb293fc8.html" />
<author>
<name>Toby Goodwin</name>
<email>toby@paccrat.org</email>
</author>
<content>commit 0a1ecd59e87e2a3f394be2bcf9bf14d2eb293fc8
parent 969af168ea450bf79f800da620efefa91ed1f174
Author: Toby Goodwin &lt;toby@paccrat.org&gt;
Date:   Mon, 26 Mar 2018 18:21:22 +0100

Merge branch &#39;master&#39; into ifnot

</content>
</entry>
<entry>
<id>969af168ea450bf79f800da620efefa91ed1f174</id>
<published>2018-03-26T17:20:39Z</published>
<updated>2018-03-26T17:20:39Z</updated>
<title>whitespace cleanups</title>
<link rel="alternate" type="text/html" href="https://src.$domain/rccommit/969af168ea450bf79f800da620efefa91ed1f174.html" />
<author>
<name>Toby Goodwin</name>
<email>toby@paccrat.org</email>
</author>
<content>commit 969af168ea450bf79f800da620efefa91ed1f174
parent 9475ab261beabd848267f925940c15f9fd6eb96e
Author: Toby Goodwin &lt;toby@paccrat.org&gt;
Date:   Mon, 26 Mar 2018 18:20:39 +0100

whitespace cleanups

</content>
</entry>
<entry>
<id>47151e4647b8decd77bb65c4fbe0dadb16ae79a8</id>
<published>2018-03-20T21:58:03Z</published>
<updated>2018-03-20T21:59:14Z</updated>
<title>whitespace cleanup</title>
<link rel="alternate" type="text/html" href="https://src.$domain/rccommit/47151e4647b8decd77bb65c4fbe0dadb16ae79a8.html" />
<author>
<name>Toby Goodwin</name>
<email>toby@paccrat.org</email>
</author>
<content>commit 47151e4647b8decd77bb65c4fbe0dadb16ae79a8
parent 79fcb6da5a44da33459122881085297c35e781f1
Author: Toby Goodwin &lt;toby@paccrat.org&gt;
Date:   Tue, 20 Mar 2018 21:58:03 +0000

whitespace cleanup

</content>
</entry>
<entry>
<id>9475ab261beabd848267f925940c15f9fd6eb96e</id>
<published>2018-03-19T21:59:02Z</published>
<updated>2018-03-19T21:59:02Z</updated>
<title>Merge branch &#39;master&#39; into ifnot</title>
<link rel="alternate" type="text/html" href="https://src.$domain/rccommit/9475ab261beabd848267f925940c15f9fd6eb96e.html" />
<author>
<name>Toby Goodwin</name>
<email>toby@paccrat.org</email>
</author>
<content>commit 9475ab261beabd848267f925940c15f9fd6eb96e
parent 7a643120366f1ea24eac5ccb759d4df616e7789b
Author: Toby Goodwin &lt;toby@paccrat.org&gt;
Date:   Mon, 19 Mar 2018 21:59:02 +0000

Merge branch &#39;master&#39; into ifnot

</content>
</entry>
<entry>
<id>79fcb6da5a44da33459122881085297c35e781f1</id>
<published>2018-03-19T21:50:11Z</published>
<updated>2018-03-19T21:50:11Z</updated>
<title>implement $nl and $tab, issue #43</title>
<link rel="alternate" type="text/html" href="https://src.$domain/rccommit/79fcb6da5a44da33459122881085297c35e781f1.html" />
<author>
<name>Toby Goodwin</name>
<email>toby@paccrat.org</email>
</author>
<content>commit 79fcb6da5a44da33459122881085297c35e781f1
parent 54ccf74c675696318b697182573a86668fe36f50
Author: Toby Goodwin &lt;toby@paccrat.org&gt;
Date:   Mon, 19 Mar 2018 21:50:11 +0000

implement $nl and $tab, issue #43

</content>
</entry>
<entry>
<id>7a643120366f1ea24eac5ccb759d4df616e7789b</id>
<published>2018-03-19T20:55:56Z</published>
<updated>2018-03-19T20:55:56Z</updated>
<title>implement desugaring version (again, lost due to git problem)</title>
<link rel="alternate" type="text/html" href="https://src.$domain/rccommit/7a643120366f1ea24eac5ccb759d4df616e7789b.html" />
<author>
<name>Toby Goodwin</name>
<email>toby@paccrat.org</email>
</author>
<content>commit 7a643120366f1ea24eac5ccb759d4df616e7789b
parent 2dd0aa249c9bac4e5c616d1f386dc4271fdbab46
Author: Toby Goodwin &lt;toby@paccrat.org&gt;
Date:   Mon, 19 Mar 2018 20:55:56 +0000

implement desugaring version (again, lost due to git problem)

</content>
</entry>
<entry>
<id>2dd0aa249c9bac4e5c616d1f386dc4271fdbab46</id>
<published>2018-03-17T18:36:15Z</published>
<updated>2018-03-17T18:36:15Z</updated>
<title>Merge branch &#39;master&#39; into ifnot</title>
<link rel="alternate" type="text/html" href="https://src.$domain/rccommit/2dd0aa249c9bac4e5c616d1f386dc4271fdbab46.html" />
<author>
<name>Toby Goodwin</name>
<email>toby@paccrat.org</email>
</author>
<content>commit 2dd0aa249c9bac4e5c616d1f386dc4271fdbab46
parent 1128baa58acaff32e4538d5878b916fba091c574
Author: Toby Goodwin &lt;toby@paccrat.org&gt;
Date:   Sat, 17 Mar 2018 18:36:15 +0000

Merge branch &#39;master&#39; into ifnot

</content>
</entry>
<entry>
<id>54ccf74c675696318b697182573a86668fe36f50</id>
<published>2018-03-17T18:34:17Z</published>
<updated>2018-03-17T18:34:17Z</updated>
<title>fix bad merge fixup</title>
<link rel="alternate" type="text/html" href="https://src.$domain/rccommit/54ccf74c675696318b697182573a86668fe36f50.html" />
<author>
<name>Toby Goodwin</name>
<email>toby@paccrat.org</email>
</author>
<content>commit 54ccf74c675696318b697182573a86668fe36f50
parent e7b1461bb4ff9fed1b1240e50726012e365f160d
Author: Toby Goodwin &lt;toby@paccrat.org&gt;
Date:   Sat, 17 Mar 2018 18:34:17 +0000

fix bad merge fixup

</content>
</entry>
<entry>
<id>e7b1461bb4ff9fed1b1240e50726012e365f160d</id>
<published>2018-03-17T18:32:40Z</published>
<updated>2018-03-17T18:32:40Z</updated>
<title>Merge branch &#39;continue&#39;</title>
<link rel="alternate" type="text/html" href="https://src.$domain/rccommit/e7b1461bb4ff9fed1b1240e50726012e365f160d.html" />
<author>
<name>Toby Goodwin</name>
<email>toby@paccrat.org</email>
</author>
<content>commit e7b1461bb4ff9fed1b1240e50726012e365f160d
parent cccdab7ea2bb922413f02698ecc5969c00e7a7aa
Author: Toby Goodwin &lt;toby@paccrat.org&gt;
Date:   Sat, 17 Mar 2018 18:32:40 +0000

Merge branch &#39;continue&#39;

</content>
</entry>
<entry>
<id>cccdab7ea2bb922413f02698ecc5969c00e7a7aa</id>
<published>2018-03-17T15:14:21Z</published>
<updated>2018-03-17T15:14:21Z</updated>
<title>tidy up, test cases, document flag</title>
<link rel="alternate" type="text/html" href="https://src.$domain/rccommit/cccdab7ea2bb922413f02698ecc5969c00e7a7aa.html" />
<author>
<name>Toby Goodwin</name>
<email>toby@paccrat.org</email>
</author>
<content>commit cccdab7ea2bb922413f02698ecc5969c00e7a7aa
parent 9c7ee8473a71303ab4cb51c9593089c07c224a22
Author: Toby Goodwin &lt;toby@paccrat.org&gt;
Date:   Sat, 17 Mar 2018 15:14:21 +0000

tidy up, test cases, document flag

</content>
</entry>
<entry>
<id>9c7ee8473a71303ab4cb51c9593089c07c224a22</id>
<published>2018-03-16T20:39:43Z</published>
<updated>2018-03-16T20:39:43Z</updated>
<title>flag largely working, flag n + is a bit odd</title>
<link rel="alternate" type="text/html" href="https://src.$domain/rccommit/9c7ee8473a71303ab4cb51c9593089c07c224a22.html" />
<author>
<name>Toby Goodwin</name>
<email>toby@paccrat.org</email>
</author>
<content>commit 9c7ee8473a71303ab4cb51c9593089c07c224a22
parent bc84292076945924cd9b006c061ae04d79f4209f
Author: Toby Goodwin &lt;toby@paccrat.org&gt;
Date:   Fri, 16 Mar 2018 20:39:43 +0000

flag largely working, flag n + is a bit odd

</content>
</entry>
<entry>
<id>bc84292076945924cd9b006c061ae04d79f4209f</id>
<published>2018-03-16T20:20:46Z</published>
<updated>2018-03-16T20:20:46Z</updated>
<title>starting to work</title>
<link rel="alternate" type="text/html" href="https://src.$domain/rccommit/bc84292076945924cd9b006c061ae04d79f4209f.html" />
<author>
<name>Toby Goodwin</name>
<email>toby@paccrat.org</email>
</author>
<content>commit bc84292076945924cd9b006c061ae04d79f4209f
parent a32879322714f53ec044dabe4d20c44cb85be116
Author: Toby Goodwin &lt;toby@paccrat.org&gt;
Date:   Fri, 16 Mar 2018 20:20:46 +0000

starting to work

</content>
</entry>
<entry>
<id>1128baa58acaff32e4538d5878b916fba091c574</id>
<published>2018-03-05T07:13:14Z</published>
<updated>2018-03-05T07:13:14Z</updated>
<title>Merge branch &#39;master&#39; into ifnot</title>
<link rel="alternate" type="text/html" href="https://src.$domain/rccommit/1128baa58acaff32e4538d5878b916fba091c574.html" />
<author>
<name>Toby Goodwin</name>
<email>toby@paccrat.org</email>
</author>
<content>commit 1128baa58acaff32e4538d5878b916fba091c574
parent b3b9943da25aa0f86e2542c6846142aeeaa0cfe5
Author: Toby Goodwin &lt;toby@paccrat.org&gt;
Date:   Mon,  5 Mar 2018 07:13:14 +0000

Merge branch &#39;master&#39; into ifnot

</content>
</entry>
<entry>
<id>a32879322714f53ec044dabe4d20c44cb85be116</id>
<published>2018-03-05T07:08:12Z</published>
<updated>2018-03-05T07:08:12Z</updated>
<title>add to ChangeLog</title>
<link rel="alternate" type="text/html" href="https://src.$domain/rccommit/a32879322714f53ec044dabe4d20c44cb85be116.html" />
<author>
<name>Toby Goodwin</name>
<email>toby@paccrat.org</email>
</author>
<content>commit a32879322714f53ec044dabe4d20c44cb85be116
parent 280d57b40b71c16b242dab52286592efdf2e3356
Author: Toby Goodwin &lt;toby@paccrat.org&gt;
Date:   Mon,  5 Mar 2018 07:08:12 +0000

add to ChangeLog

</content>
</entry>
<entry>
<id>b3b9943da25aa0f86e2542c6846142aeeaa0cfe5</id>
<published>2018-03-05T06:51:31Z</published>
<updated>2018-03-05T06:51:31Z</updated>
<title>implement walk half of if not, plus tests</title>
<link rel="alternate" type="text/html" href="https://src.$domain/rccommit/b3b9943da25aa0f86e2542c6846142aeeaa0cfe5.html" />
<author>
<name>Toby Goodwin</name>
<email>toby@paccrat.org</email>
</author>
<content>commit b3b9943da25aa0f86e2542c6846142aeeaa0cfe5
parent 7d179ce096c89963deae835327596de435e66cdf
Author: Toby Goodwin &lt;toby@paccrat.org&gt;
Date:   Mon,  5 Mar 2018 06:51:31 +0000

implement walk half of if not, plus tests

</content>
</entry>
<entry>
<id>280d57b40b71c16b242dab52286592efdf2e3356</id>
<published>2018-03-02T20:04:06Z</published>
<updated>2018-03-02T20:15:46Z</updated>
<title>Unify bodies of if and if-else statements</title>
<link rel="alternate" type="text/html" href="https://src.$domain/rccommit/280d57b40b71c16b242dab52286592efdf2e3356.html" />
<author>
<name>Bert Münnich</name>
<email>ber.t@posteo.de</email>
</author>
<content>commit 280d57b40b71c16b242dab52286592efdf2e3356
parent 67a87ad0104d88e8b1711a3831d616598edb30c2
Author: Bert Münnich &lt;ber.t@posteo.de&gt;
Date:   Fri,  2 Mar 2018 21:04:06 +0100

Unify bodies of if and if-else statements

Fixes issue #31 of rakitzis/rc.

</content>
</entry>
<entry>
<id>7d179ce096c89963deae835327596de435e66cdf</id>
<published>2018-03-02T06:06:51Z</published>
<updated>2018-03-02T06:06:51Z</updated>
<title>nBody second child can be null</title>
<link rel="alternate" type="text/html" href="https://src.$domain/rccommit/7d179ce096c89963deae835327596de435e66cdf.html" />
<author>
<name>Toby Goodwin</name>
<email>toby@paccrat.org</email>
</author>
<content>commit 7d179ce096c89963deae835327596de435e66cdf
parent 5b624196125034b95d504be682127a5964e08da5
Author: Toby Goodwin &lt;toby@paccrat.org&gt;
Date:   Fri,  2 Mar 2018 06:06:51 +0000

nBody second child can be null

</content>
</entry>
<entry>
<id>5b624196125034b95d504be682127a5964e08da5</id>
<published>2018-03-01T21:37:18Z</published>
<updated>2018-03-01T21:37:18Z</updated>
<title>Merge branch &#39;master&#39; into ifnot</title>
<link rel="alternate" type="text/html" href="https://src.$domain/rccommit/5b624196125034b95d504be682127a5964e08da5.html" />
<author>
<name>Toby Goodwin</name>
<email>toby@paccrat.org</email>
</author>
<content>commit 5b624196125034b95d504be682127a5964e08da5
parent 5966ab2ca2632c5bed9815def1add4859beececa
Author: Toby Goodwin &lt;toby@paccrat.org&gt;
Date:   Thu,  1 Mar 2018 21:37:18 +0000

Merge branch &#39;master&#39; into ifnot

</content>
</entry>
<entry>
<id>67a87ad0104d88e8b1711a3831d616598edb30c2</id>
<published>2018-02-17T16:03:30Z</published>
<updated>2018-02-17T16:03:30Z</updated>
<title>remove all references to SIGCLD</title>
<link rel="alternate" type="text/html" href="https://src.$domain/rccommit/67a87ad0104d88e8b1711a3831d616598edb30c2.html" />
<author>
<name>Toby Goodwin</name>
<email>toby@paccrat.org</email>
</author>
<content>commit 67a87ad0104d88e8b1711a3831d616598edb30c2
parent dff49d84c0ef9880b191ebbaac2cf65a17eb481a
Author: Toby Goodwin &lt;toby@paccrat.org&gt;
Date:   Sat, 17 Feb 2018 16:03:30 +0000

remove all references to SIGCLD

</content>
</entry>
<entry>
<id>dff49d84c0ef9880b191ebbaac2cf65a17eb481a</id>
<published>2018-02-09T06:39:40Z</published>
<updated>2018-02-09T06:39:40Z</updated>
<title>remove config.h-dist; add thanks to Bert and Leah</title>
<link rel="alternate" type="text/html" href="https://src.$domain/rccommit/dff49d84c0ef9880b191ebbaac2cf65a17eb481a.html" />
<author>
<name>Toby Goodwin</name>
<email>toby@paccrat.org</email>
</author>
<content>commit dff49d84c0ef9880b191ebbaac2cf65a17eb481a
parent c5b1bdce2ced84fe956a56a206d7964e60f3f641
Author: Toby Goodwin &lt;toby@paccrat.org&gt;
Date:   Fri,  9 Feb 2018 06:39:40 +0000

remove config.h-dist; add thanks to Bert and Leah

</content>
</entry>
<entry>
<id>5966ab2ca2632c5bed9815def1add4859beececa</id>
<published>2018-02-09T06:34:34Z</published>
<updated>2018-02-09T06:34:34Z</updated>
<title>wip</title>
<link rel="alternate" type="text/html" href="https://src.$domain/rccommit/5966ab2ca2632c5bed9815def1add4859beececa.html" />
<author>
<name>Toby Goodwin</name>
<email>toby@paccrat.org</email>
</author>
<content>commit 5966ab2ca2632c5bed9815def1add4859beececa
parent d18aac739636fd9ae1f84fef8347f46216fb8d9c
Author: Toby Goodwin &lt;toby@paccrat.org&gt;
Date:   Fri,  9 Feb 2018 06:34:34 +0000

wip

</content>
</entry>
<entry>
<id>c5b1bdce2ced84fe956a56a206d7964e60f3f641</id>
<published>2017-11-17T07:36:25Z</published>
<updated>2017-11-17T07:36:25Z</updated>
<title>Merge pull request #41 from muennich/issue40</title>
<link rel="alternate" type="text/html" href="https://src.$domain/rccommit/c5b1bdce2ced84fe956a56a206d7964e60f3f641.html" />
<author>
<name>Toby Goodwin</name>
<email>toby@paccrat.org</email>
</author>
<content>commit c5b1bdce2ced84fe956a56a206d7964e60f3f641
parent 7dc3033c862c30d8998ed3e4c98c056286f31401
Author: Toby Goodwin &lt;toby@paccrat.org&gt;
Date:   Fri, 17 Nov 2017 07:36:25 +0000

Merge pull request #41 from muennich/issue40

Fix issue #40
</content>
</entry>
<entry>
<id>266dac97fd1cbd2e14cf7a9ca0fda4e446c75e3c</id>
<published>2017-10-28T11:16:20Z</published>
<updated>2017-10-28T11:16:20Z</updated>
<title>Add test for issue #40, exit status of -e with failed backquote or pipeline</title>
<link rel="alternate" type="text/html" href="https://src.$domain/rccommit/266dac97fd1cbd2e14cf7a9ca0fda4e446c75e3c.html" />
<author>
<name>Bert Münnich</name>
<email>ber.t@posteo.de</email>
</author>
<content>commit 266dac97fd1cbd2e14cf7a9ca0fda4e446c75e3c
parent 775b775240d09fe665efaecf2432d590567e68ef
Author: Bert Münnich &lt;ber.t@posteo.de&gt;
Date:   Sat, 28 Oct 2017 13:16:20 +0200

Add test for issue #40, exit status of -e with failed backquote or pipeline

</content>
</entry>
<entry>
<id>775b775240d09fe665efaecf2432d590567e68ef</id>
<published>2017-10-27T17:30:09Z</published>
<updated>2017-10-27T18:22:21Z</updated>
<title>Fix exit value for -e with failed backquote or pipeline</title>
<link rel="alternate" type="text/html" href="https://src.$domain/rccommit/775b775240d09fe665efaecf2432d590567e68ef.html" />
<author>
<name>Bert Münnich</name>
<email>ber.t@posteo.de</email>
</author>
<content>commit 775b775240d09fe665efaecf2432d590567e68ef
parent 7dc3033c862c30d8998ed3e4c98c056286f31401
Author: Bert Münnich &lt;ber.t@posteo.de&gt;
Date:   Fri, 27 Oct 2017 19:30:09 +0200

Fix exit value for -e with failed backquote or pipeline

This fixes rakitzis/rc issue #40.

Both cases suffered from a misconception of statprint() in which the necessary
check for -e happens. The checked status value gets passed to statprint() as an
argument but the corresponding value passed to rc_exit() in case the status is
non-zero comes from getstatus(), which requires that the checked status is
written to statuses[] first. For pipelines this happened in the wrong order and
for backquotes the status value was not put into statuses[] at all.

Making statprint() a static helper function prevents this mistake by only
leaving the setstatus family of functions to handle status codes.

</content>
</entry>
<entry>
<id>d18aac739636fd9ae1f84fef8347f46216fb8d9c</id>
<published>2017-08-28T19:32:21Z</published>
<updated>2017-08-28T19:32:21Z</updated>
<title>remove blank line at end of file</title>
<link rel="alternate" type="text/html" href="https://src.$domain/rccommit/d18aac739636fd9ae1f84fef8347f46216fb8d9c.html" />
<author>
<name>Toby Goodwin</name>
<email>toby@paccrat.org</email>
</author>
<content>commit d18aac739636fd9ae1f84fef8347f46216fb8d9c
parent 383ea67ea46d335e0bd8b78168cd44c8bd56f6eb
Author: Toby Goodwin &lt;toby@paccrat.org&gt;
Date:   Mon, 28 Aug 2017 20:32:21 +0100

remove blank line at end of file

</content>
</entry>
<entry>
<id>383ea67ea46d335e0bd8b78168cd44c8bd56f6eb</id>
<published>2017-08-27T19:49:03Z</published>
<updated>2017-08-27T19:49:03Z</updated>
<title>Change one continue-testing loop from for to while</title>
<link rel="alternate" type="text/html" href="https://src.$domain/rccommit/383ea67ea46d335e0bd8b78168cd44c8bd56f6eb.html" />
<author>
<name>Drazen Borkovic</name>
<email>borkovic@users.noreply.github.com</email>
</author>
<content>commit 383ea67ea46d335e0bd8b78168cd44c8bd56f6eb
parent 292f79d2715d0e7cdcc0836f6f26ef56967c5f11
Author: Drazen Borkovic &lt;borkovic@users.noreply.github.com&gt;
Date:   Sun, 27 Aug 2017 12:49:03 -0700

Change one continue-testing loop from for to while

</content>
</entry>
<entry>
<id>292f79d2715d0e7cdcc0836f6f26ef56967c5f11</id>
<published>2017-08-27T00:01:35Z</published>
<updated>2017-08-27T00:01:35Z</updated>
<title>Formatting</title>
<link rel="alternate" type="text/html" href="https://src.$domain/rccommit/292f79d2715d0e7cdcc0836f6f26ef56967c5f11.html" />
<author>
<name>Drazen Borkovic</name>
<email>borkovic@users.noreply.github.com</email>
</author>
<content>commit 292f79d2715d0e7cdcc0836f6f26ef56967c5f11
parent 73c408f1358aba0ad50eca04c10e1fe06c969ccd
Author: Drazen Borkovic &lt;borkovic@users.noreply.github.com&gt;
Date:   Sat, 26 Aug 2017 17:01:35 -0700

Formatting

</content>
</entry>
<entry>
<id>73c408f1358aba0ad50eca04c10e1fe06c969ccd</id>
<published>2017-08-26T23:32:02Z</published>
<updated>2017-08-26T23:32:02Z</updated>
<title>Remove space at end of line</title>
<link rel="alternate" type="text/html" href="https://src.$domain/rccommit/73c408f1358aba0ad50eca04c10e1fe06c969ccd.html" />
<author>
<name>Drazen Borkovic</name>
<email>borkovic@users.noreply.github.com</email>
</author>
<content>commit 73c408f1358aba0ad50eca04c10e1fe06c969ccd
parent 9d1668acadbddc53c673e19d4213365e92b8dbee
Author: Drazen Borkovic &lt;borkovic@users.noreply.github.com&gt;
Date:   Sat, 26 Aug 2017 16:32:02 -0700

Remove space at end of line

</content>
</entry>
<entry>
<id>9d1668acadbddc53c673e19d4213365e92b8dbee</id>
<published>2017-08-26T23:21:39Z</published>
<updated>2017-08-26T23:21:39Z</updated>
<title>Add continue to man page</title>
<link rel="alternate" type="text/html" href="https://src.$domain/rccommit/9d1668acadbddc53c673e19d4213365e92b8dbee.html" />
<author>
<name>Drazen Borkovic</name>
<email>borkovic@users.noreply.github.com</email>
</author>
<content>commit 9d1668acadbddc53c673e19d4213365e92b8dbee
parent 2325713c2f574aa08b5ad1bb91a3e4ee30b6b0b5
Author: Drazen Borkovic &lt;borkovic@users.noreply.github.com&gt;
Date:   Sat, 26 Aug 2017 16:21:39 -0700

Add continue to man page

</content>
</entry>
<entry>
<id>2325713c2f574aa08b5ad1bb91a3e4ee30b6b0b5</id>
<published>2017-08-26T23:19:50Z</published>
<updated>2017-08-26T23:19:50Z</updated>
<title>Add &quot;continue&quot; builtin</title>
<link rel="alternate" type="text/html" href="https://src.$domain/rccommit/2325713c2f574aa08b5ad1bb91a3e4ee30b6b0b5.html" />
<author>
<name>Drazen Borkovic</name>
<email>borkovic@users.noreply.github.com</email>
</author>
<content>commit 2325713c2f574aa08b5ad1bb91a3e4ee30b6b0b5
parent 7dc3033c862c30d8998ed3e4c98c056286f31401
Author: Drazen Borkovic &lt;borkovic@users.noreply.github.com&gt;
Date:   Sat, 26 Aug 2017 16:19:50 -0700

Add &quot;continue&quot; builtin

</content>
</entry>
<entry>
<id>7dc3033c862c30d8998ed3e4c98c056286f31401</id>
<published>2017-08-25T19:46:09Z</published>
<updated>2017-08-25T19:46:09Z</updated>
<title>Merge pull request #21 from muennich/break-varstack</title>
<link rel="alternate" type="text/html" href="https://src.$domain/rccommit/7dc3033c862c30d8998ed3e4c98c056286f31401.html" />
<author>
<name>Toby Goodwin</name>
<email>toby@paccrat.org</email>
</author>
<content>commit 7dc3033c862c30d8998ed3e4c98c056286f31401
parent 1952b154af8f2afedbdb4b58bd1c6d9099b39973
Author: Toby Goodwin &lt;toby@paccrat.org&gt;
Date:   Fri, 25 Aug 2017 20:46:09 +0100

Merge pull request #21 from muennich/break-varstack

Fix breaking out of loops through local variable blocks
</content>
</entry>
<entry>
<id>1952b154af8f2afedbdb4b58bd1c6d9099b39973</id>
<published>2017-08-25T19:36:45Z</published>
<updated>2017-08-25T19:36:45Z</updated>
<title>use &quot;/bin/pwd -P&quot; - github #36</title>
<link rel="alternate" type="text/html" href="https://src.$domain/rccommit/1952b154af8f2afedbdb4b58bd1c6d9099b39973.html" />
<author>
<name>Toby Goodwin</name>
<email>toby@paccrat.org</email>
</author>
<content>commit 1952b154af8f2afedbdb4b58bd1c6d9099b39973
parent e42c481a6dd6d5b7977fcd7221267cceeeefbb86
Author: Toby Goodwin &lt;toby@paccrat.org&gt;
Date:   Fri, 25 Aug 2017 20:36:45 +0100

use &quot;/bin/pwd -P&quot; - github #36

</content>
</entry>
<entry>
<id>e42c481a6dd6d5b7977fcd7221267cceeeefbb86</id>
<published>2017-08-25T19:28:55Z</published>
<updated>2017-08-25T19:28:55Z</updated>
<title>add Casper</title>
<link rel="alternate" type="text/html" href="https://src.$domain/rccommit/e42c481a6dd6d5b7977fcd7221267cceeeefbb86.html" />
<author>
<name>Toby Goodwin</name>
<email>toby@paccrat.org</email>
</author>
<content>commit e42c481a6dd6d5b7977fcd7221267cceeeefbb86
parent dc80ccac672785085df2fe20cd3a2a2198f6decb
Author: Toby Goodwin &lt;toby@paccrat.org&gt;
Date:   Fri, 25 Aug 2017 20:28:55 +0100

add Casper

</content>
</entry>
<entry>
<id>dc80ccac672785085df2fe20cd3a2a2198f6decb</id>
<published>2017-06-23T22:10:35Z</published>
<updated>2017-06-23T22:10:35Z</updated>
<title>fix for github #32 readline loses track of term size</title>
<link rel="alternate" type="text/html" href="https://src.$domain/rccommit/dc80ccac672785085df2fe20cd3a2a2198f6decb.html" />
<author>
<name>Toby Goodwin</name>
<email>toby@paccrat.org</email>
</author>
<content>commit dc80ccac672785085df2fe20cd3a2a2198f6decb
parent d2a398257626faf73fd7a5326b31bbc3f613e3da
Author: Toby Goodwin &lt;toby@paccrat.org&gt;
Date:   Fri, 23 Jun 2017 23:10:35 +0100

fix for github #32 readline loses track of term size

</content>
</entry>
<entry>
<id>d2a398257626faf73fd7a5326b31bbc3f613e3da</id>
<published>2017-06-23T21:29:00Z</published>
<updated>2017-06-23T21:29:00Z</updated>
<title>fix prefix redir precedence bug, github #33</title>
<link rel="alternate" type="text/html" href="https://src.$domain/rccommit/d2a398257626faf73fd7a5326b31bbc3f613e3da.html" />
<author>
<name>Toby Goodwin</name>
<email>toby@paccrat.org</email>
</author>
<content>commit d2a398257626faf73fd7a5326b31bbc3f613e3da
parent dfc639b58490bc5c00da9c17e6c4dc367909b5e5
Author: Toby Goodwin &lt;toby@paccrat.org&gt;
Date:   Fri, 23 Jun 2017 22:29:00 +0100

fix prefix redir precedence bug, github #33

</content>
</entry>
<entry>
<id>dfc639b58490bc5c00da9c17e6c4dc367909b5e5</id>
<published>2017-06-23T21:20:02Z</published>
<updated>2017-06-23T21:20:02Z</updated>
<title>add failing test for github #33 counter intuitive redirection parse</title>
<link rel="alternate" type="text/html" href="https://src.$domain/rccommit/dfc639b58490bc5c00da9c17e6c4dc367909b5e5.html" />
<author>
<name>Toby Goodwin</name>
<email>toby@paccrat.org</email>
</author>
<content>commit dfc639b58490bc5c00da9c17e6c4dc367909b5e5
parent 1216df718969c0f856bce9e1adc64bce127eadd9
Author: Toby Goodwin &lt;toby@paccrat.org&gt;
Date:   Fri, 23 Jun 2017 22:20:02 +0100

add failing test for github #33 counter intuitive redirection parse

</content>
</entry>
<entry>
<id>1216df718969c0f856bce9e1adc64bce127eadd9</id>
<published>2017-06-23T21:16:23Z</published>
<updated>2017-06-23T21:16:47Z</updated>
<title>add parse tree dumper with --enable-develop</title>
<link rel="alternate" type="text/html" href="https://src.$domain/rccommit/1216df718969c0f856bce9e1adc64bce127eadd9.html" />
<author>
<name>Toby Goodwin</name>
<email>toby@paccrat.org</email>
</author>
<content>commit 1216df718969c0f856bce9e1adc64bce127eadd9
parent 29440403156f6afc4ace075d96407596dfea2daa
Author: Toby Goodwin &lt;toby@paccrat.org&gt;
Date:   Fri, 23 Jun 2017 22:16:23 +0100

add parse tree dumper with --enable-develop

</content>
</entry>
<entry>
<id>29440403156f6afc4ace075d96407596dfea2daa</id>
<published>2017-06-23T21:14:19Z</published>
<updated>2017-06-23T21:14:19Z</updated>
<title>reinstate yacc to the build process</title>
<link rel="alternate" type="text/html" href="https://src.$domain/rccommit/29440403156f6afc4ace075d96407596dfea2daa.html" />
<author>
<name>Toby Goodwin</name>
<email>toby@paccrat.org</email>
</author>
<content>commit 29440403156f6afc4ace075d96407596dfea2daa
parent 7fba14fa7e6e414c623894be2ef371c6ca41e473
Author: Toby Goodwin &lt;toby@paccrat.org&gt;
Date:   Fri, 23 Jun 2017 22:14:19 +0100

reinstate yacc to the build process

</content>
</entry>
<entry>
<id>7fba14fa7e6e414c623894be2ef371c6ca41e473</id>
<published>2017-05-26T21:50:41Z</published>
<updated>2017-05-26T21:50:41Z</updated>
<title>INSTALL is an artifact, so add to .gitignore</title>
<link rel="alternate" type="text/html" href="https://src.$domain/rccommit/7fba14fa7e6e414c623894be2ef371c6ca41e473.html" />
<author>
<name>Toby Goodwin</name>
<email>toby@paccrat.org</email>
</author>
<content>commit 7fba14fa7e6e414c623894be2ef371c6ca41e473
parent 5895c530562659ee5b547fe78fa65a380d5b0605
Author: Toby Goodwin &lt;toby@paccrat.org&gt;
Date:   Fri, 26 May 2017 22:50:41 +0100

INSTALL is an artifact, so add to .gitignore

</content>
</entry>
<entry>
<id>5895c530562659ee5b547fe78fa65a380d5b0605</id>
<published>2016-02-02T21:07:27Z</published>
<updated>2017-05-26T21:12:26Z</updated>
<title>fix typos</title>
<link rel="alternate" type="text/html" href="https://src.$domain/rccommit/5895c530562659ee5b547fe78fa65a380d5b0605.html" />
<author>
<name>Jakub Wilk</name>
<email>jwilk@jwilk.net</email>
</author>
<content>commit 5895c530562659ee5b547fe78fa65a380d5b0605
parent d8946406165ccfc458ff418aec465d67fa61ec1e
Author: Jakub Wilk &lt;jwilk@jwilk.net&gt;
Date:   Tue,  2 Feb 2016 22:07:27 +0100

fix typos

</content>
</entry>
<entry>
<id>d8946406165ccfc458ff418aec465d67fa61ec1e</id>
<published>2015-10-27T05:22:54Z</published>
<updated>2017-05-26T21:12:26Z</updated>
<title>When running rc on the following script, rc crashes. fn f1 { v=x {  }} fn f2 { f1  1;  f1  2 } f2 whatis</title>
<link rel="alternate" type="text/html" href="https://src.$domain/rccommit/d8946406165ccfc458ff418aec465d67fa61ec1e.html" />
<author>
<name>Drazen Borkovic</name>
<email>borkovic@users.noreply.github.com</email>
</author>
<content>commit d8946406165ccfc458ff418aec465d67fa61ec1e
parent 6eb8030b2dcc91cf689394056741f47408411d69
Author: Drazen Borkovic &lt;borkovic@users.noreply.github.com&gt;
Date:   Mon, 26 Oct 2015 22:22:54 -0700

When running rc on the following script, rc crashes.
    fn f1 { v=x {  }}
    fn f2 { f1  1;  f1  2 }
    f2
    whatis

Valgrind stack:
    ==10068== Invalid read of size 8
    ==10068==    at 0x40EFB1: varlookup (var.c:84)
    ==10068==    by 0x407B04: whatare_all_vars (hash.c:311)
    ==10068==    by 0x401E60: b_whatis (builtins.c:323)
    ==10068==    by 0x402E32: exec (exec.c:92)
    ==10068==    by 0x40F997: walk (walk.c:39)

The reason is that vp[h].p is freed in delete_var(), but the pointer is kept.
Later the pointer is found to be non-null and dereferenced causing the crash.

</content>
</entry>
<entry>
<id>6eb8030b2dcc91cf689394056741f47408411d69</id>
<published>2017-05-25T21:25:03Z</published>
<updated>2017-05-25T21:25:03Z</updated>
<title>remove trailing space</title>
<link rel="alternate" type="text/html" href="https://src.$domain/rccommit/6eb8030b2dcc91cf689394056741f47408411d69.html" />
<author>
<name>Toby Goodwin</name>
<email>toby@paccrat.org</email>
</author>
<content>commit 6eb8030b2dcc91cf689394056741f47408411d69
parent 08d7e12bb904e6e427605297b9f01c3bf95d8dac
Author: Toby Goodwin &lt;toby@paccrat.org&gt;
Date:   Thu, 25 May 2017 22:25:03 +0100

remove trailing space

</content>
</entry>
<entry>
<id>08d7e12bb904e6e427605297b9f01c3bf95d8dac</id>
<published>2017-05-13T05:14:57Z</published>
<updated>2017-05-25T21:23:17Z</updated>
<title>Man page explanation of the -e option include the test in the while() statement.</title>
<link rel="alternate" type="text/html" href="https://src.$domain/rccommit/08d7e12bb904e6e427605297b9f01c3bf95d8dac.html" />
<author>
<name>Drazen Borkovic</name>
<email>borkovic@users.noreply.github.com</email>
</author>
<content>commit 08d7e12bb904e6e427605297b9f01c3bf95d8dac
parent 03bfa8b5f639928fa3f003182a51ee263a8dcc91
Author: Drazen Borkovic &lt;borkovic@users.noreply.github.com&gt;
Date:   Fri, 12 May 2017 22:14:57 -0700

Man page explanation of the -e option include the test in the while() statement.

</content>
</entry>
<entry>
<id>03bfa8b5f639928fa3f003182a51ee263a8dcc91</id>
<published>2017-05-12T02:49:52Z</published>
<updated>2017-05-25T21:23:17Z</updated>
<title>Fix: &quot;rc -e&quot; exits if condition in while statement returns false the second time</title>
<link rel="alternate" type="text/html" href="https://src.$domain/rccommit/03bfa8b5f639928fa3f003182a51ee263a8dcc91.html" />
<author>
<name>Drazen Borkovic</name>
<email>borkovic@users.noreply.github.com</email>
</author>
<content>commit 03bfa8b5f639928fa3f003182a51ee263a8dcc91
parent 819db03616d13e2b3da646140d74a4879d46f8c8
Author: Drazen Borkovic &lt;borkovic@users.noreply.github.com&gt;
Date:   Thu, 11 May 2017 19:49:52 -0700

Fix: &quot;rc -e&quot; exits if condition in while statement returns false the second time

</content>
</entry>
<entry>
<id>819db03616d13e2b3da646140d74a4879d46f8c8</id>
<published>2017-05-25T21:21:48Z</published>
<updated>2017-05-25T21:21:48Z</updated>
<title>tidy up bootstrap: INSTALL is an artifact</title>
<link rel="alternate" type="text/html" href="https://src.$domain/rccommit/819db03616d13e2b3da646140d74a4879d46f8c8.html" />
<author>
<name>Toby Goodwin</name>
<email>toby@paccrat.org</email>
</author>
<content>commit 819db03616d13e2b3da646140d74a4879d46f8c8
parent 250c8ad26a4edb13623f492be0b608f9e02ba16c
Author: Toby Goodwin &lt;toby@paccrat.org&gt;
Date:   Thu, 25 May 2017 22:21:48 +0100

tidy up bootstrap: INSTALL is an artifact

</content>
</entry>
<entry>
<id>250c8ad26a4edb13623f492be0b608f9e02ba16c</id>
<published>2017-04-17T22:04:12Z</published>
<updated>2017-04-17T22:04:12Z</updated>
<title>document readline tilde expansion</title>
<link rel="alternate" type="text/html" href="https://src.$domain/rccommit/250c8ad26a4edb13623f492be0b608f9e02ba16c.html" />
<author>
<name>Toby Goodwin</name>
<email>toby@paccrat.org</email>
</author>
<content>commit 250c8ad26a4edb13623f492be0b608f9e02ba16c
parent 52b096b7ac9ffa8150fe0450ba76dbc3332a214e
Author: Toby Goodwin &lt;toby@paccrat.org&gt;
Date:   Mon, 17 Apr 2017 23:04:12 +0100

document readline tilde expansion

</content>
</entry>
<entry>
<id>52b096b7ac9ffa8150fe0450ba76dbc3332a214e</id>
<published>2017-04-17T20:59:45Z</published>
<updated>2017-04-17T21:01:02Z</updated>
<title>add some tests for unquoted equals</title>
<link rel="alternate" type="text/html" href="https://src.$domain/rccommit/52b096b7ac9ffa8150fe0450ba76dbc3332a214e.html" />
<author>
<name>Toby Goodwin</name>
<email>toby@paccrat.org</email>
</author>
<content>commit 52b096b7ac9ffa8150fe0450ba76dbc3332a214e
parent a4eddefec148f98c790e390d80fbd69811da48c7
Author: Toby Goodwin &lt;toby@paccrat.org&gt;
Date:   Mon, 17 Apr 2017 21:59:45 +0100

add some tests for unquoted equals

</content>
</entry>
<entry>
<id>a4eddefec148f98c790e390d80fbd69811da48c7</id>
<published>2016-09-15T20:39:41Z</published>
<updated>2017-04-17T21:01:02Z</updated>
<title>update parse.[ch]</title>
<link rel="alternate" type="text/html" href="https://src.$domain/rccommit/a4eddefec148f98c790e390d80fbd69811da48c7.html" />
<author>
<name>Toby Goodwin</name>
<email>toby@paccrat.org</email>
</author>
<content>commit a4eddefec148f98c790e390d80fbd69811da48c7
parent d0ee32e585437b76f095379ec84fd753a5d30a3c
Author: Toby Goodwin &lt;toby@paccrat.org&gt;
Date:   Thu, 15 Sep 2016 21:39:41 +0100

update parse.[ch]

</content>
</entry>
<entry>
<id>d0ee32e585437b76f095379ec84fd753a5d30a3c</id>
<published>2016-02-27T19:52:33Z</published>
<updated>2017-04-17T21:01:02Z</updated>
<title>Parse equals sign as keyword</title>
<link rel="alternate" type="text/html" href="https://src.$domain/rccommit/d0ee32e585437b76f095379ec84fd753a5d30a3c.html" />
<author>
<name>Bert Münnich</name>
<email>ber.t@posteo.de</email>
</author>
<content>commit d0ee32e585437b76f095379ec84fd753a5d30a3c
parent d260301ae1c54fb68c0849e1895c0958f55942ef
Author: Bert Münnich &lt;ber.t@posteo.de&gt;
Date:   Sat, 27 Feb 2016 20:52:33 +0100

Parse equals sign as keyword

The parser treats unexpected keyword tokens (eg. if, while, ~) as literals and
not as syntax errors. It does not do this for the equals sign, but it could, as
it only has a special meaning at the beginning of a command, much like the
keywords. Doing this allows one to write commands like this:

    dd if&#39;=&#39;/dev/zero of&#39;=&#39;data bs&#39;=&#39;1024 count&#39;=&#39;1

without the quotes around the equals signs. All shells from the Bourne family
do this.

For this to work, the lexer must not automatically terminate words at equals
signs, instead it has to generate a free caret around it like for the twiddle
and other such special characters.

In the parser&#39;s grammar we need to get rid of the left recursion in the rules
for &#39;simple&#39; to turn the reduce/reduce conflict at &#39;first&#39; on &#39;=&#39; (empty -&gt;
&#39;optcaret&#39; or &#39;first&#39; -&gt; &#39;simple&#39;) into a shift/reduce conflict, which then
can be solved with precedence/associativity so that the reduction of the
empty &#39;optcaret&#39; wins over shifting &#39;=&#39;.

</content>
</entry>
<entry>
<id>d260301ae1c54fb68c0849e1895c0958f55942ef</id>
<published>2017-04-17T20:23:44Z</published>
<updated>2017-04-17T20:32:33Z</updated>
<title>improve lshift function in man page</title>
<link rel="alternate" type="text/html" href="https://src.$domain/rccommit/d260301ae1c54fb68c0849e1895c0958f55942ef.html" />
<author>
<name>Toby Goodwin</name>
<email>toby@paccrat.org</email>
</author>
<content>commit d260301ae1c54fb68c0849e1895c0958f55942ef
parent 4ac92d8074388d1b9e70b0533469d1b82c71ba95
Author: Toby Goodwin &lt;toby@paccrat.org&gt;
Date:   Mon, 17 Apr 2017 21:23:44 +0100

improve lshift function in man page

</content>
</entry>
<entry>
<id>4ac92d8074388d1b9e70b0533469d1b82c71ba95</id>
<published>2017-04-17T20:23:26Z</published>
<updated>2017-04-17T20:32:33Z</updated>
<title>add &quot;rc: &quot; prefix to &quot;cannot shift&quot; error</title>
<link rel="alternate" type="text/html" href="https://src.$domain/rccommit/4ac92d8074388d1b9e70b0533469d1b82c71ba95.html" />
<author>
<name>Toby Goodwin</name>
<email>toby@paccrat.org</email>
</author>
<content>commit 4ac92d8074388d1b9e70b0533469d1b82c71ba95
parent 89f1e1b445c2c50ffb61fa1327e11c475eb1b57f
Author: Toby Goodwin &lt;toby@paccrat.org&gt;
Date:   Mon, 17 Apr 2017 21:23:26 +0100

add &quot;rc: &quot; prefix to &quot;cannot shift&quot; error

</content>
</entry>
</feed>
