summaryrefslogtreecommitdiffstats
path: root/ChangeLog
diff options
context:
space:
mode:
authorKaz Kylheku <kaz@kylheku.com>2012-03-31 16:00:52 -0700
committerKaz Kylheku <kaz@kylheku.com>2012-03-31 16:00:52 -0700
commit13a861377a55a77d2ad2072fd700b720aa71d4d0 (patch)
treebd4818196f87985f47169030885bdbd59ecddd16 /ChangeLog
parentb7f1f4c5bbea86e288b6a4d68595c1d2d07217bd (diff)
downloadtxr-13a861377a55a77d2ad2072fd700b720aa71d4d0.tar.gz
txr-13a861377a55a77d2ad2072fd700b720aa71d4d0.tar.bz2
txr-13a861377a55a77d2ad2072fd700b720aa71d4d0.zip
If one of the blocks which are subordinate to a @(trailer)
happen to request a successful termination by invoking @(accept) the position must not advance into the trailer material. * match.c (v_trailer): Added an unwind protect which detects that an accept is taking place and adjusts the return value to restrict the input position at the point given to trailer. (accept_fail): Use uw_block_return_proto instead of uw_block_return and pass the symbol as the protocol identifier. * unwind.c (uw_current_exit_point): New function. (uw_block_return): Function renamed to uw_block_return_proto; takes new parameter which is stored in the block structure. * unwind.h (struct uw_block): New member, protocol. (uw_block_return): Becomes an inline wrapper for uw_block_return_proto. (uw_block_return_proto, uw_current_exit_point): Declared. * txr.1: Interaction between @(trailer) and @(accept) documented.
Diffstat (limited to 'ChangeLog')
-rw-r--r--ChangeLog22
1 files changed, 22 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index 917475c7..dd83bed4 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,25 @@
+2012-03-31 Kaz Kylheku <kaz@kylheku.com>
+
+ If one of the blocks which are subordinate to a @(trailer)
+ happen to request a successful termination by invoking @(accept)
+ the position must not advance into the trailer material.
+
+ * match.c (v_trailer): Added an unwind protect which
+ detects that an accept is taking place and adjusts the return value to
+ restrict the input position at the point given to trailer.
+ (accept_fail): Use uw_block_return_proto instead of uw_block_return
+ and pass the symbol as the protocol identifier.
+
+ * unwind.c (uw_current_exit_point): New function.
+ (uw_block_return): Function renamed to uw_block_return_proto;
+ takes new parameter which is stored in the block structure.
+
+ * unwind.h (struct uw_block): New member, protocol.
+ (uw_block_return): Becomes an inline wrapper for uw_block_return_proto.
+ (uw_block_return_proto, uw_current_exit_point): Declared.
+
+ * txr.1: Interaction between @(trailer) and @(accept) documented.
+
2012-03-30 Kaz Kylheku <kaz@kylheku.com>
* match.c (h_var): Disallow the variable named by the symbol t