]> git.ozlabs.org Git - ccan/commitdiff
runes: allow underscores in field names, as per Python runes 0.6
authorRusty Russell <rusty@rustcorp.com.au>
Tue, 30 May 2023 03:03:07 +0000 (12:33 +0930)
committerRusty Russell <rusty@rustcorp.com.au>
Tue, 30 May 2023 03:03:07 +0000 (12:33 +0930)
Suggested-by: @niftynei
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
ccan/rune/coding.c
ccan/rune/test/run.c
ccan/rune/test/test_vectors.csv

index f4d110283245cfa5db4e486f283cfdb7bd709c90..495d37c34e313e6a754f9e310f7d74a77f22e522 100644 (file)
@@ -206,7 +206,7 @@ bool rune_condition_is_valid(enum rune_condition cond)
 size_t rune_altern_fieldname_len(const char *alternstr, size_t alternstrlen)
 {
        for (size_t i = 0; i < alternstrlen; i++) {
-               if (cispunct(alternstr[i]))
+               if (cispunct(alternstr[i]) && alternstr[i] != '_')
                        return i;
        }
        return alternstrlen;
index e532655284dbade2701fe22f0d156efa937c65f1..d90b701c609cc48401029f8988e97dfe660f7f21 100644 (file)
@@ -43,7 +43,7 @@ int main(void)
        assert(vecs);
        lines = tal_strsplit(mr, take(vecs), "\n", STR_NO_EMPTY);
 
-       plan_tests(343);
+       plan_tests(355);
 
        for (size_t i = 0; lines[i]; i++) {
                struct rune *rune1, *rune2;
index a8411693c60533b1cebd41d05246bab50b76fde8..880ea3c69f3ce441fd81229fecc6bc4ba64e2c26 100644 (file)
@@ -94,6 +94,12 @@ PASS,f1=
 PASS,f1=/
 PASS,f1=11
 PASS
+VALID,f_with_underscores equals v1,ee979e1f2c376d69923aab0e8e001111963af038bdce394ffd7ecdc9e7020a6e:f_with_underscores=v1,7peeHyw3bWmSOqsOjgAREZY68Di9zjlP_X7NyecCCm5mX3dpdGhfdW5kZXJzY29yZXM9djE=
+PASS,f_with_underscores=v1
+FAIL,f_with_underscores=v
+FAIL,f_with_underscores=v1a
+FAIL
+FAIL,f2=f_with_underscores
 VALID,f1=1 or f2=3,85c3643dc102f0a0d6f20eeb8c294092151688fae41ef7c8ec7272ab23918376:f1=1|f2=3,hcNkPcEC8KDW8g7rjClAkhUWiPrkHvfI7HJyqyORg3ZmMT0xfGYyPTM=
 PASS,f1=1
 PASS,f1=1,f2=2
@@ -144,7 +150,6 @@ MALFORMED,Bad condition ?,76bdd625de0e12058956e6c8a07cac58d7dc2253609a6bfb959f87
 MALFORMED,Bad condition [,76bdd625de0e12058956e6c8a07cac58d7dc2253609a6bfb959f87cc094f3f0f:f1[11,dr3WJd4OEgWJVubIoHysWNfcIlNgmmv7lZ-HzAlPPw9mMVsxMQ==
 MALFORMED,Bad condition \,76bdd625de0e12058956e6c8a07cac58d7dc2253609a6bfb959f87cc094f3f0f:f1\11,dr3WJd4OEgWJVubIoHysWNfcIlNgmmv7lZ-HzAlPPw9mMVwxMQ==
 MALFORMED,Bad condition ],76bdd625de0e12058956e6c8a07cac58d7dc2253609a6bfb959f87cc094f3f0f:f1]11,dr3WJd4OEgWJVubIoHysWNfcIlNgmmv7lZ-HzAlPPw9mMV0xMQ==
-MALFORMED,Bad condition _,76bdd625de0e12058956e6c8a07cac58d7dc2253609a6bfb959f87cc094f3f0f:f1_11,dr3WJd4OEgWJVubIoHysWNfcIlNgmmv7lZ-HzAlPPw9mMV8xMQ==
 MALFORMED,Bad condition `,76bdd625de0e12058956e6c8a07cac58d7dc2253609a6bfb959f87cc094f3f0f:f1`11,dr3WJd4OEgWJVubIoHysWNfcIlNgmmv7lZ-HzAlPPw9mMWAxMQ==
 MALFORMED,Bad condition |,76bdd625de0e12058956e6c8a07cac58d7dc2253609a6bfb959f87cc094f3f0f:f1|11,dr3WJd4OEgWJVubIoHysWNfcIlNgmmv7lZ-HzAlPPw9mMXwxMQ==
 BAD DERIVATION,Incremented sha,76bdd625de0e12058956e6c8a07cac58d7dc2253609a6bfb959f87cc094f3f0e:f1#11,dr3WJd4OEgWJVubIoHysWNfcIlNgmmv7lZ-HzAlPPw5mMSMxMQ==