[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] 01/01: [gnugo sgf int] Add abstractions: >>prop, >>node, >>tree
From: |
Thien-Thi Nguyen |
Subject: |
[elpa] 01/01: [gnugo sgf int] Add abstractions: >>prop, >>node, >>tree |
Date: |
Fri, 14 Mar 2014 07:36:03 +0000 |
ttn pushed a commit to branch master
in repository elpa.
commit 5a907b7ee6fe4f201254aceb2d3f4c15eba712ee
Author: Thien-Thi Nguyen <address@hidden>
Date: Fri Mar 14 08:11:15 2014 +0100
[gnugo sgf int] Add abstractions: >>prop, >>node, >>tree
* packages/gnugo/gnugo.el (gnugo/sgf-write-file):
...here, as internal funcs via ‘cl-labels’.
---
packages/gnugo/gnugo.el | 57 +++++++++++++++++++++++++++-------------------
1 files changed, 33 insertions(+), 24 deletions(-)
diff --git a/packages/gnugo/gnugo.el b/packages/gnugo/gnugo.el
index 7b8b829..af71c59 100644
--- a/packages/gnugo/gnugo.el
+++ b/packages/gnugo/gnugo.el
@@ -2191,32 +2191,41 @@ starting a new one. See `gnugo-board-mode'
documentation for more info."
((< 60 (current-column))
(save-excursion
(goto-char p)
- (insert "\n"))))))
+ (insert "\n")))))
+ (>>prop (prop)
+ (setq p (point)
+ name (car prop)
+ v (cdr prop))
+ (insert (substring (symbol-name name) 1))
+ (cond ((not v))
+ ((and (consp v)
+ (setq spec (cdr (assq name specs)))
+ (memq (car spec)
+ '(list elist)))
+ (>>nl)
+ (let ((>> (if (consp (cadr spec))
+ #'>>two
+ #'>>one)))
+ (dolist (little-v v)
+ (setq p (point))
+ (funcall >> little-v)
+ (>>nl))))
+ ((consp v)
+ (>>two v) (>>nl))
+ (t
+ (>>one v) (>>nl))))
+ (>>node (node)
+ (loop initially (insert ";")
+ for prop in node
+ do (>>prop prop)))
+ (>>tree (tree)
+ (insert "(")
+ (dolist (node tree)
+ (>>node node))
+ (insert ")\n")))
(with-temp-buffer
(dolist (tree collection)
- (insert "(")
- (dolist (node tree)
- (insert ";")
- (dolist (prop node)
- (setq p (point)
- name (car prop)
- v (cdr prop))
- (insert (substring (symbol-name name) 1))
- (cond ((not v))
- ((and (consp v)
- (memq (car (setq spec (cdr (assq name specs))))
- '(list elist)))
- (>>nl)
- (let ((>> (if (consp (cadr spec))
- #'>>two
- #'>>one)))
- (dolist (little-v v)
- (setq p (point)) (funcall >> little-v) (>>nl))))
- ((consp v)
- (>>two v) (>>nl))
- (t
- (>>one v) (>>nl)))))
- (insert ")\n"))
+ (>>tree tree))
(write-file filename)))))
;;; gnugo.el ends here