diff options
author | Kaz Kylheku <kaz@kylheku.com> | 2014-03-07 00:03:48 -0800 |
---|---|---|
committer | Kaz Kylheku <kaz@kylheku.com> | 2014-03-07 00:03:48 -0800 |
commit | 82a698d3339cfd92912d02484e1d67e792212ecf (patch) | |
tree | 785e85c5e71536ab19929f4043205c593857db66 /lib.h | |
parent | e729bd054e479bae074ed46df06f0c169db2fcc7 (diff) | |
download | txr-82a698d3339cfd92912d02484e1d67e792212ecf.tar.gz txr-82a698d3339cfd92912d02484e1d67e792212ecf.tar.bz2 txr-82a698d3339cfd92912d02484e1d67e792212ecf.zip |
* lib.c (upop): New function.
* lib.h (upop): Declared.
* txr.c (txr_main): Two bugfixes. One is that the argument -
was being pushed back twice resulting in *args* being ("-" "-").
This is because the option processing loop checked for "-" and pushed
it back into args, and then some logic after the loop pushed arg back
into args again. But, these pushes were wrong because they push
back a different cons cell; we would like to be able to
do (ldiff *full-args* *args*). This is solved by upop, which provides
one element of undo. After upop, we can restore the prior list
from the undo save location.
Diffstat (limited to 'lib.h')
-rw-r--r-- | lib.h | 1 |
1 files changed, 1 insertions, 0 deletions
@@ -385,6 +385,7 @@ val *tail(val cons); val *lastcons(val list); val *ltail(val *cons); val pop(val *plist); +val upop(val *plist, val *pundo); val push(val v, val *plist); val copy_list(val list); val make_like(val list, val thatobj); |