branch: externals/yaml
commit 70429bd21bfeb70e67a2548f47e73dd10b3b08ce
Author: Zachary Romero <zacrom...@posteo.net>
Commit: Zachary Romero <zacrom...@posteo.net>

    Fix s-l+block-indented bug; fix auto-detect-indent bug
---
 yaml-tests.el |  7 +++----
 yaml.el       | 17 ++++++++++-------
 2 files changed, 13 insertions(+), 11 deletions(-)

diff --git a/yaml-tests.el b/yaml-tests.el
index 74225e3826..5079a582f1 100644
--- a/yaml-tests.el
+++ b/yaml-tests.el
@@ -480,9 +480,8 @@ clip: |
 keep: |+
   text
 "))
-
-  ()
-
-  )
+  (should (yaml-parse-string "block sequence:
+  - one
+  - two : three")))
 
 (provide 'yaml-tests)
diff --git a/yaml.el b/yaml.el
index 26bd8f1abb..a5c8e86f0c 100644
--- a/yaml.el
+++ b/yaml.el
@@ -792,7 +792,7 @@ This flag is intended for development purposes.")
              slice))
          (pre (match-string 1 slice))
          (m (length (match-string 2 slice))))
-    (if (and in-seq (not pre))
+    (if (and in-seq (= (length pre) 0))
         (when (= n -1)
           (setq m (1+ m)))
       (setq m (- m n)))
@@ -1313,11 +1313,13 @@ Rules for this function are defined by the yaml-spec 
JSON file."
 
    ((eq state 'l-trail-comments) (let ((n (nth 0 args))) (yaml--frame 
"l-trail-comments" (yaml--all (yaml--parse-from-grammar 's-indent-lt n) 
(yaml--parse-from-grammar 'c-nb-comment-text) (yaml--parse-from-grammar 
'b-comment) (yaml--rep2 0 nil (lambda () (yaml--parse-from-grammar 
'l-comment)))))))
    ((eq state 'ns-flow-map-yaml-key-entry) (let ((n (nth 0 args)) (c (nth 1 
args))) (yaml--frame "ns-flow-map-yaml-key-entry" (yaml--all 
(yaml--parse-from-grammar 'ns-flow-yaml-node n c) (yaml--any (yaml--all 
(yaml--rep 0 1 (lambda () (yaml--parse-from-grammar 's-separate n c))) 
(yaml--parse-from-grammar 'c-ns-flow-map-separate-value n c)) 
(yaml--parse-from-grammar 'e-node))))))
+
    ((eq state 's-indent)
     (let ((n (nth 0 args)))
       (message "debug: s-indent: %d %s" n (yaml--slice yaml--parsing-position))
       (yaml--frame "s-indent"
         (yaml--rep n n (lambda () (yaml--parse-from-grammar 's-space))))))
+
    ((eq state 'ns-esc-line-separator) (yaml--frame "ns-esc-line-separator" 
(yaml--chr ?\L)))
    ((eq state 'ns-flow-yaml-node)
     (let ((n (nth 0 args)) (c (nth 1 args)))
@@ -1543,12 +1545,13 @@ Rules for this function are defined by the yaml-spec 
JSON file."
 
    ((eq state 's-l+block-indented)
     (yaml--frame "s-l+block-indented"
-                 (yaml--any (yaml--all (yaml--parse-from-grammar 's-indent 
(yaml--state-curr-m))
-                                       (yaml--any (yaml--parse-from-grammar 
'ns-l-compact-sequence (+ (nth 0 args) (+ 1 (yaml--state-curr-m))))
-                                                  (yaml--parse-from-grammar 
'ns-l-compact-mapping (+ (nth 0 args) (+ 1 (yaml--state-curr-m))))))
-                            (yaml--parse-from-grammar 's-l+block-node (nth 0 
args) (nth 1 args))
-                            (yaml--all (yaml--parse-from-grammar 'e-node)
-                                       (yaml--parse-from-grammar 
's-l-comments)))))
+      (let ((m (yaml--auto-detect-indent (nth 0 args))))
+        (yaml--any (yaml--all (yaml--parse-from-grammar 's-indent m)
+                              (yaml--any (yaml--parse-from-grammar 
'ns-l-compact-sequence (+ (nth 0 args) (+ 1 m)))
+                                         (yaml--parse-from-grammar 
'ns-l-compact-mapping (+ (nth 0 args) (+ 1 m)))))
+                   (yaml--parse-from-grammar 's-l+block-node (nth 0 args) (nth 
1 args))
+                   (yaml--all (yaml--parse-from-grammar 'e-node)
+                              (yaml--parse-from-grammar 's-l-comments))))))
 
    ((eq state 'c-single-quote) (yaml--frame "c-single-quote" (yaml--chr ?\')))
    ((eq state 's-flow-line-prefix) (let ((n (nth 0 args))) (yaml--frame 
"s-flow-line-prefix" (yaml--all (yaml--parse-from-grammar 's-indent n) 
(yaml--rep 0 1 (lambda () (yaml--parse-from-grammar 's-separate-in-line)))))))

Reply via email to