ttn pushed a commit to branch master in repository elpa. commit 235a70f6f675d86b65cc4daba5a5187b6ec5751b Author: Thien-Thi Nguyen <t...@gnu.org> Date: Tue Mar 11 05:40:05 2014 +0100
[gnugo] Make ‘C-u M-u’ switch roles. * packages/gnugo/gnugo.el (gnugo-undo-one-move): Add optional arg SWITCH; if specified, arrange for user to play the color of the next move (and GNU Go the opposite). --- packages/gnugo/NEWS | 1 + packages/gnugo/gnugo.el | 19 ++++++++++++++++--- 2 files changed, 17 insertions(+), 3 deletions(-) diff --git a/packages/gnugo/NEWS b/packages/gnugo/NEWS index d321bca..5f33ce3 100644 --- a/packages/gnugo/NEWS +++ b/packages/gnugo/NEWS @@ -10,6 +10,7 @@ Hint: (highlight-phrase "[0-9][.][0-9][.][0-9]+\\|[0-9]+[.][.][0-9]+" - next | NOT YET RELEASED - new keybinding for ‘gnugo-undo-one-move’: M-u + - ‘gnugo-undo-one-move’ can optionally switch colors - performance improvements - 2.3.1 | 2014-02-27 diff --git a/packages/gnugo/gnugo.el b/packages/gnugo/gnugo.el index 00de3f1..3cfdabf 100644 --- a/packages/gnugo/gnugo.el +++ b/packages/gnugo/gnugo.el @@ -1415,13 +1415,26 @@ turn to play. Optional second arg NOALT non-nil inhibits this." (when (and ulastp (not noalt)) (gnugo-get-move (gnugo-get :gnugo-color)))))) -(defun gnugo-undo-one-move () +(defun gnugo-undo-one-move (&optional switch) "Undo exactly one move (perhaps GNU Go's, perhaps yours). Do not schedule a move by GNU Go even if it is GNU Go's turn to play. +Prefix arg SWITCH means to arrange for you to play +the color of the next move (and GNU Go the opposite). +This is useful after loading an SGF file whose last +move was done by the color you prefer to play: + \\[gnugo-read-sgf-file] FILENAME RET + C-u \\[gnugo-undo-one-move] + See also `gnugo-undo-two-moves'." - (interactive) + (interactive "P") (gnugo-gate) - (gnugo-magic-undo 1 t)) + (gnugo-magic-undo 1 t) + (when switch + (let* ((wait (gnugo-get :last-mover)) + (play (gnugo-other wait))) + (gnugo--who-is-who wait play (string= play (gnugo-get :user-color))) + (gnugo-put :user-color play) + (gnugo-put :gnugo-color wait)))) (defun gnugo-undo-two-moves () "Undo a pair of moves (GNU Go's and yours).