Subject: 26.1; gomoku.el: Fix character movement
From: Asher Gordon <[email-masked]>
To: [email-masked]
Date: Sat, 21 Mar 2020 13:20:57 -0400
List-Id: <debbugs-submit.debbugs.gnu.org>

Hello,

I found a bug in gomoku.el. When 'b' or 'u' is pressed, it does not work
as expected (to move south-west or north-east respectively). Instead,
they move down or up (they are bound to the correct functions;
`gomoku-move-sw' and `gomoku-move-ne' respectively).

Strangely, `gomoku-move-se' and `gomoku-move-nw' work correctly. I'm not
sure why this is, but in any case, the attached patch fixes the bug.

Thanks,
Asher

-- 
I hate quotations.
                -- Ralph Waldo Emerson
                               --------
I prefer to send and receive mail encrypted. Please send me your
public key, and if you do not have my public key, please let me
know. Thanks.

GPG fingerprint: 38F3 975C D173 4037 B397  8095 D4C9 C4FC 5460 8E68

In GNU Emacs 26.1 (build 2, x86_64-pc-linux-gnu, GTK+ Version 3.24.11)
 of 2019-09-08, modified by Debian built on x86-ubc-02
System Description:	Debian GNU/Linux bullseye/sid

Recent messages:
Loading paren...done
Battery status not available
For information about GNU Emacs and the GNU system, type C-h C-a.
Making completion list... [2 times]
Loading /home/asher/gomoku.el (source)...done
One moment, please...
Do you allow me to play first? (y or n) n
Your move?  (Move to a free square and hit X, RET ...)
Type M-x delete-other-windows to delete the help window.
Making completion list...

Configured using:
 'configure --build x86_64-linux-gnu --prefix=/usr
 --sharedstatedir=/var/lib --libexecdir=/usr/lib
 --localstatedir=/var/lib --infodir=/usr/share/info
 --mandir=/usr/share/man --enable-libsystemd --with-pop=yes
 --enable-locallisppath=/etc/emacs:/usr/local/share/emacs/26.1/site-lisp:/usr/local/share/emacs/site-lisp:/usr/share/emacs/26.1/site-lisp:/usr/share/emacs/site-lisp
 --with-sound=alsa --without-gconf --with-mailutils --build
 x86_64-linux-gnu --prefix=/usr --sharedstatedir=/var/lib
 --libexecdir=/usr/lib --localstatedir=/var/lib
 --infodir=/usr/share/info --mandir=/usr/share/man --enable-libsystemd
 --with-pop=yes
 --enable-locallisppath=/etc/emacs:/usr/local/share/emacs/26.1/site-lisp:/usr/local/share/emacs/site-lisp:/usr/share/emacs/26.1/site-lisp:/usr/share/emacs/site-lisp
 --with-sound=alsa --without-gconf --with-mailutils --with-x=yes
 --with-x-toolkit=gtk3 --with-toolkit-scroll-bars 'CFLAGS=-g -O2
 -fdebug-prefix-map=/build/emacs-iJm1BQ/emacs-26.1+1=. -fstack-protector-strong
 -Wformat -Werror=format-security -Wall' 'CPPFLAGS=-Wdate-time
 -D_FORTIFY_SOURCE=2' LDFLAGS=-Wl,-z,relro'

Configured features:
XPM JPEG TIFF GIF PNG RSVG IMAGEMAGICK SOUND GPM DBUS GSETTINGS NOTIFY
ACL LIBSELINUX GNUTLS LIBXML2 FREETYPE M17N_FLT LIBOTF XFT ZLIB
TOOLKIT_SCROLL_BARS GTK3 X11 THREADS LIBSYSTEMD LCMS2

Important settings:
  value of $LANG: en_US.UTF-8
  locale-coding-system: utf-8-unix

Major mode: Fundamental

Minor modes in effect:
  gpm-mouse-mode: t
  display-time-mode: t
  global-undo-tree-mode: t
  autopair-global-mode: t
  show-paren-mode: t
  savehist-mode: t
  tooltip-mode: t
  global-eldoc-mode: t
  electric-indent-mode: t
  mouse-wheel-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t
  buffer-read-only: t
  line-number-mode: t
  transient-mark-mode: t

Load-path shadows:
/usr/share/emacs/site-lisp/gcl/smart-complete hides /usr/share/emacs/site-lisp/maxima/smart-complete
/usr/share/emacs/site-lisp/gcl/sshell hides /usr/share/emacs/site-lisp/maxima/sshell
/usr/share/emacs/site-lisp/llvm/emacs hides /usr/share/emacs/site-lisp/llvm-8/emacs
/usr/share/emacs/site-lisp/llvm/llvm-mode hides /usr/share/emacs/site-lisp/llvm-8/llvm-mode
/usr/share/emacs/site-lisp/llvm/tablegen-mode hides /usr/share/emacs/site-lisp/llvm-8/tablegen-mode
/usr/share/emacs/site-lisp/elpa/debian-el-37/debian-autoloads hides /usr/share/emacs/site-lisp/elpa/dpkg-dev-el-37.0/debian-autoloads
/usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/rotor-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/rotor-theme
/usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/matrix-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/matrix-theme
/usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/dark-blue2-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/dark-blue2-theme
/usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/standard-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/standard-theme
/usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/classic-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/classic-theme
/usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/aalto-light-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/aalto-light-theme
/usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/emacs-nw-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/emacs-nw-theme
/usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/blue-eshell-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/blue-eshell-theme
/usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/late-night-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/late-night-theme
/usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/dark-gnus-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/dark-gnus-theme
/usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/shaman-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/shaman-theme
/usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/julie-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/julie-theme
/usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/raspopovic-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/raspopovic-theme
/usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/andreas-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/andreas-theme
/usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/aliceblue-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/aliceblue-theme
/usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/mistyday-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/mistyday-theme
/usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/dark-erc-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/dark-erc-theme
/usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/tty-dark-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/tty-dark-theme
/usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/gray30-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/gray30-theme
/usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/color-theme-modern hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/color-theme-modern
/usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/ramangalahy-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/ramangalahy-theme
/usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/dark-info-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/dark-info-theme
/usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/infodoc-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/infodoc-theme
/usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/lawrence-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/lawrence-theme
/usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/high-contrast-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/high-contrast-theme
/usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/deep-blue-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/deep-blue-theme
/usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/retro-orange-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/retro-orange-theme
/usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/jedit-grey-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/jedit-grey-theme
/usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/scintilla-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/scintilla-theme
/usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/blippblopp-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/blippblopp-theme
/usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/beige-diff-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/beige-diff-theme
/usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/charcoal-black-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/charcoal-black-theme
/usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/jsc-light-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/jsc-light-theme
/usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/marquardt-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/marquardt-theme
/usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/pok-wob-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/pok-wob-theme
/usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/lethe-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/lethe-theme
/usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/aalto-dark-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/aalto-dark-theme
/usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/salmon-font-lock-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/salmon-font-lock-theme
/usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/jsc-light2-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/jsc-light2-theme
/usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/arjen-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/arjen-theme
/usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/dark-laptop-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/dark-laptop-theme
/usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/katester-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/katester-theme
/usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/oswald-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/oswald-theme
/usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/resolve-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/resolve-theme
/usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/blue-mood-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/blue-mood-theme
/usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/sitaramv-nt-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/sitaramv-nt-theme
/usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/blue-gnus-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/blue-gnus-theme
/usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/whateveryouwant-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/whateveryouwant-theme
/usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/gray1-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/gray1-theme
/usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/jsc-dark-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/jsc-dark-theme
/usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/robin-hood-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/robin-hood-theme
/usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/blue-erc-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/blue-erc-theme
/usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/black-on-gray-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/black-on-gray-theme
/usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/word-perfect-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/word-perfect-theme
/usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/dark-font-lock-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/dark-font-lock-theme
/usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/snow-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/snow-theme
/usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/standard-ediff-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/standard-ediff-theme
/usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/pok-wog-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/pok-wog-theme
/usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/xp-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/xp-theme
/usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/wheat-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/wheat-theme
/usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/cobalt-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/cobalt-theme
/usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/retro-green-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/retro-green-theme
/usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/dark-blue-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/dark-blue-theme
/usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/sitaramv-solaris-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/sitaramv-solaris-theme
/usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/montz-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/montz-theme
/usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/vim-colors-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/vim-colors-theme
/usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/taylor-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/taylor-theme
/usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/billw-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/billw-theme
/usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/fischmeister-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/fischmeister-theme
/usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/xemacs-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/xemacs-theme
/usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/subtle-hacker-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/subtle-hacker-theme
/usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/simple-1-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/simple-1-theme
/usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/blue-sea-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/blue-sea-theme
/usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/emacs-21-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/emacs-21-theme
/usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/snowish-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/snowish-theme
/usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/color-theme-modern-pkg hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/color-theme-modern-pkg
/usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/gtk-ide-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/gtk-ide-theme
/usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/jonadabian-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/jonadabian-theme
/usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/digital-ofs1-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/digital-ofs1-theme
/usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/desert-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/desert-theme
/usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/goldenrod-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/goldenrod-theme
/usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/ryerson-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/ryerson-theme
/usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/euphoria-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/euphoria-theme
/usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/greiner-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/greiner-theme
/usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/pierson-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/pierson-theme
/usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/hober-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/hober-theme
/usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/calm-forest-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/calm-forest-theme
/usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/parus-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/parus-theme
/usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/marine-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/marine-theme
/usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/kingsajz-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/kingsajz-theme
/usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/beige-eshell-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/beige-eshell-theme
/usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/taming-mr-arneson-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/taming-mr-arneson-theme
/usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/renegade-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/renegade-theme
/usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/clarity-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/clarity-theme
/usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/jonadabian-slate-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/jonadabian-slate-theme
/usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/dark-green-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/dark-green-theme
/usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/jb-simple-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/jb-simple-theme
/usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/midnight-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/midnight-theme
/usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/salmon-diff-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/salmon-diff-theme
/usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/ld-dark-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/ld-dark-theme
/usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/gnome2-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/gnome2-theme
/usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/bharadwaj-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/bharadwaj-theme
/usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/subdued-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/subdued-theme
/usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/feng-shui-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/feng-shui-theme
/usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/railscast-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/railscast-theme
/usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/gnome-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/gnome-theme
/usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/subtle-blue-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/subtle-blue-theme
/usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/color-theme-modern-autoloads hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/color-theme-modern-autoloads
/usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/bharadwaj-slate-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/bharadwaj-slate-theme
/usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/comidia-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/comidia-theme
/usr/share/emacs/site-lisp/elpa/debian-el-37/apt-utils hides /usr/share/emacs/site-lisp/elpa-src/debian-el-37/apt-utils
/usr/share/emacs/site-lisp/elpa/debian-el-37/debian-el-autoloads hides /usr/share/emacs/site-lisp/elpa-src/debian-el-37/debian-el-autoloads
/usr/share/emacs/site-lisp/elpa/debian-el-37/gnus-BTS hides /usr/share/emacs/site-lisp/elpa-src/debian-el-37/gnus-BTS
/usr/share/emacs/site-lisp/elpa/debian-el-37/deb-view hides /usr/share/emacs/site-lisp/elpa-src/debian-el-37/deb-view
/usr/share/emacs/site-lisp/elpa/debian-el-37/preseed hides /usr/share/emacs/site-lisp/elpa-src/debian-el-37/preseed
/usr/share/emacs/site-lisp/elpa/debian-el-37/debian-el-pkg hides /usr/share/emacs/site-lisp/elpa-src/debian-el-37/debian-el-pkg
/usr/share/emacs/site-lisp/elpa/debian-el-37/debian-autoloads hides /usr/share/emacs/site-lisp/elpa-src/debian-el-37/debian-autoloads
/usr/share/emacs/site-lisp/elpa/debian-el-37/debian-el hides /usr/share/emacs/site-lisp/elpa-src/debian-el-37/debian-el
/usr/share/emacs/site-lisp/elpa/debian-el-37/apt-sources hides /usr/share/emacs/site-lisp/elpa-src/debian-el-37/apt-sources
/usr/share/emacs/site-lisp/elpa/debian-el-37/debian-bug hides /usr/share/emacs/site-lisp/elpa-src/debian-el-37/debian-bug
/usr/share/emacs/site-lisp/elpa/dpkg-dev-el-37.0/dpkg-dev-el-pkg hides /usr/share/emacs/site-lisp/elpa-src/dpkg-dev-el-37.0/dpkg-dev-el-pkg
/usr/share/emacs/site-lisp/elpa/dpkg-dev-el-37.0/debian-bts-control hides /usr/share/emacs/site-lisp/elpa-src/dpkg-dev-el-37.0/debian-bts-control
/usr/share/emacs/site-lisp/elpa/dpkg-dev-el-37.0/dpkg-dev-el hides /usr/share/emacs/site-lisp/elpa-src/dpkg-dev-el-37.0/dpkg-dev-el
/usr/share/emacs/site-lisp/elpa/debian-el-37/debian-autoloads hides /usr/share/emacs/site-lisp/elpa-src/dpkg-dev-el-37.0/debian-autoloads
/usr/share/emacs/site-lisp/elpa/dpkg-dev-el-37.0/debian-copyright hides /usr/share/emacs/site-lisp/elpa-src/dpkg-dev-el-37.0/debian-copyright
/usr/share/emacs/site-lisp/elpa/dpkg-dev-el-37.0/readme-debian hides /usr/share/emacs/site-lisp/elpa-src/dpkg-dev-el-37.0/readme-debian
/usr/share/emacs/site-lisp/elpa/dpkg-dev-el-37.0/debian-changelog-mode hides /usr/share/emacs/site-lisp/elpa-src/dpkg-dev-el-37.0/debian-changelog-mode
/usr/share/emacs/site-lisp/elpa/dpkg-dev-el-37.0/dpkg-dev-el-autoloads hides /usr/share/emacs/site-lisp/elpa-src/dpkg-dev-el-37.0/dpkg-dev-el-autoloads
/usr/share/emacs/site-lisp/elpa/dpkg-dev-el-37.0/debian-control-mode hides /usr/share/emacs/site-lisp/elpa-src/dpkg-dev-el-37.0/debian-control-mode
/usr/share/emacs/site-lisp/elpa/haskell-mode-16.1/haskell-process hides /usr/share/emacs/site-lisp/elpa-src/haskell-mode-16.1/haskell-process
/usr/share/emacs/site-lisp/elpa/haskell-mode-16.1/haskell-session hides /usr/share/emacs/site-lisp/elpa-src/haskell-mode-16.1/haskell-session
/usr/share/emacs/site-lisp/elpa/haskell-mode-16.1/haskell-hoogle hides /usr/share/emacs/site-lisp/elpa-src/haskell-mode-16.1/haskell-hoogle
/usr/share/emacs/site-lisp/elpa/haskell-mode-16.1/haskell-mode hides /usr/share/emacs/site-lisp/elpa-src/haskell-mode-16.1/haskell-mode
/usr/share/emacs/site-lisp/elpa/haskell-mode-16.1/haskell-indentation hides /usr/share/emacs/site-lisp/elpa-src/haskell-mode-16.1/haskell-indentation
/usr/share/emacs/site-lisp/elpa/haskell-mode-16.1/haskell-indent hides /usr/share/emacs/site-lisp/elpa-src/haskell-mode-16.1/haskell-indent
/usr/share/emacs/site-lisp/elpa/haskell-mode-16.1/haskell-sandbox hides /usr/share/emacs/site-lisp/elpa-src/haskell-mode-16.1/haskell-sandbox
/usr/share/emacs/site-lisp/elpa/haskell-mode-16.1/haskell-string hides /usr/share/emacs/site-lisp/elpa-src/haskell-mode-16.1/haskell-string
/usr/share/emacs/site-lisp/elpa/haskell-mode-16.1/haskell-ghc-support hides /usr/share/emacs/site-lisp/elpa-src/haskell-mode-16.1/haskell-ghc-support
/usr/share/emacs/site-lisp/elpa/haskell-mode-16.1/haskell-customize hides /usr/share/emacs/site-lisp/elpa-src/haskell-mode-16.1/haskell-customize
/usr/share/emacs/site-lisp/elpa/haskell-mode-16.1/inf-haskell hides /usr/share/emacs/site-lisp/elpa-src/haskell-mode-16.1/inf-haskell
/usr/share/emacs/site-lisp/elpa/haskell-mode-16.1/haskell-debug hides /usr/share/emacs/site-lisp/elpa-src/haskell-mode-16.1/haskell-debug
/usr/share/emacs/site-lisp/elpa/haskell-mode-16.1/highlight-uses-mode hides /usr/share/emacs/site-lisp/elpa-src/haskell-mode-16.1/highlight-uses-mode
/usr/share/emacs/site-lisp/elpa/haskell-mode-16.1/haskell-cabal hides /usr/share/emacs/site-lisp/elpa-src/haskell-mode-16.1/haskell-cabal
/usr/share/emacs/site-lisp/elpa/haskell-mode-16.1/haskell-unicode-input-method hides /usr/share/emacs/site-lisp/elpa-src/haskell-mode-16.1/haskell-unicode-input-method
/usr/share/emacs/site-lisp/elpa/haskell-mode-16.1/haskell-align-imports hides /usr/share/emacs/site-lisp/elpa-src/haskell-mode-16.1/haskell-align-imports
/usr/share/emacs/site-lisp/elpa/haskell-mode-16.1/haskell-repl hides /usr/share/emacs/site-lisp/elpa-src/haskell-mode-16.1/haskell-repl
/usr/share/emacs/site-lisp/elpa/haskell-mode-16.1/haskell-load hides /usr/share/emacs/site-lisp/elpa-src/haskell-mode-16.1/haskell-load
/usr/share/emacs/site-lisp/elpa/haskell-mode-16.1/haskell-lexeme hides /usr/share/emacs/site-lisp/elpa-src/haskell-mode-16.1/haskell-lexeme
/usr/share/emacs/site-lisp/elpa/haskell-mode-16.1/haskell-c2hs hides /usr/share/emacs/site-lisp/elpa-src/haskell-mode-16.1/haskell-c2hs
/usr/share/emacs/site-lisp/elpa/haskell-mode-16.1/ghci-script-mode hides /usr/share/emacs/site-lisp/elpa-src/haskell-mode-16.1/ghci-script-mode
/usr/share/emacs/site-lisp/elpa/haskell-mode-16.1/haskell-commands hides /usr/share/emacs/site-lisp/elpa-src/haskell-mode-16.1/haskell-commands
/usr/share/emacs/site-lisp/elpa/haskell-mode-16.1/haskell-doc hides /usr/share/emacs/site-lisp/elpa-src/haskell-mode-16.1/haskell-doc
/usr/share/emacs/site-lisp/elpa/haskell-mode-16.1/haskell hides /usr/share/emacs/site-lisp/elpa-src/haskell-mode-16.1/haskell
/usr/share/emacs/site-lisp/elpa/haskell-mode-16.1/haskell-mode-autoloads hides /usr/share/emacs/site-lisp/elpa-src/haskell-mode-16.1/haskell-mode-autoloads
/usr/share/emacs/site-lisp/elpa/haskell-mode-16.1/haskell-mode-pkg hides /usr/share/emacs/site-lisp/elpa-src/haskell-mode-16.1/haskell-mode-pkg
/usr/share/emacs/site-lisp/elpa/haskell-mode-16.1/haskell-compat hides /usr/share/emacs/site-lisp/elpa-src/haskell-mode-16.1/haskell-compat
/usr/share/emacs/site-lisp/elpa/haskell-mode-16.1/haskell-navigate-imports hides /usr/share/emacs/site-lisp/elpa-src/haskell-mode-16.1/haskell-navigate-imports
/usr/share/emacs/site-lisp/elpa/haskell-mode-16.1/haskell-utils hides /usr/share/emacs/site-lisp/elpa-src/haskell-mode-16.1/haskell-utils
/usr/share/emacs/site-lisp/elpa/haskell-mode-16.1/haskell-sort-imports hides /usr/share/emacs/site-lisp/elpa-src/haskell-mode-16.1/haskell-sort-imports
/usr/share/emacs/site-lisp/elpa/haskell-mode-16.1/ghc-core hides /usr/share/emacs/site-lisp/elpa-src/haskell-mode-16.1/ghc-core
/usr/share/emacs/site-lisp/elpa/haskell-mode-16.1/haskell-decl-scan hides /usr/share/emacs/site-lisp/elpa-src/haskell-mode-16.1/haskell-decl-scan
/usr/share/emacs/site-lisp/elpa/haskell-mode-16.1/haskell-modules hides /usr/share/emacs/site-lisp/elpa-src/haskell-mode-16.1/haskell-modules
/usr/share/emacs/site-lisp/elpa/haskell-mode-16.1/w3m-haddock hides /usr/share/emacs/site-lisp/elpa-src/haskell-mode-16.1/w3m-haddock
/usr/share/emacs/site-lisp/elpa/haskell-mode-16.1/haskell-menu hides /usr/share/emacs/site-lisp/elpa-src/haskell-mode-16.1/haskell-menu
/usr/share/emacs/site-lisp/elpa/haskell-mode-16.1/haskell-interactive-mode hides /usr/share/emacs/site-lisp/elpa-src/haskell-mode-16.1/haskell-interactive-mode
/usr/share/emacs/site-lisp/elpa/haskell-mode-16.1/haskell-completions hides /usr/share/emacs/site-lisp/elpa-src/haskell-mode-16.1/haskell-completions
/usr/share/emacs/site-lisp/elpa/haskell-mode-16.1/haskell-collapse hides /usr/share/emacs/site-lisp/elpa-src/haskell-mode-16.1/haskell-collapse
/usr/share/emacs/site-lisp/elpa/haskell-mode-16.1/haskell-complete-module hides /usr/share/emacs/site-lisp/elpa-src/haskell-mode-16.1/haskell-complete-module
/usr/share/emacs/site-lisp/elpa/haskell-mode-16.1/haskell-move-nested hides /usr/share/emacs/site-lisp/elpa-src/haskell-mode-16.1/haskell-move-nested
/usr/share/emacs/site-lisp/elpa/haskell-mode-16.1/haskell-font-lock hides /usr/share/emacs/site-lisp/elpa-src/haskell-mode-16.1/haskell-font-lock
/usr/share/emacs/site-lisp/elpa/haskell-mode-16.1/haskell-presentation-mode hides /usr/share/emacs/site-lisp/elpa-src/haskell-mode-16.1/haskell-presentation-mode
/usr/share/emacs/site-lisp/elpa/haskell-mode-16.1/haskell-compile hides /usr/share/emacs/site-lisp/elpa-src/haskell-mode-16.1/haskell-compile
/usr/share/emacs/site-lisp/flim/md4 hides /usr/share/emacs/26.1/lisp/md4
/usr/share/emacs/site-lisp/flim/hex-util hides /usr/share/emacs/26.1/lisp/hex-util
/usr/share/emacs/site-lisp/flim/hmac-def hides /usr/share/emacs/26.1/lisp/net/hmac-def
/usr/share/emacs/site-lisp/flim/ntlm hides /usr/share/emacs/26.1/lisp/net/ntlm
/usr/share/emacs/site-lisp/flim/sasl hides /usr/share/emacs/26.1/lisp/net/sasl
/usr/share/emacs/site-lisp/flim/sasl-ntlm hides /usr/share/emacs/26.1/lisp/net/sasl-ntlm
/usr/share/emacs/site-lisp/flim/hmac-md5 hides /usr/share/emacs/26.1/lisp/net/hmac-md5
/usr/share/emacs/site-lisp/flim/sasl-digest hides /usr/share/emacs/26.1/lisp/net/sasl-digest
/usr/share/emacs/site-lisp/flim/sasl-cram hides /usr/share/emacs/26.1/lisp/net/sasl-cram
/home/asher/.emacs.d/elpa/landmark-1.0/landmark hides /usr/share/emacs/26.1/lisp/obsolete/landmark
/usr/share/emacs/site-lisp/auctex/context-en hides /usr/share/auctex/context-en
/usr/share/emacs/site-lisp/auctex/texmathp hides /usr/share/auctex/texmathp
/usr/share/emacs/site-lisp/auctex/font-latex hides /usr/share/auctex/font-latex
/usr/share/emacs/site-lisp/auctex/preview hides /usr/share/auctex/preview
/usr/share/emacs/site-lisp/auctex/latex hides /usr/share/auctex/latex
/usr/share/emacs/site-lisp/auctex/tex-info hides /usr/share/auctex/tex-info
/usr/share/emacs/site-lisp/auctex/tex-style hides /usr/share/auctex/tex-style
/usr/share/emacs/site-lisp/auctex/context hides /usr/share/auctex/context
/usr/share/emacs/site-lisp/auctex/tex-font hides /usr/share/auctex/tex-font
/usr/share/emacs/site-lisp/auctex/context-nl hides /usr/share/auctex/context-nl
/usr/share/emacs/site-lisp/auctex/tex-mik hides /usr/share/auctex/tex-mik
/usr/share/emacs/site-lisp/auctex/tex-buf hides /usr/share/auctex/tex-buf
/usr/share/emacs/site-lisp/auctex/bib-cite hides /usr/share/auctex/bib-cite
/usr/share/emacs/site-lisp/auctex/toolbar-x hides /usr/share/auctex/toolbar-x
/usr/share/emacs/site-lisp/auctex/tex-fold hides /usr/share/auctex/tex-fold
/usr/share/emacs/site-lisp/auctex/tex-jp hides /usr/share/auctex/tex-jp
/usr/share/emacs/site-lisp/auctex/prv-emacs hides /usr/share/auctex/prv-emacs
/usr/share/emacs/site-lisp/auctex/tex-ispell hides /usr/share/auctex/tex-ispell
/usr/share/emacs/site-lisp/auctex/tex hides /usr/share/auctex/tex
/usr/share/emacs/site-lisp/auctex/plain-tex hides /usr/share/auctex/plain-tex
/usr/share/emacs/site-lisp/auctex/tex-bar hides /usr/share/auctex/tex-bar
/usr/share/emacs/site-lisp/auctex/multi-prompt hides /usr/share/auctex/multi-prompt

Features:
(shadow sort flyspell ispell mail-extr emacsbug sendmail eieio-opt
speedbar sb-image ezimage dframe find-func help-fns radix-tree gomoku
zygospore t-mouse term/linux elec-pair man ansi-color warnings bbdb
bbdb-site timezone server pinentry battery time undo-tree diff cl-extra
help-mode autopair advice gnus-BTS bfbuilder edmacro kmacro fortune
gnus-art mm-uu mml2015 mm-view mml-smime smime dig mailcap gnus-sum
gnus-group gnus-undo gnus-start gnus-cloud nnimap nnmail mail-source tls
gnutls utf7 netrc nnoo parse-time gnus-spec gnus-int gnus-range message
rmc puny dired dired-loaddefs format-spec rfc822 mml mml-sec epa derived
epg mm-decode mm-bodies mm-encode mail-parse rfc2231 mailabbrev
gmm-utils mailheader gnus-win mmm-mode mmm-univ mmm-class mmm-region
asdago-dark-theme paren savehist gnus nnheader gnus-util rmail
rmail-loaddefs rfc2047 rfc2045 ietf-drums time-date mail-utils mm-util
mail-prsvr wid-edit cus-start cus-load finder-inf autoinsert rx ede/auto
dpkg-dev-el info debian-el package easymenu epg-config url-handlers
url-parse auth-source cl-seq eieio eieio-core cl-macs eieio-loaddefs
password-cache url-vars seq byte-opt gv bytecomp byte-compile cconv
w3m-load mmm-auto mmm-vars cl-loaddefs cl-lib mmm-utils mmm-compat
devhelp preview-latex tex-site auto-loads tooltip eldoc electric
uniquify ediff-hook vc-hooks lisp-float-type mwheel term/x-win x-win
term/common-win x-dnd tool-bar dnd fontset image regexp-opt fringe
tabulated-list replace newcomment text-mode elisp-mode lisp-mode
prog-mode register page menu-bar rfn-eshadow isearch timer select
scroll-bar mouse jit-lock font-lock syntax facemenu font-core
term/tty-colors frame cl-generic cham georgian utf-8-lang misc-lang
vietnamese tibetan thai tai-viet lao korean japanese eucjp-ms cp51932
hebrew greek romanian slovak czech european ethiopic indian cyrillic
chinese composite charscript charprop case-table epa-hook jka-cmpr-hook
help simple abbrev obarray minibuffer cl-preloaded nadvice loaddefs
button faces cus-face macroexp files text-properties overlay sha1 md5
base64 format env code-pages mule custom widget hashtable-print-readable
backquote dbusbind inotify lcms2 dynamic-setting system-font-setting
font-render-setting move-toolbar gtk x-toolkit x multi-tty
make-network-process emacs)

Memory information:
((conses 16 224227 15028)
 (symbols 48 32784 1)
 (miscs 40 94 212)
 (strings 32 69696 3743)
 (string-bytes 1 2154022)
 (vectors 16 24956)
 (vector-slots 8 604468 4742)
 (floats 8 228 599)
 (intervals 56 2185 0)
 (buffers 992 16))
--- gomoku.el~	2020-03-21 13:13:20.838106406 -0400
+++ gomoku.el	2020-03-21 13:13:14.666192678 -0400
@@ -110,8 +110,8 @@
     (define-key map "u" 'gomoku-move-ne)		    ; u
     (define-key map "b" 'gomoku-move-sw)		    ; b
     (define-key map "n" 'gomoku-move-se)		    ; n
-    (define-key map "h" 'backward-char)			    ; h
-    (define-key map "l" 'forward-char)			    ; l
+    (define-key map "h" 'gomoku-move-left)		    ; h
+    (define-key map "l" 'gomoku-move-right)		    ; l
     (define-key map "j" 'gomoku-move-down)		    ; j
     (define-key map "k" 'gomoku-move-up)		    ; k
 
@@ -119,8 +119,8 @@
     (define-key map [kp-9] 'gomoku-move-ne)
     (define-key map [kp-1] 'gomoku-move-sw)
     (define-key map [kp-3] 'gomoku-move-se)
-    (define-key map [kp-4] 'backward-char)
-    (define-key map [kp-6] 'forward-char)
+    (define-key map [kp-4] 'gomoku-move-left)
+    (define-key map [kp-6] 'gomoku-move-right)
     (define-key map [kp-2] 'gomoku-move-down)
     (define-key map [kp-8] 'gomoku-move-up)
 
@@ -954,6 +954,11 @@
 	 ;; 2 instead of 1 because WINDOW-HEIGHT includes the mode line !
 	 gomoku-square-height)))
 
+(defun gomoku-point-x ()
+  "Return the board column where point is."
+  (1+ (/ (- (current-column) gomoku-x-offset)
+	 gomoku-square-width)))
+
 (defun gomoku-point-y ()
   "Return the board row where point is."
   (1+ (/ (- (count-lines (point-min) (point))
@@ -989,7 +994,7 @@
 	  (1- (point)) (point)
 	  '(mouse-face highlight help-echo "mouse-2: play at this square")))
     (delete-char 1)
-    (backward-char 1))
+    (gomoku-move-left))
   (sit-for 0))	; Display NOW
 
 (defun gomoku-init-display (n m)
@@ -1103,7 +1108,7 @@
 	(setq square1 (+ square1 depl))
 	(cond
 	  ((= dy 0)			; Horizontal
-	   (forward-char 1)
+	   (gomoku-move-right)
 	   (insert-char ?- (1- gomoku-square-width) t)
 	   (delete-region (point) (progn
 				    (skip-chars-forward " \t")
@@ -1143,13 +1148,28 @@
           (skip-chars-forward gomoku--intangible-chars)
           (when (eobp)
             (skip-chars-backward gomoku--intangible-chars)
-            (forward-char -1)))
+            (gomoku-move-left)))
       (skip-chars-backward gomoku--intangible-chars)
       (if (bobp)
           (skip-chars-forward gomoku--intangible-chars)
-        (forward-char -1))))
+        (gomoku-move-left))))
   (setq gomoku--last-pos (point)))
 
+;; forward-char and backward-char don't always move the right number
+;; of characters. Also, these functions check if you're on the edge of
+;; the screen.
+(defun gomoku-move-right ()
+  "Move point right one column on the Gomoku board."
+  (interactive)
+  (when (< (gomoku-point-x) gomoku-board-width)
+    (forward-char gomoku-square-width)))
+
+(defun gomoku-move-left ()
+  "Move point left one column on the Gomoku board."
+  (interactive)
+  (when (> (gomoku-point-x) 1)
+    (backward-char gomoku-square-width)))
+
 ;; previous-line and next-line don't work right with intangible newlines
 (defun gomoku-move-down ()
   "Move point down one row on the Gomoku board."
@@ -1171,25 +1191,25 @@
   "Move point North East on the Gomoku board."
   (interactive)
   (gomoku-move-up)
-  (forward-char))
+  (gomoku-move-right))
 
 (defun gomoku-move-se ()
   "Move point South East on the Gomoku board."
   (interactive)
   (gomoku-move-down)
-  (forward-char))
+  (gomoku-move-right))
 
 (defun gomoku-move-nw ()
   "Move point North West on the Gomoku board."
   (interactive)
   (gomoku-move-up)
-  (backward-char))
+  (gomoku-move-left))
 
 (defun gomoku-move-sw ()
   "Move point South West on the Gomoku board."
   (interactive)
   (gomoku-move-down)
-  (backward-char))
+  (gomoku-move-left))
 
 (defun gomoku-beginning-of-line ()
   "Move point to first square on the Gomoku board row."